BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » Удаление, изменение полей в полях оформления заказа для WooCommerce

Удаление, изменение полей в полях оформления заказа для WooCommerce

2016-09-05 / Вр:14:45 / просмотров: 3112

Сегодня я подготовил полезную статью, для тех, кто создал свой интернет-магазин на WordPress, используя плагин WooCommerce.
В статье я расскажу, как на странице «Оформление заказа» можно удалить или изменить поля.

Чтобы делать какие-либо процедуры с полями, нужно узнать название поля. Чтобы узнать название поля, загляните в исходный код.

Удаление, изменение полей в полях оформления заказа для WooCommerce

Теперь сам код. Код нужно вставлять в файл вашей темы, «functions.php»:

Удаляем поле

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_first_name']); // удаляем поле с именем
return $fields;
}

Поле «Имя» исчезнет.

Строка №5 – отвечает за удаление поля. Основные ее параметры:

billing
billing_first_name

Эти параметры меняются в зависимости от поля (см. список полей ниже)

список полей:

  • billing (ОПЛАТА)
    • billing_first_name
    • billing_last_name
    • billing_company
    • billing_address_1
    • billing_address_2
    • billing_city
    • billing_postcode
    • billing_country
    • billing_state
    • billing_email
    • billing_phone
  • shipping (ДОСТАВКА)
    • shipping_first_name
    • shipping_last_name
    • shipping_company
    • shipping_address_1
    • shipping_address_2
    • shipping_city
    • shipping_postcode
    • shipping_country
    • shipping_state
  • account (АККАУНТ)
    • account_username
    • account_password
    • account_password-2
  • order (ЗАКАЗ)
    • order_comments

Обратите внимание: я разбил все по цветам. Сделал это не зря, чтобы потом не возникли вопросы.

unset($fields['billing']['billing_first_name']);

Если бы вам нужно было удалить поле «Примечании к заказу»:

Удаление, изменение полей в полях оформления заказа для WooCommerce

то, код был бы таким:

unset($fields['order']['order_comments']);

Обратите внимание на цвета. Эти названия заменились. Так как поле имеет  название «order_comments» с категорией «order» (см. список полей):

Удаление, изменение полей в полях оформления заказа для WooCommerce

Перезаписать название полей

Название полей можно перезаписать. Вот, например, поле «Примечание к заказу» и в самом поле текст «Примечания к вашему заказу, например, особые пожелания отделу доставки.» можно заменить на другой текст:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
$fields['order']['order_comments']['label'] = 'Мое новое название поля';
$fields['order']['order_comments']['placeholder'] = 'Мой новый текст в самом поле';
return $fields;
}

Строка №4 и №5 – вставляем ['label'], если хотим заменить название поля и ['placeholder'] – если нужно заменить текст внутри поля. Все остальное ['order']['order_comments'] вы уже знаете, откуда я его взял и как его применять.

Обязательное и необязательное поле

Вы заметили рядом с названием поля звездочку (*)? Эта метка обозначает обязательные поля для заполнения.
Мы также можем здесь сделать замену. По желанию  можем сделать обязательное поле необязательным и наоборот.
Удаление, изменение полей в полях оформления заказа для WooCommerce

Сделаем поле «Почтовый индекс» необязательным для заполнения.

 

// Делаем поля необязательными
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );

// Наша перехваченная функция - $fields проходит через фильтр
function custom_override_default_address_fields( $address_fields ) {
$address_fields['postcode']['required'] = false; //почтовый индекс

return $address_fields;
}

После проделанной процедуры поле «Почтовый индекс» будет необязательным и метка (*) исчезнет.

Удаление, изменение полей в полях оформления заказа для WooCommerce

Вот, забрасываю вам готовый код, может, смотря на него, вы сможете разобраться, что к чему. Так я делаю частенько, потому что порой объяснить автору, что и куда нужно вставлять, чтобы все заработало очень тяжело.

Вот мой код:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_company']); // удаляем Название компании
unset($fields['billing']['billing_postcode']); // удаляем Индекс
unset($fields['billing']['billing_city']); // удаляем Населённый пункт
unset($fields['billing']['billing_country']); // удаляем поле Страна
unset($fields['billing']['billing_address_2']); // удаляем второе поле Адрес

$fields['billing']['billing_address_1']['label'] = 'Номер отделения Новой Почты'; // меняем Адрес
$fields['billing']['billing_address_1']['placeholder'] = ' '; // в поле Адрес оставляем пустым
return $fields;
}
// Делаем поля необязательными
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );

// Наша перехваченная функция - $fields проходит через фильтр
function custom_override_default_address_fields( $address_fields ) {
$address_fields['address_1']['required'] = false; // Адрес
$address_fields['postcode']['required'] = false; // Индекс
$address_fields['city']['required'] = false; // Населённый пункт
$address_fields['country']['required'] = false; // страна

return $address_fields;
}

В результате я добился вот такого эффекта на странице «Оформление заказа»:

Удаление, изменение полей в полях оформления заказа для WooCommerce

Я старался, но, возможно, не очень хорошо объяснил, скажите мне об этом.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

8 Ответов на комментарий - Удаление, изменение полей в полях оформления заказа для WooCommerce

  1. Александр

    Привет Степан ! Давненько тебя не было. :arrow: Спасибо за полезную статью.

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Привет, Александр! :arrow:
    Еще чуть-чуть и я снова буду писать статьи каждый день.

    Ответить

  2. Лена

    Спасибо, все хорошо расписано и объяснено, из чего код состоит, а как сделать чтобы заказчик мог и не ставить галочку «Я принимаю условия магазина», необязательный пункт или вообще убрать, у нас и нет никаких условий к заказчику…

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    А, Вы, Лена, не пробовали отключить “Условия и соглашения” в админке?
    “woocommerce” => “Настройки” => “Платежи” => “Условия и соглашения”
    Условия и соглашения – в этом поле должно быть пусто.

    Ответить

    Лена отвечает:

    Спасибо, так просто) может подскажите что делать с тем что форма для оформления заказ получилась как надо, имя и телефон (обязательные) и адрес (необязательное), а заказ не получается оформить, пишет “введите адрес для продолжения “… даже платежи на чековые поменяла

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Лен, а Вы пробовали все сделать так, как написано в этой статье? Тут как раз ответ на Ваш вопрос.

    Ответить

  3. Анатолий

    Здравствуйте, Степан! Хочу на форму оформления заказа прикрутить поле со списком городов, но не пойму как выбранный город передать в billing_city. Это вообще возможно?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Здравствуйте, Анатолий!
    Попробуйте плагин “Saphali Woocommerce Russian”.
    Подробно тут: http://bloggood.ru/wordpress/plagin-saphali-woocommerce-russian-nabor-russkix-dopolnenij-k-magazinu-woocommerce.html/

    Ответить

Добавить комментарий

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Subscribe without commenting

Метки: ,

Мои цели на 2017 год:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Довести количество статей до 750

4). Создать портфолио и мини интернет-магазин шаблонов

5). Создать книгу

6). Довести количество статей до 800

7). Добиться посещаемости 3000 человек/сутки

8). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 726
Количество страниц на блоге: 20
Количество рубрик на блоге: 27
Количество меток на блоге: 71
Количество комментариев на блоге: 3972