gpt4 book ai didi

mysql - Woocommerce 批量更改订单状态

转载 作者:可可西里 更新时间:2023-11-01 09:00:25 28 4
gpt4 key购买 nike

我目前在使用 WooCommerce 网站时遇到了一些问题。有成千上万的旧订单停留在“处理中”状态。这些订单已收到付款,产品已发货。

我想将这些订单标记为已完成而不发送已完成的订单电子邮件。我想使用以下 SQL 查询来实现这一点。

update wp_posts set post_status = 'wc-completed' where post_type = 'shop_order' and post_status ='wc-processing' ;

我是否也需要更改其他表,或者这行得通吗?

谢谢

编辑:上面的代码非常适合我。

最佳答案

如果您只是更改订单状态,则不需要更新任何其他表格。请注意,您也可以在 WordPress 中实现此目的:

$args = array(
'post_type' => 'shop_order',
'posts_per_page' => -1,
'post_status' => 'wc-processing',
);

$orderList = get_posts($args);

foreach ($orderList as $orderPost) {
$order = new WC_Order($orderPost->ID);
$order->update_status('completed');
}

...尽管在这种情况下直接 SQL 查询几乎肯定会更快。

此外,如果您想在付款后自动将订单转换为已完成,您可以添加以下过滤器:

function myWooAutoCompleteOrder($orderID) {

// Only continue if we have $orderID

if (!$orderID) {
return;
}

// Get order

$order = wc_get_order($orderID);

// Update order to completed status

if ($order) {
$order->update_status('completed');
}
}

add_filter('woocommerce_thankyou', 'myWooAutoCompleteOrder');

关于mysql - Woocommerce 批量更改订单状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324394/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com