Установите адрес электронной почты администратора как B CC для отмененных и неудачных заказов WooCommerce - PullRequest
1 голос
/ 24 апреля 2020

В настоящее время я использую этот код для отправки уведомлений о неудачных и отмененных заказах.

function wc_cancelled_order_add_customer_email( $recipient, $order )
{ 
 return $recipient . ',' . $order->billing_email; 
} 
add_filter( 'woocommerce_email_recipient_cancelled_order', 'wc_cancelled_order_add_customer_email', 10, 2 ); 
add_filter( 'woocommerce_email_recipient_failed_order', 'wc_cancelled_order_add_customer_email', 10, 2 );

Проблема заключается в том, что эти два сообщения электронной почты администратора, которые я установил в системе в настройках woocommerce, также добавляются в получатель электронной почты вместе с электронной почтой клиентов. Можно ли настроить это так, чтобы адреса электронной почты администратора были на B CC, чтобы клиент не мог видеть свои адреса электронной почты?

1 Ответ

0 голосов
/ 24 апреля 2020

Вам необходимо внести небольшие изменения в свою подключаемую функцию и добавить дополнительную подключаемую функцию для обработки электронной почты администратора как получателя B CC:

add_filter( 'woocommerce_email_recipient_cancelled_order', 'custom_cancelled_and_failed_order_email_recipients', 10, 2 ); 
add_filter( 'woocommerce_email_recipient_failed_order', 'custom_cancelled_and_failed_order_email_recipients', 10, 2 );
function custom_cancelled_and_failed_order_email_recipients( $recipient, $order ) { 
    // Check that the WC_Order object always exist
    if( is_a( $order, 'WC_Order' ) )
        $recipients = $order->get_billing_email(); 

    return $recipients;
} 


add_filter( 'woocommerce_email_headers', 'custom_cancelled_and_failed_order_email_headers', 20, 3 );
function custom_cancelled_and_failed_order_email_headers( $header, $email_id, $order ) {
    // Only for 'cancelled' and 'failed' order notifications
    if( in_array( $email_id, ['cancelled_order', 'failed_order'] ) ) { 
        // Get original admin recipient
        $recipient = WC()->mailer()->get_emails()['WC_Email_Cancelled_Order']->settings['recipient'];
        // Add Admin email As Bcc recipient
        $header .= 'Bcc: ' . $recipient . "\r\n";
    }
    return $header;
}

Код входит в функции. php файл вашей активной дочерней темы (или активной темы). Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...