WooCommerce codex:如何在订单上设置用户/客户

时间:2017-04-03 07:29:22

标签: php wordpress woocommerce

我正在编写一个WooCommerce插件,负责支付和交付 现在我正在根据当前的购物车创建订单 一切正常,项目和成本正确,唯一的问题是订单显示为由#34; Guest" 而不是当前登录的用户(即使该用户的正确电子邮件地址在订单上。

这是我的代码:

    $cart = WC()->cart;
    $checkout = WC()->checkout();
    $order_id = $checkout->create_order();
    $order = wc_get_order( $order_id );
    $order->user_id = apply_filters( 'woocommerce_checkout_customer_id', get_current_user_id() );
    $order->calculate_totals();
    $order->payment_complete(); 
    $cart->empty_cart();

这是我在运行之后在后端看到的内容:

enter image description here

为什么下订单为"来宾"而不是下订单的用户?
如何安装正确的用户?

2 个答案:

答案 0 :(得分:5)

您需要将_customer_user添加到包含订单ID的post_meta表,并且元值应该是您要链接到此订单的用户ID。

我希望这会对你有所帮助:

update_post_meta($order_id, '_customer_user', get_current_user_id());

答案 1 :(得分:1)

OR

wc_create_order();中使用用户/客户ID(在下订单前创建客户/用户)

例如:$order = wc_create_order(array('customer_id' => $user));

此代码对我来说不错!