在 Woocommerce 中批量删除产品变体图片

Bulk remove product variation images in Woocommerce

在 Woocommerce 中(在我的例子中是 3.5.1),是否可以删除所有特定于变体的图像,以便当用户在产品页面中选择变体时图像不会改变?

我想要这个

而不是那个

在整个站点中。

您可以批量删除所有产品变体图像,例如使用 phpMyAdmin 进行直接 SQL 查询 (备份数据库之前):

UPDATE wp_postmeta as pm
JOIN wp_posts AS p ON pm.post_id = p.ID
SET pm.meta_value = ''
WHERE p.post_status = 'publish'
AND p.post_type = 'product_variation'
AND pm.meta_key = '_thumbnail_id'

或者您可以在自定义内置函数中使用此轻型 SQL 查询来删除所有变体图像 (或可选地仅删除相关的父变量产品 ID):

function remove_all_variations_images( $parent_id = 0 ){
    global $wpdb;

    $one_parent = $parent_id === 0 ? "" : "AND p.post_parent = $parent_id";

    return $wpdb->query("
        UPDATE {$wpdb->prefix}postmeta as pm
        JOIN {$wpdb->prefix}posts AS p ON pm.post_id = p.ID
        SET pm.meta_value = ''
        WHERE p.post_status = 'publish'
        AND p.post_type = 'product_variation'
        AND pm.meta_key = '_thumbnail_id' 
        $one_parent
    ");
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。

USAGE (备份数据库之前):

  1. 对于批量的所有变体图像,您将添加到您的 function.php 文件:

    remove_all_variations_images();
    

    然后保存并浏览您网站的任何页面。然后在完成后将其删除。


  1. 对于一种特定的可变产品(比如说可变产品 ID 72):

    remove_all_variations_images(72);
    

    然后保存并浏览您网站的任何页面。然后在完成后将其删除。

SQLLite 版本非常适合我。谢谢! 节省了我从 500 多种产品中手动删除变体图像的时间! 对于任何想知道的人,这就是我所做的。

  1. 登录到 WP 后端。
  2. 通过外观>主题编辑器找到 functions.php 文件>functions.php(您可以 select 通过单击左侧列表中的名称来文件。(在我的例子中)
  3. 一直滚动到底部,并粘贴@LoicTheAztec 给出的函数,就在 php 代码中。
  4. 保存文件并刷新网站。瞧!图片不见了!
  5. 删除了该功能,使其不保留 运行,并再次保存了文件。