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. 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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