Search code examples
phpwordpresswoocommerceproductcustom-taxonomy

Display specific formatted product attributes in WooCommerce cart items


In woocommerce I am able to display some formatted product attributes under my products on the archives pages with the following code:

add_action('woocommerce_after_shop_loop_item', 'displaying_product_attributes');
function displaying_product_attributes() {
    global $product;

   $product_driver = $product->get_attribute('pa_driver');
    $product_passenger  = $product->get_attribute('pa_passenger');

    echo "<p style='color:red;'>".$product_driver."</p>";
    echo "<p style='color:red;'>".$product_passenger."</p>";

}

How can I do the same thing on the cart items (in Woocommerce cart and checkout pages)?


Solution

  • Updated

    The following will display in cart and checkout pages your specific product attributes in default Woocommerce formatted way:

    // Display specific product attributes in cart items on cart and checkout pages
    add_filter( 'woocommerce_get_item_data', 'display_cart_item_custom_data_on_cart_and_checkout', 10, 2 );
    function display_cart_item_custom_data_on_cart_and_checkout( $cart_item_data, $cart_item ){
        $attributes = array('pa_driver', 'pa_passenger'); // Here define your product attributes
    
        foreach ( $attributes as $attribute ){
            $values = $cart_item['data']->get_attribute($attribute);
    
            if ( ! empty( $values ) ) {
                $cart_item_data[] = array(
                    'name'  => wc_attribute_label($attribute),
                    'value' => $values,
                );
            }
        }
        return $cart_item_data;
    }
    

    Code goes in function.php file of your active child theme (or active theme). Tested and works.