Новый заказ получателя электронной почты заменяется в Woocommerce
Я пытаюсь изменить адрес электронной почты администратора в зависимости от языка сайта, используя следующий код:
if ( !function_exists('my_email_heading_customisation_function_ent') ) {
function my_email_heading_customisation_function_ent( $recipient, $order )
{
global $woocommerce;
$page = $_GET['page'] = isset( $_GET['page'] ) ? $_GET['page'] : '';
if ( 'wc-settings' === $page ) {
return $recipient;
}
// just in case
if ( ! $order instanceof WC_Order ) {
return $recipient;
}
$recipient = "some@email.cz";
return $recipient;
}
add_filter('woocommerce_email_recipient_new_order', 'my_email_heading_customisation_function_ent', 10, 2);
}
Но это не работает.
Есть идеи как решить это?
Там много тем, а некоторые действительно слишком старые. Я проверил документацию, и нет никаких упоминаний о каких-либо изменениях, связанных с этим хуком. Я тянул волосы за это.
2 ответа
Хорошо, спасибо за вашу помощь. Оказалось, что фильтр работает, проблема была вызвана интеграцией HYYAN Woocommerce Polylang. Я собираюсь решить это с автором плагина...
Йосиф
Этот хук находится в исходном коде WC_Email
get_recipient()
метод, и вам действительно нужно упростить ваш код. Попробуйте следующее (протестировано и работает на Woocommerce 3.4.4):
add_filter('woocommerce_email_recipient_new_order', 'change_new_order_email_recipient', 10, 2);
function change_new_order_email_recipient( $recipient, $order ){
## If $order is used in the code, uncomment the line below
// if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // (Optional)
$recipient = "somename.email.com";
return $recipient;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).
Вы также можете проверить, правильно ли настроен этот получатель, используя
WC_Email
get_recipient()
метод так:// Get all Woocommerce email objects $emails = WC()->mailer()->get_emails(); // Display the recipient for New Order email notification echo $emails['WC_Email_New_Order']->get_recipient();
Он отобразит нового получателя, который установлен в вашей функции.