Как добавить текст или HTML в email об успешном заказе

Прежде всего я хочу познакомить вас с двумя экшн-хуками, которые и позволят вам добавить какой-нибудь текст в письмо «Спасибо за заказ» для покупателей и в «Заказ получен» для администраторов.

Кроме того, я бы хотел порекомендовать вам свой видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля на основе готовой вёрстки! Вот ссылка.

Вот эти хуки:

  • woocommerce_email_before_order_table – добавляет текст в начало письма, перед таблицей с информацией о заказе.
  • woocommerce_email_after_order_table – в конец письма, сразу после таблицы с информацией о заказе.

По параметрам оба этих хука абсолютно идентичны. Давайте теперь опробуем их в действии.

Добавляем скидку в email покупателю.

Что же ещё можно вывести для покупателя кроме как скидку на следующий заказ?

email покупателю в WooCommerce с сообщением о скидке
Как видите, тут мы добавили сообщение о скидке прямо перед информацией о заказе.

Для того, чтобы добавить это, я вставил следующий код в файл functions.php моей дочерней темы для Storefront:

add_action( 'woocommerce_email_before_order_table', 'truemisha_discount_in_email', 25, 4 );
 
function truemisha_discount_in_email( $order, $sent_to_admin, $plain_text, $email ) {
 
	// проверяем, что этот хук задействуется в письме покупателю, а не админу
	if( false === $sent_to_admin ) {
		echo '<h2>20% на следующую покупку!</h2>';
		echo '<p>Мы благодарим вас за покупку и поэтому дарим вам промокод "<strong>PROMO20</strong>" на получение 20% скидки на вашу следующий заказ!</p>';
	}
 
}

Также хочу обратить ваше внимание на переменную $plain_text – она может быть равно true или false, в зависимости от того, включена ли в настройках WooCommerce эта настройка:

Настройка типа письма в WooCommerce
Если вы перейдёте в Настройки > Email’ы, в затем в какое-то определённое письмо, то увидите там эту настройку.

То есть если у нас в настройках письма стоит Простой текст, то мы не можем выводить в нём HTML-теги, тогда наш код слегка изменится:

add_action( 'woocommerce_email_before_order_table', 'truemisha_discount_in_email', 25, 4 );
 
function truemisha_discount_in_email( $order, $sent_to_admin, $plain_text, $email ) {
 
	// проверяем, что этот хук задействуется в письме покупателю, а не админу
	if( false === $sent_to_admin ) {
 
		if( false === $plain_text ) {
			echo '<h2>20% на следующую покупку!</h2>';
			echo '<p>Мы благодарим вас за покупку и поэтому дарим вам промокод "<strong>PROMO20</strong>" на получение 20% скидки на вашу следующий заказ!</p>';
		} else {
			echo "20% на следующую покупку!\n
			Мы благодарим вас за покупку и поэтому дарим вам промокод PROMO20 на получение 20% скидки на вашу следующий заказ!";
		}	
 
	}
 
}

Добавляем дополнительньную информацию о заказе в письма администратору.

С тем, как работают хуки woocommerce_email_before_order_table и woocommerce_email_after_order_table вроде разобрались, теперь давайте же по лайту добавим в письмо администратору какую-нибудь информацию о заказе.

Добавляем дополнительную информацию о заказе в письма администратору магазина WooCommerce
В этом примере мы добавили строчку «Доставить к», которая берётся из метаданных заказа.
add_action( 'woocommerce_email_before_order_table', 'truemisha_ordermeta_in_email', 25, 4 );
 
function truemisha_ordermeta_in_email( $order, $sent_to_admin, $plain_text, $email ) {
 
	// проверяем, что этот хук задействуется в письме администратора
	if( true === $sent_to_admin ) {
 
		$dostavka_k = get_post_meta( $order->get_order_number(), 'dostavka_k', true );
 
		if( $dostavka_k ) {
			echo 'Доставить ко времени: ' . $dostavka_k;
		}
 
	}
 
}

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

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

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

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

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