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

时间:2018-11-03 07:49:55

标签: php sql wordpress woocommerce variations

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

我想要这个

enter image description here

而不是那个

enter image description here 在整个网站中。

2 个答案:

答案 0 :(得分: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文件中。

使用情况 (在备份数据库之前)

  1. 对于所有批量制作的图片,您将添加到function.php文件中:

    remove_all_variations_images();
    

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


  1. 对于一种特定的变量产品(假设变量产品ID为72):

    remove_all_variations_images(72);
    

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

答案 1 :(得分:0)

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

  1. 登录到WP后端。
  2. 通过“外观”>“主题编辑器”>“ functions.php”找到functions.php文件(您可以通过单击左侧列表中的名称来选择文件。(以我为例)
  3. 一直滚动到底部,然后将@LoicTheAztec提供的功能粘贴到php代码中。
  4. 保存文件并刷新站点。瞧!图片消失了!
  5. 删除了该功能,使其无法继续运行,然后再次保存了文件。