Toutes mes réponses sur les forums

20 sujets de 1 à 20 (sur un total de 43)
  • Auteur
    Messages
  • #549087
    El Condorito
    Participant
    Points: 205 pts

    Oui, avec un filtre the_author_posts_link ou en modifiant le template pour remplacer the_author_posts_link() par the_author().

    add_filter(‘the_author_posts_link’, function($link) {

        if (get_the_author_meta(‘ID’) == 5) {

            return get_the_author();

    }

    return $link;

    });

     

    ...
    #549010
    El Condorito
    Participant
    Points: 205 pts

    Salut,

    Ce problème est très courant, et tu as bien fait de stopper les inscriptions à la source. Avant de supprimer quoi que ce soit, fais absolument un backup complet de ta base de données. C’est la première étape non-négociable.

    Si tu utilises cPanel, va dans Sauvegarde et télécharge une copie complète. Si c’est Plesk, c’est dans Gestion de fichiers → Sauvegardes. Via phpMyAdmin directement, exporte ta base de données en fichier sql. Stocke ce fichier sur ton ordinateur en lieu sûr. Si quelque chose se passe mal pendant la suppression, tu pourras restaurer en quelques minutes.

    Une fois le backup en sécurité, tu peux continuer.

    Suppression des comptes spam

    Tu as deux approches selon le nombre de comptes à nettoyer.

    Méthode 1 : via l’interface WooCommerce

    Va dans Clients, trie par nom ou email (souvent des domaines génériques pour les bots). Sélectionne les comptes vides et supprime-les par lot si ton interface le permet.

    Méthode 2 : via une requête SQL (plus rapide en masse)

    En accédant à phpMyAdmin avec ton backup en sécurité, tu peux exécuter :

    DELETE FROM wp_users

    WHERE ID IN (

      SELECT user_id FROM wp_usermeta

      WHERE meta_key = ‘billing_first_name’

      AND meta_value =  »

    )

    AND user_registered > DATE_SUB(NOW(), INTERVAL 7 DAY);

    Cette requête supprime les utilisateurs créés dans les 7 derniers jours sans prénom (tu ajustes la date selon tes besoins).

    Prévention : bloquer les inscriptions spam à la source

    C’est là que tu gagneras vraiment du temps, et ça évitera de reproduire ce scénario.

    1. Activer la vérification d’email obligatoire

    Dans WooCommerce → Paramètres → Comptes, force les clients à confirmer leur email avant que le compte soit activé. Les bots remplissent rarement les étapes de confirmation.

    2. Ajouter un CAPTCHA

    Un plugin comme reCAPTCHA v3 (gratuit) sur le formulaire d’inscription bloque 90 % des bots sans que tes vrais clients ne voient rien. Google gère ça en arrière-plan.

    3. Limiter les inscriptions

    Si tu n’as pas besoin d’un grand volume d’inscriptions, désactive la création de compte automatique et exige un mot de passe fort lors de l’inscription. Les bots préfèrent les formulaires simples.

    4. Filtrer par domaine email

    Une règle simple : bloquer les emails provenant de domaines « jetables » ou suspects. Des plugins comme Mailmodo ou des règles personnalisées peuvent le faire.

    5. Un filtre PHP simple

    Si tu veux du sur mesure sans plugin supplémentaire, tu peux ajouter dans functions.php de ton thème une vérification basique :

    add_filter( ‘woocommerce_registration_errors’, ‘check_spam_email’ );

    function check_spam_email( $errors ) {
    $email = $_POST[’email’] ??  »;
    $blacklist = array( ‘tempmail.com’, ‘guerrillamail.com’, ’10minutemail.com’ );

        foreach ( $blacklist as $domain ) {
    if ( strpos( $email, $domain ) !== false ) {
    $errors->add( ’email_error’, ‘Ce domaine email n\’est pas accepté.’ );
    }
    }

        return $errors;
    }

    Chez nos clients, la combinaison reCAPTCHA + confirmation email obligatoire élimine déjà 95 % des inscriptions spam. Après ça, les vrais problèmes disparaissent, et tu peux te concentrer sur les vrais clients.

    Si tu veux vraiment être tranquille, je te conseille de commencer par activer la confirmation email (c’est natif dans WooCommerce, zéro plugin) et d’ajouter reCAPTCHA. Ça prend 30 minutes et tu n’auras plus ce problème.

     

     

    ...
    #548785
    El Condorito
    Participant
    Points: 205 pts

    Bonjour Philippe,

    J’espère que depuis le temps vous avez résolu le problème.
    Ce type de problème est plus fréquent qu’il n’y paraît, et il y a plusieurs pistes à explorer.

    La cause la plus courante : les zones de livraison

    WooCommerce conditionne l’affichage des moyens de paiement à la présence d’une méthode de livraison valide pour l’adresse du client. Si aucune zone de livraison ne couvre l’adresse du compte client (même si c’est la France), les moyens de paiement disparaissent. Vérifiez dans WooCommerce > Réglages > Livraison que vous avez bien une zone couvrant la France avec au moins une méthode active.

     

    Le compte client a-t-il une adresse complète ?

    WooCommerce peut bloquer le paiement si l’adresse de facturation du compte client est incomplète, même avec le bon pays. Connectez-vous avec le compte client concerné et vérifiez que l’adresse de facturation est entièrement renseignée (rue, ville, code postal, pays).

    Tester en mode invité

    Pour isoler le problème, essayez de passer une commande sans être connecté du tout (si la commande en tant qu’invité est activée). Si les moyens de paiement apparaissent en invité mais pas avec le compte client, le problème est bien lié au profil du compte.

    Conflit de plugin

    Si tout le reste est en ordre, désactivez temporairement les autres plugins (sauf WooCommerce) et retestez. Un plugin de sécurité, de cache ou de gestion des utilisateurs peut interférer.

     

    En premier réflexe, je parierais sur la zone de livraison manquante : c’est de loin la cause la plus fréquente de ce symptôme exact.

    ...
    #548782
    El Condorito
    Participant
    Points: 205 pts

    Bonsoir,

    Je viens de vous envoyer un mail.

    ...
    #548673
    El Condorito
    Participant
    Points: 205 pts

    Bonjour Marjolaine,

    Ce que vous décrivez n’existe pas vraiment en tant qu’extension « prête à l’emploi » sur le marché WooCommerce, du moins pas avec la combinaison complète de vos trois paramètres. Vous avez raison concernant Product Lead Time : c’est un outil de configuration statique, pas un moteur de calcul dynamique.

    Ce que l’on trouve dans les extensions existantes couvre généralement un ou deux de vos critères, mais rarement les trois ensemble. Certaines extensions gèrent les jours ouvrés et les jours fériés pour le calcul de livraison, d’autres permettent d’affecter un délai de fabrication par produit, mais aucune ne croise ces données avec la charge de production en cours, c’est-à-dire le nombre de commandes déjà dans le pipeline.

    Ce troisième paramètre est justement le plus complexe, car il suppose que le système « connaisse » votre capacité de production : combien de commandes vous pouvez traiter en parallèle, ou combien de temps chaque commande mobilise réellement vos ressources. C’est une logique métier qui varie d’un atelier à l’autre et qui nécessite donc un développement sur mesure.

    Ce que nous pourrions mettre en place concrètement :

    Un module WooCommerce personnalisé qui, au moment où le client consulte un produit ou passe commande, calcule automatiquement la date d’expédition estimée en tenant compte du délai de fabrication de base de ce produit, du nombre de commandes en attente ou en cours de fabrication, et d’un calendrier de production paramétrable (week-ends, jours fériés, fermetures exceptionnelles). Ce type de calcul peut également être affiché sur la fiche produit et dans les e-mails de confirmation, ce qui renforce la confiance de vos clients.

    Nous avons déjà travaillé sur des logiques similaires pour des artisans et fabricants qui vendent en ligne. C’est le genre de projet qui demande une bonne compréhension de votre process de production avant d’écrire la moindre ligne de code.

    Bien cordialement

    ...
    #548160
    El Condorito
    Participant
    Points: 205 pts

    Salut,

    J’ai fait ça pour un client. A une date donnée, il se rend sur la place de telle ou telle ville.

    Les utilisateurs ont juste à sélectionner ce mode de livraison, choisir parmi les choix possibles (il peut également sélectionner directement sur un carte). L’avantage c’est que c’est gratuit pour le client final.

     

    Je te laisse voir le résultat : barf-dogs.fr

    Fais semblant de commander un produit, et tu verras le résultat durant le checkout.

     

     

    ...
    #547044
    El Condorito
    Participant
    Points: 205 pts

    Pour compléter cet excellent guide, je viens de publier un ebook (le « livre papier » devrait suivre sous peu).
    Disponible sur Amazon.fr. Cherchez Le Manuel WooCommerce.
    370 pages de conseils concrets pour la mise en place et la gestion de votre boutique en ligne.

    ...
    #546447
    El Condorito
    Participant
    Points: 205 pts

    Salut,

    Tu peux utiliser ce code :

    .nice-shadow {
        background: #fff;
        border-radius: 10px;
        margin: 30px auto;
        padding: 10px;
        display: block;
        box-shadow: 0 2px 6px #24242d0f,0 2px 60px #24242d1f;
    }
    

    Puis il te suffit de l’appliquer à ton image, en ajoutant dans le HTML,  class= »nice-shadow ».
    Bien sûr tu peux éditer le code CSS à ta convenance, mais je trouve qu’ainsi le rendu est pas mal du tout.

    Tu pourras en voir un exemple sur cette page : agence woocommerce.

    • Cette réponse a été modifiée le il y a 3 mois par El Condorito.
    ...
    #546440
    El Condorito
    Participant
    Points: 205 pts

    Salut Pauline !

    Je comprends ta frustration – c’est clairement un souci de compatibilité mobile avec ce plugin. Le fait que ça marche parfaitement sans le plugin, mais que les cercles de couleur ne déclenchent pas le changement d’image sur mobile, c’est très révélateur.

    voici ce que tu peux essayer :

    vider le cache Vide le cache du navigateur mobile (ou teste en navigation privée). Les plugins de cache WooCommerce peuvent parfois servir une version « figée » du JavaScript sur mobile.

    Vérifier la console mobile Sur ton téléphone (Chrome ou Firefox), appuie sur F12, va dans l’onglet Console et dis-moi s’il y a des erreurs rouges quand tu cliques sur un cercle de couleur. C’est souvent très révélateur.

    tester un seuil de viewport Certains plugins de galerie ne chargent pas correctement leur JavaScript sur les petits écrans. Tu peux essayer de forcer une résolution desktop en ouvrant l’inspecteur et en basculant en mode responsive design.

    désactiver les plugins de cache/optimisation Je sais que tu as déjà tenté, mais essaie cette combinaison :

    • Désactive tous les plugins sauf WooCommerce et Product Gallery Slider
    • Vide tous les caches (navigateur + serveur + plugin de cache s’il y en a un)
    • Teste de nouveau sur mobile

    Regarder le fichier functions.php Il y a parfois du code qui bloque les événements tactiles sur mobile. Tu peux me partager un extrait si tu le souhaites.

     

    Le problème vient probablement d’une incompatibilité entre le système d’événements du plugin et les events tactiles mobiles (touchstart/touchend vs click). C’est une cause classique pour ce genre de souci.

    ...
    #546439
    El Condorito
    Participant
    Points: 205 pts

    Ah, un classique ! C’est une question WooCommerce récurrente que j’ai rencontrée plusieurs fois avec mes clients.

    Le problème vient de la façon dont WooCommerce calcule les frais de port. Par défaut, il compare le montant avant application des codes promo avec votre seuil de livraison gratuite. Du coup, si quelqu’un achète pour 30 €, applique un code qui ramène le total à 20 €, la livraison gratuite s’applique quand même puisque le panier initial dépassait 25 €.

    Pour résoudre ça, tu as deux approches :

    1. Via les conditions de livraison (la plus simple)

    Allez dans Réglages > Livraison > Zones de livraison, éditez votre zone, puis cliquez sur votre méthode de livraison. Dans les conditions d’application, modifiez le seuil en cochant « Panier ex. remises » au lieu de « Panier brut ». Attention : cette option n’existe que si vous utilisez des méthodes natives ou certains plugins spécialisés.

    2. Via un hook PHP (la plus fiable)

    C’est la solution que je préconise généralement. Vous ajoutez ce code dans le fichier functions.php de votre thème enfant (ou via Code Snippets) :

    add_filter( 'woocommerce_shipping_package_rates', function( $rates, $package ) {
        $cart_total = WC()->cart->get_subtotal() - WC()->cart->get_discount_total();
        
        foreach ( $rates as $rate_key => $rate ) {
            if ( strpos( $rate->method_id, 'free_shipping' ) !== false ) {
                if ( $cart_total < 25 ) {
                    unset( $rates[ $rate_key ] );
                }
            }
        }
        return $rates;
    }, 10, 2 );
    

    Ce code recalcule le montant du panier après les remises et masque la livraison gratuite si le total final est inférieur à 25 €.

     

    Si ton thème ou plugin supporte l’option native, utilisez-la (moins de code = moins de maintenance). Sinon, le hook PHP est fiable et facilement adaptable si vous devez ajuster le seuil plus tard.

    ...
    #546230
    El Condorito
    Participant
    Points: 205 pts

    Bonjour,

    Personnellement, j’utilise WP-ALL-Import.

    Difficile de faire mieux.

    ...
    #543490
    El Condorito
    Participant
    Points: 205 pts
    #543326
    El Condorito
    Participant
    Points: 205 pts

    Salut Inès,

    Tu peux utiliser LocoTranslate, si tu souhaites redéfinir la traduction du plugin.

    Hooks et fonctions WooCommerce

    ...
    #541366
    El Condorito
    Participant
    Points: 205 pts

    Bonjour,

    Tu as déjà fait pas mal de tests, que j’aurai faits également.
    Peut-être cela vient-il de ta passerelle de paiement ?
    Peut-être est-elle mal configuré ou les appels ajax / REST sont trop lents.

    Essaye de désactiver celle(s)-ci et de mettre en place le « paiement à la livraison » ou « paiement par chèque », histoire de voir si cela vient de là.

    Cordialement,

    ...
    #532500
    El Condorito
    Participant
    Points: 205 pts

    Salut,

    Tout dépend du plugin de mailing utilisé. Personnellement, je n’utilise pas Mailerlite.

    Voici à peu près le code :

    
    add_filter('woocommerce_package_rates', 'custom_free_shipping_based_on_vendor', 10, 2);
    
    &nbsp;
    
    function custom_free_shipping_based_on_vendor($rates, $package) {
    
    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
    
    $product_id = $cart_item['product_id'];
    
    $vendor_id = get_post_field('post_author', $product_id); // Assuming vendors are authors
    
    &nbsp;
    
    // Ici, il te faudra sûrement personnaliser la fonction :
    
    $is_registered = get_user_meta($vendor_id, 'newsletter_registered', true);
    
    &nbsp;
    
    if ($is_registered) {
    
    // Apply free shipping
    
    foreach ($rates as $rate_id => $rate) {
    
    if ('free_shipping' === $rate->method_id) {
    
    $rates[$rate_id]->cost = 0;
    
    }
    
    }
    
    }
    
    }
    
    return $rates;
    
    }
    ...
    #532369
    El Condorito
    Participant
    Points: 205 pts

    Salut,

    Pour un client, j’ai eu la même problématique.
    Il te suffit de créer une catégorie de produit, par exemple « dons » (dans mon cas c’était des « bons cadeaux », qui pour des raisons comptables n’étaient affectés au même compte bancaire).

    Et d’interroger si les produits présents dans le panier appartiennent à cette catégorie, au moment du checkout. Si catégorie « dons » : proposer tel paiement.
    Sinon autre paiement.

    Cela sous-entend aussi que tu dois gérer les exceptions, c’est-à-dire le cas, peu probable, mais qu’il faut néanmoins envisager où des utilisateurs ont dans leur panier des produits de la catégorie dons… mais pas que.

    Dans ce cas on affiche un message d’erreur et on désactive les boutons de validations (panier et checkout).

    ...
    #531929
    El Condorito
    Participant
    Points: 205 pts

    Salut Max,

    J’ai trouvé ton site. 😉

    Déjà tu utilises ecwid ET WooCommerce.
    A ma connaissance c’est l’un ou l’autre. C’est un peu comme si tu hésitais entre le vélo et la voiture pour aller chercher le pain….

    Cela créé certainement des conflits. Et peut-être ce bug. Donc essaye de désactiver l’un des deux.

    @+

    ...
    #531810
    El Condorito
    Participant
    Points: 205 pts

    Oui, un thème est juste une base, encore heureux que tu peux modifier les images.

    Et Oui, il te faudra alors passer par un plugin de type « membership », il y en a plusieurs, par exemple « ultimate membership », et peut-être des plugins plus axés « WooCommerce », comme WooCommerce memberships.

    ...
    #531807
    El Condorito
    Participant
    Points: 205 pts

    Tu devrais fournir un exemple de page live (une URL de ton site) où cela se produit.

    Si tu as changé de thème, cela provient sûrement de l’un de tes plugins. Essaye de tout désactiver, puis réactive-les un par un pour trouver le coupable.

    ...
    #531368
    El Condorito
    Participant
    Points: 205 pts

    Oui, j’ai eu le même problème, suite à la mise à jour du thème OceanWP que j’utilise aussi pour un de mes clients.

    Cordialement,

    ...
20 sujets de 1 à 20 (sur un total de 43)