WooCommerce以随机顺序显示过时产品,而不是按照注册顺序显示

时间:2014-04-09 15:42:10

标签: woocommerce

单个产品页面上的向上销售产品以随机顺序呈现,而不是按照在管理界面中注册的顺序呈现。

所需的功能与管理界面中的顺序相同,那么应该如何以最快的方式实现呢?

1 个答案:

答案 0 :(得分:4)

在函数文件中,执行以下操作:

  1. 删除“原始”升级显示

    remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
    remove_action( 'woocommerce_after_single_product_summary', 'woo_wc_upsell_display', 15 );
    
  2. 根据您在管理界面中添加产品的订单添加自定义加售显示

    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
            ));
        }
    }
    
  3. 实际发生的是,在向上销售模板中,args-array与各种其他参数(如post_type等)互补,其中一个参数是post__in参数。该模板已经使用了一个以正确的顺序获取向上销售产品ID的函数,然后使用这个ID数组通过使用post__in参数来限制结果。

    诀窍是使用这个已经存在的信息。通过将orderby参数设置为'post__in',查询将遵循post__in参数中给出的顺序!