我的问题围绕着新的 WooCommerce 订单状态草案的挂钩。当客户将产品添加到购物车并查看购物车/结帐时,就会发生这种情况,并且它会一直保持到下订单为止,此时它会更改为待付款或正在处理。
我错过了什么?我欢迎对代码的所有批评,因为它只是一个简短的片段,更是一个解决方案。如果需要更多信息,请询问。有关我在这里谈论的状态的更多信息:https://developer.woocommerce.com/2020/11/23/introducing-a-new-order-status-checkout-draft/
我已经成功地与其他状态合作过,例如
function track_order_draft_duration($orderID, $old_status, $new_status) {
//Order details
global $woocommerce;
$order = new WC_Order($orderID);
if ($new_status == 'processing') {
$msg = "something";
}
}
add_action('woocommerce_order_status_changed', "track_order_draft_duration", 10, 3);
尝试使用下面的代码片段来了解订单状态 -
checkout-draft
function wc_track_order_draft_duration( $order ) {
// Check for flag already set or not.
$has_draft_logged = get_post_meta( $order->get_id(), '_draft_duration_logged', true );
if ( $order->has_status( 'checkout-draft' ) && ! $has_draft_logged ) {
// Do your log related code here.
// And make sure to set a flag with order ID which prevent to override log.
// So it will logged only once init of draft order created.
// Once your task is done, set flag for future preventation.
update_post_meta( $order->get_id(), '_draft_duration_logged', true );
}
}
add_action( 'woocommerce_store_api_checkout_update_order_meta', 'wc_track_order_draft_duration' );