WooCommerce插件开发:如何仅向绑定的对应店铺管理员发送订单通知邮件
WooCommerce 订单绑定管理员邮件通知实现方案
实现逻辑
你已经在订单生成时将绑定的店铺管理员ID存储到了_store_manager_id订单元字段中,只需要借助WooCommerce自带的新订单邮件收件人过滤钩子,将默认收件人替换为订单绑定的管理员邮箱即可,完全兼容你已完成的第一部分代码逻辑。
实现代码
将以下代码添加到你现有插件的代码中(?>结束标记之前)即可生效:
add_filter('woocommerce_email_recipient_new_order', 'custom_new_order_email_recipient', 10, 2); function custom_new_order_email_recipient($recipient, $order) { // 校验订单对象有效性,避免异常报错 if (!$order || !is_a($order, 'WC_Order')) { return $recipient; } // 读取当前订单绑定的店铺管理员ID $store_manager_id = $order->get_meta('_store_manager_id', true); if ($store_manager_id) { $manager_user = get_user_by('id', intval($store_manager_id)); if ($manager_user && !empty($manager_user->user_email)) { // 仅给绑定管理员发通知,若需要同时发给站点主管理员,改为 $recipient .= ',' . $manager_user->user_email; $recipient = $manager_user->user_email; } } return $recipient; }
注意事项
- 如果存在未绑定管理员的客户下单场景,代码会保留默认的新订单收件人配置,你可根据业务需求自行调整兜底逻辑。
- 上述代码仅针对默认的新订单通知生效,如果你需要对其他订单状态通知做相同处理,替换对应钩子名称即可,例如待付款通知钩子为
woocommerce_email_recipient_customer_on_hold_order。
内容的提问来源于stack exchange,提问作者Vinnie
相关产品推荐
相关产品推荐

