WP Events
Custom Events plugin with Organizer and Venue relations, recurrence, JSON-LD, shortcodes, and import helpers.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/webjax/wp-events/archive/refs/heads/main.zipReadme
WP Events Plugin
Et WordPress-plugin til begivenheder med SEO, gentagelser, relationer og import fra The Events Calendar.
Funktioner
- Custom post types: Event, Organizer, Venue
- Relationer: mange-til-mange arrangører, én-til-en venue
- Gentagelser: daglig, ugentlig, månedlig, årlig
- JSON-LD Schema.org markup
- iCal Eksport: Download events i iCalendar format (.ics fil)
- WooCommerce Integration: Sælg billetter gennem WooCommerce
- Arrangør Login: Arrangører kan logge ind og administrere egne events
- Event Status: Cancelled, Postponed, Sold Out, Completed badges
- Registration/RSVP: Indbygget tilmeldings-system med kapacitetsstyring
- Avanceret Import fra Tribe Events (WP-CLI og admin):
- Oversigt over alle tilgængelige events
- Selektiv import med checkboxes
- Status tracking (importerede vs. tilgængelige)
- Filtrering efter fremtidige/tidligere events
- Import-statistik dashboard
- Venues importeres automatisk: Adresse, by, postnummer, land, telefon og website overføres
- Arrangører importeres automatisk: Telefon, website og email overføres
- Kategorier og tags overføres (tribe_events_cat → event_category, post_tag → event_tag)
- Udvalgt billede (featured image) overføres
- Pris og valuta overføres
- Indhold konverteres automatisk til Gutenberg-blokke
- Shortcodes:
[events_list],[event id=123],[organizer_dashboard],[event_submission_form] - Gutenberg-blokke: Event-liste, Karusel (Swiper.js)
- Admin kolonner: Dato, Sted, Arrangør, Status
Installation
- Upload plugin-mappen til
/wp-content/plugins/wp-events - Aktivér via WordPress admin
Import fra The Events Calendar
Via Admin Interface
- Gå til WP Events → Import from Tribe i WordPress admin
- Se oversigt over alle Tribe Events med statistik
- Vælg events ved at sætte flueben
- Klik på "Import Selected Events"
Funktioner:
- Filtrering: Alle, Tilgængelige, Importerede, Fremtidige, Tidligere
- Status tracking: Se hvilke events der allerede er importeret
- Duplikat-forebyggelse: Events kan kun importeres én gang
- Visual feedback: Importerede events markeres med ✓
Hvad importeres?
For hvert event overføres følgende data automatisk:
| Data | Detaljer |
|---|---|
| Titel og indhold | Indhold konverteres til Gutenberg-blokke |
| Start- og sluttidspunkt | Fra _EventStartDate / _EventEndDate |
| Udvalgt billede | Kopieres fra Tribe event |
| Pris og valuta | Fra _EventCost / _EventCurrencySymbol |
| Venue | Oprettes som venue-CPT med adresse, by, postnummer, land, telefon og website. Eksisterende venues genbruges (duplikat-forebyggelse). |
| Arrangører | Oprettes som organizer-CPT med telefon, website og email. Understøtter flere arrangører pr. event. |
| Kategorier | tribe_events_cat → event_category |
| Tags | post_tag → event_tag |
Se IMPORT-GUIDE.md for detaljeret dokumentation.
WP-CLI Import
Kør:
# Import alle tilgængelige events (inkl. venues og arrangører)
wp wpevents import-tribe
# Import i batches
wp wpevents import-tribe --batch=50
# Nulstil import-statistik (events slettes ikke, men kan importeres igen)
wp wpevents reset-import
# Nulstil uden bekræftelsesprompt
wp wpevents reset-import --yes
iCal Eksport
Events kan eksporteres i iCalendar format (.ics) til kalenderapps.
Funktioner
- Download knap: Automatisk "Add to Calendar" knap på event sider
- REST API:
/wp-json/wp-events/v1/ical/{event_id}- Hent iCal for enkelt event - Feed:
/wp-json/wp-events/v1/ical/feed- Hent alle kommende events som iCal feed - Direkte download:
?ical_download=1&event_id=123på event URL
Brug
- Besøg en event side
- Klik på "Add to Calendar" knappen
- Åbn .ics filen i din kalender app (Google Calendar, Apple Calendar, Outlook)
WooCommerce Integration
Sælg billetter til events gennem WooCommerce. Et event kan have flere billettyper (flere produkter).
Opsætning
- Installér og aktivér WooCommerce plugin
- Opret ét eller flere produkter i WooCommerce til billettyper (fx Standard, VIP)
- I event editor, find "Ticket Settings" meta box:
- Aktivér "Enable ticket sales"
- Vælg et eller flere WooCommerce-produkter (Ctrl/Cmd for multi-select)
- Sæt fælles event-kapacitet (max deltagere på tværs af alle billettyper; 0 = ubegrænset)
- Styrr lager pr. billet-type i hvert WooCommerce-produkt
- Gem event
Funktioner
- Flere billettyper: Flere WooCommerce-produkter pr. event
- Automatisk ticket-sektion: Vises på event-sider med pris og knap pr. type
- Kapacitetsstyring: Fælles event-loft ovenpå hvert produkts eget lager (tjekkes ved add-to-cart, kurv og checkout). Loftet tvinger ikke produktet udsolgt globalt, så samme produkt kan sælges til flere events.
- Order tracking: Events linkes til orders; lager synces når ordrestatus ændres
- Deltagerliste: Attendee info gemmes på orders
- Udsolgt beskeder: Vises når event-loftet eller en billet-type er udsolgt; status kan sættes til Sold Out automatisk
Arrangør Login & Administration
System til at lade arrangører logge ind og administrere egne events.
Brugerroller
- Event Organizer: Ny rolle kun til event administration
- Kan oprette, redigere og slette egne events
- Kan ikke tilgå andet admin indhold
Opsætning
- Opret bruger med "Event Organizer" rolle
- I event editor, find "Assigned Organizers" meta box
- Vælg hvilke brugere der kan administrere eventet
- Gem event
Shortcodes for Organizers
// Dashboard med liste af egne events
[organizer_dashboard]
// Frontend formular til at indsende events
[event_submission_form]
Frontend Event Indsendelse
- Tilføj
[event_submission_form]shortcode til en side - Arrangører logger ind
- Udfylder formular med event detaljer
- Event oprettes med status "pending" (afventer godkendelse)
- Admin gennemgår og publicerer event
Event Status & Badges
Events kan tildeles forskellige statuser der vises som badges:
- Scheduled: Normal status (ingen badge)
- Cancelled: Aflyst event (rød badge)
- Postponed: Udsat til senere (gul badge)
- Rescheduled: Omlagt til ny dato (blå badge)
- Sold Out: Udsolgt (grå badge)
- Completed: Afsluttet event (grøn badge)
Badges vises automatisk på event titler i arkiver og på event sider.
Registration/RSVP System
Indbygget tilmeldings-system uden behov for ekstra plugins.
Opsætning
- I event editor, find "Registration Settings" meta box
- Aktivér "Enable Registration"
- Vælg indstillinger:
- Maximum Attendees: Maksimalt antal deltagere (0 = ubegrænset)
- Registration Deadline: Sidste frist for tilmelding
- Require Approval: Kræv admin godkendelse af tilmeldinger
Funktioner
- Frontend formular: Vises automatisk på event sider
- Email bekræftelse: Automatisk sendt til deltagere
- Kapacitetsstyring: Lukker tilmelding ved fuldt event
- Admin oversigt: Se alle tilmeldinger i event editor
- Godkend/afvis: Kræv godkendelse og send opfølgningsmail
- Status tracking: Pending, Confirmed eller Rejected
- Deltagerinfo: Navn, email, telefon, noter
Fremtidige udvidelser
- Email notifikationer til deltagere
- Påmindelse for kommende events
- Deltagerregistrering uden WooCommerce
- Integration med flere betalingsgateways
WP Events Template System
Dette plugin inkluderer et fleksibelt template system der automatisk håndterer visning af events, men som kan overskrives i dit tema.
Tilgængelige Templates
1. Archive Templates
Plugin'et tilbyder fire forskellige visningsformater for event-arkivet:
Standard Grid View (archive-event.php)
- Standard visning med event cards i grid layout
- Filtrering efter kategori og tidspunkt
- Paginering
- Event cards med billede, titel, tidspunkt og sted
- Responsive design
Calendar/Grid View (archive-event-calendar.php)
- 3-kolonne grid layout (ligner kalender visning)
- Større event cards med mere information
- Ideel til månedlig oversigt
- Tilgås via:
/events/?view=calendar
List View (archive-event-list.php)
- Horisontale event cards med dato badge
- Detaljeret information i liste format
- Bedre til at scanne gennem mange events
- Tilgås via:
/events/?view=list
Compact View (archive-event-compact.php)
- Kompakt liste med minimal information
- Hurtig oversigt over kommende events
- Perfekt til sidebars eller widgets
- Tilgås via:
/events/?view=compact
2. Single templates
single-event.php— Event med tid, sted, arrangør, billetter og tilmeldingsingle-venue.php— Venue med adresse, kontakt og kommende events på stedetsingle-organizer.php— Arrangør med kontakt og kommende events
3. Taxonomy Templates
taxonomy-event_category.php- Events i en specifik kategoritaxonomy-event_tag.php- Events med et specifikt tag
Begge viser:
- Event cards med samme layout som archive
- Kategori/tag beskrivelse
- Paginering
3. Template Parts (Genanvendelige komponenter)
Event Cards
parts/event-card-grid.php- Standard grid cardparts/event-card-list.php- Horizontal list card med dato badgeparts/event-card-compact.php- Kompakt card med minimal info
UI Komponenter
parts/event-filters.php- Filtrering (kategori, tidspunkt, sortering)parts/view-switcher.php- Skift mellem visningsformater
Visningsskifter (View Switcher)
Brugere kan nemt skifte mellem de forskellige visninger via:
- View Switcher UI - Vises øverst på event arkiv sider
- URL parameter - Tilføj
?view=list,?view=calendareller?view=compacttil URL'en - Standard visning - Grid/kalender visning hvis ingen parameter er sat
Hvordan man overskriver templates
I dit tema:
- Opret mappen
wp-events/i dit tema - Kopier den ønskede template fra
wp-content/plugins/wp-events/templates/ - Tilpas efter behov
Eksempel:
wp-content/themes/dit-tema/
└── wp-events/
├── archive-event.php
├── archive-event-list.php
├── taxonomy-event_category.php
└── parts/
├── event-card-grid.php
└── view-switcher.php
Prioritet:
wp-content/themes/dit-tema/wp-events/template-navn.php(høj prioritet)wp-content/themes/dit-tema/template-navn.phpwp-content/plugins/wp-events/templates/template-navn.php(plugin standard)
Template Struktur
Event Card Data
Hver event card indeholder:
$event_id = get_the_ID();
$start_date = get_post_meta( $event_id, 'event_start', true );
$end_date = get_post_meta( $event_id, 'event_end', true );
$venue_id = get_post_meta( $event_id, 'event_venue', true );
$venue_name = $venue_id ? get_the_title( $venue_id ) : '';
Styling
Templates bruger CSS klasser fra wp-events-frontend.css:
.event-card- Hoved container.event-image- Billede container.event-content- Tekst indhold.event-title- Titel.event-date- Tidspunkt.event-venue- Sted.event-excerpt- Uddrag.event-read-more- Læs mere knap
Tilpasning
CSS Overrides
Tilføj custom CSS i dit tema:
.wp-events-archive-page .event-card {
/* Dine tilpasninger */
}
Template Hooks
Du kan bruge standard WordPress hooks i dine templates:
get_header()get_footer()the_posts_pagination()
Filtrering
Archive template inkluderer JavaScript til filtering efter:
- Event kategori
- Tidspunkt (kommende/tidligere/alle)
Troubleshooting
Templates ikke synlige?
- Flush permalink strukturen (Indstillinger > Permalinks > Gem)
- Tjek at events er oprettet og publiceret
- Verificer at event_start meta er sat på events
Styling problemer?
- Tjek at
wp-events-frontend.cssindlæses - Kontroller for tema CSS konflikter
- Brug browser developer tools til debugging