是否更改WooCommerce添加到购物车按钮文本?

时间:2015-10-31 作者:Travis Patron

我正在尝试更改基于类别的所有产品的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;
    }
}
这无法更改按钮文本。

1 个回复
最合适的回答,由SO网友:Scriptonomy 整理而成

它不起作用,因为:

get_the_terms( $post->ID, \'product_cat\' )
生成一个对象数组,要对这些对象进行测试,必须运行循环并从每个对象中提取$term\\u id属性。

Wordpress救命!Wordpress有一个助手方法用于。。。

has_term(330,\'product_cat\', $post);
使用has_term 方法来满足您的条件。