Ich habe diese großartige Lösung gefunden, um verwandte Produkte basierend auf Produktattributen anzuzeigen, aber zusätzlich möchten wir dasselbe für Upsells tun.
Was ich bisher versucht habe, funktioniert nicht, da ich glaube, dass wir einige zusätzliche Informationen hinzufügen müssen, da die Funktion „related_products“ nicht mit Upsell identisch ist.
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; }
Also habe ich mich gefragt, ob es möglich wäre, dasselbe mit dem Upsell-Teil zu tun.
您可以删除默认操作挂钩
woocommerce_after_single_product_summary
并重新添加它,您可以自定义upsells
产品。检查下面的代码。代码将进入您的活动主题functions.php文件。将
$taxonomy = 'pa_color';
更改为您的自定义分类法。