【问题标题】:Status of the Woocommerce order change from processing to complete after the order is placed with COD?使用 COD 下订单后,Woocommerce 订单的状态从处理变为完成?
【发布时间】:2018-02-20 09:27:16
【问题描述】:

我有一个在线商店,客户可以在其中下订单,并以 COD 付款方式完成。它与我们的仓库管理集成在一起,它将在一天结束时将所有订单从站点导出到系统。 订单位置的状态正在处理中。 我正在尝试制作一个 php cron 作业,其中所有这些订单的订单状态在导出订单列表时设置为已完成。

我查看了各种解决方案,并且都在下订单时更改了订单状态,而我希望在数据导出后稍后再更改。

如果有人可以帮助我使用 php 函数将 woocommerce 中的所有订单设置为在某个触发器上“完成”,我将非常感激。

【问题讨论】:

  • 您从哪里导出订单?
  • 从 woocommerce 导出已下订单。
  • 来自 WooCommerce > 报告 > 订单,然后导出 CSV 对吗?所以需要找到生成此报告时触发的钩子。
  • 嗨 Raunak,不,它的自定义 csv 再次基于 cron 作业。
  • 那么您就有了答案,在该 cron 作业中调用一个自定义函数,该函数会将订单状态更新为 wc-complete

标签: wordpress woocommerce cron


【解决方案1】:

在您的 cron 函数中,您可能有一个循环来获取需要导出的订单 ID,因此只需将订单 ID 传递给给定函数,它会将订单状态更新为 wc-complete,您还可以传递一个如果需要,请订购备注。

function wh_mark_order_as_omplete($order_id, $note = '')
{
    //this check is option if you do not need this you can remove it.
    //for COD order only
    if ('cod' != get_post_meta($order_id, '_payment_method', true))
        return;

    $order = wc_get_order($order_id);

    if (empty($note)):
        $order->update_status('completed');
    else:
        $order->update_status('completed', $note);
    endif;
}

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2019-06-01
    • 2021-07-26
    • 2018-02-09
    • 2022-10-14
    • 2016-08-04
    • 2017-04-23
    • 1970-01-01
    • 2017-05-24
    相关资源
    最近更新 更多