Как добавить атрибуты продукта WooCommerce с вариантами: 2 метода
Опубликовано: 2021-05-25Вы хотите создать атрибуты продукта с различными вариациями? Вы пришли в нужное место. В этом руководстве мы покажем вам, как добавить атрибуты продукта WooCommerce с вариантами .
Что такое атрибуты WooCommerce?
В WooCommerce вы можете добавлять информацию к своим продуктам с помощью атрибутов . Эти атрибуты зависят от продукта. Например, общими атрибутами предметов одежды являются размер и цвет, а для ноутбука это могут быть размер экрана, оперативная память и объем памяти.
Что интересно в атрибутах, так это то, что они глобальны. Вместо того, чтобы применять их к каждому продукту, вы просто создаете их и добавляете к разным продуктам.
Атрибуты необходимы для:
- Переменные продукты : перед созданием переменных продуктов вы должны определить для них атрибуты. Это позволяет добавлять варианты продукта.
- Фильтрация продуктов : распространенный способ фильтрации основан на атрибутах. Например, пользователь может искать ноутбук с 15-дюймовым экраном.
Кроме того, вы также можете создать атрибуты продукта по умолчанию. Для получения дополнительной информации об этом, ознакомьтесь с этим полным руководством.
Теперь, когда мы лучше понимаем атрибуты, давайте посмотрим, как добавить атрибуты продукта с вариантами в WooCommerce.
Как добавить атрибуты продукта WooCommerce с вариантами
Есть два основных способа добавить атрибуты продукта с вариациями в WooCommerce:
- Из панели управления WooCommerce
- Программно
Давайте рассмотрим оба варианта.
1) Создайте атрибуты продукта с вариантами на панели управления WooCommerce.
Самый простой способ добавить атрибут в WooCommerce — из раздела « Атрибуты ». Для этого на панели инструментов выберите « Продукты» > «Атрибуты». Там вам нужно будет выбрать имя и ярлык и нажать кнопку « Добавить атрибут », чтобы создать новый атрибут продукта.
Как упоминалось ранее, атрибуты являются глобальными, поэтому новый атрибут будет доступен для всех товаров в вашем магазине.
После добавления атрибута продукта вы должны добавить некоторые термины, которые станут вариантами определенных продуктов.
Например, если атрибутом является размер экрана, терминами будут различные размеры (13 дюймов, 15 дюймов, 17 дюймов).
Таким образом, вы можете комбинировать различные атрибуты каждого продукта и создавать различные варианты. Например, вы можете получить красный 13-дюймовый ноутбук, синий 15-дюймовый ноутбук и так далее.
Как видите, добавлять атрибуты и варианты с панели инструментов WooCommerce довольно просто. Однако это может занять много времени, если вам нужно создать много вариантов. Для массового создания атрибутов с вариациями и управления большим количеством атрибутов можно немного написать код.
Давайте посмотрим, как программно добавить атрибуты продукта с вариациями в WooCommerce .
2. Как программно создать атрибуты товара с вариациями
Если у вас есть навыки программирования, вы можете добавлять атрибуты продукта и их варианты программно. Это отличный вариант, если вы хотите сэкономить время при создании атрибутов, поскольку вы можете добавлять их массово.
ПРИМЕЧАНИЕ . Поскольку мы будем редактировать некоторые основные файлы, прежде чем начать, мы рекомендуем вам:
- Создайте полную резервную копию вашего сайта, чтобы вы могли восстановить ее, если что-то пойдет не так
- Создайте дочернюю тему : вы можете установить любой из этих плагинов или просмотреть это руководство, чтобы создать его. Таким образом, вы не потеряете свои настройки при обновлении темы до новой версии.
Обратите внимание, что вы должны вставить свой собственный код в файл functions.php вашей дочерней темы.
После того, как вы создали резервную копию своего сайта и создали дочернюю тему, на панели управления WordPress перейдите в раздел « Внешний вид» > «Настроить» и найдите файл functions.php в правом столбце. Затем вставьте следующий код в конец файла.
Полный PHP-скрипт
Это полный скрипт, в следующем разделе мы разделим его на части и объясним, что делает каждая часть.
add_action('admin_init', 'QuadLayers_add_product_attributes'); функция QuadLayers_add_product_attributes(){ $ atts = массив ( 'размер'=>массив('XL','маленький'), 'цвет' => массив ("коричневый", "серый", "желтый"), ); foreach ($atts as $key => $values) { новый add_attribute ($ ключ, $ значения); } } класс add_attribute{ /* * Зарегистрируйте глобальный класс атрибутов продукта woocommerce. * * @param ул $нам | имя атрибута * @param обр $vals | множество вариаций * */ общедоступная функция __construct($nam,$vals){ $ attrs = массив(); $attributes = wc_get_attribute_taxonomies(); foreach ($ атрибуты как $ ключ => $ значение) { array_push($attrs,$attributes[$key]->attribute_name); } если (! in_array($название, $атрибуты)) { $аргументы = массив( 'идентификатор' => '', 'слаг' => $нам, 'имя' => __($nam, 'woocommerce'), 'тип' => 'выбрать', 'orderby' => 'menu_order', 'has_archives' => ложь, 'лимит' => 1, 'есть_в_наличии' => 1 ); вернуть wc_create_attribute($args); } $this->add_var($nam,$vals); } общедоступная функция add_var($nam,$vals){ $taxonomy = 'pa_'.$nam; $term_slug = sanitize_title($name); // Проверяем, существует ли термин, и если нет, то создаем его (и получаем идентификатор термина). для ($ff=0; $ffterm_id; } } } }
Стоит отметить, что этот скрипт не удалит существующие атрибуты, а только добавит новые. И если атрибуты, которые вы пытаетесь добавить, уже есть, сценарий ничего не сделает.
Кроме того, обратите внимание, что для этого примера мы добавляем некоторые атрибуты и термины. Вам нужно отредактировать приведенный ниже массив и создать свои собственные атрибуты.
функция QuadLayers_add_product_attributes(){ $ atts = массив ( 'новый атрибут'=>массив('в стороне','рядом','длинный','нет','короткий'), );
После этого перейдите в « Продукты» > «Атрибуты» на панели администратора. Если все прошло хорошо, вы увидите атрибуты и термины, которые вы только что добавили с помощью скрипта PHP.
Если вы не видите вариантов, просто перезагрузите страницу, чтобы они могли заполниться.
Кроме того, атрибуты также будут доступны для настройки вариаций товара на странице редактора товара:
И это все! Теперь вы можете просто отредактировать PHP-скрипт и добавить свои собственные атрибуты и варианты продукта WooCommerce. Вы даже можете обновлять его динамически, применяя условную логику.
Как работает скрипт?
До сих пор мы показали вам скрипт для добавления атрибутов продукта WooCommerce с вариантами в ваш магазин. Теперь давайте разберем его, чтобы вы могли лучше понять, как он работает, и настроить его.
Основные разделы скрипта:
Крюк
add_action('admin_init', 'QuadLayers_add_product_attributes'); функция QuadLayers_add_product_attributes(){ $ atts = массив ( 'размер'=>массив('XL','маленький'), 'цвет' => массив ("коричневый", "серый", "желтый"), ); foreach ($atts as $key => $values) { новый add_attribute ($ ключ, $ значения); } }
Мы используем admin_init()
для запуска кода. Здесь можно использовать несколько других хуков, но в нашем случае нам понравилась производительность скрипта с использованием этого хука.
В подключенной функции мы определяем наши значения атрибутов и варианты в одном многомерном массиве. Цикл foreach()
создаст атрибут для каждого из элементов основного массива.
Внутри цикла атрибут создается нашим классом add_attribute();
.
Класс
Мы создали класс ООП, который отвечает за создание атрибута и добавление к нему некоторых вариантов. Это делается за один прогон каждый раз, когда создается экземпляр класса, с использованием new add_attribute()
в предыдущем разделе.
класс add_attribute{ общедоступная функция __construct($nam,$vals){ $ attrs = массив(); $attributes = wc_get_attribute_taxonomies(); foreach ($ атрибуты как $ ключ => $ значение) { array_push($attrs,$attributes[$key]->attribute_name); } если (! in_array($название, $атрибуты)) { $аргументы = массив( 'идентификатор' => '', 'слаг' => $нам, 'имя' => __($nam, 'woocommerce'), 'тип' => 'выбрать', 'orderby' => 'menu_order', 'has_archives' => ложь, 'лимит' => 1, 'есть_в_наличии' => 1 ); вернуть wc_create_attribute($args); } $this->add_var($nam,$vals); }
Первая функция представляет собой construct()
, и она создает атрибут, используя встроенную функцию WooCommerce wc_create_attribute()
, а также вызывает вторую функцию: add_var()
.
общедоступная функция add_var($nam,$vals){ $taxonomy = 'pa_'.$nam; $term_slug = sanitize_title($name); // Проверяем, существует ли термин, и если нет, то создаем его (и получаем идентификатор термина). for ($ff=0; $ff < count($vals); $ff++) { if( ! term_exists($vals[
$ff]
, $taxonomy)){ $term_data = wp_insert_term($vals[
$ff]
, $taxonomy); $term_id = $term_data['term_id']; } else { $term_id = get_term_by('имя', $vals[
$ff]
, $taxonomy)->term_id; } } }
Вторая функция add_var()
добавит все варианты, включенные в исходный массив, для атрибута, который также был передан через функции.
Вывод
Таким образом, атрибуты продукта позволяют создавать различные продукты и помогают пользователям фильтровать продукты на основе определенных функций.
В этом руководстве мы рассмотрели два разных способа добавления атрибутов продукта с вариантами в WooCommerce:
- Из панели администратора
- Программно
Создать атрибуты на панели инструментов WooCommerce очень просто. Однако это может занять много времени, если вам нужно добавить много атрибутов для нескольких продуктов.
В качестве альтернативы, если у вас есть навыки программирования, вы можете создать их программно. Это более продвинутый метод, позволяющий массово добавлять атрибуты товара. Сценарий, который мы использовали в этом посте, полностью протестирован и работает, так что не стесняйтесь брать его за основу и настраивать. Однако имейте в виду, что он предназначен для использования с одним атрибутом загрузки, и мы не рекомендуем постоянно развертывать его в рабочей среде.
Если вы получите ошибку при попытке запустить скрипт, не волнуйтесь. Обычно это происходит потому, что вы находитесь на странице списка атрибутов. Правильный способ обновить скрипт — перезагрузить страницу с постоянными ссылками на панели администратора WordPress.
Для получения дополнительной информации о том, как правильно добавлять продукты WooCommerce как программно, так и из панели администратора, ознакомьтесь с этим руководством.
Создали ли вы атрибуты товаров в своем магазине? Какой метод вы использовали? Дайте нам знать в комментариях ниже!