WooCommerce: предварительная настройка способа оплаты по умолчанию на странице корзины

Я пытаюсь ограничить скидки или купоны, если клиент выбирает конкретный способ оплаты. Для этого я использовал плагин под названием WooCommerce расширенные функции купона.

У меня есть 3 активных способа оплаты: чек, кредитная карта & PayPal в соответствующем порядке. Я установил купон для ограничения скидки, применяемой к заказу, если выбран способ оплаты «PayPal».

Однако на странице корзины, когда я добавляю купон к своему заказу, я получаю текущую ошибку.

Купон не действителен для выбранного способа оплаты.

Я думал, что способ оплаты по умолчанию для WooCommerce должен был быть первым в последовательном порядке, но он дает мне эту ошибку. Существуют способы программно отменить метод оплаты по умолчанию, но я не видел способа применить его на странице корзины, которая находится перед страницей оформления заказа.

Я пробовал следующее:

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

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

Но это работает только на странице оформления заказа.

Есть идеи?

1

Решение

У меня была такая же проблема, и я решил так:

в woocommerce-auto-Added-Coupon / 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');}
0

Другие решения

Других решений пока нет …