WooCommerce订单由兰德不起作用



我们的产品模板在将产品添加到购物车后显示四个交叉销售。如果产品未定义四个交叉销售,则任何空白都将以随机顺序填充已标记为"通用交叉销售"自定义字段的产品。

remove_all_filters('posts_orderby'); // suggested by other answers
$args = array(
    'post_type' => 'product',
    'orderby' => 'rand',
    'order' => 'desc',
    'posts_per_page' => $gaps_to_fill,
    'post__not_in' => $posts_to_exclude,
    'meta_query' => array(
        array(
            'key' => 'is_generic_cross_sell',
            'compare' => '==',
            'value' => '1'
        )
    )
);
$generics = new WP_Query( $args );
if( $generics->have_posts() ) : 
    while ( $generics->have_posts() ) : $generics->the_post();
        wc_get_template_part( 'content', 'product-modal' );
    endwhile; 
endif;
wp_reset_query();

如果我运行 print_r($generics(,查询如下所示:

WP_Query Object ( [query] => Array ( [post_type] => product [orderby] => rand [order] => desc [posts_per_page] => 4 [post__not_in] => Array ( [0] => 908 ) [meta_query] => Array ( [0] => Array ( [key] => is_generic_cross_sell [compare] => == [value] => 1 ) ) )

但query_vars看起来像:

 [query_vars] => Array ( [post_type] => product [orderby] => menu_order [order] => ASC [posts_per_page] => 4 [post__not_in] => Array ( [0] => 914 ) [meta_query] => Array ( [0] => Array ( [key] => is_generic_cross_sell [compare] => == [value] => 1 ) )

即排序从"兰德"更改为"menu_order"。

为什么会发生这种情况,我该如何防止?

该问题是由"简单自定义后订单"插件引起的。

溶液:将"简单自定义邮政订单"替换为"邮政类型订单"(功能相同(。更新查询以包括:

"suppress_filters" => true

查询现在返回随机顺序,但客户端仍然可以拖放以在后端重新排列产品顺序。

最新更新