【问题标题】:Woocommerce - Call custom function after payment is completedWoocommerce - 支付完成后调用自定义函数
【发布时间】:2014-05-23 14:26:31
【问题描述】:

我在某个项目中使用 Woocommerce,付款后我需要将订单 ID 发送到某个远程站点。我没有找到准确的钩子来做到这一点。谁能帮我找到在订单完成后执行某些操作的正确钩子。

这是我尝试过的

add_action( 'woocommerce_thankyou', 'woo_remote_order' );

function woo_remote_order( $order_id ) {

// Lets grab the order
$order = new WC_Order( $order_id );


//Some action to make sure its working.

wp_mail( 'sagarseth9@example.com',' Woocommmerce Order ID is '.$order_id , 'Woocommerce order' );

}

不确定哪个是执行此操作的正确挂钩。我正在使用paypal支付网关进行支付,订单成功通过。

【问题讨论】:

  • 我实际上建议使用 PayPal IPN 而不是在 WooCommerce 中这样做。 IPN 将在付款完成、退款、处于待处理状态、从待处理状态清除、争议离开等时触发。它不仅涵盖原始订单,而且是一个非常有用的工具。

标签: php wordpress paypal woocommerce


【解决方案1】:

看起来你需要在最后一个参数上添加accepted_args, 试试这个:

add_action( 'woocommerce_thankyou', 'your_func', 10, 1 );

function your_func($order_id) {

    $order = new WC_Order( $order_id );
    /* Do Something with order ID */
}

【讨论】:

    【解决方案2】:
    add_action( 'woocommerce_subscription_payment_complete', 'YourFunction', 1, 2);  
    function YourFunction ($order_id)
      {
      $order = new WC_Order( $order_id );
      wp_mail( 'sagarseth9@example.com',' Woocommmerce Order ID is '.$order_id , 'Woocommerce order' );
    
      }
    

    add_action 调用必须放在插件的最开头,如果使用 wordpress 或主题,则在 functions.php 中。

    【讨论】:

      【解决方案3】:

      也许可以尝试以下方法之一。

      • woocommerce_checkout_order_processed
      • woocommerce_new_order

      【讨论】:

        猜你喜欢
        • 2016-11-22
        • 2020-09-16
        • 2016-02-22
        • 2017-03-02
        • 2017-08-05
        • 2014-06-06
        • 1970-01-01
        • 2023-03-03
        • 2016-08-20
        相关资源
        最近更新 更多