1. Halo Guest, pastikan Anda selalu menaati peraturan forum sebelum mengirimkan post atau thread baru.

Bantuin gan...Custom Cart.php Woocommerce

Discussion in 'Pemrograman Web' started by Alvindayu, Mar 15, 2020.

  1. Alvindayu

    Alvindayu Ads.id Fan

    Joined:
    Oct 30, 2017
    Messages:
    168
    Likes Received:
    81
    Gan saya kan lagi buat web untuk jualan baju custom dengan halaman produk cuma masukin field ukuran, warna dll dengan simtim select.

    [​IMG]

    Nah saat di add to cart kan di halaman cartnya muncul aoa aja yang dikeranjang kita.

    Nah halaman ini mau saya kasih tombol WhatsApps dengan custom massage apa yang di pilih oleh cutomer tadi di halaman produk.
    [​IMG]
    Pertanyaanya gmn cara ambil nilai ini gan biar bisa di masukin ke tombol WA.

    Untuk buat custom field saya pakai plugin woo extra product options

    Ini Kodenya gan...

    Code:
    <?php
    
    defined( 'ABSPATH' ) || exit;
    
    do_action( 'woocommerce_before_cart' ); ?>
    
    <form class="woocommerce-cart-form" action="<?php echo esc_url( wc_get_cart_url() ); ?>" method="post">
        <?php do_action( 'woocommerce_before_cart_table' ); ?>
    
        <ul class="shop_table shop_table_responsive cart woocommerce-cart-form__contents">
    
            <?php do_action( 'woocommerce_before_cart_contents' ); ?>
    
            <?php
            foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                $_product   = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
                $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
    
                if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
                    $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
                    ?>
    
                    <li class="woocommerce-cart-form__cart-item <?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
                        <div class="product-thumbnail">
                            <?php
                            $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
    
                            if ( ! $product_permalink ) {
                                echo $thumbnail; // PHPCS: XSS ok.
                            } else {
                                printf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $thumbnail ); // PHPCS: XSS ok.
                            }
                            ?>
                        </div>
                        <div class="cart-item-details">
                            <p class="product-name" data-title="<?php esc_attr_e( 'Product', 'woocommerce' ); ?>">
                                <?php
                                if ( ! $product_permalink ) {
                                    echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ) . '&nbsp;' );
                                } else {
                                    echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
                                }
    
                                do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
    
                                // Meta data.
                                echo wc_get_formatted_cart_item_data( $cart_item ); // PHPCS: XSS ok.
    
                                // Backorder notification.
                                if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
                                    echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__( 'Available on backorder', 'woocommerce' ) . '</p>', $product_id ) );
                                }
                                ?>
                            </p>
    
                            <p class="product-price" data-title="<?php esc_attr_e( 'Price', 'woocommerce' ); ?>">
                                <?php
                                    echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
                                ?>
                            </p>
    
                            <div class="product-quantity" data-title="<?php esc_attr_e( 'Quantity', 'woocommerce' ); ?>">
                                <p>Quantity:</p>
                                <?php
                                if ( $_product->is_sold_individually() ) {
                                    $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
                                } else {
                                    $product_quantity = woocommerce_quantity_input( array(
                                        'input_name'   => "cart[{$cart_item_key}][qty]",
                                        'input_value'  => $cart_item['quantity'],
                                        'max_value'    => $_product->get_max_purchase_quantity(),
                                        'min_value'    => '0',
                                        'product_name' => $_product->get_name(),
                                    ), $_product, false );
                                }
    
                                echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item ); // PHPCS: XSS ok.
                                ?>
    
                                <button type="submit" class="button" name="update_cart" value="<?php esc_attr_e( 'Update cart', 'woocommerce' ); ?>"><?php esc_html_e( 'Update cart', 'woocommerce' ); ?></button>
                            </div>
    
                            <p class="product-remove">
                                <?php
                                    // @codingStandardsIgnoreLine
                                    echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
                                        '<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">&times;</a>',
                                        esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
                                        __( 'Remove this item', 'woocommerce' ),
                                        esc_attr( $product_id ),
                                        esc_attr( $_product->get_sku() )
                                    ), $cart_item_key );
                                ?>
                            </p>
    
                        </div>
                    </li>
                    <?php
                }
            }
            ?>
    
            <?php do_action( 'woocommerce_cart_contents' ); ?>
    
            <?php do_action( 'woocommerce_cart_actions' ); ?>
            <?php wp_nonce_field( 'woocommerce-cart', 'woocommerce-cart-nonce' ); ?>
    
            <?php do_action( 'woocommerce_after_cart_contents' ); ?>
        </ul>
    
        <?php do_action( 'woocommerce_after_cart_table' ); ?>
    </form>
    
    <div class="cart-collaterals">
        <?php
            /**
             * Cart collaterals hook.
             *
             * @hooked woocommerce_cross_sell_display
             * @hooked woocommerce_cart_totals - 10
             */
            do_action( 'woocommerce_cart_collaterals' );
    
        ?>
        Klik tombol WhatsApp untuk konfirmasi pesananmu
    <a href="https://api.whatsapp.com/send?phone=62895635859840&amp;text=*Konfirmasi%20Order*%0AID%20Pesanan%3A%20*[my_order_id]*%0ADetail%20Order%3A%20*https%3A%2F%2Fnilacustome.com%2Fcheckout%2Forder-received/[my_order_id]"><img class="aligncenter" src="https://nilacustome.com/wp-content/uploads/2020/02/WA-konfirmasi.png" alt="" width="163" height="60" /></a>
    </div>
    
    <?php do_action( 'woocommerce_after_cart' ); ?>
    
    
    <style media="screen">
    /** image at left. */
    ul .product-thumbnail {
        height: 225px;
        width: 300px;
        display: inline-block;
    }
    ul .product-thumbnail img {
        max-width: none;
        height: 100%;
        width: 100%;
        object-fit: contain;
        border: 1px solid #ebebeb;
    }
    
    /** item details at right. */
    ul .cart-item-details {
        display: inline-block;
        vertical-align: top;
        margin-left: 24px;
        width: 100%;
    }
    
    /** no bullets on item list. */
    ul.woocommerce-cart-form__contents {
        list-style: none;
        padding-left: 0;
    }
    
    /** wrapper: color, margin. */
    li.woocommerce-cart-form__cart-item {
        display: flex;
        background-color: #fafafa;
        padding: 36px;
        padding-bottom: 24px;
        margin-bottom: 30px;
    }
    
    /** item details: no spacing between elements. */
    ul .cart-item-details>* {
        margin: 0;
    }
    
    /** "update cart" on each item (right side). */
    ul .product-quantity .quantity {
        display: inline-block;
    }
    ul .product-quantity button {
        float: right;
    }
    
    /** cart totals: fixed at right with "sticky". */
    #wrap_all, #content { /** parents need to be "overflow: visible". */
        overflow: visible;
    }
    .woocommerce { /** wrapper needs to be flex. */
        max-width: none !important;
    }
    .cart-collaterals { /** "sticky". */
        position: sticky;
        display: inline-block;
        vertical-align: top;
        top: 0;
        width: 400px !important;
    }
    .cart_totals { /** cart totals width. */
        float: left;
        width: 100% !important;
    }
    .woocommerce-cart-form { /** items width. */
        display: inline-block;
        width: calc(100% - 435px);
        padding-right: 35px;
    }
    </style>
     
  2. linkcluster

    linkcluster Hero

    Joined:
    Jan 6, 2011
    Messages:
    670
    Likes Received:
    62
    Location:
    under contruction
    rule 1, jng perna modif core,
    2. gunakan callback,
    3.jka limited callback, contrib dng push commit kita

    paling cepet tangkep method $_post, dn gunakan di untuk value WA nya
     
  3. Alvindayu

    Alvindayu Ads.id Fan

    Joined:
    Oct 30, 2017
    Messages:
    168
    Likes Received:
    81
    Contoh penggunaan $_post gmn gan? saya kurang ngerti kalau ada bacaan referensi boleh nih.
     
  4. joanhard

    joanhard Newbie

    Joined:
    Jan 14, 2015
    Messages:
    44
    Likes Received:
    1
    Kalau belum di proses checkout/paid, mana bisa dapat kode [my_order_id] / ORDER ID
    sedangkan button WA nya ada di halaman cart
     

Share This Page