首页 > 解决方案 > WooCommerce 从产品时间日期捕获时间以进行过滤

问题描述

我正在为一组产品创建一个过滤器。这些产品实际上是具有其start datetimeend datetime(自定义字段)的不同类。

我正在尝试创建一个时间范围过滤器(https://codepen.io/caseymhunt/pen/kertA),然后它将显示start datetime时间在所选范围内的任何产品。

一个例子是,默认情况下,我想显示上午 8 点到晚上 8 点之间的所有产品(无论日期如何,只是时间)。

产品有一个名为 class_startTime 的自定义字段,看起来像2020-08-03 17:00

我很容易让我的代码适用于年龄组的过滤器,我完全不知道该怎么做才能获得 2 次的范围(例如上午 8 点和晚上 8 点)。

    <ul class="products">
    <?php
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => -1,
            'meta_query' => array(
            'relation' => 'LIKE',
                array(
                    'key'     => 'age_group',
                    'value'   => $agefilter,
                ),
                array(
                    'key'     => 'class_startTime',
                    'value'   => date("Y-m-d").' 17:00',
                    'compare' => '>=',
                    'type' => 'DATETIME'
                ),
            ),
            'orderby' => 'meta_value_num',
            'order'         => 'ASC'
            );

        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                wc_get_template_part( 'content', 'product' );
            endwhile;
        } else {
            echo __( 'No products found' );
        }
        wp_reset_postdata();
    ?>
</ul>

我试图只使用时间,但这根本不起作用。

标签: phpwordpressdatetimewoocommerce

解决方案


推荐阅读