Wordpress:如何过滤Woocommerce中的特色产品

时间:2016-02-02 06:20:33

标签: php wordpress woocommerce

我正在使用woocommerce,我想知道如何过滤设置为后端特殊/特色的产品。我将发布我在下面的代码中包含的内容:

<li class="filter_amenities <?php echo 'special' == $cuisine_type?'selected':'' ?>" id="amenities_special" >
    <a href="<?php echo $store_url.'?cuisine_type=special&'.$selected_cat ?>" style="display:block" >
        <img width="15px" src="<?php echo get_template_directory_uri(); ?>/img/star.png"  /> 
        Special Item
    </a>
</li>

以上代码显示特色产品的列表项,这样当您单击列表项时,它将仅显示特色产品。 我将在下面发布其他代码:

var special = ($('#amenities_special').hasClass('selected'))?true:false;

这是我提供的用于获取精选项目的代码。我不确定上面的代码是否正确。任何帮助都感激不尽。感谢

1 个答案:

答案 0 :(得分:0)

不再有效,截至WooCommerce版本3 +

/**
 * Output featured products.
 *
 * @param array $atts
 * @return string
 */
public static function featured_products( $atts ) {
    $atts = shortcode_atts( array(
        'per_page' => '12',
        'columns'  => '4',
        'orderby'  => 'date',
        'order'    => 'desc',
        'category' => '',  // Slugs
        'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'.
    ), $atts );

    $meta_query   = WC()->query->get_meta_query();
    $meta_query[] = array(
        'key'   => '_featured',
        'value' => 'yes'
    );

    $query_args = array(
        'post_type'           => 'product',
        'post_status'         => 'publish',
        'ignore_sticky_posts' => 1,
        'posts_per_page'      => $atts['per_page'],
        'orderby'             => $atts['orderby'],
        'order'               => $atts['order'],
        'meta_query'          => $meta_query
    );

    $query_args = self::_maybe_add_category_args( $query_args, $atts['category'], $atts['operator'] );

    return self::product_loop( $query_args, $atts, 'featured_products' );
}

WooCommerce API Docs

兴趣点是meta_query和query_args。产品是否具有特色存储在postmeta数据库表中。不确定WooCommerce是否有代码可以直接获得您想要的内容,但如果您愿意,您可以修改获取特色产品的短代码以检查类别等。