В Woocommerce я хочу скрыть вариант оплаты кредитной картой, если в корзине указан определенный вариант продукта c. Пожалуйста, помогите.
Спасибо.
Это то, что я сейчас работаю. Каждому варианту я назначил отдельный класс доставки. Я хочу отключить указанный способ оплаты c при оформлении заказа. Но было бы намного проще, если бы я указывал целевые значения атрибута c, поэтому мне не нужно назначать класс доставки.
<?php
add_filter('woocommerce_available_payment_gateways', 'conditional_payment_gateways', 10, 1);
function conditional_payment_gateways( $available_gateways ) {
$shipping_class_target = 106; // the shipping class ID assigned to specific variations
$in_cart = false;
foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
$in_cart = true;
break;
}
}
if ( $in_cart ) {
unset($available_gateways['cod']); // unset 'cod'
}
else {
unset($available_gateways['bacs']); // unset 'bacs'
}
return $available_gateways;
}