Удаление сведений о клиентах и адресов из шаблонов уведомлений по электронной почте
Я работаю над темой, созданной для 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 );
Как я могу этого добиться?
Спасибо
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 файл вашей активной дочерней темы (или темы) или также в любом файле плагина.
Этот код протестирован и полностью функциональный.
Ссылки: