Время чтения: 7 мин. 20 марта 2018 в 19:35 Woocommerce
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Добавляем пользовательские поля WooCommerce

WooCommerce , без сомнения, является более мощным плагином для электронной коммерции для WordPress. И то, что я люблю с WooCommerce, это то, что для почти всех есть API . Сегодня я решил показать вам, как вы можете динамически настраивать WooCommerce и, в частности, добавлять пользовательские поля в любые продукты WooCommerce. Вот окончательный результат того, что вы научитесь делать в этом посте:

mastering woocommerce product fields

Как вы можете на скриншоте выше, мы увидим, как добавить пользовательские поля на страницу выпуска продукта. Для этого мы будем работать только с файлом functions.php только в папке вашей темы.

Для начала добавим пользовательские поля в общую вкладку продукта , мы увидим, как добавить пользовательские поля на другие вкладки и как создать свои собственные вкладки.

Правильные крючки

Первый шаг — связать действие с  woocommerce_product_options_general_product_data . Функция, связанная с этим крюком, будет отвечать за отображение новых полей. Для сохранения значений полей будет учитываться второй крючок:  woocommerce_process_product_meta . В основном эти два действия будут выполнены с использованием этого кода:

Добавление новых полей

Фрагмент выше связывает две пользовательские функции с правильными крючками. Теперь нам нужно создать эти функции. Давайте начнем с первого,  woo_add_custom_general_fields () , который создаст поля. Вот как будет выглядеть функция

Для создания наших полей мы будем в основном использовать встроенную функцию WooCommerce (все эти функции находятся в WooCommerce / Admin / WritePanels / writepanels-init.php.):

Тип текстового поля

Чтобы создать тип текстового поля, вам нужно будет использовать этот код:

 

Обратите внимание на использование  desc_tip, чтобы отобразить эти маленькие симпатичные пузырьки справа от поля вместо отображения описания поля по умолчанию. Этот атрибут работает для каждого типа поля.

Тип поля поля

Чтобы создать тип поля номера, вам нужно будет использовать этот код:

Основное отличие здесь — это  атрибут типа, установленный на число . Вы также можете определить настраиваемые атрибуты, такие как шаг и мин, или даже макс. В приведенном выше коде шаг является значением по умолчанию (1), а значение min равно нулю. В основном это означает, что мы ожидаем здесь положительного значения (по крайней мере, больше нуля).

Тип поля Textarea

Чтобы создать текстовое поле, здесь используется код:

Здесь нет ничего сложного …

Выпадающее поле Тип поля

Чтобы создать раскрывающийся список, используйте следующий код:

В опции атрибуты определяют доступные параметры в массиве.

Тип поля флажка

Чтобы создать флажок, используйте следующий код:

Скрытый тип поля

Вы также можете создавать скрытые поля со следующим кодом:

Продукты Выберите тип поля

Существует очень хороший способ создать индивидуальный выпадающий список для продуктов WooCommerce с этим кодом:

Пользовательский тип поля

Вы также можете создавать настраиваемые поля. В приведенном ниже примере я создал «двойное поле». Вы можете настроить этот код и использовать столько полей, сколько хотите, которые будут объединены в один массив:


Пользовательские поля могут быть почти во всем, просто убедитесь, что вы используете класс поля формы, чтобы сделать их красивыми!

Сохранение значений полей

Теперь, когда вы создали свои поля продукта WooCommerce, вам нужно создать функцию для сохранения своих значений после изменения кнопки обновления или публикации. Как мы видели ранее, мы будем использовать функцию  woo_add_custom_general_fields_save (), подключенную к  woocommerce_process_product_meta . В принципе идея этой функции довольно проста: мы проверяем, пустое ли поле, и если мы не создаем мета-сообщение с помощью update_post_meta () . Обратите внимание, что мы используем  esc_attr () и esc_html (), чтобы немного защитить данные. Вот код для сохранения значений каждого типа поля:

Вот результат:

mastering woocommerce custom fields 2

Получить значения полей

