Прежде, чем начнём, хочу порекомендовать вам не чей-то, а свой видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина на основе готовой вёрстки, вот ссылка.
Ниже на скриншоте вы видите два письма от WooCommerce, нижнее – стандартное, верхнее – с добавленным именем в тему письма:
Начну с того, что мы можем целиком изменить тему письма, которое приходит при оформлении заказа клиенту при помощи фильтр-хука woocommerce_email_subject_customer_processing_order
.
add_filter( 'woocommerce_email_subject_customer_processing_order', 'truemisha_email_subject', 25, 2 ); function truemisha_email_subject( $subject, $order ) { $subject = $order->get_billing_first_name() . ', спасибо за ваш заказ!'; return $subject; // либо сразу return $order->get_billing_first_name() . ', спасибо за ваш заказ!'; }
$subject
– тема письма как раз таки, $order
– объект заказа, из которого мы получаем имя покупателя и в общем-то можем получить ещё много всего.functions.php
текущей, лучше дочерней темы.И хочу показать вам ещё один интересный момент. Что, если мы хотим оставить возможность администратору магазина изменять тему письма в настройках? 🤔
То есть, чтобы в настройках можно было написать так:
Код наш соответственно изменится следующим образом:
add_filter( 'woocommerce_email_subject_customer_processing_order', 'truemisha_subject_2', 25, 2 ); function truemisha_subject_2( $subject, $order ) { return str_replace( '{client_name}', $order->get_billing_first_name(), $subject ); }
PHP-функция str_replace()
позволяет заменить все вхождение в строке {client_name}
на $order->get_billing_first_name()
или на что бы вы ни указали в качестве второго параметра.
Я правильно понимаю, на текущий момент этот хук не требуется, можно менять тему в настройках woocommerce
Тему можно менять.
Хук на тот случай, если нужно добавить в тему какое-то динамическое значение.
было бы неплохо проверять наличие заполненного поля {client_name}