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

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

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

Как вы можете на скриншоте выше, мы увидим, как добавить пользовательские поля на страницу выпуска продукта. Для этого мы будем работать только с файлом 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 (), чтобы немного защитить данные. Вот код для сохранения значений каждого типа поля:

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

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

Теперь, когда мы успешно создали наши поля и сохранили их значения, я думаю, вы хотели бы отображать эти значения в интерфейсе. В этом случае лучшим способом было бы работать с пользовательскими шаблонами 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 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Получить коммерческое предложение

Я свяжусь с Вами в течении 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"]
Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Заказать услугу
Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Запись на бесплатный урок
Введите ваше имя, телефон и skype логин.
Я свяжусь с Вами для уточнения времени прохождения урока.

Введите ваше имя *

Введите контактный телефон *

Введите Skype *

Выберите программу

Промокод