使用产品标签条件将小部件添加到WooCommerce侧边栏

时间:2017-01-24 21:29:35

标签: php wordpress woocommerce tags product

我在我的Wordpress网站上使用WooCommerce作为目录(即禁用了购物车),我想根据产品是否有某个标签,将小部件添加到单个产品页面边栏。我尝试使用“Widget Logic”插件和条件标签,但即使我禁用了所有其他插件,我也无法在网站上的任何地方工作(例如,包括标记的帖子和主侧边栏 - 所以不仅仅是标记WooCommerce中的产品。)

然后我添加了“PHP Code Widget”并在其中添加了以下代码:

    <?php
if (is_product_tag( 'adexample1' )) {
echo "test1";
} elseif (is_product_tag( 'adexample2' )){
echo "test2";    
} elseif (is_product_tag( 'adexample3' )){
echo "test3";  
} elseif (is_product_tag( 'adexample4' )){
echo "test4";  
} elseif (is_product_tag( 'adexample5' )){
echo "test5";  
} else {
echo "<p>test6</p>";
}
?>

我已使用已标记的产品和其他产品对其进行了测试,但它们都在小部件中返回“test6”。

任何人都可以看到我做错了什么,或者产品标签是否可能由于某种原因而无法正常工作(可能是权限?)。该问题在默认的2017年和基本的WooCommerce主题中被复制,因此它似乎不是主题问题?

对于实现这一目标的另一种方式的建议也会受到赞赏吗?

由于

1 个答案:

答案 0 :(得分:2)

条件is_product_tag()无法获得具有产品标签的产品,因为在查看产品标签存档页面时,它会用于返回true。

要实现您想要做的事情,您需要使用WordPress has_term()条件函数和 'product_tag' 定义的$ taxonomy参数,这样:

// Define BELOW your product tag ID, slug or name (or an array of values)
$term = 'adexample1';
$term2 = 'adexample2'; // ...

// HERE are your conditions with your code
if( has_term( $term, 'product_tag' ) ){
    echo "test1";
} elseif( has_term( $term2, 'product_tag' ) ){
    echo "test1";
} else {
    echo "<p>test6</p>";
}

这应该适用于具有 'product_cat' 定义的$ taxonomy参数的产品类别......