单个产品页面上的向上销售产品以随机顺序呈现,而不是按照在管理界面中注册的顺序呈现。
所需的功能与管理界面中的顺序相同,那么应该如何以最快的方式实现呢?
答案 0 :(得分:4)
在函数文件中,执行以下操作:
删除“原始”升级显示
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
remove_action( 'woocommerce_after_single_product_summary', 'woo_wc_upsell_display', 15 );
根据您在管理界面中添加产品的订单添加自定义加售显示
add_action( 'woocommerce_after_single_product_summary', 'custom_wc_upsell_display', 15 );
if (!function_exists('custom_wc_upsell_display')) {
function custom_wc_upsell_display() {
woocommerce_get_template( 'single-product/up-sells.php', array(
'posts_per_page' => -1,
'orderby' => 'post__in',
'columns' => 3
));
}
}
实际发生的是,在向上销售模板中,args-array与各种其他参数(如post_type等)互补,其中一个参数是post__in
参数。该模板已经使用了一个以正确的顺序获取向上销售产品ID的函数,然后使用这个ID数组通过使用post__in
参数来限制结果。
诀窍是使用这个已经存在的信息。通过将orderby
参数设置为'post__in'
,查询将遵循post__in
参数中给出的顺序!