Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress Woocommerce电子邮件通知基于用户角色的其他收件人_Wordpress_Email_Woocommerce_User Roles - Fatal编程技术网

Wordpress Woocommerce电子邮件通知基于用户角色的其他收件人

Wordpress Woocommerce电子邮件通知基于用户角色的其他收件人,wordpress,email,woocommerce,user-roles,Wordpress,Email,Woocommerce,User Roles,在Woocommerce中,我尝试将“新订单”电子邮件发送到其他电子邮件地址。其他电子邮件地址取决于用户的角色 根据“”应答代码,对其进行更改,以下是我的代码: add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 ); function new_order_conditional_email_recipient( $recipient, $order

在Woocommerce中,我尝试将“新订单”电子邮件发送到其他电子邮件地址。其他电子邮件地址取决于用户的角色

根据“”应答代码,对其进行更改,以下是我的代码:

add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
    if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // (Optional)

    // Get the order ID (retro compatible)
    $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;

    // 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( 'user_role1', $user_data->roles )  )
        $recipient .= ', email1@gmail.com';
    elseif ( in_array( 'user_role2', $user_data->roles )  )
        $recipient .= ', email2@gmail.com';

    return $recipient;
}
我只是不知道如何从订单中获取用户信息

这是我现在尝试的,但当我尝试放置另一个时,我得到一个“内部服务器错误”


因此,我基本上是想了解如何从下订单的用户那里获取字段。

对于基于用户角色的字段,请尝试以下操作:

add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
    if ( ! is_a( $order, 'WC_Order' ) ) 
        return $recipient; 

    // Get an instance of the WP_User Object related to the order
    $user = $order->get_user();

    // Add additional recipient based on custom user roles
    if ( in_array( 'user_role1', $user->roles )  )
        $recipient .= ', email1@gmail.com';
    elseif ( in_array( 'user_role2', $user->roles )  )
        $recipient .= ', email2@gmail.com';

    return $recipient;
}

代码进入活动子主题(或活动主题)的function.php文件。它应该可以工作。

对于基于用户角色的应用程序,请尝试以下操作:

add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
    if ( ! is_a( $order, 'WC_Order' ) ) 
        return $recipient; 

    // Get an instance of the WP_User Object related to the order
    $user = $order->get_user();

    // Add additional recipient based on custom user roles
    if ( in_array( 'user_role1', $user->roles )  )
        $recipient .= ', email1@gmail.com';
    elseif ( in_array( 'user_role2', $user->roles )  )
        $recipient .= ', email2@gmail.com';

    return $recipient;
}
代码进入活动子主题(或活动主题)的function.php文件。它应该有效