在 Woocommerce 购物车页面上显示特定产品属性
Posted
技术标签:
【中文标题】在 Woocommerce 购物车页面上显示特定产品属性【英文标题】:Display specific product attribute on Woocommerce cart page 【发布时间】:2020-12-13 21:55:36 【问题描述】:我想在 Woocommerce 购物车页面和结帐页面上的表格中产品名称下方显示特定产品属性。这在某种程度上可能与
custom_display_attribute
?
【问题讨论】:
【参考方案1】:您可以使用以下过滤器在购物车页面上显示属性。参考链接:https://isabelcastillo.com/show-woocommerce-product-attributes-on-cart-page
/**
* WooCommerce: show all product attributes, separated by comma, on cart page
*/
function isa_woo_cart_attribute_values( $cart_item, $cart_item_key )
$item_data = $cart_item_key['data'];
$attributes = $item_data->get_attributes();
if ( ! $attributes )
return $cart_item;
$out = $cart_item . '<br />';
$count = count( $attributes );
$i = 0;
foreach ( $attributes as $attribute )
// skip variations
if ( $attribute->get_variation() )
continue;
$name = $attribute->get_name();
if ( $attribute->is_taxonomy() )
$product_id = $item_data->get_id();
$terms = wp_get_post_terms( $product_id, $name, 'all' );
// get the taxonomy
$tax = $terms[0]->taxonomy;
// get the tax object
$tax_object = get_taxonomy($tax);
// get tax label
if ( isset ( $tax_object->labels->singular_name ) )
$tax_label = $tax_object->labels->singular_name;
elseif ( isset( $tax_object->label ) )
$tax_label = $tax_object->label;
// Trim label prefix since WC 3.0
$label_prefix = 'Product ';
if ( 0 === strpos( $tax_label, $label_prefix ) )
$tax_label = substr( $tax_label, strlen( $label_prefix ) );
$out .= $tax_label . ': ';
$tax_terms = array();
foreach ( $terms as $term )
$single_term = esc_html( $term->name );
array_push( $tax_terms, $single_term );
$out .= implode(', ', $tax_terms);
if ( $count > 1 && ( $i < ($count - 1) ) )
$out .= ', ';
$i++;
// end for taxonomies
else
// not a taxonomy
$out .= $name . ': ';
$out .= esc_html( implode( ', ', $attribute->get_options() ) );
if ( $count > 1 && ( $i < ($count - 1) ) )
$out .= ', ';
$i++;
echo $out;
add_filter( 'woocommerce_cart_item_name', isa_woo_cart_attribute_values, 10, 2 );
【讨论】:
显示所有属性并格式化它们,这是我不想要的。我只需要一个特定的属性和标签,它不应该被格式化。 @mark 你有所有属性,然后你可以根据你的要求显示任何属性。以上是关于在 Woocommerce 购物车页面上显示特定产品属性的主要内容,如果未能解决你的问题,请参考以下文章
隐藏产品价格并禁用 Woocommerce 中特定产品类别的添加到购物车
在 WooCommerce 中最后对特定产品类别的购物车项目进行排序