使用挂钩修改事件结束日期

Event end date modify using hook

我正在使用 The event calendar。 我想调整事件。所以他们在结束后小时内不会转到过去的事件。因此,例如,如果活动在美国东部时间下午 3 点结束,我们不希望它在美国东部时间下午 4 点之前移至过去的活动页面。

简而言之:我想将活动结束日期设置在1小时之前。

所以 Evet 不会继续过去。

我在 functions.php 文件中添加了以下代码

add_filter( 'parse_query', 'posts_filter2',15 );

function posts_filter2( $query ){
   $type = 'tribe_events';
   if (isset($_GET['post_type'])) {
       $type = $_GET['post_type'];
   }
   if ( 'tribe_events' == $type && $query->get( 'eventDisplay' ) == 'default') {

        $queryParamsCounter = 0;
       $notification = "2021-04-16 13:06:00";

        if (isset($notification)) {
          $meta_query['ends-after'] = array(
            'key' => '_EventEndDate',
            'value'    => $notification,
            'compare' => '>',
            'type'    => 'DATETIME',  
          );
        }
       
        $query->set( 'meta_query', $meta_query);

    }
}

但还是不行。

有人知道吗?

谢谢!

我已经使用 parse_query 解决了这个问题。

我已经使用过滤器钩子修改了 wp_query 的参数。

functions.php 文件中添加以下代码

add_filter( 'parse_query', 'posts_filter2',15 );

function posts_filter2( $query ){
   $type = 'tribe_events';
   if (isset($_GET['post_type'])) {
       $type = $_GET['post_type'];
   }
   if ( 'tribe_events' == $type && $query->get( 'eventDisplay' ) == 'default') {

        $queryParamsCounter = 0;

        $format = 'Y-m-d G:i:s';
        $timezone_name = Tribe__Events__Timezones::wp_timezone_string();
        $timezone = new DateTimeZone( $timezone_name );
        $current  = date_create( '-2 hour', $timezone );
        $enddate = date_format($current,"Y-m-d G:i:s");


        if (isset($enddate)) {
          $meta_query['ends-after'] = array(
            'key' => '_EventEndDate',
            'value'    => $enddate,
            'compare' => '>',
            'type'    => 'DATETIME',  
          );
        }
       
        $query->set( 'meta_query', $meta_query);

    }
}


if (isset( $meta_query['ends-after'] ) && $_GET['Recommendation'] != '')
{
  $queryParamsCounter++;
  $recommendation = $_GET['Recommendation'];
}

谢谢