Теперь, когда мы успешно создали наши поля и сохранили их значения, я думаю, вы хотели бы отображать эти значения в интерфейсе. В этом случае лучшим способом было бы работать с пользовательскими шаблонами WooCommerce. В основном пользовательский шаблон позволяет вам переопределять файлы по умолчанию WooCommerce и вместо этого использовать свои собственные файлы. Ниже приведено краткое руководство, в котором объясняется, как создавать свои настраиваемые шаблоны: http://docs.woothemes.com/document/template-structure/

Чтобы получить эти значения, нам просто нужно использовать популярную функцию get_post_meta () . Это почти все, что вам нужно.

Пример:

Создание пользовательских вкладок

Наконец, это быстрый фрагмент для создания пользовательской вкладки продукта:

 

Я рекомендую вам стиль вашей вкладки, используя немного CSS (просто добавьте хороший значок, и все готово!).

Еще кое-что

Еще одна вещь: если вы хотите добавить свои поля на любую другую вкладку, кроме общей, вам просто нужно изменить имя крючка, с которым вы связали свою  функцию woo_add_custom_general_fields () . В примере Fo используйте этот крючок  woocommerce_product_options_shipping, чтобы добавить поля на вкладку «Доставка». Вы можете найти все доступные крючки в   woocommerce / admin / post-types / writepanels / writepanel-product_data.php .

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

Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
[contact-form-7 404 "Not Found"]
[contact-form-7 404 "Not Found"]
Начать сотрудничество
Заполните поля ниже. Я лично перезвоню Вам в течении 15 минут для обсуждения деталей.
Введите ваше имя * Введите контактный телефон * Введите контактный Email для отправки точной стоимости
или позвоните мне по телефону +7-499-70-300-44
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
[contact-form-7 404 "Not Found"]
Оставить заявку
Заполните поля ниже. Я свяжусь с Вами в ближайшее время для обсуждения деталей
Введите контактный телефон * Введите контактный e-mail * Комментарий Прикрепить файл
Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Рассчитать стоимость
Заполните поля ниже. Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей
Введите контактный телефон * Введите контактный e-mail * Опишите ваш вопрос для того чтобы я мог рассчитать стоимость
Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *
Введите ваше имя * Введите контактный телефон* Введите контактный email * Опишите ваш вопрос в произвольной форме Прикрепить файл, если необходимо
Заказать сайт
Первые 14 дней бесплатно. Оставьте номер email и контактный телефон. Я лично перезвоню Вам в течении 10 минут, для обсуждения деталей.

Ваш email Введите контактный телефон Комментарий или вопрос
Проблемы с оплатой?
Опишите ситуацию. Когда возникает проблема? Что планируете купить?
Введите ваше имя * Введите контактный email * Что необходимо доработать
Скачать чек-лист
Заполните поля ниже. В течении 10 минут на указанный e-mail будет отправлена ссылка на скачивание чек-листа.
Введите ваше имя * Введите контактный E-mail *
Предварительная запись для получения скидки
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения деталей прохождения курса.
С кого числа Вам удобней начать обучение в 2019 году? Введите контактный телефон * Введите контактный E-mail * Выберите программу
Задать вопрос
У вас появился вопрос? Предложение? Пишите, я подробно изучу вас вопрос, подготовлю ответ и отвечу вам.
Ваше имя * Ваш e-mail* Ваш сайт Сообщение *
Степень загрузки
В данном разделе представлена моя занятость в данный момент. Данные обновляются каждый день. Вся работа выполняется по предварительной записи и 20% предоплатой от стоимости проекта.
низкая загрузка. выполняется ~5 заказов. старт работ через 5 дней.
средняя загрузка. выполняется ~15 заказов. старт работ через 20 дней.
высокая загрузка. заказы временно не принимаются.
Задать вопрос
У вас есть вопросы адресованный интернет-маркетологу? А у меня ответы, добро пожаловать! И да, это бесплатно. Я отвечу вам в течение 24 в разделе вопрос-ответ.
Запросить доступ в личный кабинет
Заполните поля ниже. В течение 10 минут на указанный e-mail будет сгенерирован доступ в личный кабинет.
Введите ваше имя * Введите контактный E-mail *
Тариф Индивидуальный

