Skip to content

Releases: hau-git/ve-events-wordpress-plugin

v2.4.0

Choose a tag to compare

@hau-git hau-git released this 11 Jul 06:49

What's Changed

  • Add ChurchDesk import support alongside iCal feeds by @hau-git in #4
  • Add cross-feed merge and fix ChurchDesk calendar-view import by @hau-git in #5

Full Changelog: v.2.0.0...v.2.4

v.2.0.0

Choose a tag to compare

@hau-git hau-git released this 13 Jun 17:10

Internal re-architecture. No functional changes — every feature, post type slug (ve_event), meta key, virtual field key, query var, REST field, Schema.org / Open Graph output, iCal import, and Elementor/JetEngine integration behaves exactly as in 1.9.x.

Changed

  • Restructured the codebase into a namespaced src/ tree (root namespace VEV\) loaded by a lightweight custom PSR-4 autoloader. The 8 manual require_once calls in the bootstrap are gone.
  • Split the two monolithic classes (class-admin.php ~1977 lines, class-frontend.php) into cohesive single-responsibility classes under src/Admin/, src/Frontend/, src/Query/, src/Integrations/, src/Import/.
  • Introduced single sources of truth that previously had duplicated logic
  • Extracted all inline admin CSS/JS (~400+ lines that were embedded in PHP) into versioned, enqueued files under assets/css/ and assets/js/.
  • Relocated the vendored iCal parser to src/ThirdParty/ICal/ with a README
  • Standardized indentation to tabs (WordPress coding standard) across the codebase.

Added

  • composer.json (dev-only tooling), phpcs.xml.dist (WordPress coding standard), phpunit.xml.dist, a unit-test suite, and a GitHub Actions CI workflow
  • .gitignore; removed committed .DS_Store files.

Compatibility

  • The legacy global class names VEV_Events, VEV_Fields, VEV_Frontend, and VEV_Post_Type are retained as thin backward-compatibility shims so existing theme snippets and integrations keep working.

Fixed

  • Reconciled the version number, which was inconsistent across the plugin header, the internal constant, and the README.

What's Changed

  • Refactor plugin to PSR-4 namespace structure with VEV\ prefix by @hau-git in #2
  • Add CLAUDE.md with codebase guidance for AI assistants by @hau-git in #1
  • Raise minimum PHP requirement to 8.3 by @hau-git in #3

New Contributors

Full Changelog: v1.9.1...v.2.0.0

v1.9.1

Choose a tag to compare

@hau-git hau-git released this 21 Mar 20:49
5ff8821

Full Changelog: v1.9.0...v1.9.1

v1.5.0 – Admin View Tabs

Choose a tag to compare

@hau-git hau-git released this 09 Feb 08:59

v1.5.0 – Admin View Tabs

New Feature

  • Admin event list now has view tabs: Upcoming, Past, All, Drafts, Trash
  • Default view is "Upcoming": When you open the event list, only upcoming and ongoing events are shown
  • Past events are separated into their own tab so they don't clutter the main view
  • "Alle" shows all published events regardless of status
  • Drafts and Trash tabs appear only when there are items

Technical Details

  • Uses `views_edit-ve_event` filter for tab links with live counts
  • Query filtering via `pre_get_posts` with `vev_view` GET parameter
  • Events without end date meta are included in "Upcoming" (NOT EXISTS fallback)
  • Fully compatible with column sorting (Start/End)
  • German translations updated

v1.4.6 – Fix Admin Column Sorting

Choose a tag to compare

@hau-git hau-git released this 09 Feb 08:49

v1.4.6 – Fix Admin Column Sorting

Bug Fix

  • Fixed: Sorting by Start/End columns in the admin event list now works correctly
    • Clicking "Start" or "Ende" column headers respects ASC/DESC direction
    • Root cause: the `orderby` query var was overwritten before being read, so the user's sort choice was always ignored
    • Default admin list still sorts by start date ascending
    • Sorting by other columns (title, date) is no longer overridden

v1.4.5 – WordPress 6.9.1 & Elementor V4 Compatibility

Choose a tag to compare

@hau-git hau-git released this 08 Feb 21:35

v1.4.5 – WordPress 6.9.1 & Elementor V4 Compatibility

Compatibility

  • WordPress 6.9.1: Fully tested and compatible
    • Abilities API: No impact (additive API, no breaking changes to `get_post_meta`)
    • Block Editor iframe isolation: No impact (plugin uses native meta boxes)
    • Cache key generation changes: No impact (plugin doesn't use custom caching)
  • Elementor 3.35 / Editor V4 Beta: Fully compatible
    • Dynamic Tags (`\Elementor\Core\DynamicTags\Tag`) work with atomic widgets
    • No deprecated Elementor classes or Schemes used
    • Added `Elementor tested up to` compatibility headers
  • PHP 8.0–8.4: Compatible (no implicitly nullable parameters)

Changes

  • Added `Elementor tested up to: 3.35` and `Elementor Pro tested up to: 3.35` plugin headers
  • Bumped `Requires at least` from 6.2 to 6.4
  • Fixed hardcoded meta key in Event URL dynamic tag (now uses `VEV_Events::META_INFO_URL` constant)
  • Version bump to 1.4.5

Architecture (unchanged from v1.4.4)

  • Single source of truth: `VEV_Frontend` for formatting, `VEV_Fields` for registry
  • `computed_meta` delegates to `VEV_Fields::get_field_value()`
  • All callbacks delegate to `VEV_Frontend` helpers
  • No duplicate formatting logic

VE Events 1.4.4 - Unified Meta Key Naming

Choose a tag to compare

@hau-git hau-git released this 27 Dec 20:19

Changes in v1.4.4

Unified Meta Key Naming

Prefix Type Description
_vev_* Stored Database fields (private)
ve_* Virtual Computed/formatted output

Virtual Meta Keys

Key Example
ve_start_date "January 15, 2025"
ve_start_time "2:00 PM"
ve_end_date "January 17, 2025"
ve_end_time "5:00 PM"
ve_date_range "January 15 – 17, 2025"
ve_time_range "2:00 PM – 5:00 PM" or "All day"
ve_datetime_formatted "January 15, 2025, 2:00 PM – 5:00 PM"
ve_status "Upcoming" / "Ongoing" / "Past"
ve_is_upcoming true / false
ve_is_ongoing true / false

Code Cleanup

  • Consolidated duplicate formatting logic (single source of truth)
  • Fixed critical bug: timestamp formatting used strtotime() on Unix integers
  • VEV_Fields callbacks now delegate to VEV_Frontend helpers
  • computed_meta filter delegates to VEV_Fields registry
  • Removed all legacy vev_* constants and references
  • Fixed fatal error on event edit page (deleted constants)
  • Status calculation now consistently uses grace period

VE Events 1.4.3 - Field Display Optimization

Choose a tag to compare

@hau-git hau-git released this 27 Dec 19:39

Changes in v1.4.3

Improvements

Optimized Field Dropdown

  • Removed boolean fields from dropdown (All Day, Hide End, Is Upcoming, Is Ongoing)
  • Boolean fields don't make sense for display output ("Yes"/"No" is not useful)
  • Focus on practical output fields: Formatted dates, times, ranges, status text

Better Elementor Post ID Detection

  • Improved detection in Theme Builder templates
  • Uses global $post, queried object, and preview ID as fallbacks
  • Should fix empty date/time output in single event templates

Cleaner Field Grouping

  • "Formatted Output" group first (most useful for display)
  • "Event Details" group for speaker, special info, URL
  • "Event Status" for status text only

Field Dropdown Options (v1.4.3)

Formatted Output:

  • Start Date, Start Time, End Date, End Time
  • Date Range, Time Range
  • Full Date & Time

Event Details:

  • Speaker, Special Info, Info URL

Event Status:

  • Event Status (Upcoming/Ongoing/Past)

VE Events 1.4.2 - WordPress 6.7+ Compatibility

Choose a tag to compare

@hau-git hau-git released this 27 Dec 19:16

Changes in v1.4.2

Fixes

  • WordPress 6.7+ Compatibility: Fixed "_load_textdomain_just_in_time" notice
  • Translations are now loaded at init hook priority 0, before components initialize
  • All plugin components now initialize at init hook priority 1
  • Recompiled .mo translation file with correct encoding

This resolves the "headers already sent" errors and character encoding issues (e.g., "ü" showing as "ü").

VE Events 1.4.1 - Update Check Fix

Choose a tag to compare

@hau-git hau-git released this 27 Dec 19:13

Changes in v1.4.1

Fixes

  • Update Check: Cache is now cleared when clicking "Check Again" in WordPress Updates page
  • Manual ZIP Upload: Improved folder renaming after manual plugin installation from GitHub ZIP

The plugin now properly checks for new releases when you click "Check Again" instead of using cached data.