Comment simplifier le paiement des articles gratuits Thème Storefront

Publié: 2020-11-03

Storefront Simplifiez le paiement des articles gratuits Dans la plupart des magasins WooCommerce, les clients achètent des produits et versent le paiement après avoir procédé à la caisse. De plus, ils sélectionneront également une méthode d'expédition ou saisiront un code de coupon pour bénéficier d'une réduction.

Cependant, si vous offrez un article gratuit dans votre magasin, vous n'aurez peut-être pas besoin de tous les champs à la caisse. Cela signifie que vous ne collecterez aucun paiement d'expédition. Par conséquent, vous n'aurez peut-être pas besoin des détails de facturation, juste du nom et probablement d'un e-mail.

Storefront Simplifiez le paiement des articles gratuits

Il convient de mentionner que WooCommerce supprimera utilement la sélection du mode de paiement pour les paiements gratuits. Cependant, les champs de facturation sont toujours présents et obligatoires pour passer une commande : Détails de la facturation

Si vous vendez des produits virtuels gratuits, tels que l'adhésion gratuite, il serait préférable de simplifier le processus de paiement.

Si vous rencontrez ce problème, il est facile de vérifier si le paiement n'a pas de frais avec la vérification WC()->cart->needs_payment(). Je vais illustrer comment l'utiliser pour prendre quelques mesures pour simplifier le paiement gratuit de WooCommerce si aucun paiement n'est nécessaire. Nous devons supprimer certains champs de facturation sous condition.

Permettez-moi de vous guider à travers quelques étapes que vous pouvez suivre pour simplifier le paiement gratuit et le rassembler dans un extrait utilisable.

Étapes pour simplifier le paiement des articles gratuits

  1. Supprimer les formulaires de coupon

Vous n'avez pas besoin d'un formulaire de coupon si vous souhaitez bénéficier d'un paiement gratuit, car il n'y a rien à réduire. J'utiliserai ! WC()->cart->needs_payment() sous forme de chèque, qui supposera que le total de la commande est de 0 $, il n'y a donc pas de frais d'expédition ou de paiement de commande nécessaires. Pour supprimer en toute sécurité l'entrée du coupon, nous devons utiliser le code suivant :

 // supprimer les formulaires de coupon si vous ne voulez pas de coupon pour un panier gratuit

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
  1. Désactiver les notes de commande

Vous voudrez peut-être rassembler des notes de commande pour une commande gratuite. Cependant, la principale chose que nous essayons de faire est de simplifier le processus de paiement pour les clients de votre boutique WooCommerce. Je supprimerai toute la section « Informations supplémentaires » de la caisse. Cela peut être fait en utilisant le filtre woocommerce_enable_order_notes_field, car nous pouvons le définir sur false, donc il n'y a pas de notes de commande.

 // Supprimer les notes de commande "Informations supplémentaires"

add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
  1. Annuler les champs inutiles

Comme il s'agit d'une commande gratuite, nous n'avons pas besoin de débiter une carte de crédit. La plupart des champs de facturation de la caisse ne sont pas nécessaires. Cela signifie que je dois désactiver le champ d'achat dont je n'ai pas besoin. Vous pouvez trouver une liste des champs de paiement dans la documentation WooCommerce.

 // Annulez les champs que nous ne voulons pas dans un paiement gratuit

function unset_unwanted_checkout_fields( $fields ) {

// liste des clés du champ de facturation à supprimer

$billing_keys = tableau(

'entreprise_facturation',

'téléphone_facturation',

'Adresse de facturation 1',

'adresse_facturation_2',

'billing_city',

'billing_postcode',

'pays de facturation',

'état_facturation',

);

// supprime chacun de ces champs indésirables

foreach( $billing_keys as $key ) {

unset( $fields['billing'][$key] );

}

renvoie $champs ;

}

add_filter( 'woocommerce_checkout_fields', 'unset_unwanted_checkout_fields' );

Cependant, vous pouvez choisir les champs que vous souhaitez supprimer du formulaire de paiement.

  1. Ajouter le code

Voici les étapes pour ajouter le code dans le fichier functions.php du thème Storefront :

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l'éditeur de thème est ouverte, recherchez le fichier de fonctions de thème pour simplifier le paiement de l'article gratuit.
  3. Ajoutez le code suivant aux fonctions. php
 /**

 * Supprime le formulaire de coupon, les notes de commande et plusieurs champs de facturation si le paiement ne nécessite pas de paiement.

 *

 * NÉCESSITE PHP 5.3+

 *

  */

fonction sv_free_checkout_fields() {

            // d'abord, bail si WC n'est pas actif puisque nous sommes accrochés à un hook WP général

            si ( ! function_exists( 'WC' ) ) {

                        retourner;

            }

            // caution si le panier a besoin d'être payé, nous ne voulons rien faire

            if ( WC()->cart && WC()->cart->needs_payment() ) {

                        retourner;

            }

            // maintenant continuer uniquement si nous sommes à la caisse

            // is_checkout() a été cassé à partir de WC 3.2 dans le contexte ajax, revérifiez is_ajax

            // Je vérifierais WOOCOMMERCE_CHECKOUT mais les tests montrent qu'il n'est pas défini de manière fiable

            if ( function_exists( 'is_checkout' ) && ( is_checkout() || is_ajax() ) ) {

                        // supprimer les formulaires de coupon car pourquoi voudriez-vous un coupon pour un panier gratuit ? ?

                        remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );

                        // Supprimer les notes de commande "Informations supplémentaires"

                        add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );

                        // Annulez les champs que nous ne voulons pas dans un paiement gratuit

                        add_filter( 'woocommerce_checkout_fields', function( $fields ) {

                                    // ajoutez ou supprimez les champs de facturation que vous ne voulez pas

                                    // champs : http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-2

                                    $billing_keys = tableau(

                                                'entreprise_facturation',

                                                'téléphone_facturation',

                                                'Adresse de facturation 1',

                                                'adresse_facturation_2',

                                                'billing_city',

                                                'billing_postcode',

                                                'pays de facturation',

                                                'état_facturation',

                                    );

                                    // supprime chacun de ces champs indésirables

                                    foreach( $billing_keys as $key ) {

                                                unset( $fields['billing'][ $key ] );

                                    }

                                    renvoie $champs ;

                        } );

            }

}

add_action( 'wp', 'sv_free_checkout_fields' );
  1. Lorsque vous ajoutez l'intégralité du code, le paiement WooCommerce sera simplifié : paiement simplifié

Conclusion

En résumé, je vous ai guidé à travers les étapes de simplification du processus de paiement. J'ai expliqué les étapes en détail afin que vous puissiez comprendre le code. Cependant, vous devez noter que cet article présente des modifications de code ou des extraits que vous pouvez apporter dans votre fichier function.php de thèmes actifs. Si vous n'êtes pas familier avec cette tâche, veuillez engager un développeur WordPress.

Articles similaires