В вашем условии оператора IF есть ошибка, когда =
необходимо заменить на ==
или ===
. Также с купонами необходимо использовать слаг-код купона (но не почтовый идентификатор).
Чтобы отобразить сообщение на странице Заказа, лучше использовать woocommerce_thankyou_order_received_text
фильтр-хук, таким образом (для Woocommerce 3 +) :
// On "Order received" page (add a message)
add_filter( 'woocommerce_thankyou_order_received_text', 'thankyou_applied_coupon_message', 10, 2 );
function thankyou_applied_coupon_message( $text, $order ) {
$coupon_code = '1635'; // coupon code name
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon->get_code() === $coupon_code ){
$text .= '<p>'.__("This is an custom thank you.").'</p>';
}
}
return $text;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Это должно работать сейчас.
Обновлено
Для версий Woocommerce до 3.0 вместо этого следует использовать следующее:
// On "Order received" page (add a message)
add_action( 'woocommerce_thankyou', 'thankyou_applied_coupon_message', 10, 1 );
function thankyou_applied_coupon_message( $order_id ) {
$coupon_code = '1635'; // coupon code name
$order = wc_get_order( $order_id );
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon['name'] === $coupon_code ){
echo '<p>'.__("This is an custom thank you.").'</p>';
}
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.