如何为Woocommerce特定分类修改可变产品的Select Options按钮文本?
解决WooCommerce仅特定分类可变产品修改按钮文本的问题
你之前的代码失效原因是is_product_category('cat1')的判断逻辑不对——这个函数只在产品分类归档页面(比如yourdomain.com/product-category/cat1/)才会返回true,而你需要的是只要产品属于cat1分类,不管在详情页还是列表页都生效,所以得换一种方式判断产品所属分类。
正确的做法是用has_term()函数直接检查当前产品是否属于目标分类,修改后的代码如下:
add_filter( 'woocommerce_product_add_to_cart_text', 'change_select_options_button_text', 9999, 2 ); function change_select_options_button_text( $label, $product ) { // 检查产品是可变类型,且属于slug为cat1的产品分类 if ( $product->is_type( 'variable' ) && has_term( 'cat1', 'product_cat', $product ) ) { return 'Select Dates'; } return $label; }
额外说明:
- 如果你想通过分类ID或者分类名称来判断,只需要修改
has_term的第一个参数:- 用分类ID(比如ID为5):
has_term( 5, 'product_cat', $product ) - 用分类名称(比如名称是"度假套餐"):
has_term( '度假套餐', 'product_cat', $product )
- 用分类ID(比如ID为5):
- 代码可以添加到主题的
functions.php文件,或者使用自定义代码插件(比如Code Snippets)来添加,避免主题更新丢失代码。
内容的提问来源于stack exchange,提问作者Acephalia
相关产品推荐
相关产品推荐

