由于各种原因,网上商店需要允许访客订单,但如果电子邮件已注册,则将数据保存到现有用户。但是,一个产品(父变量产品)不应该购买两次。在这种情况下,客户应该返回结帐页面并收到该产品已购买的通知。
到目前为止,我有以下代码(不完整):
add_action('woocommerce_checkout_process', function () {
if (!is_user_logged_in() && $_POST['billing_email'] && $_POST['createaccount'] == 1) {
$user = get_user_by('email', $_POST['billing_email']);
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if (!empty($user)){
if (wc_customer_bought_product($user->user_email,$user->ID,$product_id))
return false;
wp_set_current_user($user->ID);
}
if (!empty($user)) {
if (wc_customer_bought_product($user->user_email,$user->ID,$product_id))
return true;
exit;
}
else{
///guest, continue
}
}}});
但这只给出了内部服务器错误。
任何人?
慕慕森