Добавляем имя клиента в тему 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. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.