Beskrivelse
Dette er den strukturerede genopbygning af det tidligere "Woo WA Event Form (Lite)". Det bevarer al funktionalitet, men bruger et rent PSR-4-layout med en lille bootstrap.
Frontend:
- Indsætter deltager-miniformularer (én række pr. antal) under hver billettype
- CPT
wwef_attendee(ét indlæg pr. deltager) - Begivenheds-postmeta
_wwef_attendees(struktureret array sorteret efter den synlige billetbetegnelse)
- Ved checkout og ved Mage-deltagergem opdateres eksisterende
mep_events_attendeesfor samme ordre + begivenhed, matchet via billettype (FIFO inden for hver type). Opretter ikke Mage-indlæg.
GET /wp-json/wwef/v1/attendees?event_id=123Ændringslog
1.0.61
- Fix: Email resolved 100% from WAM members table via memberno, fallback to order billing email. Name from post_title.
- Fix: Dedup per email address — same email never receives more than one mail per send.
- Fix: Bulk send requires explicit checkbox selection — no more send-all-if-none-selected.
- New: Progress log shows email source [WAM#memberno] or [billing] and skipped duplicate count.
1.0.60
- Change: Bulk send requires explicit selection — removed send-all-if-none-selected behavior.
- New: Progress log shows email source per attendee: [WAM#memberno], [wwef_email], or [billing].
1.0.59
- Debug: Added error_log for each attendee in bulk send showing memberno, WAM email, wwef_email, and resolved email.
1.0.58
- Fix: Removed dedup from bulk send — each attendee now gets their own individual email (build_replacements already scopes content per attendee via mep_attendee_id). Fixes progress bar reaching 100%.
1.0.57
- New: Bulk email modal has optional intro text field. Text is shown bold at the top of each email via {intro} placeholder.
1.0.56
- Fix: No-pagination when event filter active now uses edit_posts_per_page filter so WP list table cannot override it.
1.0.55
- New: Bulk email send now processes in batches of 5 with live progress bar, showing each recipient name + email as they are sent. Prevents timeouts.
1.0.54
- Change: Removed wc-on-hold from valid order statuses — only processing and completed orders show attendees.
1.0.53
- Fix: Attendee list now excludes attendees from cancelled, refunded, trashed, and failed orders. Only processing, completed, and on-hold orders are shown.
1.0.52
- Fix: Bulk send only queued 1 email — jQuery traditional:true caused PHP to receive only the last attendee ID. IDs are now sent as comma-separated string.
1.0.51
- Fix: Bulk send stores attendee IDs in transient to avoid URL-length errors with large selections.
1.0.50
- Fix: No pagination when an event filter is active — all attendees visible at once.
- Fix: Bulk email dedup is now per (email + order), not per email alone.
1.0.49
- Fix: Bulk send without selection now resolves ALL attendees for the event server-side (not just the current page).
1.0.48
- Fix: Bulk "Send ticket email" without selection now sends to all visible attendees (bypasses WP empty-selection block).
1.0.47
- Add: Bulk send without selection defaults to all attendees for the filtered event.
- Add: Email recipient resolved via WAM member (MemberNo) → wwef_email → order billing; deduplicated per unique email.
1.0.46
- Fix:
wwef_attendeelist event filter now shows available events (fallback from data) and includes a proper Filter button. - Add: Bulk action to send ticket email to selected attendees.
1.0.45
- Change: Removed Woo admin recovery/binding tools; the order attendees section is now display-only and only shows when an existing WWEF match is present.
1.0.44
- Tweak: Woo admin order attendees section is now collapsible (toggle) and only auto-expands when action is required.
1.0.43
- Fix: Woo admin order binding can release (unbind) and rebind attendees when the wrong person was linked to a ticket row.
1.0.42
- Fix: Woo admin order binding can create/bind missing WWEF attendees even when order meta is incomplete (e.g. dual memberships).
1.0.41
- Build/source policy: Fjernet source-side references til includes/PluginInstaller.php og includes/UpdateChecker.php.
- Build/source policy: Update/installer bootstrap injiceres nu kun via build-packages og _shared.
1.0.40
- Build/setup: Fjernet nested PUC fallback i bootstrap; bruger nu kun vendor/yahnis-elsts/plugin-update-checker.php.
- Build/setup: Ensrettet med shared WebAlive update-checker flow.
1.0.39
- Fix: Auto-bind existing WWEF attendees already registered on the same order to unbound Mage attendee rows before showing manual bind UI.
- Fix: Treat only WWEF posts without
ea_order_idas orphans when resolving member-based attendee selection. - Fix: Fall back from
_wam_membernoto_wam_memberidand_customer_userwhen resolving the related WAM member number for admin attendee binding.
1.0.37
- Fix: When
_wam_membernois missing, resolve the WAM member number via order/user_wam_memberidand_customer_user. - Fix: Support looking up
MemberNoinwam_membersfrom the linked WAM member id during WWEF admin binding.
1.0.36
- Fix: After admin attendee selection, rebuild WWEF order meta and line item attendee meta from the chosen/created WWEF attendees.
- Fix: Sync Mage attendee data after admin binding so the selected WAM member choice becomes usable immediately.
- Fix: Replace the useless WAM member info note with a direct attendee selection workflow in the admin UI.
1.0.35
- Fix: Use only
_wam_membernofor WAM member lookup in the WooCommerce admin WWEF binding flow. - Fix: Remove the misleading
_wam_source_membernowording from the admin attendee binding UI.
1.0.34
- Fix: Allow WooCommerce admin order binding to create new WWEF attendees directly from WAM members resolved from the order source member number.
- Fix: Use the order WAM source member number in the bind UI so double memberships can offer both participants for new WWEF attendee creation.
1.0.33
- Fix: Show the manual WWEF bind UI for unbound ticket rows even when no orphan candidates have been found yet.
- Fix: Expand the bind UI with explicit ticket number, ticket type, and name columns so unbound rows still show the necessary order data.
1.0.32
- Fix: On completed orders with linked WWEF tickets, show only ticket number, ticket type, and attendee name from the linked ticket rows.
- Fix: Hide extra WWEF binding/detail UI on completed orders once linked attendees are present.
1.0.31
- Fix: Simplify the WooCommerce admin order attendee summary to show only ticket and attendee name for WWEF attendees already on the order.
1.0.30
- Fix: Hide already bound WWEF attendees from the manual binding UI so found attendees cannot be changed again.
- Fix: Exclude WWEF attendees that are already linked to any Mage attendee from the orphan candidate dropdowns.
1.0.29
- Fix: Submit manual WWEF bindings through the WooCommerce order form without nesting forms, so the bind action actually posts to the handler.
- Fix: Redirect back to the correct order edit screen after binding on both classic orders and HPOS orders.
1.0.28
- Fix: Find manual WWEF orphan binding candidates by
ea_event_idacross the whole event, instead of limiting the list to the same ticket type only. - Fix: Prioritize same-ticket candidates in the dropdown while still allowing manual selection of other event-level orphan attendees.
1.0.27
- Fix: Replace automatic orphan recovery on the admin order screen with manual WWEF binding per Mage attendee.
- Fix: Show all candidate WWEF orphans per Mage attendee and allow explicit selection before binding.
1.0.26
- Fix: Show matched WWEF orphan candidates on the WooCommerce admin order screen instead of only attendees already bound by
ea_order_id.
1.0.25
- Fix: Show WWEF attendees directly on the WooCommerce admin order screen by reading
wwef_attendeeposts bound to the order.
1.0.24
- Fix: Extend admin order repair to recover orphan WWEF attendees from matching Mage attendees when order/item payload alone is not enough.
1.0.23
- Fix: Run WWEF attendee self-heal from WooCommerce admin order view so missing attendee posts/item meta can be rebuilt without customer thankyou or order-details access.
1.0.22
- Fix: Remove WooCommerce
order-againactions for WWEF event orders so ticket orders cannot be re-ordered from account/order review views.
1.0.21
- Fix: Re-enable attendee display in checkout/order review via
woocommerce_get_item_data. - Fix: Backfill missing
_wwef_attendeesorder item meta from order-level payload on existing orders. - Fix: Backfill missing
wwef_attendeeposts from order item attendee payload when legacy orders are viewed/confirmed. - Fix: Recognize WWEF orders by WWEF item/order meta even when MEP item meta is incomplete.
1.0.20
- Fix: Create
wwef_attendeeposts duringwoocommerce_checkout_update_order_meta, where a real order ID exists and cart attendee payload is still available. - Fix: Always attach
_wwef_attendeesorder item meta when attendee cart payload exists, instead of depending on early order classification.
1.0.19
- Fix: Stop creating or updating WWEF attendees with blank or
0order IDs during early checkout lifecycle hooks. - Fix: Rebuild order-bound WWEF attendees from finalized WooCommerce order item attendee payloads before syncing to MEP.
- Fix: Clean up matching orphan WWEF attendees after successful order-bound sync so
15153-style duplicates do not accumulate. - Fix: Tighten attendee identity matching to avoid collapsing multiple attendees with blank email into one WWEF row.
1.0.18
- Dev: Version bump.
1.0.17
- Fix: Move attendee capture from init to wp_loaded so WooCommerce cart/session are initialized before capture runs.
- Fix: Add defensive session guards in the modern and legacy capture flows to avoid early cart access fatals.
1.0.16
- Fix: Attendee form wrapper only shows when ticket quantity > 0.
- Fix: Member hint visibility no longer relies on the [hidden] attribute.
1.0.15
- Fix: Show attendee summary in Cart (not only Checkout).
- Fix: Order/thankyou/email attendee output prints on the correct line item.
1.0.14
- New: Global settings can reorder attendee fields/labels (drag and drop) and applies when event override is off.
- Change: Global settings UI condensed to one row per field (move + active + required + label).
- Fix: Member-number hint visibility and attendee #2 name dropdown no longer disabled/grey.
1.0.6
- New: Membership-aware attendee rules for member numbers (single/dual membership via WAMP category).
- Tweak: Improved English i18n wording for member-number limits (singular/plural).
1.0.0
- Rebuilt plugin into structured layout with PSR‑4-ish autoloader.
- Preserved behavior from Lite; kept CSS/JS exactly as in production.
- Added
languages/woo-wa-event-form.pot,phpcs.xml,conductor.json.
0.4.1
- Fix: Deterministic, update-only sync into existing
mep_events_attendeesbyea_order_id+ea_event_id, matched perea_ticket_type(FIFO per type). - Fix: Prevent duplicate
wwef_attendeeposts (idempotency guard + upsert logic). - Change: Removed creation of Mage attendee posts; now strictly updates existing ones.
- Change: Simplified bootstrap, removed unused/duplicated code paths.
- Dev: Consistent JS i18n via
wp_localize_script. - Dev: Persist event meta
_wwef_attendeeskeyed by visible ticket label. - Dev: Minor admin list polish.
0.4.0
- Added custom post type
wwef_attendeefor storing individual attendee records. - Added REST API endpoint
/wp-json/wwef/v1/attendees?event_id=123for event-based attendee retrieval. - Added admin list table improvements:
- Columns for Event, Order, Ticket, Name, Email, Mobile, and Date.
- Filters for Event ID and Order ID.
- Added automatic fallback for
mpwem_post_id(Mage event ID) whenea_event_idis not provided. - Added proper localization for JS strings using
i18nviawp_localize_script. - Moved all front-end JS logic to
assets/woo-wa-event-form.js. - Fixed REST route registration (hooked on
rest_api_init). - Shortened CPT slug to meet WordPress 20-character limit.
- Added settings page for field toggles and labels.
0.3.0
- Added attendee sync option toward Mage CPT (
mep_events_attendees). - Added meta mirroring options for Mage/WWET (
_mage_attendees,_wwet_attendees). - Added “Replace existing attendees by order ID†logic (duplicates prevention).
- Added optional flattened meta list
_wwef_attendees_flat. - Improved field handling with customizable labels.
0.2.0
- Basic per-ticket attendee form rendering below each ticket type.
- Settings for enabling/disabling name, mobile, and email fields.
- Initial event meta storage (
_wwef_attendees) and JS localization. - Dynamic JS generation based on quantity.
0.1.0
- First release.