在WooCommerce中向订单处理-电子邮件中添加专门的文本

时间:2015-10-31 作者:Nilli

我正在尝试向customer-order-processing 来自WooCommerce的电子邮件,并且仅当选择的付款方式是Paypal时,才应将其添加到此特定电子邮件中。我已经添加了文本,并且只有在选择Paypal作为付款方式时,文本才会显示在现在发给客户的每封电子邮件中,例如order-completed 电子邮件或customer-note 电子邮件我有以下几点:

add_action( \'woocommerce_email_before_order_table\', \'add_order_email_instructions\', 0, 2 );
function add_order_email_instructions( $order, $sent_to_admin ) {
    if ( \'paypal\' == $order->payment_method && ! $sent_to_admin ) {
        echo \'my text:\';
    } 
}
我尝试过附加条件,比如! $order->has_status( \'processing\' ), 但什么都不起作用。

3 个回复
SO网友:akasapriya

如果复制该电子邮件的模板,使其被子主题覆盖,则只能修改该电子邮件。

要轻松复制模板,请转到Woocommerce -> Settings -> Emails -> Processing Order 然后单击屏幕底部的按钮复制模板。

SO网友:melvin

如果您使用的是oops,那么您必须编写为

add_action( \'woocommerce_email_before_order_table\',array($this,\'add_order_email_instructions\'), 0, 2 );

SO网友:HPTheWebNuts

我对您的以下代码进行了一些更改:

add_action( \'woocommerce_email_before_order_table\', \'add_order_email_instructions\', 20, 4 );
function add_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
    if ( $email->id == \'customer_processing_order\' && \'paypal\' == $order->payment_method && ! $sent_to_admin ) {
        echo \'my text:\';
    } 
}
我已检查当前电子邮件是否为customer\\u processing\\u order。我还更改了您的add\\u操作和函数参数,以在函数中获取$email对象,用于检查email if。

希望对你有用!

相关推荐