WooCommerce:结帐订单已处理的钩火问题

时间:2019-07-01 23:12:17

标签: php wordpress woocommerce

我的WooCommerce功能之一有问题。这是功能:

add_action( 'woocommerce_checkout_order_processed', 'create_order_pending_notification' );
function create_order_pending_notification( $order_id ) {
    create_notification();
}

因此,当用户按下结帐按钮时,将触发挂钩并触发订单创建通知。如果他现在取消付款,PayPal会将用户重定向回结帐。如果他现在再次按结帐按钮,则两次创建相同的通知。

那么您是否有想法阻止仅在“立即付款”按钮单击期间创建通知?

2 个答案:

答案 0 :(得分:1)

add_action( 'woocommerce_new_order', 'create_order_pending_notification' );
function create_order_pending_notification( $order_id ) {
    create_notification();
}

答案 1 :(得分:0)

我要介绍“付款柜台”:

add_action( 'woocommerce_checkout_order_processed', 'create_order_pending_notification' );
function create_order_pending_notification( $order_id ) {
    $payment_counter = (int) get_post_meta( $order_id, 'payment_counter', true );
    if ( empty( $payment_counter ) ) {
        update_post_meta( $order_id, 'payment_counter', 1 );
        create_notification();
    } else {
        update_post_meta( $order_id, 'payment_counter', ++ $payment_counter );
    }
}