我正在尝试更改基于类别的所有产品的add\\u to\\u cart按钮文本。对于ID为330的“课程”类别,我希望按钮显示“注册”。
对于所有其他产品,我希望它改为“立即购买”。
以下是我迄今为止的职能。php:
add_filter( \'woocommerce_product_single_add_to_cart_text\', \'custom_cat_add_to_cart_text\' );
function custom_cat_add_to_cart_text( $default ) {
global $post;
$terms = get_the_terms( $post->ID, \'product_cat\' );
if ( array_key_exists( 330, $terms ) ) {
return __( \'Register\', \'course\' );
} else {
return $default;
}
}
这无法更改按钮文本。
最合适的回答,由SO网友:Scriptonomy 整理而成
它不起作用,因为:
get_the_terms( $post->ID, \'product_cat\' )
生成一个对象数组,要对这些对象进行测试,必须运行循环并从每个对象中提取$term\\u id属性。
Wordpress救命!Wordpress有一个助手方法用于。。。
has_term(330,\'product_cat\', $post);
使用
has_term 方法来满足您的条件。