woocommerce offtopic - How to add custom data to cart for a specific product which I have shown on a page programmatically and w

My scenario is I have a product which I'm showing on my home page with my shortcode not with woo commerce shortcode

My scenario is I have a product which I'm showing on my home page with my shortcode not with woo commerce shortcode. What I want is I need to show a text box under that and once user fills that and click on my custom add to cart button that data should be shown in my cart. I don't want to use product single page for that my requirement is to do it on home page.

Site link: /

    function iconic_output_engraving_field() {
        global $product;

        if ( $product->get_id() !== 95 ) {
            return;
        }

        ?>
        <div class="iconic-engraving-field">
            <label for="iconic-engraving"><?php _e( 'Engraving (10 characters)', 'iconic' ); ?></label>
            <input type="text" id="iconic-engraving" name="iconic-engraving" placeholder="<?php _e( 'Enter engraving text', 'iconic' ); ?>" maxlength="10">
        </div>
        <?php
    }

    add_action( 'woocommerce_before_add_to_cart_button', 'iconic_output_engraving_field', 10 );




    function iconic_add_engraving_text_to_cart_item( $cart_item_data, $product_id, $variation_id ) {
        $engraving_text = filter_input( INPUT_POST, 'iconic-engraving' );

        if ( empty( $engraving_text ) ) {
            return $cart_item_data;
        }

        $cart_item_data['iconic-engraving'] = $engraving_text;

        return $cart_item_data;
    }

    add_filter( 'woocommerce_add_cart_item_data', 'iconic_add_engraving_text_to_cart_item', 10, 3 );

    function iconic_display_engraving_text_cart( $item_data, $cart_item ) {
        if ( empty( $cart_item['iconic-engraving'] ) ) {
            return $item_data;
        }

        $item_data[] = array(
            'key'     => __( 'Engraving', 'iconic' ),
            'value'   => wc_clean( $cart_item['iconic-engraving'] ),
            'display' => '',
        );
        return $item_data;
    }

    add_filter( 'woocommerce_get_item_data', 'iconic_display_engraving_text_cart', 10, 2 );

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744934537a4601937.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信