【问题标题】:Bulk remove product variation images in Woocommerce在 Woocommerce 中批量删除产品变体图像
【发布时间】:2019-04-07 08:11:14
【问题描述】:

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

我想要这个

而不是那个

在整个网站中。

【问题讨论】:

    标签: php sql wordpress woocommerce variations


    【解决方案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);
      

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

    【讨论】:

    • 嘿 @LoicTheAztec 你是最棒的 ;) 我使用了 php/sql 版本,它运行良好。非常感谢!
    • @LoicTheAztec - 我无法为我的生命工作。我已经尝试了函数选项以及直接 SQL 解决方案。直接 SQL 解决方案显示“0 行受影响”。自从你第一次写这篇文章以来,任何东西的命名是否发生了变化?这是我的查询的摘要,其中还显示了更新的数据库表名>snippi.com/s/7p6fwru。非常感谢您的帮助,因为这将节省大量时间,谢谢!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多