您已经使用的钩子是复合钩子:woocommerce_email_recipient_{$this->id}, where {$this->id}
is the WC_Email
我想要new_order
。因此,您可以设置任何电子邮件 ID,以使其适用于所需的电子邮件通知。
下面您有“新订单”、“取消订单”和“失败订单”的 3 个挂钩,您可以将它们用于相同的挂钩函数。
在您的函数中,我删除了一些不必要的代码并完成了获取客户数据的代码(用户角色)与订单相关:
add_filter( 'woocommerce_email_recipient_new_order', 'user_role_conditional_email_recipient', 10, 2 );
add_filter( 'woocommerce_email_recipient_cancelled_order', 'user_role_conditional_email_recipient', 10, 2 );
add_filter( 'woocommerce_email_recipient_failed_order', 'user_role_conditional_email_recipient', 10, 2 );
function user_role_conditional_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;
// Get the customer ID
$user_id = $order->get_user_id();
// Get the user data
$user_data = get_userdata( $user_id );
// Adding an additional recipient for a custom user role
if ( in_array( 'wholesale_customer', $user_data->roles ) )
$recipient .= ', [email protected]';
return $recipient;
}
代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。
经过测试并有效。