You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce订单转处理状态时按条件添加客户消息问题

解决WooCommerce添加客户可见消息的问题

问题根源

$order->set_customer_note() 是替换原有客户备注而非添加新内容,且若钩子触发时机或订单对象处理不当,也会导致设置失效。更可靠的方式是用 wc_add_order_note() 函数,明确标记备注对客户可见。

修正后的完整代码

add_action( 'woocommerce_order_status_processing', 'add_customer_multiple_packages_note', 10, 2 );
function add_customer_multiple_packages_note( $order_id, $order ) {
    // 指定需要检查的商品分类slug
    $target_categories = array( 'accessories-1', 'shirtsblue', 'shirtsred', 'shirtsgreen' );
    $has_target_cat = false;
    $has_other_cat = false;

    // 遍历订单内所有商品,判断分类归属
    foreach ( $order->get_items() as $item ) {
        $product = $item->get_product();
        $product_cats = wp_get_post_terms( $product->get_id(), 'product_cat', array( 'fields' => 'slugs' ) );
        
        if ( array_intersect( $product_cats, $target_categories ) ) {
            $has_target_cat = true;
        } else {
            $has_other_cat = true;
        }

        // 提前终止循环,满足条件后无需继续遍历
        if ( $has_target_cat && $has_other_cat ) {
            break;
        }
    }

    // 同时包含指定分类与其他分类时,添加客户可见消息
    if ( $has_target_cat && $has_other_cat ) {
        $customer_note = '温馨提示:您的订单包含多品类商品,将分2个包裹发出,请留意查收!';
        
        // 添加客户可见的订单备注(替代set_customer_note的更稳定方案)
        wc_add_order_note(
            $order_id,
            $customer_note,
            true, // 标记为客户可见
            false // 不自动触发邮件通知(需发邮件则设为true)
        );

        // 若需强制替换原有客户备注(不推荐,会覆盖历史内容),可启用以下代码:
        // $order->set_customer_note( $customer_note );
        // $order->save();
    }
}

关键说明

  • wc_add_order_note() 的第三个参数设为true,可确保备注显示在客户账户的订单详情页,后台也能同步查看。
  • 如需给客户发送邮件通知该消息,可将第四个参数设为true,或单独调用邮件函数:
    $order->send_customer_note_email( $customer_note );
    
  • 钩子woocommerce_order_status_processing接收$order_id和$order两个参数,直接使用传入的订单对象避免重复查询,提升效率。

内容的提问来源于stack exchange,提问作者Boggie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 20:40:04