检查 WooCommerce 订单中是否至少有一项具有特定的属性术语

问题描述

我想检查是否至少有一个项目在 WooCommerce 订单中具有特定的属性术语以在邮购中显示某些内容

属性税是“pa_labels”,术语是“树”,但缺少某些东西...知道吗?

add_action( 'woocommerce_thankyou','webroom_check_product_attr_in_order',5 );
 
function webroom_check_product_attr_in_order( $order_id ) { 
 
if ( ! $order_id ) {
    return;
}
 
$order = wc_get_order( $order_id );

$attr_in_order = false;

$items = $order->get_items(); 
    
foreach ( $items as $item ) {      
    $product_id = $item['product_id'];  
    if ( has_term( 'tree','pa_labels',$product_id ) ) {
        $attr_in_order = true;
        break;
    }
}
 
// Echo content only if $attr_in_order == true
   
if ( $attr_in_order ) {
    add_action( 'woocommerce_email_customer_details','custom_woocommerce_email_customer_details',25); 
}

}

解决方法

你可以试试这样的:

@Cacheable

代码必须添加到活动主题的functions.php中。