Intereting Posts
Как удалить все двойные кавычки из значений json key с помощью php? Regex & PHP – изолировать атрибут src от тега img PHP: отправить электронную почту через cronjob и установить количество отправки электронной почты за минуту Как создать структуру checkbox – Silex Как заставить браузер кэшировать изображения с помощью php? IE 6 и несколько элементов кнопок, отправляющих их имя и значения number_format () вызывает ошибку «Неверное сформированное числовое значение» Вход в PHP и получение информации о пользователе Простое обнаружение смартфона Сделать путь доступным на разных уровнях папки на PHP как получить только значения из массива дампа var? Предупреждение: require_once (): http: // оболочка отключена в конфигурации сервера allow_url_include = 0 Параметры перенаправления Mercurial (HG): имя пользователя и пароль значение поля ввода для изменения при выборе различных вариантов выпадающего меню jQuery Загрузка файлов, получение и редактирование данных, которые сохраняются в DB

Добавить купон в электронную почту для обработки, только если клиент не использовал один

Я наткнулся на этот фрагмент, который добавляет купон к почте заказа.

Я бы хотел, чтобы он отображался в почте для обработки, только если клиент не использовал какой-либо купон.

add_action( 'woocommerce_email_before_order_table', 'add_content', 20 ); function add_content() { echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; } 

Благодарю.

@update 2: Новые заказы чаще всего находятся в статусе 'on-hold' , но не в 'Processing' .
В этом случае используйте вместо этого:

 add_action( 'woocommerce_email_before_order_table', 'processing_order_mail_message', 20 ); function processing_order_mail_message( $order ) { if ( empty( $order->get_used_coupons() ) && $order->post_status == 'wc-on-hold' ) echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; } 

Или для обработки как статусов 'on-hold' AND 'processing' использования:

 add_action( 'woocommerce_email_before_order_table', 'processing_order_mail_message', 20 ); function processing_order_mail_message( $order ) { if ( empty( $order->get_used_coupons() ) && ( $order->post_status == 'wc-on-hold' || $order->post_status == 'wc-processing' ) ) echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; } 

Этот код продолжается в файле functions.php вашей активной дочерней темы или темы

Этот код проверен и полностью работоспособен


ИСПЫТАНИЯ:
Чтобы отобразить статус заказа по электронной почте, вы можете добавить в функцию эту строку:

 echo '<p>The status of this order is: ' . $order->post_status . '</p>'; 

Чтобы отобразить используемые купоны (если они есть), добавьте это:

 echo '<p>Coupons used in this order are: '; print_r( $order->get_used_coupons() ); echo '</p>' 

(это только для целей тестирования).


Оригинальный ответ:

Да, можно легко добавить оператор if с двумя условиями .

Первый определяет, не использовался ли купон в порядке, используемом в заказе:

 empty( $order->get_used_coupons() ) 

А второй будет определять, находится ли заказ в статусе «обработка»:

 $order->post_status == 'wc-processing' 

Если эти условия совпадают, ваше сообщение отображается с использованием ** 'woocommerce_email_before_order_table' ** hook:

Вот ваш индивидуальный фрагмент кода:

 add_action( 'woocommerce_email_before_order_table', 'processing_order_mail_message', 20 ); function processing_order_mail_message( $order ) { if ( empty( $order->get_used_coupons() ) && $order->post_status == 'wc-processing' ) echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; } 

Этот код продолжается в файле functions.php вашей активной дочерней темы или темы

Этот код проверен и полностью работоспособен