尝试列出所有产品类别和其中所有产品的价格范围

时间:2021-09-25 作者:Joe Sturgess

我试图显示所有产品类别的列表以及这些类别中产品的价格范围。

E、 g级

Headwear – £30-£150

Shoes – £35-£300

其中;“头饰”;是产品类别名称;30英镑;是该类别产品的最低价格,以及;150英镑;是最高的。

到目前为止,我已经使用以下代码列出了类别,但不确定如何检查每个类别中的产品并获取价格等。

$order = \'asc\';
$hide_empty = false ;
$cat_args = array(
    \'orderby\'    => $orderby,
    \'order\'      => $order,
    \'hide_empty\' => $hide_empty,
);
 
$product_categories = get_terms( \'product_cat\', $cat_args );
 
if( !empty($product_categories) ){
    echo \'
 
<ul>\';
    foreach ($product_categories as $key => $category) {
        echo \'
 
<li>\';
        echo \'<a href="\'.get_term_link($category).\'" >\';
        echo $category->name;
        echo \'</a>\';
        echo \'</li>\';
    }
    echo \'</ul>
 
 
\';
}
任何帮助都将不胜感激。我在woocommerce支持论坛上问过这个问题,但没有回应。

1 个回复
SO网友:Maulik Paddharia

您可以使用SQL查询-

global $wpdb;
 $results = $wpdb->get_col( "
        SELECT pm.meta_value
        FROM {$wpdb->prefix}term_relationships as t
        INNER JOIN {$wpdb->prefix}term_taxonomy as tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
        INNER JOIN {$wpdb->prefix}terms as t ON tr.term_taxonomy_id = t.term_id
        INNER JOIN {$wpdb->prefix}postmeta as pm ON tr.object_id = pm.post_id
        WHERE tt.taxonomy LIKE \'product_cat\'
        AND t.term_id = {$term->term_id}
        AND pm.meta_key = \'_price\'
    ");

    sort($results, SORT_NUMERIC);
print_r($results);

相关推荐

如何根据评论元字段对“EDIT-Comments.php”表中的评论进行排序?

目标在;编辑注释。php“;单击自定义列的标题后,基于注释元字段的表。上下文为了简洁起见,我们假设在发布评论时,一个名为;“红心”;指定给它,以便所有注释都具有从0到10的正整数字段。的bold 下面提到的步骤,前三个步骤是针对上下文和预期工作给出的,问题是在第四个步骤上。1. Creating the columnadd_filter( \'manage_edit-comments_columns\', \'hearts_add_comments_column\' ); function hea