Releases: hau-git/ve-events-wordpress-plugin
Releases · hau-git/ve-events-wordpress-plugin
Release list
v2.4.0
v.2.0.0
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 namespaceVEV\) loaded by a lightweight custom PSR-4 autoloader. The 8 manualrequire_oncecalls in the bootstrap are gone. - Split the two monolithic classes (
class-admin.php~1977 lines,class-frontend.php) into cohesive single-responsibility classes undersrc/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/andassets/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_Storefiles.
Compatibility
- The legacy global class names
VEV_Events,VEV_Fields,VEV_Frontend, andVEV_Post_Typeare 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
v1.5.0 – Admin View Tabs
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
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
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
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
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
Changes in v1.4.2
Fixes
- WordPress 6.7+ Compatibility: Fixed "_load_textdomain_just_in_time" notice
- Translations are now loaded at
inithook priority 0, before components initialize - All plugin components now initialize at
inithook 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
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.