我想在创建(或更新)WooCommerce产品发布后立即检查其类别,然后根据该类别运行更多代码。
要检查有关创建/更新的信息,我使用了save_post
和类别has_category
。 has_category
出问题了,它根本不返回任何内容。我尝试按照其他问题中的建议将$post_id
替换为$post
和$post->ID
,但这并没有改变。
function doFruitStuff($post_id){ // Function in functions.php
$fruits = 'fruits';
if(has_category($fruits, $post_id)){
echo "<script type='text/javascript'>alert('has the category');</script>";
}else{
echo "<script type='text/javascript'>alert('doesnt have the category');</script>";
}}
add_action('save_post', 'doFruitStuff');
我使用has_category
的方式有误还是WooCommerce产品类别的工作方式不同吗?
我曾经在JavaScript警报中调试过,对此感到抱歉。 任何帮助表示赞赏。
答案 0 :(得分:2)
您不能使用
has_category()
的Wordpress功能检查Woocommerce产品类别。
注意:产品类别是Woocommerce使用的自定义分类法。
因此,您需要通过以下方式将has_term()
与Woocommerce产品类别结合使用:
add_action('save_post', 'do_fruit_stuff');
function do_fruit_stuff( $post_id ){
$terms = array('fruits');
if( has_term( $terms, 'product_cat', $post_id ) ){
echo "<script type='text/javascript'>alert('has the product category');</script>";
}else{
echo "<script type='text/javascript'>alert('doesnt have the product category');</script>";
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
注意:用于Woocommerce产品类别的自定义分类法是“ product_cat
”。
相关线程: