v2.5.0
Fixed
- Resolved 1-hour time offset in event display.
- Standardized all date handling to WordPress site timezone using:
- wp_timezone()
- wp_date()
- current_time('timestamp')
- Removed inconsistent use of:
- date()
- date_i18n()
- strtotime()
- Fixed DST-related issues in multi-day and recurring events.
- Corrected sorting of events by numeric start meta value.
Changed
- Refactored RRZE\Calendar\Shortcodes\Events shortcode:
- Full rewrite of date logic using WordPress timezone.
- DST-safe expansion of multi-day events in teaser mode.
- Unified handling of single-day, multi-day, and all-day events.
- Standardized microdata (schema.org) output:
- Local time for display.
- UTC timestamps for startDate and endDate.
- Unified date comparison logic across calendar and list shortcodes.
Added
- Read-only protection for events imported via ICS:
- Events with ics_feed_id meta cannot be edited.
- Edit links removed from admin list.
- Title edit links disabled where applicable.
- Conditional asset loading system:
- Styles and scripts are registered globally.
- Assets are only enqueued when shortcodes are rendered.
- Works on singular views, archives, and homepage.
Improved
- More robust shortcode asset loading logic.
- Cleaner separation between:
- Timestamp storage (site timezone).
- Display formatting (WordPress timezone).
- Structured data output (UTC).
- Improved CMB2 occurrences field rendering:
- Correct past/future detection.
- Static callback compatibility.