挂钩woococommerce_checkout_order_processed订单项目发布



我正在做一个WooCommerce项目。我需要在我的自定义表中添加一些基于已订购项目的条目。如果用户订购了3个项目,那么这3个条目将与一些数据一起放在我的自定义表中。

为此,我使用了woocommerce_checkout_order_processed钩子。但我遇到了一些问题,如果用户在购物车和结账页面上添加了4个项目,如果用户删除了除一个项目外的所有项目,最终只订购了一个项目,那么在这个挂钩中,我也得到了所有4个项目。我在这个钩子里没有得到最后订购的商品。

所以我把钩子改成了woocommerce_thankyou。但在某些情况下,由于某些原因,用户没有出现在感谢页面或某些信用卡付款上,此挂钩不起作用

所以,有人能告诉我,无论是否付款,在下单后都可以运行的最佳挂钩吗?而且我应该只得到订购的商品。我的WooCommerce版本是3+

代码:

function wc_function($order_id) {
global $wpdb;
$order = new WC_Order($order_id);
$items = $order->get_items();
foreach ($items as $item_line_id => $item) {
// Insert data in my custom table
}
}
//add_action('woocommerce_checkout_order_processed','wc_function', 10, 3);
//add_action('woocommerce_thankyou', 'wc_function', 10, 1);

谢谢!

woocommerce_checkout_order_processed上的do_action正好传递三个参数,其中第三个是$order本身。所以试着用

function wc_function($order_id, $posted_data, $order) {
$items = $order->get_items();
foreach ($items as $item_line_id => $item) {
// Insert data in my custom table
}
}

add_action('woommerce_checkout_order_processed','getswift_deliver_thankyou',10,1(;add_action('woommerce_thankou','getswift_deliver_thankou],10,1(;

你可以用这个钩子,它对我有用。。。如果你有任何问题,请与我讨论,我们将解决

最新更新