如何删除WooCommerce产品以外的特定自定义域?

时间:2018-05-15 作者:SeFi

我正在使用一个插件,为WooCommerce产品添加批发价格。

现在,我需要删除所有批发价格为空的产品,以便只保留我想保留在商店批发部分的产品。

不幸的是,WP不能像我想做的那样过滤,只显示那些批发产品,然后批量删除它们。

字段名称为wholesale_customer_wholesale_prices.

我怎样才能轻松做到这一点?

非常感谢

1 个回复
SO网友:kero

WooCommerce产品是一种称为product. 我们可以用它来开始查询帖子。现在你说你想找到那些帖子,要么没有带密钥的Posteta条目wholesale_customer_wholesale_prices 或具有空值项的项。

DELETE p
FROM wp_posts p
INNER JOIN wp_postmeta pm
ON
    (p.ID = pm.post_id
    AND
    pm.meta_key LIKE \'wholesale_customer_wholesale_prices\')
WHERE
    p.post_type LIKE \'product\'
    AND
        (
            pm.meta_value LIKE \'\'
            OR
            pm.meta_value IS NULL
        );
此查询将删除所有具有\'\' (空字符串)或NULL 作为关系的价值。

现在,你剩下的产品从未有过这种关系。

DELETE p
FROM wp_posts p
LEFT OUTER JOIN wp_postmeta pm
ON
    (p.ID = pm.post_id
    AND
    pm.meta_key LIKE \'wholesale_customer_wholesale_prices\')
WHERE
    p.post_type LIKE \'product\'
    AND
    pm.meta_key IS NULL;
当然,对于这样的直接db操作,您应该首先在测试环境中测试,而不是直接在实时站点上测试。这将仅删除中的条目wp_posts 表中,有许多插件/查询可用于在此之后清理数据库(例如,删除孤立的Posteta条目)

结束

相关推荐