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

Posted

技术标签:

【中文标题】WooCommerce:结帐订单处理钩火问题【英文标题】:WooCommerce: Checkout order processed hook fire issue 【发布时间】:2019-11-12 13:44:08 【问题描述】:

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

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

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

那么您有什么想法可以防止在首次点击立即付款按钮期间创建通知吗?

【问题讨论】:

【参考方案1】:
add_action( 'woocommerce_new_order', 'create_order_pending_notification' );
function create_order_pending_notification( $order_id ) 
    create_notification();

【讨论】:

【参考方案2】:

我正在介绍“付款柜台”:

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 );
    

【讨论】:

以上是关于WooCommerce:结帐订单处理钩火问题的主要内容,如果未能解决你的问题,请参考以下文章

php 结帐:隐藏订单备注#woo #hide

如何在 woo commerce 的结帐表单字段中删除额外的 div html 类

php 结帐:重命名“下订单”按钮#woo #rename #reg

Woocommerce:结帐页面后获取订单ID [重复]

更改 Woocommerce 中的结帐订单审查部分

更改 Woocommerce 结帐端点以显示订单摘要详细信息