在特定 WooCommerce 电子邮件模板上的文本字符串中插入动态值

问题描述

我正在修改 WooCommerce 电子邮件模板之一并根据使用的付款方式添加文本:

if ( 'bacs' == $order->get_payment_method() ){
    echo "We are awaiting payment" ;
    echo $order->get_order_number();
}
elseif ( 'paypal' == $order->get_payment_method() )  {
    echo "Text2";
}
else {
    echo "Text3;
}

我需要将订单 ID 添加到第一个文本中(对于 BACS),以便显示

我们正在等待付款。订单编号:1234(您的订单号)。

如何将订单号添加到我的纯文本中?

解决方法

您可以使用 PHP printf() 将变量值合并到显示的文本字符串中,如下所示:

if ( 'bacs' === $order->get_payment_method() ) {
    printf( __("We are awaiting payment. Order reference: %s (your order number).","woocommerce"),$order->get_order_number() );
} elseif ( 'paypal' === $order->get_payment_method() ) {
    echo __("Text2","woocommerce");
} else {
    echo __("Text3","woocommerce");
}
,

您可以在 php 中使用 . 表示法添加字符串。

"previous string".$order->get_order_number() 一样,您可以将订单号附加到前面的字符串中。

if ( 'bacs' == $order->get_payment_method() ) {
    echo "We are awaiting payment. Order reference: ".$order->get_order_number();

} elseif ( 'paypal' == $order->get_payment_method() ) {
    echo "Text2";
} else {
    echo "Text3";
}