Здесь есть несколько полезных сообщений, объясняющих, как отвязать заголовок электронной почты WooCommerce, а затем эффективно либо добавить вызов к шаблону email-header.php вручную в каждом шаблоне электронной почты (новый заказ, обработка и т. д.). .) или используйте операторы переключения, чтобы применить новый заголовок на основе типа электронного письма.
Я пытаюсь настроить шаблон email-header.php на основе некоторых метаданных пользовательского порядка. данные для уведомления по электронной почте о новом заказе.
На данный момент я делаю это в шаблоне admin-new-order.php, но потому что вам нужно отключить/отменить привязку глобальный заголовок, вам придется вручную добавить вызов в шаблон email-header.php для каждого типа/шаблона письма.
На основе Woocommerce разные заголовки для каждого электронного письма вводит код ответа. Вот моя попытка кода:
Код: Выделить всё
add_action( 'init', 'replace_email_header_hook' );
function replace_email_header_hook(){
remove_action( 'woocommerce_email_header', array( WC()->mailer(), 'email_header' ) );
add_action( 'woocommerce_email_header', 'woocommerce_email_header', 10, 2 );
}
function woocommerce_email_header( $email_heading, $email ) {
$order = $email->object;
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
$del_type = get_post_meta( $order_id, 'delivery_type', true );
switch($email->id) {
case 'new_order':
if ($del_type == 'delivery') {
$template = 'emails/email-header-alt.php';
}
else if ($del_type == 'pickup') {
$template = 'emails/email-header.php';
}
break;
default:
$template = 'emails/email-header.php';
}
wc_get_template( $template, array( 'email_heading' => $email_heading ) );
}
Подробнее здесь: https://stackoverflow.com/questions/669 ... ield-value
Мобильная версия