Comment mettre à jour le prix du produit par programme dans WooCommerce

Publié: 2020-10-10

Voulez-vous apprendre à mettre à jour le prix du produit par programmation dans WooCommerce ? Dans ce guide, nous vous montrerons comment modifier les prix dans WooCommerce sans utiliser de plugins ni installer d'outils supplémentaires.

Si vous les utilisez intelligemment, les remises peuvent vous aider à améliorer vos taux de conversion et à augmenter vos ventes. Il existe plusieurs façons de mettre en place des remises sur votre boutique e-commerce. Par exemple, vous pouvez appliquer des coupons WooCommerce par programme.

Cependant, vous pouvez également mettre à jour le prix du produit sans utiliser de coupons . Par exemple, vous pouvez accorder une remise exclusive aux utilisateurs abonnés à votre newsletter ou ayant dépensé plus de 100 $ dans votre boutique.

Dans ce guide, vous apprendrez à modifier le prix lorsque les clients ajoutent un produit au panier sans utiliser de coupons et en accédant directement à l'objet panier WooCommerce. Nous allons examiner quelques exemples et appliquer une certaine logique lors de la mise à jour du prix. L'objectif est que vous compreniez la logique afin de pouvoir personnaliser les scripts et les appliquer à votre boutique.

Comment mettre à jour le prix du produit par programmation dans WooCommerce

Dans cette section, vous apprendrez à mettre à jour le prix du produit par programmation dans WooCommerce . Nous allons examiner différents exemples pour vous donner quelques idées de ce que vous pouvez faire dans votre magasin.

  1. Mettre à jour le prix du produit lorsqu'une case est cochée
    1. Ajouter le champ de saisie de la case à cocher à la page des produits
    2. Mettre à jour le prix lorsqu'un utilisateur ajoute un produit au panier
    3. Recalculer le prix total du panier
  2. Modifier le prix du produit en fonction des rôles d'utilisateur
  3. Mettre à jour le prix du produit en fonction de la taxonomie du produit

Gardez à l'esprit que nous utiliserons plusieurs crochets WooCommerce, c'est donc une bonne idée de consulter ce guide si vous ne les connaissez pas.

Avant de commencer…

Avant de commencer, comme nous apporterons des modifications à certains fichiers principaux, nous vous recommandons d'installer un thème enfant sur votre site. Si vous n'avez pas de thème enfant et que vous ne savez pas comment l'installer, consultez notre guide pour créer un thème enfant ou notre liste des meilleurs plugins de thème enfant.

NOTE : Pour appliquer ces scripts, copiez-les et collez-les dans le fichier functions.php du thème enfant. Cependant, gardez à l'esprit qu'ils sont uniquement destinés à des fins didactiques, alors personnalisez-les avant de les mettre en production.

1) Mettre à jour le prix du produit lorsqu'une case est cochée

Dans l'exemple de script suivant, nous ajouterons une case à cocher dans le formulaire de panier sur la page du produit . De cette façon, nous pouvons appliquer une logique personnalisée et mettre à jour dynamiquement le prix de tout produit que les clients ajoutent au panier uniquement lorsque la case est cochée. Comment mettre à jour le prix du produit par programme dans WooCommerce

1.1 Ajouter le champ de saisie de la case à cocher à la page des produits

Avant de mettre à jour le prix du produit WooCommerce par programme, ajoutons la case à cocher à la page des produits . Pour cela, copiez et collez simplement le script suivant :

 add_action('woocommerce_after_add_to_cart_button', 'add_check_box_to_product_page', 30 );
fonction add_check_box_to_product_page(){ ?>     
       <div>           
<label for="extra_pack"> <?php _e( 'Emballage supplémentaire', 'quadlayers' ); ?>
<input type="checkbox" name="extra_pack" value="extra_pack"> 
</label>
                    
</div>
     <?php
}

Le crochet woocommerce_after_add_to_cart_button nous permet d'imprimer la case à cocher juste après le bouton comme indiqué dans l'image ci-dessus.

1.2 Mettre à jour le prix lorsque l'utilisateur ajoute un produit au panier

Une autre option intéressante consiste à mettre à jour le prix dynamiquement lorsque les clients ajoutent un produit à leur panier . Donc, dans ce cas, pour mettre à jour le prix par programmation dans WooCommerce, collez simplement ce script juste après le précédent.

 add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);
 
