Woocommerce在结帐之前先获取订单中的商品

时间:2019-07-17 00:43:58

标签: woocommerce hook-woocommerce woocommerce-bookings

我正在实现WordPress与其他网站之间的同步功能。我想在结帐期间处理订单之前将订单同步到我的其他站点。我也需要同步一个项目,但是我不知道该方法要使用什么钩子。

我尝试使用woocommerce_checkout_order_processed将该订单处理完毕并保存在数据库中。我想要一个挂钩,该挂钩仅能向我提供有关订单的一些信息,例如预订,项目和订单数据,然后再将其保存到数据库中。我需要这样做是因为如果同步过程中出现一些错误,我可以取消订单,并且该订单将不会保存在WordPress数据库中。

我尝试了woocommerce_checkout_process钩子。问题是我无法使用此代码获取商品。

function syncOrderAsEstimates($order_id) {
    $order = wc_get_order($order_id);
    $order->getItems(); // returns empty
}
add_action('woocommerce_checkout_process', 'syncOrderAsEstimates', 10, 1);

1 个答案:

答案 0 :(得分:1)

@Yves尝试使用此动作挂钩(/includes/class-wc-checkout.php):

/**
 * Action hook to adjust order before save.
 *
 * @since 3.0.0
 */
do_action( 'woocommerce_checkout_create_order', $order, $data );

谢谢