I am trying to add product in cart with cart item meta data. Here is the code :
$cart_item_data = array();
$cart_item_data['add_size'] = array('PR CODE'=>'1.0');
print_r(WC()->cart->add_to_cart( $product_id ,1, 0,array(), $cart_item_data ));
It's adding product in cart but it's not showing up in order or in cart.
Can any help me out?
To display and save custom meta data added to cart in cart, checkout and orders when using:
WC()->cart->add_to_cart( $product_id ,1, 0,array(), array('add_size' => array('PR CODE'=>'1.0') );
You will use the following code:
// Display custom cart item meta data (in cart and checkout)
add_filter( 'woocommerce_get_item_data', 'display_cart_item_custom_meta_data', 10, 2 );
function display_cart_item_custom_meta_data( $item_data, $cart_item ) {
$meta_key = 'PR CODE';
if ( isset($cart_item['add_size']) && isset($cart_item['add_size'][$meta_key]) ) {
$item_data[] = array(
'key' => $meta_key,
'value' => $cart_item['add_size'][$meta_key],
);
}
return $item_data;
}
// Save cart item custom meta as order item meta data and display it everywhere on orders and email notifications.
add_action( 'woocommerce_checkout_create_order_line_item', 'save_cart_item_custom_meta_as_order_item_meta', 10, 4 );
function save_cart_item_custom_meta_as_order_item_meta( $item, $cart_item_key, $values, $order ) {
$meta_key = 'PR CODE';
if ( isset($values['add_size']) && isset($values['add_size'][$meta_key]) ) {
$item->update_meta_data( $meta_key, $values['add_size'][$meta_key] );
}
}
Code goes in function.php file of your active child theme (or active theme). Tested and works.
Example display on Cart (and Checkout) pages:
Example display on Orders (and email notifications):
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With