[Fermé] Problème d'exclusion de catégorie sur la page boutique en utilisant WooCommerce
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Sun
Mon
Tue
Wed
Thu
Fri
Sat
-
6:00 – 12:00
8:00 – 12:00
6:00 – 12:00
8:00 – 12:00
6:00 – 12:00
-
-
13:00 – 15:00
13:00 – 17:00
13:00 – 15:00
13:00 – 17:00
13:00 – 15:00
-
Fuseau horaire du support : America/Lima (GMT-05:00)
Je rencontre un problème sur mon site WooCommerce multilingue géré avec WPML où j'essaie d'exclure une catégorie spécifique de produits de la page boutique (Shop) dans toutes les langues. J'utilise la méthode recommandée par WooCommerce, comme décrit dans cet article : Excluding a Category from the Shop Page.
Problème rencontré :
La fonction que j'ai implémentée fonctionne correctement pour la langue principale du site, mais elle ne semble pas avoir d'effet dans la langue secondaire. J'ai vérifié et confirmé que les slugs et les ID des catégories sont corrects et bien appliqués dans le code. La fonction reconnaît correctement qu'elle est exécutée sur la page boutique grâce à is_shop(), mais l'exclusion via la tax_query ne fonctionne que pour la langue principale.
Voici le code utilisé :
php
Copy code
function exclude_specific_category_from_shop($query) {
if (!is_admin() && $query->is_main_query() && is_shop()) {
$tax_query = (array) $query->get('tax_query');
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array('oem', 'oem-en', 'oem-de'), // Remplacez 'oem' par le slug de votre catégorie à exclure.
'operator' => 'NOT IN',
);
$query->set('tax_query', $tax_query);
}
}
add_action('woocommerce_product_query', 'exclude_specific_category_from_shop', 10);
Détails supplémentaires :
Le slug utilisé est correct et identique dans toutes les configurations linguistiques.
Les produits sont correctement classifiés sous les catégories concernées.
Aucun problème de cache n'a été détecté.
La fonction semble bloquer au niveau de l'application de la tax_query pour les langues secondaires.
Je me demande s'il existe des spécificités liées à WPML qui pourraient affecter la manière dont les tax_queries sont gérées ou si j'ai manqué une configuration spécifique pour WPML.
Pourriez-vous m'aider à comprendre pourquoi cette fonction ne fonctionne pas pour les langues secondaires et comment je pourrais résoudre ce problème?
Je vous remercie par avance pour votre assistance et reste à votre disposition pour tout complément d'information.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Merci d'avoir contacté le support de WPML.
Voici quelques points à essayer:
1. !is_admin()
Pensez bien à regarder depuis un autre navigateur ou à vous déconnecter pour que cette fonction s'applique pour vous
2. Term_ID
Pourriez vous essayer avec le term_id au lieu du slug?
'field' => 'term_id',
'terms' => array('1,2,3'), // adaptez les IDs
Je vous remercie pour votre temps et vos suggestions.
J'ai suivi vos conseils en retirant la condition !is_admin() et en essayant avec le term_id pour identifier les catégories. Cependant, je constate que seule la page du catalogue dans la langue principale exclut correctement la catégorie spécifiée. Les versions dans les autres langues ne semblent pas appliquer cette exclusion comme prévu.
Pourriez-vous m'indiquer d'autres pistes à explorer ou des ajustements possibles pour résoudre ce problème dans les configurations multilingues?
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Pourriez vous me dire comment accéder à cette page shop/catalogue car si je clique directement sur Catalogue c'est un PDF et si je clique sur "Voir tous les produits" j'attéri sur une page "catalogue" mais il n'y a aucune catégorie ou produits, seulement un formulaire à remplir.
Faut-il être connecté à un compte pour avoir accès? Pourriez vous me donner temporairement accès à votre admin – de préférence sur une copie test de votre site où le problème a été reproduit - afin que je puisse voir cela par moi même?
J'ai activé un champ privé pour votre prochaine réponse où vous pourrez partager ces informations de manière confidentielle avec notre support. Ne partagez pas votre propre compte admin, créez un nouveau compte que vous pourrez éliminer une fois l'assistance terminée.
IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Merci pour l'accès. Le problème viens du fait que vous utilisez les option de "Fallback" (Traduisible - utiliser la traduction si elle est disponible ou revenir à la langue par défaut) pour vos produits et les catégories de produits. Cette option modifie totalement la query.
Si vous passez à "Traduisible - afficher uniquement les éléments traduits" vous verrez que vos 2 fonctions fonctionnent correctement dans les autres langues.
PS: j'ai fait une fausse traduction du produit KIT RETROFIT PERCE-OPERCULE DENT H5 juste pour m'assurer qu'au moins un produit de cette catégorie existait en Anglais.
Le sujet « [Fermé] Problème d'exclusion de catégorie sur la page boutique en utilisant WooCommerce » est fermé aux nouvelles réponses.