替换 WooCommerce 3 中外部运输服务的付款方式标题



我正在使用Woocommerce和外部运输服务。我有一个$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'] = $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");
}

但它抛出了一个错误。

我怎样才能让它工作?任何帮助,不胜感激。

首先,错误来自这 2 行:

$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_Orderget_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()];
}

它可以工作。

相关内容

  • 没有找到相关文章

最新更新