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

Опубликовано: 01.09.2018

Сегодня я подготовил полезную статью, для тех, кто создал свой интернет-магазин на WordPress, используя плагин 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 (ЗАКАЗ)

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

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

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

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

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

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

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

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

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'] вы уже знаете, откуда я его взял и как его применять.

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

Вы заметили рядом с названием поля звездочку ( *)? Эта метка обозначает обязательные поля для заполнения.

Мы также можем здесь сделать замену. По желанию  можем сделать обязательное поле необязательным и наоборот.

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

 

// Делаем поля необязательными 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; }

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

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

Вот мой код:

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; }

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

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

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

Последние новости категории:

Похожие статьи

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

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

Метки: wordpress , без плагинов

rss