• WooCommerce массовое удаление товаров

 #10358   IgorA100
 26 апр 2021, 12:51
Для массового удаления товаров можно выполнить такой SQL скрипт:
Код: Выделить всёDELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_title = 'Товар' AND post_type IN ('product','product_variation'));
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_title = 'Товар' AND post_type IN ('product','product_variation'));
DELETE FROM wp_posts WHERE post_title = 'Товар' AND post_type IN ('product','product_variation');


Массово удалить все атрибуты
Код: Выделить всёDELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy LIKE 'pa_%');
DELETE FROM wp_term_taxonomy WHERE taxonomy LIKE 'pa_%';
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);


Массово удалить postmeta
Код: Выделить всёDELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL
 #10359   IgorA100
 26 апр 2021, 14:03
После массовых операций с товарами, категориями, рекомендуется пересчитать все таксонометрии командой:
Код: Выделить всёUPDATE wp_term_taxonomy tt
    SET count =
    (SELECT count(p.ID) FROM  wp_term_relationships tr
    LEFT JOIN wp_posts p
    ON (p.ID = tr.object_id AND p.post_type = 'product' AND p.post_status = 'publish')
    WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
)


Можно еще и так:
Код: Выделить всё$update_taxonomy = 'my_taxonomy';
$get_terms_args = array(
        'taxonomy' => $update_taxonomy,
        'fields' => 'ids',
        'hide_empty' => false,
        );

$update_terms = get_terms($get_terms_args);
wp_update_term_count_now($update_terms, $update_taxonomy);

но что-то не работает.....

Источник: https://stackoverflow.com/questions/186 ... -bulk-impo