Я наткнулся на этот фрагмент, который добавляет купон к почте заказа.
Я бы хотел, чтобы он отображался в почте для обработки, только если клиент не использовал какой-либо купон.
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 вашей активной дочерней темы или темы
Этот код проверен и полностью работоспособен