Я очень новичок в WordPress и создал магазин электронной коммерции с WooCommerce.
После того, как клиент делает заказ, я получаю электронное письмо, и клиент получает электронное письмо — одно для меня, чтобы сказать то, что он заказал, а другое — в качестве благодарственного письма.
В этом благодарственном письме, в моем файле functions.php, я научился менять тему заголовка, включив в него их имя, например:
//add the first name of the person to the person getting the reciept in the subject of the email.
add_filter('woocommerce_email_subject_customer_processing_order','UEBC_change_processing_email_subject', 10, 2);
function UEBC_change_processing_email_subject( $subject, $order ) {
global $woocommerce;
$subject = 'Thanks for your ' . get_bloginfo( 'name', 'display' ) . ' Order, '.$order->billing_first_name .'!';
return $subject;
}
Приведенный выше фрагмент кода работает правильно и отображается только для клиента, а не для меня. например «Спасибо за ваш заказ ABCD Одежда для заказа Джон!».
В теле письма я пытаюсь сделать это личное сообщение небольшим спасибо, однако, когда я пишу сообщение, я использую хук:
add_action( 'woocommerce_email_before_order_table', 'custom_add_content', 20,1 );
Я знаю, что так как я использую woocommerce_email_before_order_table
хук, пользовательская функция будет отправлена в теле письма и клиенту, и мне.
Мне было интересно, есть ли ловушка, которую предоставляет Woocommerce, чтобы пользовательская функция отправлялась клиенту только в теле письма?
Например: woocommerce_email_header_customer_processing_order
или слова на этот счет?
Спасибо
Чтобы добавить пользовательский контент, используя woocommerce_email_before_order_table
крючок и нацеливание только электронное уведомление клиента «обработка заказа», Вы должны попробовать это:
add_action( 'woocommerce_email_before_order_table', 'custom_content_to_processing_customer_email', 10, 4 );
function custom_content_to_processing_customer_email( $order, $sent_to_admin, $plain_text, $email ) {
if( 'customer_processing_order' == $email->id ){
// Set here as you want your custom content (for customers and email notification related to processing orders only)
echo '<p class="some-class">Here goes your custom content… </p>';
}
}
Код помещается в файл function.php вашей активной дочерней темы (или темы). Или также в любом файле плагина php.
Этот код протестирован и работает
Других решений пока нет …