Skip to content
Advertisement

Display specific formatted product attributes in WooCommerce cart items [closed]

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)?

Advertisement

Answer

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.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement