У меня есть сайт WooCommerce с автоматически импортируемыми продуктами, которые обновляют их каждую неделю. Эти продукты имеют атрибуты называется COLOR
а также SIZE
.
Тем не менее COLOR
красный имеет эти субатрибуты (например):
Обычно мне приходится вручную добавлять и присваивать эти податрибуты атрибуту «родительский КРАСНЫЙ», и это большая работа.
Интересно, есть ли способ сделать это автоматически?
Например, если атрибут содержит слово RED, присвойте его родительскому атрибуту RED.
Благодарю.
Это может быть странным ответом. Во-первых, это должно помочь вам понять, как идут дела в базе данных WordPress / WooCommerce, и это может быть хорошей альтернативой, если вы что-то понимаете в Database SQL или MySQL.
Сначала объясняется, как атрибуты и податрибуты WooCommerce устанавливаются в базе данных:
wp_woocommerce_attribute_taxonomies
.attribute_name attribute_label attribute_id attribute_type attribute_orderby attribute_public
color color 1 select menu_order 0
wp_terms
(так они термины). Здесь у меня есть 3 под-атрибута: 'black'
, 'blue'
а также 'green'
:term_id name slug term_group
8 Black black 0
9 Blue blue 0
10 Green green 0
wp_term_taxonomy
. 'color'
. term_id
у вас будет строка пули, начинающаяся с 'pa_
(это значит пRoduct ttribute) + основной атрибут слаг color
. 'pa_color'
Теперь в этой таблице у вас есть «Количество» столбец, который подсчитывает количество продуктов, относящихся к этой подкатегории term_id
,
term_taxonomy_id term_id taxonomy description parent count
8 8 pa_color 0 2
9 9 pa_color 0 1
10 10 pa_color 0 1
wp_term_relationships
вы найдете отношения между продуктами (object_id
столбец, используемый вариациями, например) и податрибуты (term_taxonomy_id
колонка). Как видно из приведенного ниже примера, податрибуты используются 2 продуктами (object_id
):object_id term_taxonomy_id term_order
22 8 0
40 8 0
40 9 0
22 10 0
Решение SQL:
Для вас, если вы можете изменить таблицы базы данных, полезная таблица для измененияwp_term_taxonomy
Таблица БД.
- Искать все податрибуты
term_id
вwp_terms
Таблица БД.- Сравните их с существующими
term_id
вwp_term_taxonomy
Таблица БД- Создать для всех несуществующих
term_id
вwp_term_taxonomy
с правильным'taxonomy'
слизняк для каждого.Это возможно с запросами SQL через PHP (что вам нужно будет точно настроить ваши специфические потребности).
Я надеюсь, что это поможет вам немного.
Несколько полезных тем, связанных с SQL wp_term_taxonomy
:
Других решений пока нет …