wc_get_formatted_cart_item_data()
Gets and formats a list of cart item data + variations for display on the frontend.
Hooks from the function
Return
String
.
Usage
wc_get_formatted_cart_item_data( $cart_item, $flat );
- $cart_item(array) (required)
- Cart item object.
- $flat(true|false)
- Should the data be returned flat or in a list.
Default: false
Changelog
Since 3.3.0 | Introduced. |
wc_get_formatted_cart_item_data() wc get formatted cart item data code WC 8.3.0
function wc_get_formatted_cart_item_data( $cart_item, $flat = false ) { $item_data = array(); // Variation values are shown only if they are not found in the title as of 3.0. // This is because variation titles display the attributes. if ( $cart_item['data']->is_type( 'variation' ) && is_array( $cart_item['variation'] ) ) { foreach ( $cart_item['variation'] as $name => $value ) { $taxonomy = wc_attribute_taxonomy_name( str_replace( 'attribute_pa_', '', urldecode( $name ) ) ); if ( taxonomy_exists( $taxonomy ) ) { // If this is a term slug, get the term's nice name. $term = get_term_by( 'slug', $value, $taxonomy ); if ( ! is_wp_error( $term ) && $term && $term->name ) { $value = $term->name; } $label = wc_attribute_label( $taxonomy ); } else { // If this is a custom option slug, get the options name. $value = apply_filters( 'woocommerce_variation_option_name', $value, null, $taxonomy, $cart_item['data'] ); $label = wc_attribute_label( str_replace( 'attribute_', '', $name ), $cart_item['data'] ); } // Check the nicename against the title. if ( '' === $value || wc_is_attribute_in_product_name( $value, $cart_item['data']->get_name() ) ) { continue; } $item_data[] = array( 'key' => $label, 'value' => $value, ); } } // Filter item data to allow 3rd parties to add more to the array. $item_data = apply_filters( 'woocommerce_get_item_data', $item_data, $cart_item ); // Format item data ready to display. foreach ( $item_data as $key => $data ) { // Set hidden to true to not display meta on cart. if ( ! empty( $data['hidden'] ) ) { unset( $item_data[ $key ] ); continue; } $item_data[ $key ]['key'] = ! empty( $data['key'] ) ? $data['key'] : $data['name']; $item_data[ $key ]['display'] = ! empty( $data['display'] ) ? $data['display'] : $data['value']; } // Output flat or in list format. if ( count( $item_data ) > 0 ) { ob_start(); if ( $flat ) { foreach ( $item_data as $data ) { echo esc_html( $data['key'] ) . ': ' . wp_kses_post( $data['display'] ) . "\n"; } } else { wc_get_template( 'cart/cart-item-data.php', array( 'item_data' => $item_data ) ); } return ob_get_clean(); } return ''; }