如何使用我的SQL查询删除woocommerce中的已完成订单

yes*_*hak 4 php mysql wordpress woocommerce

我想通过使用单个我的SQL查询删除woocommerce中已完成的所有订单.因为,我遇到了问题WordPress Dashboard.我无法从后端查看已完成的订单.它变得空白.我有7,823 Completed Orders.我希望这就是为什么我在看到白页的时候会看到白页Completed Orders.

有没有办法,我可以删除所有Completed Orders使用MySQL查询.所以,我可以运行它PHPMYADMIN.

有任何建议.

Mau*_*iah 12

我的解决方案就是删除所有订单(如果您从带有演示数据的商店搬到新网站).您可以使用以下SQL查询来执行此操作.

DELETE FROM wp_woocommerce_order_itemmeta
DELETE FROM wp_woocommerce_order_items
DELETE FROM wp_comments WHERE comment_type = 'order_note'
DELETE FROM wp_postmeta WHERE post_id IN ( SELECT ID FROM wp_posts WHERE post_type = 'shop_order' )
DELETE FROM wp_posts WHERE post_type = 'shop_order'
Run Code Online (Sandbox Code Playgroud)


小智 6

要最大程度地使用Woocommerce的本机功能,您可以按照以下方式进行操作。使用SQL将所有订单移至垃圾箱:

UPDATE wp_posts SET post_status = 'trash' WHERE post_type = 'shop_order';
Run Code Online (Sandbox Code Playgroud)

然后转到Woocommerce->订单->废纸 and,然后单击废纸。。

  • 对我来说似乎是一个很好的解决方案。除了“清空垃圾箱”例程如果有大量订单(在我的例子中超过 5000 个)时仍然容易触发脚本超时。 (2认同)
  • 36,000 个订单,只删除了 3000 个订单,每 10 分钟就出现 503 服务不可用 (2认同)

小智 5

我通过首先将所有相关订单设置为垃圾来解决这个问题:

\n\n
UPDATE wp_posts SET post_status = 'trash' WHERE post_type = 'shop_order';\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果按清空垃圾箱时有太多帖子需要浏览,并且收到 PHP 错误,则可以运行以下 SQL 来删除它们:

\n\n
DELETE FROM wp_posts\nWHERE post_type = 'shop_order' \nAND post_status = \xe2\x80\x98trash\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n


Wis*_*abs 3

Woocommerce 订单存储在post表、postmeta表、woocommerce_order_itemswoocommerce_order_itemmeta表中。订单的各个部分存储在不同的表中。除此之外,订单状态是通过taxonomies存储订单状态列表来管理的。任何正在/将要编写此查询的人都必须至少编写 5-6 个查询或单个大型连接查询。

因此,如果您没有更大的产品设置,我建议您应该卸载 WooCoommerce。为此,您可以点击此链接,这将删除数据