gpt4 book ai didi

php - 付款前在结账页面获取订单ID

转载 作者:行者123 更新时间:2023-12-05 09:18:49 27 4
gpt4 key购买 nike

在 WooCommerce 中,我需要在 WooCoommerce 的结帐页面中获取订单 ID在创建订单时支付之前。

我查看所有 session 并试图找出订单何时在 order_awaiting_payment session 中进行付款,但在付款之前我需要它。
因此,我考虑了一种解决方案,即在结账页面加载时下订单(实际上使其准备好付款)并在结账真正完成时更新它。

如何在 WooCommerce 中付款前在结账页面获取订单 ID?

我认为这里有一些钩子(Hook),但我找不到。

最佳答案

您可以使用 Hook 在 woocommerce_checkout_order_processed 中的自定义函数 Action Hook 。
从woocommerce 3.0+版本开始,这里是对应的核心代码位于process_checkout()功能。

// Since WooCommerce version 3.0+
do_action( 'woocommerce_checkout_order_processed', $order_id, $posted_data, $order );

WooCommerce 3.0 及以下版本:

// Since WooCommerce version 2.1+ (before version 3.0+)
do_action( 'woocommerce_checkout_order_processed', $order_id, $this->posted );

所以根据您使用的 woocommerce 版本有 2 种情况:

Since WooCommerce 3.0+ you can use 2 additional arguments in your hooked function and you will not need to create an instance of the order object as you get $order already as an argument.
You will be able also to access the posted data directly through $posted_data argument.

add_action('woocommerce_checkout_order_processed', 'action_checkout_order_processed', 10, 3);
function action_checkout_order_processed( $order_id, $posted_data, $order ) {
// Do something
}

Since WooCommerce 2.1+ (Before WooCommerce 3.0), you have only the $order_id as argument, so you might be need to get an instance of $order object with wc_get_order() function:

add_action('woocommerce_checkout_order_processed', 'action_checkout_order_processed', 10, 1);
function action_checkout_order_processed( $order_id ) {
// get an instance of the order object
$order = wc_get_order( $order_id );

// Do something
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

关于php - 付款前在结账页面获取订单ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43316644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com