Я хочу изменить дизайн таблицы заголовков в уведомлениях о новых заказах только для моих администраторов. Электронная почта клиентов не должна быть затронута. Код, который у меня есть, приведен ниже, но, похоже, он не хочет работать. Любая помощь будет принята с благодарностью.
add_filter( 'woocommerce_email_styles', 'add_css_to_new_order_email', 9999, 2 );
function add_css_to_new_order_email( $css, $email ) {
if ( $email->id == 'new_order' && $email->recipient == 'admin' ) {
$css .= '
#header_wrapper { background-color: #000!important; }
h1 { color: #000!important; }
';
}
return $css;
}






В вашем заявлении IF всегда будет $email->recipient == 'admin', поскольку вам нужно определить настоящий адрес электронной почты администратора.
Поскольку уведомление по электронной почте о новом заказе всегда отправляется только администраторам (но не клиенту), вам не нужен false в вашем $email->recipient == 'admin' заявлении.
Попробуйте следующее:
add_filter( 'woocommerce_email_styles', 'add_css_to_new_order_email', 20, 2 );
function add_css_to_new_order_email( $css, $email ) {
if ($email->id === 'new_order') {
$css .= ' #header_wrapper { background-color: #000 !important; }
h1 { color: #000 !important; }';
}
return $css;
}
Код находится в файле function.php вашей дочерней темы (или в плагине). Протестировано и работает.
Связанный:
Как всегда спасибо @LoictTheAztec. Кажется, я действительно запутался с новым заказом (администратор) и полученным заказом по электронной почте, отправленной клиенту. Если новый заказ предназначен только для администраторов, то какой идентификатор у клиента, обращающегося к электронной почте? Думаю, я предполагал, что цели new_order как идентификаторы, которые я нашел в списке:
Да, видел это и упомянул об этом. Я предполагаю, что customer_processing_order — это первое электронное письмо, отправленное клиенту. И да, я знаю, что делать. Я всегда отмечаю свои ответы и ставлю плюсы, прошу прощения, если что-то пропустил в прошлом. Просто не было возможности добраться до компьютера и проверить код :) Еще раз спасибо!
@Acephalia Для первого электронного письма, отправленного покупателю. Это зависит от способа оплаты, использованного для заказа, поэтому идентификатор электронной почты может быть customer_on_hold_order или customer_processing_order или даже customer_completed_order в некоторых случаях.
Да, теперь это имеет смысл. Я вообще-то с этим сошел с ума >.< Ценю вас!
Вы проверили, что условия действительно выполняются? Что произойдет, если вы добавите CSS без каких-либо условий?