2017-10-14 22 views
0

Mon exigence est que, je veux permettre à permettre seulement le client sélectionné peut acheter certains produits particuliers. Les autres clients ne peuvent pas acheter ce produit. J'ai cette liste d'identification de tous les e-mails des clients. Lors de la validation de la commande, le client ajoute son adresse e-mail à l'adresse de facturation. Si cet ID correspond à l'ID de courrier électronique, autorisez uniquement l'achat de ce produit. Mais côté frontal sur la page de paiement et sur la page de mon compte, j'ai désactivé la connexion et l'enregistrement. Donc, tous les clients sont invités. Donc, sans restriction de rôle de l'utilisateur, comment c'est possible?Autoriser le produit woocommerce à acheter pour un client sélectionné seulement

Tout le monde connaît cette solution alors s'il vous plaît aidez-moi.

Merci.

Répondre

1

Vous pouvez essayer ce code, il limitera les autres utilisateurs à l'achat sur votre site. Il permettra seulement aux clients sur votre liste d'identification d'email d'acheter,

add_action('woocommerce_after_checkout_validation' , 'add_user_email_restriction', 10, 2); 

function add_user_email_restriction($data, $errors) { 

    $valid_emails = get_available_email_addresses(); 
    // should be in array format 

    if(isset($data[ 'billing_email' ]) && !empty($data[ 'billing_email' ])) { 
     if(!in_array($data[ 'billing_email' ], $valid_emails)) { 
      $errors->add('email', __('You are not allowed to purchase.', 'text-domain')); 
     } 
    } 
} 
function get_available_email_addresses() { 
    return array('[email protected]','[email protected]'); 
} 
+0

Comment puis-je placer au-dessus du code pour un seul produit particulier? – Ketan

+0

Dans ce cas, vous devez aller chercher le contenu du panier et vérifier si ce produit particulier est présent dans le panier ou non et si d'autres produits sont autorisés ou non. –

+0

J'ai compris. Problèmes résolus – Ketan