WooCommerce:预先设置购物车页面上的默认付款方式

如果客户选择特定的付款方式,我会尝试限制折扣或优惠券 . 为此,我使用了一个名为 WooCommerce Extended Coupon Features 的插件 .

我有3种有效的付款方式:支票,信用卡和PayPal各自的订单 . 如果选择了付款方式“PayPal”,我会设置优惠券以限制在订单上应用的折扣 .

但是,当我在订单中添加优惠券时,在购物车页面上,我收到了当前错误 .

优惠券对当前选择的付款方式无效 .

我认为WooCommerce的默认付款方式是按顺序排列的第一个,但它给了我这个错误 . 有一些方法可以以编程方式取消应用默认付款方式,但我还没有看到在Checkout页面之前的Cart页面上应用它的方法 .

我尝试过以下方法:

$available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways();

  $available_gateways['cheque']->chosen = true;

但这仅适用于Checkout页面 .

有任何想法吗?

回答(1)

2 years ago

我有同样的问题,我解决了这个问题:

在woocommerce-auto-added-coupons / includes / WJECF_Controller.php中寻找这一行:

//============================
    //Test restricted payment methods

并在之前添加此代码:

if (!isset( WC()->session->chosen_payment_method ) || WC()->session->chosen_payment_method == '' || !is_checkout()) {WC()->session->set('chosen_payment_method', 'paypal');}