Есть 860 продуктов с различными вариантами. Задача состоит в том, чтобы разрешить массовое редактирование пользователем «используется для вариантов» для некоторых атрибутов. Например, у нас есть размер, пол, который все еще необходим для вариаций, но у нас есть материал, который необходим только для фильтров, поэтому удаление этого атрибута не является решением.«Используется для вариаций» программный программный
0
A
ответ
0
Полностью непроверенный и не особенно идеальный, если у вас есть много продуктов, так как это может привести к тайм-ауту, но теоретически вы можете перебрать все переменные продукты и обновить значение метаданных _product_attributes
. Я настоятельно рекомендую вам создать резервную копию данных и/или сделать это промежуточным сайтом.
function so_41978670_run_once(){
$args = array(
'post_type' => 'product',
'posts_per_page' => -1
'tax_query' => array(
array(
'taxonomy' => 'post_type',
'field' => 'slug',
'terms' => 'variable',
),
),
);
$products = new WP_Query($args);
if($products->have_posts()){
while ($products->have_posts()) {
$products->the_post();
$product_id = get_the_ID();
$product = wc_get_product($product_id);
$attributes = $product->get_attributes();
$meta_values = array();
if ($attributes) {
foreach ($attributes as $attribute_key => $attribute) {
if(in_array($attribute_key, array('size', 'gender'))){
// Modify the attributes meta.
$attributes[ $attribute_key ]['is_variation'] = 1;
}
}
}
update_post_meta($product->get_id(), '_product_attributes', $attributes);
}
wp_reset_postdata();
}
}