//Убираем способы оплаты , если хоть один товар без цены . add_filter('woocommerce_cart_needs_payment', 'need_p',30); function need_p($bool){ return ($bool && !has_goods_with_zero_price_in_cart()); } function has_goods_with_zero_price_in_cart(){ foreach (WC()->cart->cart_contents as $product){ if(0 == $product["data"]->price){ return true; } } return false; }