Приветствую, знатоков!
Дано :
категория_1
id11 parent_id0
ext_id77 ext_id_parent0
категория_2
id22 parent_id0
ext_id88 ext_id_parent0
категория_3
id33 parent_id0
ext_id99 ext_id_parent77
у каждой категории есть локальные id и айди её предка, а также внешние айди (импортируемый файл).
И задача в коде на основе соответствия по внешним айди родителей, проставить внутреннее соответствие.
по данному примеру по внешним данным категория_3 вложена в первую, и значения категория_3 (parentid0) обновиться на 11.
С помощью функции
wp_update_term вручную указав айди, значение родительской категории проставляется на ура:
function update_local_parent_id ( $parent_id , $id = true ) {
$parent_id = 11; // категория_1 является родительской для 3
$term_id = 33; //категория_3
$taxonomy = 'product_cat';
$args = array( 'parent' => $parent_id );
$result = wp_update_term($term_id, $taxonomy, $args);
}
в каждой категории добавлено значение внешнего айди $_ext_id и внешнего значения категории $_ext_parent_id,
считывание массива каталогов по совпадению с $ext_parent_id происходит через :
function get_cat_child ( $ext_parent_id , $id = true ) {
$args = array(
'hide_empty' => false,
'meta_query' => array(
array(
'key' => '_ext_parent_id',
'value' => $ext_parent_id,
'compare' => '='
)
)
);
$terms = get_terms( 'product_cat', $args );
}
а по совпадению с $ext_id соответственно через :
function get_cat_parent ( $ext_id , $id = true ) {
$args = array(
'hide_empty' => false,
'meta_query' => array(
array(
'key' => '_ext_id',
'value' => $ext_id,
'compare' => '='
)
)
);
$terms = get_terms( 'product_cat', $args );
}
Прошу подсказать как это всё связать?
прописать в переменную 'parent' у категории, которая получена через функцию get_cat_child значение term_id родительской категории которое получено через get_cat_parent