【问题标题】:Changing Woocommerce Order Status based on order notes根据订单备注更改 Woocommerce 订单状态
【发布时间】:2021-04-08 00:34:41
【问题描述】:

我一直在寻找一种方法来根据订单备注更改我们的 woocommerce 订单状态。我们有一个卡处理器,它会在订单获得批准时添加订单备注,但它会暂停订单,因为卡只被授权而不被收费。订单发货后,我们稍后会向卡收费,但我们需要订单进入“处理”状态,以便我们可以将订单导出到我们的系统中,以便我们实际处理订单(我们不通过 woocommerce 处理)。

我找到了这段代码,但我想知道是否可以修改它以提取订单备注中的内容,因为我们的处理器会添加卡片是否已被批准。

function mysite_woocommerce_payment_complete( $order_id ) {
    error_log( "Payment has been received for order $order_id" );
}
add_action( 'woocommerce_payment_complete', 'mysite_woocommerce_payment_complete', 10, 1 );

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    这是一个在处理中打开暂停订单状态的示例。您可以使用它,或者如果需要添加更多条件,请在此处提及或相应更新。谢谢

    function switch_hold_status_to_processing ($order_id) {
      $order = new WC_Order( $order_id );
      $order->update_status('processing');
    }
    add_action('woocommerce_order_status_on-hold', 'switch_hold_status_to_processing');
    

    【讨论】:

    • 这是所有订单,我只想要订单中有特定备注的。
    • 您可以通过wc_get_order_notes获取此功能中的所有订单,并检查订单内容是否与您的备注一致。
    • 或者在这里分享卡处理器笔记,我会在hook中设置条件与大家分享。
    • 我们希望确保只有订单备注包含以下短语的订单:“charge authorized (Charge ID:”
    【解决方案2】:

    您可以使用wc_get_order_notes($args)函数获取特定订单的订单备注。它返回一个订单注释数组。然后您可以遍历数组以找到您需要的订单注释。然后使用if 语句来验证订单备注的内容并更新状态。

    function mysite_woocommerce_payment_complete( $order_id ) {
        $order_notes = wc_get_order_notes([
            'order_id' => $order_id,
         ]);
        foreach ($order_notes as $order_note){
            if ($order_note->content == "Order verified"){
                $order = new WC_Order( $order_id );
                $order->update_status('processing');
                break;
            }
        }
        
    }
    add_action( 'woocommerce_payment_complete', 'mysite_woocommerce_payment_complete', 10, 1 );
    

    【讨论】:

    • 这一次能用吗?或者这是一个持续的事情,会自动改变新的暂停订单?
    • 这是一个持续的过程
    • 如果订单备注包含短语,而不是“等于”短语,我想执行此过程怎么办?我们的一些订单备注包含订单/费用 ID 等动态内容,因此我们只需要一个特定的短语。
    猜你喜欢
    • 2022-10-05
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2017-05-24
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多