Отправить уведомление об обработке по электронной почте дополнительному скрытому получателю в WooCommerce

#php #wordpress #woocommerce #email-notifications #bcc

#php #wordpress #woocommerce #email-уведомления #bcc

Вопрос:

Я пытаюсь отправить дополнительное письмо с использованием customer-processing-order.php шаблона, поэтому, когда пользователь получит письмо с деталями заказа, другой субъект получит аналогичное письмо.

Это моя попытка, но когда я нажимаю на кнопку отправки заказа, программа зависает на странице загрузки.

 function email_processing_notification( $order_id ) {

    $order = wc_get_order( $order_id );

    // load the mailer class
    $mailer = WC()->mailer();

    $recipient = 'constantmail@gmail.com';
    $subject = __('Some Subject', 'test');
    $content = get_processing_notification_content( $order, $subject, $mailer );
    $headers = "Content-Type: text/htmlrn";

    $mailer->send( $recipient, $subject, $content, $headers );

}

add_action( 'woocommerce_email_order_details', 'email_processing_notification', 10, 1 );


function get_processing_notification_content( $order, $heading = false, $mailer ) {

    $template = 'emails/customer-processing-order.php';

    return wc_get_template_html( $template, array(
        'order'         => $order,
        'email_heading' => $heading,
        'sent_to_admin' => true,
        'plain_text'    => false,
        'email'         => $mailer
    ) );
}
  

Ответ №1:

Вам лучше добавить дополнительный адрес электронной почты в качестве Bcc, используя (для обработки уведомлений по электронной почте):

 add_filter( 'woocommerce_email_headers', 'custom_cc_email_headers', 10, 3 );
function custom_cc_email_headers( $header, $email_id, $order ) {

    // Only for "Customer Processing Order" email notification
    if( 'customer_processing_order' !== $email_id )
        return $header;

    $email = 'constantmail@gmail.com';

    // Add email address as Cc to headers
    $header .= 'Bcc: '.$email .'rn';

    return $header;
}
  

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

Этот способ намного проще, и дополнительный адрес электронной почты будет скрыт от клиента.

Комментарии:

1. Спасибо за ваш ответ. Но таким образом почта будет такой же, я надеялся внести некоторые изменения в почту для второй темы.