在 Woocommerce 中检查产品的产品类别

Check a product category for a product in Woocommerce

我想在创建(或更新)后立即检查 WooCommerce 产品的类别 post,然后 运行 基于该类别的更多代码。

为了在 creation/update 上检查 post,我使用了 save_post 和类别 has_categoryhas_category 出了点问题,return 什么也没有。我尝试按照其他问题中的建议将 $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 警报中进行调试,对此感到抱歉。 非常感谢任何帮助。

You can't use has_category() Wordpress function to check Woocommerce product categories.

注意:产品类别是 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”。


相关主题: