Skip to content

Commit

Permalink
Merge branch 'master' into stage
Browse files Browse the repository at this point in the history
  • Loading branch information
eebbi committed Apr 5, 2024
2 parents 0cb89aa + 9888f3a commit 37eba81
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 14 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ and this project adheres to [Semantic Versioning][semver].

## [Unreleased]

- TMS-968: Add recurring event fields to manual events
## [1.3.0] - 2024-03-26

- TMS-968:
- Add recurring event fields to manual events
- Add recurring event logic to events component, combined event search & combined event listing

## [1.2.0] - 2024-02-01

Expand Down
2 changes: 1 addition & 1 deletion plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: TMS Manual Events
* Plugin URI: https://github.com/devgeniem/tms-plugin-manual-events
* Description: TMS Manual Events
* Version: 1.2.0
* Version: 1.3.0
* Requires PHP: 7.4
* Author: Geniem Oy
* Author URI: https://geniem.com
Expand Down
13 changes: 8 additions & 5 deletions src/Models/page-combined-events-list.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ protected function get_events() : array {

if ( empty( $response ) ) {
$response = $this->do_get_events( $params );
$response['events'] = array_merge( $response['events'], $this->get_manual_events(), $this->get_recurring_manual_events() );
$response['events'] = array_merge(
$response['events'],
$this->get_manual_events(),
$this->get_recurring_manual_events()
);

// Sort events by start datetime objects.
usort( $response['events'], function( $a, $b ) {
Expand Down Expand Up @@ -141,9 +145,8 @@ protected function get_manual_events() : array {
'type' => 'DATE',
],
[
'key' => 'end_datetime',
'value' => '',
'compare' => '!=',
'key' => 'recurring_event',
'value' => 0,
],
],
];
Expand Down Expand Up @@ -207,7 +210,7 @@ protected function get_recurring_manual_events() : array {
$event->id = $id;
$event->title = \get_the_title( $id );
$event->url = \get_permalink( $id );
$event->image = \has_post_thumbnail( $id ) ? \get_the_post_thumbnail_url( $id, 'medium_large' ) : null;
$event->image = \has_post_thumbnail( $id ) ? \get_the_post_thumbnail_url( $id, 'medium_large' ) : null; // phpcs:ignore
$event->start_datetime = $date['start'];
$event->end_datetime = $date['end'];

Expand Down
22 changes: 17 additions & 5 deletions src/Models/page-combined-events-search.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ protected function get_events() : array {
$end_date = \get_query_var( self::EVENT_SEARCH_END_DATE );
$end_date = ! empty( $end_date ) ? $end_date : date( 'Y-m-d', strtotime( '+1 year' ) );

if ( ! $event_search_text && ! \get_query_var( self::EVENT_SEARCH_START_DATE ) && ! \get_query_var( self::EVENT_SEARCH_END_DATE ) ) {
if ( ! $event_search_text && ! \get_query_var( self::EVENT_SEARCH_START_DATE ) && ! \get_query_var( self::EVENT_SEARCH_END_DATE ) ) { // phpcs:ignore
return [];
}

Expand Down Expand Up @@ -151,7 +151,11 @@ protected function get_events() : array {

if ( empty( $response ) ) {
$response = $this->do_get_events( $params );
$response['events'] = array_merge( $response['events'] ?? [], $this->get_manual_events( $params ), $this->get_recurring_manual_events( $params ) );
$response['events'] = array_merge(
$response['events'] ?? [],
$this->get_manual_events( $params ),
$this->get_recurring_manual_events( $params )
);

// Sort events by start datetime objects.
usort( $response['events'], function( $a, $b ) {
Expand Down Expand Up @@ -184,6 +188,7 @@ protected function get_manual_events( $params ) : array {
'posts_per_page' => 200, // phpcs:ignore
's' => $params['q'] ?? '',
'meta_query' => [
'relation' => 'AND',
[
'key' => 'end_datetime',
'value' => [
Expand All @@ -193,6 +198,10 @@ protected function get_manual_events( $params ) : array {
'compare' => 'BETWEEN',
'type' => 'DATE',
],
[
'key' => 'recurring_event',
'value' => 0,
],
],
];

Expand Down Expand Up @@ -279,15 +288,18 @@ protected function get_recurring_manual_events( $params ) : array {
$event_end = new DateTime( $date['end'], $timezone );

// Check if url-parameters exist
if ( ! \get_query_var( self::EVENT_SEARCH_START_DATE ) && ! \get_query_var( self::EVENT_SEARCH_END_DATE ) ) {
if ( ! \get_query_var( self::EVENT_SEARCH_START_DATE ) && ! \get_query_var( self::EVENT_SEARCH_END_DATE ) ) { // phpcs:ignore
// Return only ongoing or next upcoming event
if ( $time_now > $event_start && $time_now < $event_end ) {
$event->start_datetime = $date['start'];
$event->end_datetime = $date['end'];
}
}
else if ( \get_query_var( self::EVENT_SEARCH_START_DATE ) ) {
$param_start = new DateTime( \get_query_var( self::EVENT_SEARCH_START_DATE ), new \DateTimeZone( 'Europe/Helsinki' ) );
elseif ( \get_query_var( self::EVENT_SEARCH_START_DATE ) ) {
$param_start = new DateTime(
\get_query_var( self::EVENT_SEARCH_START_DATE ),
new \DateTimeZone( 'Europe/Helsinki' )
);

// Get next starting event
if ( $param_start <= $event_start ) {
Expand Down
2 changes: 1 addition & 1 deletion src/Models/single-manual-event-cpt.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public function event() {

// Set latest dates if no upcoming date found
if ( empty( $event->start_datetime ) && empty( $event->end_datetime ) ) {
$last_dates = end( $event->dates );
$last_dates = end( $event->dates );
$event->start_datetime = $last_dates['start'];
$event->end_datetime = $last_dates['end'];
}
Expand Down
2 changes: 1 addition & 1 deletion src/PostType/ManualEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ protected function get_event_tab( string $key ) : ?Field\Tab {
->add_rule( $price_is_free->get_key(), '!=', '1' );
$rule_group_is_virtual_event = ( new ConditionalLogicGroup() )
->add_rule( $is_virtual_event->get_key(), '==', '1' );
$rule_group_is_not_recurring = ( new ConditionalLogicGroup() )
$rule_group_is_not_recurring = ( new ConditionalLogicGroup() )
->add_rule( $recurring_event->get_key(), '==', '0' );
$rule_group_is_recurring = ( new ConditionalLogicGroup() )
->add_rule( $recurring_event->get_key(), '==', '1' );
Expand Down

0 comments on commit 37eba81

Please sign in to comment.