function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
     // obtenir l'identifiant et le prix du produit
    $product = wc_get_product( $product_id );
    $prix = $produit->get_price();
    // case à cocher pack supplémentaire
    if( ! empty( $_POST['extra_pack'] ) ) {
       
        $cart_item_data['new_price'] = $prix + 15 ;
    }
retourner $cart_item_data ;
}

woocommerce_add_cart_item_data est le crochet WooCommerce qui nous permettra de modifier le prix du produit actuel. De plus, la if() vérifie si la case est cochée ou non, et si c'est le cas, met à jour le prix dans la ligne suivante. Maintenant, décomposons le code pour mieux comprendre ce que fait chaque partie.

  • extra_pack est le nom de la case à cocher que nous avons créée à l'étape précédente
  • $price est le prix actuel du produit. On peut le modifier comme on veut avec certaines conditions
  • $cart_item_data['new_price'] = $price + 15; est la façon dont nous augmentons le prix de 15 $ lorsque la if() est vraie, c'est-à-dire lorsque l'utilisateur sélectionne la case à cocher d'emballage supplémentaire. En ajustant le code, vous pouvez choisir d'augmenter ou de diminuer le prix du montant que vous souhaitez.

1.3 Recalculer le prix total du panier

Étant donné que nous pouvons appeler plusieurs fois le crochet woocommerce_add_cart_item_data lors du chargement du panier, nous devons recalculer les totaux et les sous-totaux du panier pour éviter des résultats indésirables tels que des prix mis à jour plusieurs fois ou chaque fois qu'un utilisateur ajoute un produit. Pour mettre à jour le produit, collez le code suivant après les deux précédents :

 add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 );
 
function before_calculate_totals( $cart_obj ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
retourner;
}
// Itérer à travers chaque élément du panier
foreach( $cart_obj->get_cart() as $key=>$value ) {
if( isset( $value['new_price'] ) ) {
$prix = $value['nouveau_prix'] ;
$value['data']->set_price( ( $price ) );
}
}
}

Cette fonction garantit que nous ne mettons à jour le prix que lorsqu'un produit correspond à notre logique conditionnelle (que l'utilisateur coche la case d'emballage supplémentaire). De cette façon, nous évitons toutes les erreurs possibles lors du calcul du prix total du panier. Mettre à jour le prix du produit par programme dans WooCommerce - Frais supplémentaires

Le prix du produit augmente de 15 $

Si tout s'est bien passé et que le panier répond aux conditions que nous avons définies, notre fonction ajoutera des frais supplémentaires de 15 $ au prix d'origine lorsque l'utilisateur coche la case sur la page du produit, avant de cliquer sur le bouton Ajouter au panier.

Pour éviter l'abandon de panier et améliorer l'expérience d'achat, vous devez toujours afficher le nouveau prix avant que les clients n'ajoutent les produits à leur panier. Sinon, ils ne verront que le prix final sur la page de paiement.

2. Modifiez le prix du produit en fonction des rôles des utilisateurs

De même, nous pouvons mettre à jour le prix du produit WooCommerce par programmation en fonction des rôles des utilisateurs . Par exemple, vous pouvez accorder aux utilisateurs abonnés ou enregistrés une remise exclusive. Pour cela, copiez et collez le script suivant :

 function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
    // obtenir l'identifiant et le prix du produit
   $product = wc_get_product( $product_id );
   $prix = $produit->get_price();
   if(// Est connecté && est le rôle du client
       is_user_logged_in()==true&& wc_current_user_has_role( 'client' )){
       
        $cart_item_data['new_price'] = $price * 0.8 ;
   }
retourner $cart_item_data ;
}
add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);

Comme vous pouvez le voir, la seule différence entre ce script et le précédent au point 1.2 est l'opérateur logique if() . Ici, nous vérifions si l'utilisateur est connecté ou non et s'il a un rôle de client, que nous attribuons aux utilisateurs enregistrés qui ont déjà acheté dans notre boutique.

