Я пытаюсь ограничить скидки или купоны, если клиент выбирает конкретный способ оплаты. Для этого я использовал плагин под названием WooCommerce расширенные функции купона.
У меня есть 3 активных способа оплаты: чек, кредитная карта & PayPal в соответствующем порядке. Я установил купон для ограничения скидки, применяемой к заказу, если выбран способ оплаты «PayPal».
Однако на странице корзины, когда я добавляю купон к своему заказу, я получаю текущую ошибку.
Купон не действителен для выбранного способа оплаты.
Я думал, что способ оплаты по умолчанию для WooCommerce должен был быть первым в последовательном порядке, но он дает мне эту ошибку. Существуют способы программно отменить метод оплаты по умолчанию, но я не видел способа применить его на странице корзины, которая находится перед страницей оформления заказа.
Я пробовал следующее:
$available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways();
$available_gateways['cheque']->chosen = true;
Но это работает только на странице оформления заказа.
Есть идеи?
У меня была такая же проблема, и я решил так:
в 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');}
Других решений пока нет …