这是我的解决方案。在我的情况下,“相关产品”部分没有意义(因为商店已经按照类别进行了组织),所以我删除了标准相关产品部分,并用相同的模板重新添加了它,但通过将模板输入交叉销售而不是相关产品。该部分仍然显示“相关产品”,外观相同,但填充了交叉销售产品。
// Remove "related Products"
remove_action( \'woocommerce_after_single_product_summary\', \'woocommerce_output_related_products\', 20 );
// Show cross-sells using related template on single product page
// see https://docs.woocommerce.com/wc-apidocs/source-function-woocommerce_related_products.html#1264-1296
function wc_output_cross_sells() {
$crosssells = get_post_meta( get_the_ID(), \'_crosssell_ids\', true );
$args = array(
\'posts_per_page\' => 2,
\'columns\' => 2,
\'orderby\' => \'rand\',
\'order\' => \'desc\',
);
$args[\'related_products\'] = array_map( \'wc_get_product\', $crosssells );
// Set global loop values.
$woocommerce_loop[\'name\'] = \'related\';
$woocommerce_loop[\'columns\'] = apply_filters( \'woocommerce_related_products_columns\', $args[\'columns\'] );
wc_get_template( \'single-product/related.php\', $args );
}
add_action(\'woocommerce_after_single_product_summary\', \'wc_output_cross_sells\', 30);