Lorsqu'un acheteur remplit cette condition, nous multiplions le prix du produit par 0,8 , ce qui lui accorde une remise de 20 %. Bien sûr, vous pouvez modifier les rôles d'utilisateur et les changer pour d'autres tels que l'abonné, l'éditeur ou tout autre rôle que vous avez enregistré sur votre site Web.

Notez que pour fonctionner correctement, vous devez également utiliser la fonction 'before_calculate_totals' et son crochet pour recalculer les totaux du panier. Il suffit donc d'utiliser recalculer le prix total du script de panier que nous avons vu à l'étape 1.3.

3. Mettre à jour le prix du produit en fonction de la taxonomie du produit

Enfin, dans WooCommerce, nous pouvons également mettre à jour dynamiquement le prix du produit par programmation en fonction des taxonomies de produits . Pour ce faire, examinons le script suivant.

 add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);
 
function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
     // obtenir l'identifiant et le prix du produit
    $product = wc_get_product( $product_id );
    $prix = $produit->get_price();
    $terms = get_the_terms( $product_id, 'product_cat' );
    // Correspondance de catégorie ! appliquer la remise
    if($terms[0]->name=='Affiches'){                    
        $cart_item_data['new_price'] = $prix + 20 ;
     }   
retourner $cart_item_data ;
 
}

Dans cet exemple, nous obtenons la catégorie du produit qui a été ajouté au panier à l'aide de la fonction intégrée WordPress get_the_terms() . Dans la ligne suivante, nous appliquons notre conditionnel pour récupérer la catégorie du produit en utilisant $terms[0]->name . Ainsi, si le produit appartient à la catégorie Affiches, nous augmentons le prix de 20 $.

Il s'agit d'un exemple de script que vous pouvez prendre comme base et le modifier pour modifier à la fois la taxonomie et le montant que vous souhaitez ajouter ou déduire du prix.

Enfin, rappelez-vous que vous devez utiliser la fonction 'before_calculate_totals' et son crochet correspondant comme nous l'avons fait à l'étape 1.3.


Comme vous pouvez le voir, le savoir-faire de l'utilisation des fonctions conditionnelles et WordPress/WooCommerce fournira un moyen extrêmement flexible de mettre à jour les prix des produits par programmation. Ce ne sont là que quelques exemples pour vous donner une idée de ce qui est possible.

Cependant, vous pouvez faire beaucoup plus pour libérer votre créativité et trouver de nouvelles façons de modifier le prix de vos produits. Par exemple, vous pouvez appliquer des remises sur des ID de produit spécifiques, en fonction de l'URL d'où proviennent les utilisateurs, en fonction de l'emplacement ou de l'ID des utilisateurs, etc. Les possibilités sont infinies, alors jouez avec le script et trouvez les meilleures solutions pour votre magasin.

NOTES FINALES

  • Ces exemples de scripts aux points 1, 2 et 3 ne fonctionneront pas ensemble. Vous devrez affiner votre logique en une seule si vous souhaitez appliquer plusieurs fonctions en même temps
  • Vous devrez peut-être inclure des fonctions de validation supplémentaires pour une logique conditionnelle plus complexe
  • Appliquez toujours une fonction de recalcul - comme vu au point 1.3 - lorsque vous travaillez avec l'objet panier WooCommerce
  • Ce sont des exemples de scripts et sont destinés à des fins didactiques uniquement. Veuillez les ajuster avant de les mettre en production

Conclusion

Dans l'ensemble, apprendre à mettre à jour le prix du produit par programme dans WooCommerce peut vous donner beaucoup de flexibilité. Vous pouvez accorder des remises aux utilisateurs abonnés, ajouter des frais si les clients souhaitent un emballage supplémentaire ou une livraison rapide, etc. Et la meilleure partie est que vous n'avez pas besoin d'installer de plugins pour le faire.

Dans ce guide, nous avons vu différents exemples pour modifier dynamiquement le prix par programmation. Cependant, ce n'est que la pointe de l'iceberg. WooCommerce vous offre des possibilités infinies, nous vous recommandons donc de jouer et de personnaliser les scripts.

Si vous avez des questions sur les scripts, faites-le nous savoir dans les commentaires ci-dessous. Nous serons heureux de vous aider.

Enfin, si vous souhaitez améliorer votre processus de paiement, consultez notre guide pour optimiser le processus de paiement.