将特定用户角色的Woocommerce新订单电子邮件通知发送给特定用户

时间:2018-03-21 19:39:19

标签: php wordpress woocommerce user-roles email-notifications

我们有一个负责其他批发商的“主要批发商”。与其他批发商一样,该批发商被分配到用户角色: wholesale_customer 这个“主要批发商”为他的商店下订单,其他批发商正常为他们自己的商店下订单。

我希望“主要批发商”在其他批发商下订单时收到电子邮件通知,因此当其他批发商订购时,他会收到通知,因为他收到佣金。

那么,当其他批发商下订单时,我们是否有办法让“主要批发商”收到电子邮件通知?

也许这可以使用类似这样的函数来完成: WooCommerce email notifications: different email recipient for different cities

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

已更新 (解决了后端电子邮件设置中的错误)

以下功能将发送额外的"新订单"电子邮件通知"批发经理"当其他wholesale_customer用户角色进行购买时。

您只需在此功能中设置"批发经理的用户ID" ...

add_filter( 'woocommerce_email_recipient_new_order', 'wholesale_manager_email_recipient', 20, 2 );
function wholesale_manager_email_recipient( $recipient, $order ) {
    if( is_admin() ) return $recipient;

    // Only for 'wholesale_customer' user role
    if( is_admin() || ! user_can( $order->get_user_id(), 'wholesale_customer' ) )
        return $recipient; // Exit if not a 'wholesale_customer'

    // HERE Set the main wholesale manager user ID
    $manager_id    = 5;

    $manager_user  = new WP_User( $manager_id );
    $manager_email = $manager_user->user_email;

    // Add manager email when other 'wholesale_customer' place orders
    if ( $order->get_user_id() != $manager_id )
        $recipient .= ',' . $manager_email; // coma separate emails

    return $recipient;
}

代码进入活动子主题(或主题)的function.php文件。经过测试并正常工作。