Activation de la livraison gratuite sur Woo Commerce par des éléments spécifiques [fermé]


8

Je voudrais savoir s'il est possible d'activer la livraison gratuite avec Woo Commerce uniquement si certains articles (ou des articles de certaines catégories / classes d'expédition) sont inclus dans le panier.

L'option de livraison gratuite ne s'active que sur la base de la valeur du panier ou via un code de réduction.J'ai donc étudié l'expédition à tarif forfaitaire et découvert qu'elle priorise la classe d'expédition la plus chère sur les moins chères. Cela signifie que la classe de livraison gratuite que j'ai créée ne remplace jamais les frais par défaut.

Je comprends la logique derrière cela, mais c'est l'opposé de ce dont j'ai besoin car l'idée est d'inciter à l'achat de produits à marge bénéficiaire plus élevée en éliminant les frais de livraison lorsqu'ils sont inclus dans une commande.

Je ne sais pas si ce que j'essaie de réaliser n'est tout simplement pas possible au sein de Woo Commerce. Un coupon qui ne s'applique qu'à certains produits / catégories semble être le plus proche que je peux obtenir, mais je préfère ne pas forcer les utilisateurs à entrer un code lors du paiement.

Est-ce que quelqu'un sait s'il existe des moyens plus simples d'offrir aux utilisateurs qui achètent certains produits la livraison gratuite?


3
Comment diable cette question liée au plugin Wordpress , votée 8 fois et favorisée 3 fois par les développeurs Wordpress, a- t-elle été fermée comme "hors sujet" Oo
Ben

@Ben parce que c'est un plugin WooCommerce, et non une question spécifique à WordPress (comme indiqué dans le centre d'aide )
Alexander Holsgrove

Réponses:


1

Peut-être que cela ne répond pas complètement à votre question, mais le plugin d'expédition de taux de table vous donne la possibilité de définir une priorité pour un taux particulier. De plus, cette discussion donne beaucoup d'indices sur les endroits où vous pourriez chercher des solutions


Merci. En regardant la documentation pour le tarif d'expédition de la table, il semble qu'il fera ce dont j'ai besoin. Si mon employeur demande la licence, je mettrai à jour si elle est utile.
James O'Neill du

Veuillez ne pas publier de liens vers des ressources externes. Invoquez-les plutôt ici et utilisez le lien en haut. Si le lien disparaît, la réponse est inutile et nous nous battons durement pour empêcher la pourriture des liens. -1
kaiser

5

Est-ce que quelqu'un sait s'il existe des moyens plus simples d'offrir aux utilisateurs qui achètent certains produits la livraison gratuite?

En fait, lors de la création d'un produit, vous pouvez simplement le marquer en tant que produit virtuel directement dans l'éditeur de produit et cela exclura complètement l'expédition de cet article.


1
Cela fonctionne pour des produits simples, mais pas pour d'autres types de produits - variables, par exemple. Bien essayé quand même. Cela fonctionnera probablement pour certaines personnes.
Alexander Lee Williams

Pourquoi cela ne fonctionne-t-il pas pour les produits variables? Vous pouvez marquer chaque variation comme virtual.
BFTrick

J'accepte @BFTrick
Nathan

1
C'est également mauvais parce que le système n'accédera pas à l'adresse de livraison du client, ce qui est assez important;)
Kane

2

Voici un extrait de certains Gists extrait d'une discussion sur un problème GitHub lié par @Ewout dans une autre réponse. J'ai ajouté un var_dump(), afin que vous puissiez décommenter et vérifier exactement ce que vous souhaitez supprimer.

$available_methodsest un arrayde:

$available_methods as $method_id => $method

Comparez $method_idsi vous avez besoin de vérifications plus spécifiques.

// Hide standard shipping option when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'wpse90835_hide_standard_shipping_when_free_is_available' );
/**
 *  Hide Standard Shipping option when free shipping is available
 * 
 * @param array $available_methods
 */
function wpse90835_hide_standard_shipping_when_free_is_available( $available_methods )
{
    // Developers!: Dump this to see what you can unset
    # var_dump( $available_methods );

    // remove standard shipping option
    if ( 
        isset( $available_methods['free_shipping'] ) 
        AND isset( $available_methods['flat_rate'] )
    )
        unset( $available_methods['flat_rate'] );


    return $available_methods;
}

2

J'ai créé un plugin WooCommerce qui permet aux utilisateurs de configurer des paramètres avancés pour la livraison gratuite. Dans le plugin, il est possible de sélectionner certains produits pour la livraison gratuite.

Vous pouvez trouver le plugin gratuitement sur wordpress.org appelé WooCommerce Advanced Free Shipping

J'espère que cela t'aides.


0

Basé sur le code de Kaiser (ci-dessus), j'ai créé le code suivant:

    /**
 *  Hide free shipping option when Standard Shipping is available
 * 
 * @param array $available_methods
 */
function mwe_hide_free_shipping_when_standard_shipping_is_available($available_methods) {

    // remove standard shipping option
    if (isset($available_methods['free_shipping']) AND isset( $available_methods['flat_rate'])) {
        unset($available_methods['free_shipping']);
    }

    return $available_methods;
}
add_filter('woocommerce_available_shipping_methods', 'mwe_hide_free_shipping_when_standard_shipping_is_available');

Et à tour de rôle de configurer WooCommerce, la livraison gratuite et le tarif forfaitaire sont tous deux activés dans les options d'expédition Woo. Ensuite, je viens de configurer une classe d'expédition, de spécifier son coût (par exemple, 7,95 £) dans la page des options de taux forfaitaire, puis d'ajouter simplement cette classe d'expédition aux produits pour lesquels je veux facturer 7,95 £ p & p.


0

L'option "virtuelle" supprimera tous les frais d'expédition, mais elle supprime également l'option d'expédier à une adresse différente de l'adresse de facturation du client. Ce n'est pas un problème si le client achète également d'autres produits non virtuels, mais si c'est la seule chose qu'il achète.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.