Из данного курса вы узнаете как превратить ваш интернет сайт в рабочую лошадку, генерирующую по нарастающей поток клиентов из 300 человек в месяц, в 10 000 в день.

Особенности продвижения интернет-магазинов, специфика оптимизации. Как избавить себя от рутинной оптимизации каждой страницы и в 1 клик оптимизировать до 10 000 тыс товаров.

А также вы в разы увеличите продажи, значительно снизите стоимость клика и стоимость заявки, в перспективе сможете отказаться от контексной рекламы (только для акций), откроете новые горизонты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 30 дней.

Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *
Курс SEO для корпоративных сайтов

Данный курс поможет вашему бизнесу получить новых клиентов из органического трафика.

А также вы в разы увеличите продажи, значительно снизите стоимость клика и стоимость заявки, в перспективе сможете отказаться от контексной рекламы (только для акций), откроете новые горизонты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 20 дней.

Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *
Курс SEO для Landing Page

Данный курс - находа для вас, если вы хотите увеличить трафик или не хотите использовать контекстную рекламу для продвижения своего продукта или услуги.

Курс научит Вас оптимизировать и продвигать одностраничные сайты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 1 день.

Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *
Курс SEO для индивидуального обучения

Полностью индивидуальная работа над проектом лично от меня. Я лично для вас провожу каждый урок.

После прохождения каждого урока Вы выполняете домашнее задание.Со своей стороны я оказываю поддержка на всех этапах. По каждому уроку вы можете задать неограниченное количество вопросов и получить квалифицированный ответ.

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

В итоге вы сможете увеличить органический трафик на 500% минимум!!!

Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *
Курс SEO для самостоятельного обучения

В закрытом разделе моего сайта весь курс представлен в текстовом/видео формате. Если вы желаете обучаться самостоятельно по актуальным данным которые работают в данный момент (поскольку данную информацию я обновляю сразу по мере изменений от поисковых систем) этот курс для вас.

Вы шаг за шагом приведете свой сайт в порядок и сможете увеличить трафик на 500% минимум!!!

Самым важным отличием данного курса от конкурентов является возможность онлайн переговоров со мной лично. Как это работает: вы изучаете урок, у вас появляются вопросы. Вы их записываете, мы созвонимся по скайпу или телефону и я голосом отвечаю на них.

Запись на бесплатный урок
Введите ваше имя, телефон и e-mail. Я свяжусь с Вами для уточнения времени прохождения урока.
Как вас зовут * Введите контактный телефон * Введите контактный E-mail *

