替换 Woocommerce 3 中外部运输服务的付款方式标题
Replace a payment method title for an external shipping service in Woocommerce 3
我正在使用 Woocommerce 和外部运输服务。我有一个 $parameter['pay']
值,它的字符串值可以是 "Cash" 或 "Terminal"。我想用以下数字替换这些字符串:
- "Cash" 和 1
- "Terminal" 与 2.
这是我想要执行此操作的实际代码:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_data = $order->get_data()
$parameter['pay'] = $order_data['payment_method_title'];
}
所以 $parameter['pay']
应该是 1 或 2。
我试过这个:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_data = $order->get_data()
$parameter['pay'] = $payment_method_code;
$payment_method_code = $order_data['payment_method_title'];
$cash = str_replace("Cash", "1", "$payment_method_code");
$terminal = str_replace("Terminal", "2", "$payment_method_code");
}
但是它抛出一个错误。
我怎样才能让它发挥作用?感谢任何帮助。
首先错误来自这两行:
$cash = str_replace("Cash", "1", "$payment_method_code");
$terminal = str_replace("Terminal", "2", "$payment_method_code");
他们应该需要从变量中删除 "
字符来代替:
$cash = str_replace("Cash", "1", $payment_method_code);
$terminal = str_replace("Terminal", "2", $payment_method_code);
它将解决您的错误问题。
现在您可以使用 WC_Order
get_payment_method_title()
方法尝试以下操作:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$pay = array("Cash" => 1, "Terminal" => 2);
$param['pay'] = $pay[$order->get_payment_method_title()];
}
它可以工作。
我正在使用 Woocommerce 和外部运输服务。我有一个 $parameter['pay']
值,它的字符串值可以是 "Cash" 或 "Terminal"。我想用以下数字替换这些字符串:
- "Cash" 和 1
- "Terminal" 与 2.
这是我想要执行此操作的实际代码:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_data = $order->get_data()
$parameter['pay'] = $order_data['payment_method_title'];
}
所以 $parameter['pay']
应该是 1 或 2。
我试过这个:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_data = $order->get_data()
$parameter['pay'] = $payment_method_code;
$payment_method_code = $order_data['payment_method_title'];
$cash = str_replace("Cash", "1", "$payment_method_code");
$terminal = str_replace("Terminal", "2", "$payment_method_code");
}
但是它抛出一个错误。
我怎样才能让它发挥作用?感谢任何帮助。
首先错误来自这两行:
$cash = str_replace("Cash", "1", "$payment_method_code");
$terminal = str_replace("Terminal", "2", "$payment_method_code");
他们应该需要从变量中删除 "
字符来代替:
$cash = str_replace("Cash", "1", $payment_method_code);
$terminal = str_replace("Terminal", "2", $payment_method_code);
它将解决您的错误问题。
现在您可以使用 WC_Order
get_payment_method_title()
方法尝试以下操作:
add_action('woocommerce_thankyou', 'send_order_to_delivery');
function send_order_to_delivery( $order_id ){
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$pay = array("Cash" => 1, "Terminal" => 2);
$param['pay'] = $pay[$order->get_payment_method_title()];
}
它可以工作。