Добавляем имя клиента в тему email’а при оформлении заказа

Прежде, чем начнём, хочу порекомендовать вам не чей-то, а свой видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина на основе готовой вёрстки, вот ссылка.

Ниже на скриншоте вы видите два письма от 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 текущей, лучше дочерней темы.

И хочу показать вам ещё один интересный момент. Что, если мы хотим оставить возможность администратору магазина изменять тему письма в настройках? 🤔

То есть, чтобы в настройках можно было написать так:

Настройки письма клиенту Заказ в обработке
Сюда мы можем перейти через настройки WooCommerce, выбираем вкладку Email’ы и письмо «Заказ в обработке».

Код наш соответственно изменится следующим образом:

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() или на что бы вы ни указали в качестве второго параметра.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 7

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал