Я начал работать над небольшим проектом Woocommerce. У меня есть 3 платежных шлюза в этом магазине: Paypal, кредитная карта и прямой банковский перевод.
Что бы я хотел: если используется код купона, я хотел бы отключить (или удалить) Paypal и кредитную карту из доступных платежных шлюзов и просто оставить «Прямой банковский перевод» в качестве доступного платежного шлюза.
Чтобы показать, как выглядит текущее состояние со страницы оформления заказа:
![image](https://i.stack.imgur.com/9joyQ.jpg)
Я нашел похожее решение, но оно предназначено для удаления шлюза в зависимости от категории продукта.
add_filter( 'woocommerce_available_payment_gateways', 'unset_payment_gateways_by_category' );
function unset_payment_gateways_by_category( $available_gateways ) {
global $woocommerce;
$unset = false;
$category_ids = array( 8, 37 );
foreach ( $woocommerce->cart->cart_contents as $key => $values ) {
$terms = get_the_terms( $values['product_id'], 'product_cat' );
foreach ( $terms as $term ) {
if ( in_array( $term->term_id, $category_ids ) ) {
$unset = true;
break;
}
}
}
if ( $unset == true )
unset( $available_gateways['cheque'] );
return $available_gateways;
}
Так что я думаю, что эта функция может быть использована, но немного изменена в соответствии с моей проблемой.
Любая помощь приветствуется.