支付过程
在WooCommerce之前获取结帐页面顺序ID,我需要得到order ID
权WooCoommerce,付款前的结账页面,创建订单时。支付过程
我看所有的会议,并试图找出在订货时则用在了order_awaiting_payment
会话付费,但我才去付款需要它。
所以我想一个解决方案,使顺序加载结帐页面时(事实上使其准备金)和结帐时实际完成更新。
如何之前,为了获得在结帐页面顺序ID去在WooCommerce付款?
我认为有一些挂钩这一点,但我不能找到它。
您可以使用woocommerce_checkout_order_processed
行动钩勾住了自定义的功能。
由于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);
所以有2案件取决于你所使用的woocommerce版本:
由于WooCommerce 3.0+可以使用2您的挂钩功能中的其他参数,您将不需要创建订单对象的实例,因为您获得
$order
已经作为一个参数。
您可以还直接通过$posted_data
参数来访问发布的数据。
add_action('woocommerce_checkout_order_processed', 'action_checkout_order_processed', 10, 3);
function action_checkout_order_processed($order_id, $posted_data, $order) {
// Do something
}
由于WooCommerce 2.1+(WooCommerce 3之前。0),你只有
$order_id
作为参数,所以你可能会需要得到$order
物体wc_get_order()
功能实例:
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文件您的活动孩子主题(或主题)或任何插件文件中。
如果你只是看看class-wc-checkout.php
文件的行号935,你会看到有一个动作woocommerce_checkout_order_processed
其通过$order_id
作为参数。
所以这应该为你工作:
add_action('woocommerce_checkout_order_processed', 'wh_pre_paymentcall');
function wh_pre_paymentcall($order_id) {
//create an order instance
$order = wc_get_order($order_id);
//$payment_method = $order->payment_method_title;
//$status = $order->get_status();
// write your custom logic over here.
}
代码放在functions.php
文件的活跃儿童主题(或主题)的。或者也可以在任何插件php文件中使用。
相关问题:WooCommerce Get Order Product Details Before Payment in Plugin(也可以参考意见)
希望这有助于!
感谢您的回复,但实际上我需要将order_id传递给结帐页面中的iframe,所以我需要在结帐页面加载时访问它。我认为这个钩子在付款之前就会采取行动,并且当我想要这个钩子时不能访问order_id –