Удаление сведений о клиентах и адресов из шаблонов уведомлений по электронной почте


Я работаю над темой, созданной для woocommerce, созданной каким-то другим немецким разработчиком. Я создал свою дочернюю тему и использую дочернюю тему functions.php для внесения изменений в функциональность веб-сайта.

Когда клиент заказывает товар, он получает электронное письмо с таблицей заказов, информацией о клиенте, адресом выставления счетов и доставкой клиенту. Я хочу удалить все, что находится под таблицей, и добавить свой собственный текст (информация о клиенте + выставление счетов, доставка и получение адреса как хорошо).

Я добавил свой собственный текст прямо под таблицей заказов в электронном письме, которое отправляется клиенту, однако я не могу удалить информацию, которая отображается по умолчанию под моим пользовательским добавленным текстом. Я нашел крючок, отвечающий за извлечение и отображение данных woocommerce_email_order_meta, но я не знаю, как удалить его или предотвратить его выполнение. Я не хочу вносить изменения в файлы шаблонов, я хочу сделать все это с помощью крючков.

До сих пор я пытался делать это так:

remove_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); 

Я последовал за ссылка: Удалить раздел информации о заказе из шаблона электронной почты в woocommerce и также попробовал следующий код, , но не сработал.

function so_39251827_remove_order_details( $order, $sent_to_admin, $plain_text, $email ){
    $mailer = WC()->mailer(); // get the instance of the WC_Emails class
    remove_action( 'woocommerce_email_order_details', array( $mailer, 'order_details' ), 10, 4 );
}
add_action( 'woocommerce_email_order_details', 'so_39251827_remove_order_details', 5, 4 );

Как я могу этого добиться?

Спасибо

Author: Community, 2016-09-28

1 answers

Пояснения - Во всех шаблонах уведомлений по электронной почте у вас есть это:

/**
 * @hooked WC_Emails::customer_details() Shows customer details
 * @hooked WC_Emails::email_address() Shows email address
 */
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );

После некоторых исследований в основных файлах WooCommerce и некоторых тестов я успешно удалил данные клиента, адрес выставления счетов и доставки из электронных писем с уведомлениями, как вы и хотели.

Вот код:

function removing_customer_details_in_emails( $order, $sent_to_admin, $plain_text, $email ){
    $mailer = WC()->mailer();
    remove_action( 'woocommerce_email_customer_details', array( $mailer, 'customer_details' ), 10, 4 );
    remove_action( 'woocommerce_email_customer_details', array( $mailer, 'email_addresses' ), 20, 4 );
}
add_action( 'woocommerce_email_customer_details', 'removing_customer_details_in_emails', 5, 4 );

Этот код входит в function.php файл вашей активной дочерней темы (или темы) или также в любом файле плагина.

Этот код протестирован и полностью функциональный.


Ссылки:

 8
Author: LoicTheAztec, 2016-09-28 10:56:38