在页面上显示 Woocommerce 中 £50 - £100 之间的所有产品

Display on a page all products between £50 - £100 in Woocommerce

我正在我的网站上设置一个“按价格购物”下拉菜单,您会在其中看到几个显示特定价格范围内所有产品的页面。

感谢 答案代码,我已经在“低于 50 英镑”和“高于 600 英镑”的情况下使用它了。

但我的问题是当我尝试指定一个价格范围(例如 50 英镑 - 100 英镑)时。

关于如何将最小值和最大值提供给类似于下面的函数的任何想法?

感谢任何帮助,谢谢。

我对wordpress不熟悉,不过你可以这样编辑功能,得到你需要的。

add_filter( 'woocommerce_shortcode_products_query', 'products_based_on_price', 10, 3 );
function products_based_on_price( $query_args, $atts, $loop_name ) {
    if( ! ( isset($atts['class']) && ! empty($atts['class']) ) )
        return $query_args;

    if (strpos($atts['class'], 'below-') !== false) {
        $compare   = '<';
        $slug    = 'below-';
    } elseif (strpos($atts['class'], 'above-') !== false) {
        $compare   = '<';
        $slug    = 'above-';
    } elseif (strpos($atts['class'], 'between-') !== false) {
        $compare   = '<>';
        $slug    = 'between-';
    }

    if( isset($compare) ) {
        if(strlen( $compare == 1))
        {
            $query_args['meta_query'][] = array(
                'key'     => '_price',
                'value'   => (float) str_replace($slug, '', $atts['class']),
                'type'    => 'DECIMAL',
                'compare' => $compare,
            );
        }
        else
        {
            foreach( str_split($compare) as $key => $value )
            {
                $query_args['meta_query'][] = array(
                    'key'     => '_price',
                    'value'   => (float) explode('-', str_replace($slug, '', $atts['class']))[$key],
                    'type'    => 'DECIMAL',
                    'compare' => $value,
                );
            }
        }
    }
    return $query_args;
}

将class用作between-50-100