Приховуємо метод оплати в залежності від способу доставки, woocommerce russian

Залежність оплати від обраної доставки

Якщо нам треба приховати якийсь спосіб оплати при самовивозу наприклад оплата через PayPal то для цього нам знадобиться такий код.
Його потрібно вписати в файл functions.php вашої теми, який лежить в корені папки / wp-content / themes / названіе_вашей_теми
function alter_shipping_methods ($ available_gateways) global $ woocommerce;
$ Chosen_titles = array ();
$ Available_methods = $ woocommerce-> shipping-> get_packages ();
$ Chosen_rates = (isset ($ woocommerce-> session)). $ Woocommerce-> session-> get ( 'chosen_shipping_methods'). array ();
foreach ($ available_methods as $ method)
foreach ($ chosen_rates as $ chosen) if (isset ($ method [ 'rates'] [$ chosen])) $ chosen_titles [] = $ method [ 'rates'] [$ chosen] -> label;
>
if (in_array ( 'Самовивезення', $ chosen_titles)) unset ($ available_gateways [ 'paypal']);
>
return $ available_gateways;
>
add_action ( 'woocommerce_available_payment_gateways', 'alter_shipping_methods');
У рядку if (in_array ( 'Самовивезення', $ chosen_titles)) <слово Самовывоз это фактическое название доставки оно может быть и доставка почтой и доставка Курьером как угодно, все завесит как вы назвали свою доставку
в рядку unset ($ available_gateways [ 'paypal']); замість paypal вказуємо ID шлюзу назва способу плати який модно подивитися в налаштуванні оплати

Ось всі стандартні Іди шлюзів оплати

Прямий банківський переказ bacs
Оплата чеком cheque
Накладений платіж cod
PayPal paypal
У прикладі я прибрав оплата чеком при самовивозі

Щоб повторити цю процедуру але з іншої способом доставки і оплати то просто скопіювали код та змініть назву функції alter_shipping_methods наприклад на alter_shipping_methods1 на початку і в кінці коду

Поділитися постом

Схожі статті