Wordpress 以编程方式创建订单无效
我试图以编程方式创建商业订单。 它对登录的用户很好,但当我尝试使用来宾帐户创建它时,它就不起作用了。 这是我的密码Wordpress 以编程方式创建订单无效,wordpress,woocommerce,Wordpress,Woocommerce,我试图以编程方式创建商业订单。 它对登录的用户很好,但当我尝试使用来宾帐户创建它时,它就不起作用了。 这是我的密码 $cart = WC()->cart; $order_data = array( 'status' => apply_filters('woocommerce_default_order_status', 'pending'), 'customer_id' => get_current_user_id()
$cart = WC()->cart;
$order_data = array(
'status' => apply_filters('woocommerce_default_order_status', 'pending'),
'customer_id' => get_current_user_id()
);
$checkout = WC()->checkout();
$order_id = $checkout->create_order($order_data);
$order = wc_get_order( $order_id );
update_post_meta($order_id, '_customer_user', get_current_user_id());
$order->calculate_totals();
请帮忙
非常感谢问题是get_current_user_id()如果找不到用户,则返回0。当您将0作为客户id传递时,它将破坏创建订单 尝试:
然后创建您的订单。谢谢您的回复。但它不起作用。实际上,出于测试目的,我尝试了$order=wc_create_order();它也适用于登录用户,但不适用于来宾用户。不知道为什么。仅供参考,它是Woocommerce 3.7.0
$user_id = get_current_user_id();
if($user_id != 0){
$order_data = array(
'status' => apply_filters('woocommerce_default_order_status', 'pending'),
'customer_id' => get_current_user_id()
);
} else {
$order_data = array(
'status' => apply_filters('woocommerce_default_order_status', 'pending')
);
}