{"id":239052,"date":"2025-07-31T07:37:36","date_gmt":"2025-07-31T07:37:36","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eventadmin-helfer-volunteer-management\/"},"modified":"2026-04-07T21:18:12","modified_gmt":"2026-04-07T21:18:12","slug":"eventadmin-volunteer-management","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/eventadmin-volunteer-management\/","author":23315332,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4.1","stable_tag":"1.4.1","tested":"6.9.4","requires":"5.8","requires_php":"8.0","requires_plugins":null,"header_name":"EventAdmin \u2013 Volunteer Management","header_author":"David Wiedmer, sidefyn GmbH","header_description":"Manage volunteers for events directly in WordPress. Create and schedule shifts, allow volunteers to sign up and cancel independently, and configure individual rules \u2013 e.g., maximum shifts per person per year.","assets_banners_color":"a2c2e1","last_updated":"2026-04-07 21:18:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/davesidefyn\/","rating":5,"author_block_rating":0,"active_installs":30,"downloads":1354,"num_ratings":2,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5":{"tag":"0.5","author":"davesidefyn","date":"2025-07-31 10:21:54"},"0.6":{"tag":"0.6","author":"davesidefyn","date":"2025-11-14 09:21:02"},"0.7":{"tag":"0.7","author":"davesidefyn","date":"2025-11-16 13:46:28"},"0.7.1":{"tag":"0.7.1","author":"davesidefyn","date":"2025-12-01 16:22:04"},"0.7.2":{"tag":"0.7.2","author":"davesidefyn","date":"2025-12-01 20:43:25"},"0.8.0":{"tag":"0.8.0","author":"davesidefyn","date":"2026-03-15 19:19:17"},"0.9.0":{"tag":"0.9.0","author":"davesidefyn","date":"2026-03-15 20:06:47"},"0.9.1":{"tag":"0.9.1","author":"davesidefyn","date":"2026-03-15 20:56:03"},"0.9.2":{"tag":"0.9.2","author":"davesidefyn","date":"2026-03-15 21:25:44"},"0.9.3":{"tag":"0.9.3","author":"davesidefyn","date":"2026-03-15 21:32:08"},"0.9.4":{"tag":"0.9.4","author":"davesidefyn","date":"2026-03-16 09:43:22"},"0.9.5":{"tag":"0.9.5","author":"davesidefyn","date":"2026-03-16 10:00:06"},"0.9.6":{"tag":"0.9.6","author":"davesidefyn","date":"2026-03-17 08:43:14"},"0.9.7":{"tag":"0.9.7","author":"davesidefyn","date":"2026-03-17 09:43:17"},"0.9.8":{"tag":"0.9.8","author":"davesidefyn","date":"2026-03-17 09:43:17"},"0.9.9":{"tag":"0.9.9","author":"davesidefyn","date":"2026-03-17 10:07:23"},"1.0.0":{"tag":"1.0.0","author":"davesidefyn","date":"2026-03-17 11:51:39"},"1.0.1":{"tag":"1.0.1","author":"davesidefyn","date":"2026-03-17 12:14:22"},"1.1.0":{"tag":"1.1.0","author":"davesidefyn","date":"2026-03-17 21:58:15"},"1.2.0":{"tag":"1.2.0","author":"davesidefyn","date":"2026-03-18 08:33:00"},"1.3.0":{"tag":"1.3.0","author":"davesidefyn","date":"2026-03-19 06:19:41"},"1.4.0":{"tag":"1.4.0","author":"davesidefyn","date":"2026-03-26 21:51:12"},"1.4.1":{"tag":"1.4.1","author":"davesidefyn","date":"2026-04-07 21:18:12"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3337177,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3337177,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3337177,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3337177,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5","0.6","0.7","0.7.1","0.7.2","0.8.0","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9","1.0.0","1.0.1","1.1.0","1.2.0","1.3.0","1.4.0","1.4.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Admin dashboard with shift overview","2":"Public shift view with registration","3":"Statistics &amp; charts in the backend"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2431,7140,55931,19139],"plugin_category":[40],"plugin_contributors":[245646],"plugin_business_model":[],"class_list":["post-239052","plugin","type-plugin","status-publish","hentry","plugin_tags-event","plugin_tags-planning","plugin_tags-shift","plugin_tags-volunteer","plugin_category-calendar-and-events","plugin_contributors-davesidefyn","plugin_committers-davesidefyn"],"banners":{"banner":"https:\/\/ps.w.org\/eventadmin-volunteer-management\/assets\/banner-772x250.png?rev=3337177","banner_2x":"https:\/\/ps.w.org\/eventadmin-volunteer-management\/assets\/banner-1544x500.png?rev=3337177","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eventadmin-volunteer-management\/assets\/icon-128x128.png?rev=3337177","icon_2x":"https:\/\/ps.w.org\/eventadmin-volunteer-management\/assets\/icon-256x256.png?rev=3337177","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>EventAdmin is a simple yet powerful plugin for managing volunteers at events.\nDesigned for clubs, street festivals, and similar events \u2014 organizers create shifts, assign participants, or let volunteers sign up themselves.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Create shifts with time period, category, and min.\/max. volunteers<\/li>\n<li>Public frontend: volunteers register, sign up for shifts, and manage their profile in one place<\/li>\n<li>Volunteers can sign up and cancel themselves (with optional cancellation deadline)<\/li>\n<li>Optional \"Full shifts\" section so volunteers can still see fully booked shifts (disabled by default)<\/li>\n<li>Automatic checks: e.g. max. 2 shifts\/year &amp; no time overlaps<\/li>\n<li>Manual creation and assignment of volunteers by admins \u2014 assign existing volunteers from a dropdown or create new accounts on the fly, including offline volunteers without an email address<\/li>\n<li>Per-shift organizer user, name, and email \u2014 override the global notification sender per shift with a linked WordPress user plus optional manual overrides<\/li>\n<li>Automatic reminder emails X days before a shift starts<\/li>\n<li>CSV export per shift or for all shifts<\/li>\n<li>Admin overview with filters (upcoming\/past\/all, category, volunteer, date) and sorting<\/li>\n<li>Dashboard statistics: registered volunteers, upcoming shifts, empty shifts, understaffed shifts, filled\/open spots<\/li>\n<li>Bulk email tool: send custom announcements to all or opted-in volunteers \u2014 processed in batches, with a real-time progress bar, delivery failure tracking, and a confirmation email to the sender<\/li>\n<li>Volunteers can opt out of announcements via their profile page<\/li>\n<li>Send history log with subject, message preview, recipient count, and failure count<\/li>\n<li>Integration with Nextend Social Login<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>This plugin is free software under the GPLv2 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin via the WordPress backend or upload the ZIP file<\/li>\n<li>Activate the plugin<\/li>\n<li>Go to Pages \u2192 Add New and insert the <code>[eventadmin]<\/code> shortcode \u2014 this is the main volunteer page (shows registration for new visitors, and the shift selector + profile for logged-in volunteers)<\/li>\n<li>Create shift categories under Shifts \u2192 Categories<\/li>\n<li>Create your first shifts under Shifts \u2192 Add New<\/li>\n<li>Optional: create separate pages for <code>[eventadmin_profile]<\/code> or <code>[eventadmin_shiftselector]<\/code> if you want dedicated pages for those features<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20volunteers%20need%20an%20account%3F\"><h3>Do volunteers need an account?<\/h3><\/dt>\n<dd><p>Yes, volunteers must be logged in to view and join shifts.<\/p><\/dd>\n<dt id=\"how%20can%20i%20assign%20volunteers%20manually%3F\"><h3>How can I assign volunteers manually?<\/h3><\/dt>\n<dd><p>In the admin dashboard under \u201cVolunteer Overview\u201d for each shift via form.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20shifts%20are%20full%3F\"><h3>What happens when shifts are full?<\/h3><\/dt>\n<dd><p>By default, full shifts are hidden on the volunteer page. You can optionally enable a \"Full shifts\" section under Settings so volunteers can still see them (read-only, with a disabled button).<\/p><\/dd>\n<dt id=\"what%20is%20the%20minimum%20volunteers%20field%20for%3F\"><h3>What is the minimum volunteers field for?<\/h3><\/dt>\n<dd><p>You can set a minimum number of volunteers per shift. The admin dashboard will highlight understaffed shifts with a warning. Enforcement (e.g. blocking the shift from appearing) is not yet applied \u2013 this is informational only.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>Version 1.4.1<\/h4>\n\n<ul>\n<li>Fix: Settings were not saved correctly when using the tabbed settings page \u2014 each tab's options are now registered in their own settings group, preventing cross-tab data loss on save<\/li>\n<\/ul>\n\n<h4>Version 1.4.0<\/h4>\n\n<ul>\n<li>New: Reminder emails for assigned Volunteers X days before a shift starts, configurable under Settings \u2192 Communication<\/li>\n<li>New: Settings cleanup \u2014 single Settings menu entry with General, Display, and Communication tabs<\/li>\n<li>New: Organizer user link on shifts \u2014 use a linked staff-side WordPress user as the email sender fallback, while keeping organizer name\/email as manual overrides<\/li>\n<li>Improvement: Frontend shift buttons now switch with translated labels instead of hardcoded English text<\/li>\n<li>Improvement: Transactional emails use a shared HTML wrapper for a more professional appearance<\/li>\n<li>Improvement: Documentation now explains email template customization inline in the admin area<\/li>\n<li>Fix: German locale updates for new settings, reminders, organizer-user flow, and communication UI<\/li>\n<\/ul>\n\n<h4>Version 1.3.0<\/h4>\n\n<ul>\n<li>Fix: Confirmation emails now use the date\/time format configured in Settings \u2192 Display instead of a hardcoded format<\/li>\n<li>Fix: Email live preview in settings now reflects the configured date format in real time (AJAX-powered, locale-aware)<\/li>\n<li>New: \"Create new volunteer\" form on the Volunteers page \u2014 create online or offline volunteers directly without going via a shift<\/li>\n<li>New: Configurable volunteer shift filters \u2014 admin can enable a text search and\/or date picker on the shift selector (Settings \u2192 Display)<\/li>\n<\/ul>\n\n<h4>Version 1.2.0<\/h4>\n\n<ul>\n<li>New: Shift card layout \u2014 date\/time and category labels now in a stable flex row; multiple or long categories no longer displace the date<\/li>\n<li>New: Configurable date format for shift start and end time (Settings \u2192 Display)<\/li>\n<li>New: Custom CSS field in settings \u2014 integrators can store theme-specific overrides directly in the plugin without editing theme files<\/li>\n<li>Improvement: Date format fields show a live preview and a collapsible token cheat sheet for easier configuration<\/li>\n<\/ul>\n\n<h4>Version 1.1.0<\/h4>\n\n<ul>\n<li>New: Send Announcement page \u2014 send emails to all volunteers, opted-in volunteers, a specific shift, a specific category, or an individual volunteer<\/li>\n<li>New: Overridable From name and From email per announcement<\/li>\n<li>New: HTML formatting support in announcement emails with live preview (subject, body, sender)<\/li>\n<li>New: Send history log \u2014 collapsible table with filter and sortable columns; shows subject, recipients, sent\/failed counts, and full message body<\/li>\n<li>New: Volunteers page \u2014 filter by category, text search, and sortable columns<\/li>\n<li>New: \"Email\" button on volunteer rows links directly to Send Announcement with that volunteer pre-selected<\/li>\n<li>New: Offline volunteers (no email address) are clearly indicated in the Volunteers list<\/li>\n<li>New: Chart labels on the Overview page are now fully translated<\/li>\n<li>New: Send Announcement section added to the Documentation page<\/li>\n<li>Fix: Settings and Documentation menu items now always appear last in the Shifts submenu<\/li>\n<\/ul>\n\n<h4>Version 1.0.1<\/h4>\n\n<ul>\n<li>Fix: Settings and Documentation menu items now always appear last in the Shifts submenu<\/li>\n<li>Improvement: Removed duplicate bulk email form from Volunteers page \u2014 use Send Announcement for bulk emails; offline volunteers (no email address) are visually indicated in the table<\/li>\n<\/ul>\n\n<h4>Version 1.0.0<\/h4>\n\n<ul>\n<li>Fix: Social badge now correctly detects Nextend Social Login users via the wp_social_users table instead of wrong meta key<\/li>\n<\/ul>\n\n<h4>Version 0.9.9<\/h4>\n\n<ul>\n<li>Fix: Manually added volunteers (via admin form or role grant) are now protected from auto-deletion and shown with a green Manual badge<\/li>\n<li>New: Unverified volunteer accounts (registered but magic link never clicked) are auto-deleted daily after the link expires; deletion log visible on the Volunteers page<\/li>\n<li>New: Unverified, Social Login, and Manual badges shown per volunteer in the admin Volunteers list<\/li>\n<li>Fix: Admin users who also hold the volunteer role no longer lose access to the WordPress backend (explicit false caps removed from volunteer role definition)<\/li>\n<\/ul>\n\n<h4>Version 0.9.7<\/h4>\n\n<ul>\n<li>New: Admins can grant or remove the volunteer role from existing WordPress users directly on the Volunteers page \u2014 includes an upcoming-shift warning before removal<\/li>\n<li>Fix: Category filter dropdown no longer overlaps shift cards on themes with non-standard heading sizes (replaced fragile negative margin with a flex layout)<\/li>\n<\/ul>\n\n<h4>Version 0.9.5<\/h4>\n\n<ul>\n<li>Fix: Bundled translations now always take priority over language packs from translate.wordpress.org, preventing incomplete community translations from overriding the plugin's own strings<\/li>\n<\/ul>\n\n<h4>Version 0.9.4<\/h4>\n\n<ul>\n<li>New: Assign existing volunteers directly from a dropdown when adding manually to a shift<\/li>\n<li>New: Offline volunteers \u2014 add volunteers without an email address; a placeholder is created silently, no notifications sent<\/li>\n<li>New: Per-shift organizer name and email \u2014 overrides the global notification address for both admin and volunteer emails on that shift<\/li>\n<li>Fix: Duplicate assignment no longer possible when the same email is submitted twice (pre-check added)<\/li>\n<\/ul>\n\n<h4>Version 0.9.3<\/h4>\n\n<ul>\n<li>Fix: New strings from 0.9.2 (update notice, support section, plugin row links) now fully translated in all 8 bundled languages<\/li>\n<\/ul>\n\n<h4>Version 0.9.2<\/h4>\n\n<ul>\n<li>New: Donation and review links added to the plugin row in the Plugins list<\/li>\n<li>New: \"Support EventAdmin\" section added to the Documentation page<\/li>\n<li>New: Dismissible update notice shown to admins after plugin updates<\/li>\n<\/ul>\n\n<h4>Version 0.9.1<\/h4>\n\n<ul>\n<li>New: Translations added for German (de_DE, de_AT), Dutch (nl_NL, nl_NL_formal), French (fr_FR, fr_BE), and German Switzerland formal (de_CH)<\/li>\n<li>Fix: Several translation errors corrected in de_CH and de_DE_formal<\/li>\n<\/ul>\n\n<h4>Version 0.9.0<\/h4>\n\n<ul>\n<li>New: Admin overview defaults to upcoming shifts \u2014 add \"Show: Upcoming \/ Past \/ All\" filter to see past or all shifts<\/li>\n<li>New: Admin overview sortable by date or name, ascending or descending<\/li>\n<li>New: Admin overview stats now include empty shifts and understaffed shifts<\/li>\n<li>New: Bulk email tool \u2014 send custom announcements to all or opted-in volunteers, with real-time progress bar, batch processing (25 per request), failed delivery tracking, and a confirmation email to the sender<\/li>\n<li>New: Email send history log on the announcement page (subject, message preview, recipients, failures, sent by)<\/li>\n<li>New: Volunteers can opt out of announcements via their profile page (opted-in by default, existing users unaffected)<\/li>\n<\/ul>\n\n<h4>Version 0.8.0<\/h4>\n\n<ul>\n<li>Fix: Quick edit fields (start time, end time, max. volunteers) now pre-populate correctly when opening the quick edit row<\/li>\n<li>Fix: \"Period\" column in the shift list is now sortable by start date\/time<\/li>\n<li>New: Optional \"Full shifts\" section on the volunteer shift selector page (disabled by default, enable under Settings)<\/li>\n<li>New: Minimum volunteers field on shifts \u2013 admin dashboard shows an understaffed warning when the minimum has not been reached<\/li>\n<\/ul>\n\n<h4>Version 0.7.2<\/h4>\n\n<ul>\n<li>Bugfix release<\/li>\n<\/ul>\n\n<h4>Version 0.7.1<\/h4>\n\n<ul>\n<li>Tested up to WP 6.9<\/li>\n<\/ul>\n\n<h4>Version 0.7<\/h4>\n\n<ul>\n<li>restrict access to shifts and departments for non-logged in users (and SEO)<\/li>\n<\/ul>\n\n<h4>Version 0.6<\/h4>\n\n<ul>\n<li>missing .pot file added to support translations<\/li>\n<\/ul>\n\n<h4>Version 0.5<\/h4>\n\n<ul>\n<li>Review Feedback 2.0<\/li>\n<\/ul>\n\n<h4>Version 0.4<\/h4>\n\n<ul>\n<li>i18n - Support Multilanguage<\/li>\n<\/ul>\n\n<h4>Version 0.3<\/h4>\n\n<ul>\n<li>Extension of admin interface<\/li>\n<\/ul>\n\n<h4>Version 0.2<\/h4>\n\n<ul>\n<li>Notification extensions<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Shift management, volunteer registration, dashboard, export, rules<\/li>\n<\/ul>","raw_excerpt":"Manage volunteers for events. Shift planning, self-registration, limits, CSV export, statistics, bulk announcements, and dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/239052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=239052"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/davesidefyn"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=239052"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=239052"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=239052"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=239052"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=239052"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=239052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}