PHP

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

Jean Rémi05 août 20222 min de lecture

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 […]

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. 

Besoin d'un code personnalisé ?

Vous avez un projet de développement web ?

Le meilleur moyen de savoir si nous pouvons vous aider, c'est d'en parler. Réservez un appel de 30 minutes avec notre équipe. Nous échangeons sur votre besoin, nous identifions les pistes possibles, et nous vous donnons une vision claire des prochaines étapes. Sans engagement.

Nous écrire