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

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

erto

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

erto

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

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'
);
 
  • Like
Реакции: D&B

erto

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

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

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
 
  • Like
Реакции: D&B
Сверху Снизу