您可能希望使用一个简单的操作挂钩,而不是对产品名称使用过滤器。那将是一种更干净的方式。
使用get_the_terms()
要获取产品类别的数组,然后选择第一个,请执行以下操作:
function display_first_category( $cart_item, $cart_item_key ){
$product_cat = get_the_terms( $cart_item[\'product_id\'], \'product_cat\' );
if ( $product_cat && ! is_wp_error( $product_cat ) ) {
// Display first category
echo \'<p>Category: <a href=\' . esc_url( get_category_link( $product_cat[0]->term_id ) ) . \' title="Category Name">\' . $product_cat[0]->name . \'</a></p>\';
// Display all categories
//echo \'<p>Categories: \' . wc_get_product_category_list( $cart_item[\'product_id\'] ) . \'</p>\';
}
}
add_action( \'woocommerce_after_cart_item_name\', \'display_first_category\', 10, 2);
请记住,过滤器的目标是修改现有的输出,而动作挂钩更倾向于添加一些东西。
如果希望函数在另一个动作挂钩上运行,只需在do_action(\'hook_you_want_to_use\', \'your_function\')
与过滤器不同,无需再进行任何更改。这个插件可以在开发时显示页面上的所有过滤器和操作挂钩。Simply show hooks周围也有一些其他的。