Я работаю в городе Москва, но работу строю удаленно, и ваш город Абакан, Абинск, Аксай, Александровское, Алексин, Альметьевск, Анапа, Ангарск, Апшеронск, Арзамас, Армавир, Архангельск, Ачинск, Балаково, Балашиха, Балашов, Барнаул, Батайск, Белая Калитва, Белгород, Белореченск, Березники, Бийск, Благовещенск, Благодарный, Борисоглебск, Братск, Бронницы, Брюховецкая, Брянск, Бугульма, Буденновск, Бузулук, Великие Луки, Великий Новгород, Владивосток, Владикавказ, Владимир, Волгоград, Волгодонск, Волжский, Вологда, Волхов, Воркута, Воронеж, Воскресенск, Выборг, Выкса, Выселки, Гатчина, Геленджик, Георгиевск, Горно Алтайск, Грозный, Губкин, Гудермес, Гуково, Гусь Хрустальный, Десногорск, Дзержинск, Димитровград, Дмитров, Домодедово, Донецк, Ейск, Екатеринбург, Елец, Ессентуки, Железногорск, Железногорск Красноярский край, Железнодорожный, Зеленоград, Зеленокумск, Иваново, Ивантеевка, Ижевск, Изобильный, Ипатово, Иркутск, Йошкар Ола, Казань, Калуга, Каменск Шахтинск, Камышин, Каневская, Кашира, Кемерово, Кинешма, Кириши, Киров, Клин, Клинцы, Ковров, Коломна, Комсомольск на Амуре, Кореновск, Королёв, Кострома, Котлас, Красногорск, Краснодар, Красноярск, Крымск, Кстово, Кузнецк, Курган, Курганинск, Курск, Кущевская, Лабинск, Ленинградская, Ленинск Кузнецкий, Ливны, Липецк, Лобня, Лысьва, Лыткарино, Люберцы, Москва, Магнитогорск, Майкоп, Междуреченск, Миасс, Миллерово, Минеральные воды, Михайловск, Мичуринск, Можайск, Мончегорск, Морозовск, Мостовской, Мурманск, Муром, Мытищи, Набережные Челны, Назрань, Нальчик, Находка, Невинномысск, Нерюнгри, Нефтекамск, Нефтекумск, Нефтеюганск, Нижневартовск, Нижнекамск, Нижний Новгород, Нижний Тагил, Новоалександровск, Новокузнецк, Новомосковск, Новороссийск, Новосибирск, Новочеркасск, Новошахтинск, Норильск, Ноябрьск, Нягань, Одинцово, Октябрьский, Омск, Орёл, Оренбург, Орехово Зуево, Орск, Отрадная, Павловская, Павловский Посад, Пенза, Пермь, Петрозаводск, Петропавловск Камчатский, Подольск, Приморско Ахтарск, Прокопьевск, Псков, Пушкино, Пятигорск, Раменское, Реутов, Россошь, Ростов на Дону, Рыбинск, Рязань, Санкт Петербург, Сальск, Самара, Саранск, Саратов, Саянск, Светлоград, Северодвинск, Северская, Сергиев Посад, Серов, Серпухов, Славянск на Кубани, Смоленск, Солнечногорск, Сочи, Ставрополь, Староминская, Старый Оскол, Стерлитамак, Сургут, Сызрань, Сыктывкар, Таганрог, Тамбов, Тверь, Темрюк, Тимашевск, Тихвин, Тихорецк, Тобольск, Тольятти, Томск, Трудобеликовский, Тула, Тюмень, Улан Удэ, Ульяновск, Усинск, Усолье Сибирское, Уссурийск, Усть Илимск, Усть Лабинск, Уфа, Ухта, Фрязино, Хабаровск, Ханты Мансийск, Чебоксары, Челябинск, Череповец, Чехов, Чита, Шахты, Шелехов, Щёлково, Электросталь, Энгельс, Южно Сахалинск, Якутск, Ярославльи регионАмурская область, Камчатский край, Приморский край, Республика Саха Якутия, Сахалинская область, Хабаровский край, Кировская область, Нижегородская область, Оренбургская область, Пензенская область, Пермский край, Республика Башкортостан Октябрьский и Нефтекамск, Республика Башкортостан Уфа, Республика Марий Эл, Республика Мордовия, Республика Татарстан, Республика Татарстан Казань, Республика Удмуртия, Республика Чувашия, Самарская область, Саратовская область, Ульяновская область, Архангельская область, Вологодская область, Мурманская область, Новгородская область, Псковская область, Республика Карелия, Республика Коми Воркута и Усинск, Республика Коми Сыктывкар, Республика Ингушетия, Республика Кабардино Балкария, Республика Северная Осетия Алания, Ставропольский край, Чеченская Республика, Алтайский край, Забайкальский край, Иркутская область, Кемеровская область, Красноярский край, Красноярский край Норильск, Новосибирская область, Омская область, Республика Алтай, Республика Бурятия, Республика Хакасия, Томская область, Курганская область, Свердловская область, Тюменская область, Ханты Мансийский АО, Челябинская область, Ямало Ненецкий АО, Белгородская область, Брянская область, Владимирская область, Воронежская область, Ивановская область, Калужская область, Костромская область, Курская область, Липецкая область, Орловская область, Рязанская область, Смоленская область, Тамбовская область, Тверская область, Тульская область, Ярославская область, Волгоградская область, Краснодарский край, Республика Адыгея, Ростовская область,не имеет значения.