Только конкретны метод оплаты, если любого из товаров в корзине более 2
Добавляем в functions.php вашей темы
add_filter('woocommerce_available_payment_gateways', 'limit_cod_payment_method');
function limit_cod_payment_method($available_gateways) {
// Проверяем, есть ли что-то в корзине
if (!is_object(WC()->cart) || WC()->cart->is_empty()) {
return $available_gateways;
}
// Получаем ID метода оплаты "cod"
$cod_gateway_id = 'cod';
// Флаг, указывающий, найдено ли хотя бы одно количество товара больше или равное 2
$found_required_quantity = false;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
// Проверяем, есть ли у товара количество больше или равное 2
if ($cart_item['quantity'] >= 2) {
$found_required_quantity = true;
break;
}
}
// Если найдено хотя бы одно количество товара больше или равное 2, оставляем только метод оплаты "cod"
if ($found_required_quantity && isset($available_gateways[$cod_gateway_id])) {
$available_gateways = array($cod_gateway_id => $available_gateways[$cod_gateway_id]);
}
return $available_gateways;
}
Код метода оплаты можно посмотреть тут, смотрим после =