Как скрыть поля на странице оплаты для виртуальных товаров в WooCommerce

Часто на форумах, посвященных WooCommerce, встречается вопрос, как убрать определенные поля на странице заказа в случае, когда в корзине находится только виртуальный (загружаемый) товар. По-умолчанию, если корзина содержит только виртуальные товары, то поля доставки автоматически убираются, то некоторым пользователям необходимо убрать и поля реквизитов оплаты. Это понятно, потому как нет смысла запрашивать адрес оплаты или же индекс в большинстве случаев. Сниппет ниже проверит количество товаров в корзине, и сравнит результат с количеством виртуальных товаров в ней же. Если все товары являются виртуальными, то поля на странице оплаты уберутся. Если же в корзине будет лежать один виртуальный товар и хотя бы один физический, то все поля останутся на месте. Логично, не так ли?

Код ниже содержит функцию под названием woo_cart_has_virtual_product(). Именно она и проверяет наличие виртуальных товаров в корзине. Она возвращает значение true, если все товары в корзине являются виртуальными, или же false, если ни один из них таковым не является либо же в корзине есть хотя бы один не виртуальный товар. Вторая функция, woo_remove_billing_checkout_fields(), перехватывает woocommerce_checkout_fields и удаляет ненужные поля на странице.

Вот так будет выглядеть результат, когда ваша корзина содержит только виртуальные товары:

Как скрыть поля на странице оплаты для виртуальных товаров в WooCommerce

Код добавляем в файл functions.php вашей темы или в плагин для сайта WordPress:

Если же вам понадобится убрать бОльшее количество полей, то можно воспользоваться одной или несколькими строками ниже, добавив их к перечню, указанному в предыдущем сниппете.

Мы надеемся, что эта статья помогла вам скрыть поля на странице оплаты для виртуальных товаров в WooCommerce.

Если вы начинаете разбираться с WooCommerce, то не забудьте посетить нашу рубрику WooCommerce, где мы публикуем материалы специально по тематике магазинов на этой платформе.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Источник

Written by: