я нашел этот код (который работает) в предыдущем потоке, который разрешает настраиваемые сообщения для электронной почты клиентам, которые выбрали местный пикап в качестве способа доставки.
add_action( 'woocommerce_email_order_details',
'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order,
$sent_to_admin, $plain_text, $email ) {
// Only for processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id ||
'customer_completed_order' == $email->id ) ) return;
foreach( $order->get_items('shipping') as $shipping_item ){
$shipping_rate_id = $shipping_item->get_method_id();
$method_array = explode(':', $shipping_rate_id );
$shipping_method_id = reset($method_array);
// Display a custom text for local pickup shipping method only
if( 'local_pickup' == $shipping_method_id ){
echo '<p><strong>Ritiro in sede</strong></p>';
break;
}
}
Теперь на мой вопрос: Как настроить код для удаления электронного письма с заказом на обработку, чтобы он охватывал только электронные письма с заказом?
Вам просто нужно заменить в коде функции это:
// Only for processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id ||
'customer_completed_order' == $email->id ) ) return;
этим:
// Only for completed email notifications to customer
if( 'customer_completed_order' != $email->id ) return;
И это будет работать только для «выполненного» уведомления о заказе для клиента … Итак, полный код:
add_action( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
// Only for completed email notifications to customer
if( 'customer_completed_order' != $email->id ) return;
foreach( $order->get_items('shipping') as $shipping_item ){
$shipping_rate_id = $shipping_item->get_method_id();
$method_array = explode(':', $shipping_rate_id );
$shipping_method_id = reset($method_array);
// Display a custom text for local pickup shipping method only
if( 'local_pickup' == $shipping_method_id ){
echo '<p><strong>Ritiro in sede</strong></p>';
break;
}
}
}
Связанные с: Добавить пользовательский текст в конкретное уведомление по электронной почте для местных заказов Woocommerce заказов
Других решений пока нет …