3

I am modifying one of the WooCommerce email templates and adding text based on what payment method is used:

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;
}

I need to add the order ID into the first text (for BACS), so that it would display:

We are awaiting payment. Order reference: 1234 (your order number).

How can I add the order number into my plain text?

LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
rogerk
  • 43
  • 5

2 Answers2

0

You can use PHP printf() to incorporate a variable value in a displayed text string as follows:

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");
}
LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
-1

you can add string using . notation in php.

like with "previous string".$order->get_order_number() , you can append order number to preceding string.

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";
}
Abilogos
  • 4,777
  • 2
  • 19
  • 39
mujuonly
  • 11,370
  • 5
  • 45
  • 75