最后显示价格为零的产品

时间:2015-06-24 13:35:25

标签: sql wordpress woocommerce

有一个WordPress / WooCommerce网站,它使用默认的WooCommerce循环显示按价格升序排序的产品。有些产品价格为零,应该在最后显示。

此外,还安装了插件,为零价格消息添加元字段。

有没有办法在最后显示具有此元字段的产品?或者,对它们进行排序,以便未指定价格的产品会显示在其他产品之后?

现在我试图通过以下代码使其工作:

add_filter( 'posts_orderby', 'custom_order', 10, 2 );
function custom_order( $orderby ){
    global $wpdb;
    if( ! is_admin() && is_product_category() ) :
        $orderby = "CASE WHEN wp_postmeta.meta_value >= 0 THEN wp_postmeta.meta_value+0 ASC ELSE ''";
    endif;


    return $orderby;
}

我不懂SQL,当我使用它时,我收到404错误。有没有办法解决它,或者更好的解决方案?

1 个答案:

答案 0 :(得分:0)

标准SQL约定要求单词END关闭CASE语句:

CASE WHEN wp_postmeta.meta_value >= 0 THEN wp_postmeta.meta_value+0 ASC ELSE '' END
相关问题