我发现this great solution可以根据产品属性显示 * 相关产品 *,但我们还希望对我们的追加销售执行同样的操作。
到目前为止,我所尝试的方法还不起作用,因为我认为我们必须添加一些额外的信息,因为related_products函数与upsell不同。
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;
}
所以我想知道是否有任何可能性做同样的向上销售部分。
1条答案
按热度按时间biswetbf1#
你可以删除默认的动作钩子
woocommerce_after_single_product_summary
并重新添加它,你可以自定义upsells
产品。检查下面的代码。代码将进入你的活动主题functions.php文件。将
$taxonomy = 'pa_color';
更改为您的自定义分类。