Настройка содержимого уведомлений электронной почты Woocommerce на основе статуса заказа - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь настроить уведомления по электронной почте на основе пользовательского «отправленного» * ​​1002 * статуса заказа…

Это обычный шаблон отображения:

enter image description here

Вот мой код:

<?php if( ! $order->has_status('shipped') ) { ?> 
<p><?php printf( esc_html__( 'Your %s order has been delivered to your provided shipping address and we marked its status to <b>completed</b>. Let us know if you have any questions.', 'woocommerce' ), esc_html( wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ) ); ?></p> 
<?php } ?>

Но теперь у меня есть повторение:

enter image description here

Что я делаю не так?Как избежать этого повторения?

Структура кода моего emails/customer-completed-order.php шаблона (выдержка) :

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/*
 * @hooked WC_Emails::email_header() Output the email header
 */
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>

<?php /* translators: %s: Customer first name */ ?>
<p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
<?php /* translators: %s: Site title */ ?>
<?php if( ! $order->has_status('shipped') ) { ?> 
<p><?php printf( esc_html__( 'Your %s order has been delivered to your provided shipping address and we marked its status to <b>completed</b>. Let us know if you have any questions.', 'woocommerce' ), esc_html( wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ) ); ?></p> 
<?php } ?>
<p><?php printf( esc_html__( 'Your %s order has been marked complete on our side.', 'woocommerce' ), esc_html( wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ) ); ?></p>
<?php

1 Ответ

0 голосов
/ 25 февраля 2019

Вам необходимо заменить фактическую структуру шаблона следующим (у вас есть дублирующаяся строка) :

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/*
 * @hooked WC_Emails::email_header() Output the email header
 */
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>

<?php /* translators: %s: Customer first name */ ?>
<p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
<?php /* translators: %s: Site title */ ?>
<?php if( ! $order->has_status('shipped') ) { ?> 
<p><?php printf( esc_html__( 'Your %s order has been delivered to your provided shipping address and we marked its status to <b>completed</b>. Let us know if you have any questions.', 'woocommerce' ), esc_html( wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ) ); ?></p> 
<?php } ?>
<?php

Теперь все должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...