WooFrance Dépannage et support WordPress WooCommerce › Forums › Les plugins WordPress WooCommerce › Trier par attribut
Étiqueté : sort by order attribut
- Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par Guy, le il y a 5 années et 5 mois.
-
AuteurMessages
-
24 juin 2019 à 15 h 23 min #128574
Bonjour,
J’aimerai que mes produits soit ordonnés selon un de leurs attributs, connaissez-vous un plugin capable de faire cela ?
J’ai essayé de modifier le fichier function.php avec un « pa_attribut-name », ou$args_sort_cw['orderby'] = 'meta_value_num'; $args_sort_cw['order'] = 'desc'; $args_sort_cw['meta_key'] = 'attribut-name';
mais je n’arrive pas à modifier l’ordre de tri.
Auriez vous des pistes pour m’aider ?
Merci d’avance24 juin 2019 à 16 h 00 min #128578Bonjour,
Une solution non, une piste peut-être 😉
https://www.cloudways.com/blog/woocommerce-product-sort-and-display/
Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂
Avant d'appeler à l'aide: Dépannage Woocommerce
Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !
24 juin 2019 à 16 h 19 min #128581Merci pour votre retour Guy,
J’avais testé leur code, mais je dois mal l’intégrer je suppose..
J’ai deux attributs de tri possible « connexion-type » et « material »
J’ai donc testé de mettre ce code dans mon fichier function.php :function cw_add_postmeta_ordering_args( $args_sort_cw ) { $cw_orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ); switch( $cw_orderby_value ) { case 'material': $args_sort_cw['orderby'] = 'meta_value_num'; $args_sort_cw['order'] = 'desc'; $args_sort_cw['meta_key'] = 'material'; break; case 'connexion-type': $args_sort_cw['orderby'] = 'meta_value'; $args_sort_cw['order'] = 'asc'; $args_sort_cw['meta_key'] = 'connexion-type'; break; } return $args_sort_cw; } add_filter( 'woocommerce_get_catalog_ordering_args', 'cw_add_postmeta_ordering_args' ); function cw_add_new_postmeta_orderby( $sortby ) { $sortby['connexion-type'] = __( 'Sort By Connexion Type', 'woocommerce' ); $sortby['material'] = __( 'Sort By Material', 'woocommerce' ); return $sortby; } add_filter( 'woocommerce_default_catalog_orderby_options', 'cw_add_new_postmeta_orderby' ); add_filter( 'woocommerce_catalog_orderby', 'cw_add_new_postmeta_orderby' );
J’ai également tenté de rajouter :
function cw_shop_display() { global $product; $connexion_type = get_post_meta( $product->id, 'connexion-type', true ); $material = get_post_meta( $product->id, 'material', true ); if ( ! empty( $connexion_type ) ) { echo '
Connexion type : ' . $connexion_type . ''; } if ( ! empty( $material ) ) { echo 'Material : ' . $material . ''; } if ( $product->get_sku() ) { echo 'SKU: ' . $product->get_sku() . ''; } } add_action( 'woocommerce_after_shop_loop_item', 'cw_shop_display', 9 );Mais quand je sélectionne « Sort By Connexion Type »/ »Sort By Material » l’ordre ne change pas, et en réactualisant la page j’ai le message « Aucun produit ne correspond à votre sélection. »..
J’ai du mal à comprendre si le problème viens de ma manière d’intégrer le code ou si cela viens du code en lui même..24 juin 2019 à 17 h 12 min #128591Euh là, il va falloir attendre qu’un développeur veuille bien passer…
Je vois seulement
'meta_value_num'
num suppose des nombres donc à mon avis c’est à modifier
A part ça regarde si ceci peut t’inspirer:
https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_ParametersContent(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂
Avant d'appeler à l'aide: Dépannage Woocommerce
Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !
1 user thanked author for this post.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.