• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Выбор оплаты в зависимости от выбора доставки

erto

Форумчанин
#1
Допустим, выбираю я самовывоз и высвечивается только наличными. Выбираю доставка по стране или международная и высвечивается только предоплата.
Как такое можно реализовать?
 

erto

Форумчанин
#2
Нашел код который убирает пэйпал если доставка местная.

function payment_gateway_disable_country($available_gateways) {

global $woocommerce;

$packages = $woocommerce->shipping->get_packages();

foreach ( $packages as $i => $package ) {
$chosen_method = isset( $woocommerce->session->chosen_shipping_methods[ $i ] ) ?
$woocommerce->session->chosen_shipping_methods[ $i ] : '';

if ('local_delivery' == $chosen_method) {
unset($available_gateways['paypal']);
break;
}
}

return $available_gateways;

}

add_filter(
'woocommerce_available_payment_gateways',
'payment_gateway_disable_country'
);
 

erto

Форумчанин
#3
Рассказываю как работает.

Я не мастер в плане программирования, поэтому я код дублировал чтобы выключить способы оплаты для каждой доставки.

function payment_gateway_disable_country($available_gateways) этот код вы можете дублировать если сделаете допустим так

function payment_gateway_disable_country2($available_gateways)
function payment_gateway_disable_country3($available_gateways)
Можно и как-то его переименовать.

'local_delivery' - способы доставки. меняем на свое, как называется можно найти в настройках доставки, пункт id в каждом способе.
['paypal'] - способы оплаты. Посмотреть можно тоже в настройках оплаты в id
 
Сверху Снизу