skip to Main Content

I want to add a comment to individual products in the cart page. I am new to woocommerce wordpress plugin so I have no idea how to do.

I have done some research. In that tutorial, I found that I can use woocommerce_add_cart_item_data hook this way:

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

function add_comment( $cart_item_data, $product_id, $variation_id ) {

    $cart_item_data['comment'] = 'This is comment';

    return $cart_item_data;

}

but this does not work in my case.

I attach the Cart page image so you can understand.

enter image description here

I hope you guys understand what I want?

Thank you.

2

Answers


  1. Below code will add a custom text to an item in cart:

    You need to create a custom field “comment” for the product to use it here.

     add_filter( 'woocommerce_add_cart_item_data', 'add_comment', 10, 3 );
    
    function add_comment( $cart_item_data, $product_id, $variation_id ) {
    
        $cart_item_data['comment'] = 'This is comment';
    
        return $cart_item_data;
    
    }
    

    Add a Custom text/comment before Cart table in Cart Page:

    add_action( 'woocommerce_before_cart_table', 'add_comment' );
    
    function add_comment() 
    {
        echo '<div class="woocommerce-info">This is comment</div>';
    }
    

    Add a Custom text/comment after Cart table in Cart Page:

    add_action( 'woocommerce_after_cart_table', 'add_comment' );
    
    function add_comment() {
        echo '<div class="woocommerce-info">This is comment</div>';
    }
    

    HOW TO ADD AN INPUT FIELD TO WOOCOMMERCE CART ITEMS & Let users update input fields in the cart

    https://pluginrepublic.com/how-to-add-an-input-field-to-woocommerce-cart-items/

    Refer this link for a working solution to similar request:
    https://stackoverflow.com/a/21818028/12291365

    If you are okay with using the plugin, then this plugin will do the trick:
    https://wordpress.org/plugins/wc-fields-factory/

    Login or Signup to reply.
  2. Use code snippet below for adding custom values for each cart item.

    Please add your logic for attaching values for each item

    // Add custom value into cart item
    add_filter('woocommerce_add_cart_item_data','sub_add_item_data',1,2);
    
    if(!function_exists('sub_add_item_data'))
    {
        function sub_add_item_data($cart_item_data,$product_id)
        {
            // use condition for adding custom value here
            $new_value = array( 
                    'sub_custom_value' => 'custom value',
                );
            return array_merge($cart_item_data,$new_value);
        }
    }
    
    
    // Extract  custom values
    add_filter('woocommerce_get_cart_item_from_session', 'sub_get_cart_items_from_session', 1, 3 );
    if(!function_exists('sub_get_cart_items_from_session'))
    {
        function sub_get_cart_items_from_session($item,$values,$key)
        {
            if (array_key_exists( 'sub_custom_value', $values ) )
            {
            $item['sub_custom_value'] = $values['sub_custom_value'];
            }       
            return $item;
        }
    }
    
    
    // display in cart and checkout
    
    add_filter('woocommerce_checkout_cart_item_quantity','sub_add_user_custom_option_from_session_into_cart',1,3);  
    add_filter('woocommerce_cart_item_price','sub_add_user_custom_option_from_session_into_cart',1,3);
    if(!function_exists('sub_add_user_custom_option_from_session_into_cart'))
    {
     function sub_add_user_custom_option_from_session_into_cart($product_name, $values, $cart_item_key )
        {    
            if(isset( $values['sub_custom_value'] ) && '' != $values['sub_custom_value'] )
            {
                $return_string = $product_name . "</a><dl class='variation'>";
                $return_string .= "<table class='sub_options_table' id='" . $values['product_id'] . "'>";
                $return_string .= "<tr><td>" . $values['sub_custom_value'] . "</td></tr>";
                $return_string .= "</table></dl>"; 
                return $return_string;
            }
            else
            {
                return $product_name;
            }
        }
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search