J'ai trouvé cette excellente solution pour afficher les produits associés en fonction des attributs du produit, mais nous souhaitons également faire de même pour les ventes incitatives.
Ce que j'ai essayé jusqu'à présent ne fonctionne pas car je pense que nous devons ajouter des informations supplémentaires car la fonction Related_products n'est pas la même chose que la vente incitative.
add_filter( 'woocommerce_upsell_products', 'upsell_products_by_attribute', 10, 3 ); function upsell_products_by_attribute( $upsells, $product_id, $args ) { $taxonomy = 'pa_attribute'; $term_slugs = wp_get_post_terms( $product_id, $taxonomy, ['fields' => 'slugs'] ); if ( empty($term_slugs) ) return $upsells; $posts_ids = get_posts( array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'posts_per_page' => 6, 'post__not_in' => array( $product_id ), 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $term_slugs, ) ), 'fields' => 'ids', 'orderby' => 'rand', ) ); return count($posts_ids) > 0 ? $posts_ids : $upsells; }
Je me demandais donc s'il était possible de faire la même chose avec la partie upsell.
Vous pouvez supprimer les crochets d'action par défaut
woocommerce_after_single_product_summary
并重新添加它,您可以自定义upsells
pour les produits. Vérifiez le code ci-dessous. Le code ira dans le fichier function.php de votre thème actif.Modifiez
$taxonomy = 'pa_color';
votre taxonomie personnalisée.