Если вам нужно не удалять поля, а настроить или переименовать их, изменить тип, вам нужно посмотреть следующий пост: woocommerce настройка оформления заказа.
В общем вопрос не новый и имеет несколько решений, первый из которых – это использование плагина Saphali Woocommerce Russian. Я на нем не буду останавливаться очень подробно, там все предельно просто, ссылка на плагин вот. Разобраться можно по скинам, бесплатной версии плагина хватает чтоб убрать лишние поля оформления заказа, а также чтобы сделать настройку оформления этих полей, добавить новые поля, переименовать их и тому подобное.
Второй способ, на котором я хочу остановиться подробно – "как убрать поля оформления заказа без плагина?". В пошаговой инструкции ниже я покажу как удалить все поля из оформления заказа и как оставить только нужные. К ненужным я бы отнес: почтовый индекс, примечание к заказу, название компании, подъезд, этаж и т.п..
Обычно, клиенту не нравится то, что вукомерц просит ввести кучу ненужной информации на странице оформления заказа и эта проблема решается простой вставкой PHP кода в файл functions.php. Следуйте инструкции ниже и вы сможете убрать ненужные поля.
add_filter('woocommerce_checkout_fields','remove_checkout_fields'); function remove_checkout_fields($fields){ //unset($fields['billing']['billing_first_name']); //unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_company']); //unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); //unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); //unset($fields['billing']['billing_phone']); //unset($fields['order']['order_comments']); //unset($fields['billing']['billing_email']); //unset($fields['account']['account_username']); //unset($fields['account']['account_password']); //unset($fields['account']['account_password-2']); return $fields; }
Как вы поняли, здесь все поля, которые мы видим на странице оформления заказа. Если мы в этой функции комментируем вот так // строчку, значит это поле будет присутствовать на сайте, если возле поля нет символа // то поле будет удалено, и мы его не увидим в checkout. Как по мне, то это самый простой способ убрать поля из оформления заказа.
P.S. Другие названия полей вы можете получить из хтмл кода, достаточно просто фиребагом просмотреть атрибут name у ненужного input или textarea.
Смотрите кликабельный скин ниже:
Вот собственно и все что вам нужно для настройки страницы оформления заказа. Дублирую еще раз код, который позволяет управлять страницей checkout у плагина Вукомерц (пошаговая инструкция выше). Не забываем делиться ссылкой со своими друзьями в соц сетях:
Код для functions.php
add_filter('woocommerce_checkout_fields','remove_checkout_fields'); function remove_checkout_fields($fields){ unset($fields['billing']['billing_first_name']); unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); return $fields; }
В пошаговой инструкции больше полей и там есть пояснения что с этим кодом нужно делать.
Супер, благодарю
От души благодарю, всё заработало!
Красава!! Спасибо!!
Спасибо! Все получилось
Привет! Коллеги, подскажите как решить этот вопрос на текущей версии Woo?! (скрывать поле "адрес доставки" при, если человек выбрал "самовывоз") Все перепробовал, ничего не помогает. Вот сайт (-url-)
Правило автора работает, но у меня установлен плагин WooCommerce Checkout Field Editor. Не могу понять что именно теперь надо назначать, чтобы убрать поле ((( СПАСИБО ЧЕЛОВЕЧЕСКОЕ!!!
А ничего что в "Оформлении заказа" заказ оформить не получится, потому что убраны поля?Прежде чем советовать как делать разобраться надо "как оно работает", а потом втюхивать "нерабочие костыли"
Сначала присвойте полю параметр Необязательное (отображение этому Вы не увидите, но заказ уйдет.
$fields['billing']['billing_address_1']['required'] = false; //меняем адрес на необязательное поле
Я как раз пытаюсь сделать кастыль на js, знаний можно сказать нету в js и все с 0. Если хорошо разбиретесь и могли бы сделать с радостью бы поставил ящик пива или эквивалент. Почту мою вы должны видеть.
Добрый день, интересная статья, остался вопрос, надеюсь подскажите.
В woo на странице оформления заказа кнопка "подтвердить заказ", которая перекидывает на следующую страницу с товарами в корзине и кнопкой "оплатить". Как сделать, что бы не подтверждали заказа, а сразу попадали на страницу оплаты. Нигде не могу найти решиния на данный вопрос.
Не совсем меня поняли.
Доброго времени суток уважаемые форумчане. Дано: сайт на вордпресс + woo + робокасса. При покупке товара мы попадаем на страницу оформления заказа /checkout/, после заполнения необходимых полей нажимаем подтвердить заказ, и попадаем на еще одну страницу checkout/order-pay/344/?key=wc_order_5a586d1b19d33 с номером заказа и "Спасибо за Ваш заказ, пожалуйста, нажмите кнопку ниже, чтобы заплатить." , где нам опять нужно действие и только после этого мы попадем на страницу робокассы и сможем оплатить наш товар.
Как избавиться от лишнего шага. Что бы после нажатия "подтвердить заказ" мы сразу попали на страницу оплаты от робокассы?
Отлично выглядит! Спасибо огромное! 🙂
Всех Вам благ )
Спасибо) и правда полезная штука
но если убрать некоторые строки адреса заказ не оформляется, т.е. без адреса нельзя выполнить заказ. а жаль
Всё четко,спасибо!)
Спасибо))))
Спасибо огромное!! Помогло!!
Большое спасибо!