Ajouter dans le panier uniquement les produits d’un même vendeur

Vous êtes en train de créer une marketplace avec WordPress / Woocommerce.
Et vous avez besoin d’ajouter une fonction qui oblige les acheteurs à acheter les produits du même vendeur ?
Alors pour cela, ajouter le code ci-dessous dans votre fichier functions.php de votre thème enfant.

				
					function filter_woocommerce_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = null, $variations = null ) {       
    // Cart NOT empty
    if ( ! WC()->cart->is_empty() ) {
        // Retrieves post data given a post ID or post object.
        $product = get_post( $product_id );
    
        // Post author
        $product_author = $product->post_author;
    
        // Flag, by default false
        $flag = false;

        // Loop trough cart
        foreach( WC()->cart->get_cart() as $cart_item ) {
            // Get product ID
            $cart_product_id = $cart_item['data']->get_id();

            // Get post
            $cart_product = get_post( $cart_product_id );
            
            // Post author
            $cart_product_author = $cart_product->post_author;
            
            // Condition NOT equal
            if( $cart_product_author != $product_author ) {
                $flag = true;

                // Break loop
                break;
            }
        }
        
        // True
        if ( $flag ) {
            // Add notice    
            wc_add_notice( __( 'Oups ! Les articles ajoutés dans le panier doivent provenir du même vendeur.', 'woocommerce' ), 'error' );

            // NOT passed
            $passed = false;
        }
    }
    
    return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'filter_woocommerce_add_to_cart_validation', 10, 5 );

				
			

Ensuite, vous pouvez changer le message que vous trouverez ici :

				
					// Add notice    
            wc_add_notice( __( 'Oups ! Les articles ajoutés dans le panier doivent provenir du même vendeur.', 'woocommerce' ), 'error' );
				
			

Testé sur WordPress 6.1 et Woocommerce 6.6.1 

Un nouveau projet WordPress ? Besoin d’aide ?

Contactez-moi ou visitez mon site et je me ferais un plaisir de vous aider. 

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur whatsapp
Partager sur email
Partager sur print

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Suivez-moi

Les derniers articles

Votre demande a bien été envoyé, merci.

Le délai de réponse peut varier de 24h à 48h.
Merci de votre compréhension

Besoin d'aide pour mon projet

Sujet :
Ajouter dans le panier uniquement les produits d’un même vendeur
Panier
  • Votre panier est vide.