Supprimer les champs inutiles de facturation pour un produit virtuel Woocommerce

Vous vendez des produits virtuels sur votre site Woocommerce ?

Il est possible de supprimer les champs de la page commande qui ne sont pas utiles. Comme l’adresse de livraison et toutes les informations liées.

Pour cela, ajouter le code ci-dessous dans votre fichier “function.php” de votre thème enfant?

add_filter( 'woocommerce_checkout_fields' , 'bbloomer_simplify_checkout_virtual' );
 
function bbloomer_simplify_checkout_virtual( $fields ) {
    
   $only_virtual = true;
    
   foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
      // Check if there are non-virtual products
      if ( ! $cart_item['data']->is_virtual() ) $only_virtual = false;   
   }
     
    if( $only_virtual ) {
       unset($fields['billing']['billing_company']);
       unset($fields['billing']['billing_address_1']);
       unset($fields['billing']['billing_address_2']);
       unset($fields['billing']['billing_city']);
       unset($fields['billing']['billing_postcode']);
       unset($fields['billing']['billing_country']);
       unset($fields['billing']['billing_state']);
       unset($fields['billing']['billing_phone']);
       add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
     }
     
     return $fields;
}

Testé sur WordPress 5.5 et Woocommerce 4.8

Besoin d’aide pour intégrer ce code ?
Contactez-moi et je me ferais un plaisir de vous aider.

7 réponses

  1. Bonjour,
    Comment gérer 2 formulaires :
    1 —>produits virtuels, nb de champs allégés
    2—>produits physiques, tous les champs d’adresse pour livraison ?
    j’ai testé plusieurs plugin sans trouver de bonne réponse.
    Une piste ?
    Merci d’avance, cordialement.

    1. Bonjour, le code proposé sur cet article ne permet que d’enlever les champs sur l’ensemble des produits.
      Pour gérer 2 types de produits, il faut retravailler le code , cela peut être fait, mais sur devis.
      Si vous souhaitez obtenir un tarif, vous pouvez m’envoyer un email avec vos besoins à mon adresse : contact@jrwebconcept.fr
      Cordialement

      Jean Rémi

  2. Bonjour,

    J’ai une “erreur fatale”, puis-je vous adresser tous les éléments (txt de l’erreur et fichier fonction.php ?) afin de voir si possible de déterminer d’où vient cette terrible erreur qui semble ne perturber QUE la page de personnalisation du thème (génératePress) ???
    Cordialement,
    F

    nb site en préproduction

  3. Bonjour,
    J’ai testé votre code, et il fonctionne.
    Je relève toutefois un petit problème : si j’ajoute d’abord un produit virtuel au panier puis que je me rends sur la page de commande; mais que je décide alors de retourner sur la boutique pour ajouter un produit physique, les champs d’adresse se remplissent avec le terme “undefined”.
    Cordialement.

Laisser un commentaire

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

Suivez-moi

Les derniers articles

Bloquer des adresses email lors de l’inscription à Woocommerce

Afficher l’ID des catégories produits woocommerce dans le back-office

Votre réponse a bien été publiée

Suivez-moi

Les derniers articles

Bloquer des adresses email lors de l’inscription à Woocommerce

Afficher l’ID des catégories produits woocommerce dans le back-office

Votre demande a bien été envoyé, merci.

Le délai de réponse peut varier de 24h à 48h.
Merci de votre compréhension

J'ai besoin d'aide pour mon projet !

Sujet :
Supprimer les champs inutiles de facturation pour un produit virtuel Woocommerce