Другой заголовок электронной почты WooCommerce на основе значения настраиваемого поляPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Другой заголовок электронной почты WooCommerce на основе значения настраиваемого поля

Сообщение Anonymous »

Я пытаюсь изменить заголовок своего электронного письма на основе настраиваемого поля заказа «Тип доставки», чтобы помочь сотрудникам магазина определить, предназначен ли заказ для доставки или самовывоза. Они хотели бы, чтобы заголовок электронного письма имел цветовую маркировку. p>
Здесь есть несколько полезных сообщений, объясняющих, как отвязать заголовок электронной почты 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 ) );
}
Похоже, проблема связана с переменной $order_id при попытке получить ее из объекта Order в этом хуке, и я не уверен, возможно ли это.

Подробнее здесь: https://stackoverflow.com/questions/669 ... ield-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»