WP Manifestindependent plugin directory
manifest / events / isw_events

ISW Events Manager

Modular event management with calendar, slider, and integrations for popular builders.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ivicastasuk/isw_events/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Advanced, modular event management for WordPress.

  • Current version: 2.4.1
  • Languages: English (default), Serbian Latin (sr_RS)
  • License: GPL-3.0
  • Requirements: WordPress 6.2+, PHP 8.1+

English · Srpski


English

ISW Events Manager is a complete WordPress event platform with recurring events, calendars, sliders, registrations, WooCommerce tickets, email reminders, frontend submissions, builder integrations, data portability, REST API access, and signed webhooks.

The plugin uses an indexed occurrence table for fast chronological queries while keeping WordPress posts and metadata as the primary source of truth.

Highlights

  • Event custom post type with title, editor, excerpt, featured image, and media gallery
  • One-time, multi-day, all-day, and recurring events
  • Per-event timezone support
  • Physical, online, and hybrid formats
  • Event categories, tags, reusable venues, and organizers
  • AJAX calendar navigation and filterable event directories
  • Responsive Swiper slider with a static fallback when there are too few events
  • Premium global calendar, card, and slider navigation controls
  • Built-in single-event templates
  • Email reminders 24 hours before an event
  • Double opt-in registrations, capacity limits, and waitlists
  • Optional WooCommerce ticket sales and QR check-in
  • Frontend community submissions and user dashboard
  • Gutenberg, Elementor, and Avada integrations
  • Schema.org Event structured data and iCalendar support
  • UTF-8 CSV import/export with stable UUID matching
  • Optional public REST API and HMAC-signed webhooks
  • Shared ISWorkshop HUB admin-menu integration
  • English and Serbian Latin localization

Core event model

Each event supports:

  • Start date and time
  • Optional end date and time
  • All-day mode
  • Per-event timezone
  • Location and reusable venues
  • Organizers
  • Physical, online, or hybrid format
  • Online event URL
  • Price
  • Scheduled, postponed, cancelled, and sold-out states
  • Featured event flag
  • Categories and tags
  • Multiple gallery image IDs stored in WordPress post metadata
  • Per-event single-page template

Past events are excluded from calendars, sliders, lists, and agendas by default. Use show_past="true" when historical events should be included.

Recurring events

The occurrence engine supports:

  • Daily recurrence
  • Weekly recurrence
  • Monthly recurrence
  • Yearly recurrence
  • Custom dates
  • Recurrence interval
  • Maximum occurrence count
  • End date
  • Excluded dates
  • Up to 500 generated occurrences per event

Occurrences are stored in the indexed {prefix}isw_event_occurrences table for efficient date-range queries.

Display options

Calendar

[isw_calendar]
[isw_calendar show_past="true"]

The calendar is rendered initially by PHP. Previous and next month navigation uses a nonce-protected AJAX endpoint and does not reload the page.

Event slider

[isw_event_slider autoplay="true" loop="true" items_per_view="3"]
[isw_event_slider show_past="true" items_per_view="4"]

Supported attributes:

Attribute Default Description
autoplay true Enables or disables autoplay
loop true Enables looping when enough events exist
items_per_view 3 Number of visible cards, from 1 to 6
show_past false Includes past events

When the number of events is equal to or lower than items_per_view, Swiper is not initialized. Cards become a responsive static grid that fills the available width.

Events without a featured image receive a deterministic gradient placeholder.

Filterable list

[isw_event_list]
[isw_event_list filters="false" category="conferences" format="online"]

Agenda

[isw_event_agenda]
[isw_event_agenda show_past="true"]

List and agenda attributes:

Attribute Default Description
show_past false Includes past events
filters true Displays AJAX filters
category empty Event category slug
search empty Initial search term
format empty physical, online, or hybrid
venue 0 Venue post ID
date_from empty Start of date filter, YYYY-MM-DD
date_to empty End of date filter, YYYY-MM-DD

Available frontend filters include keyword, category, format, venue, and date range.

Single-event pages

Every event can use one of the following templates:

  • Classic — featured image, content, details, and gallery
  • Hero — large featured-image hero section
  • Minimal — content-focused layout
  • Active theme template — keeps the theme template and appends ISW event modules

Single-event pages can include:

  • Event details and gallery
  • Registration or ticket section
  • 24-hour email reminder form
  • iCalendar download
  • Modern previous/next event navigation

Card titles and “View details” buttons always open the event permalink.

Calendar and card design settings

Settings are available under:

ISWorkshop HUB → ISW Events

General

  • Primary color
  • PHP date format

Calendar

  • Show or hide weekends
  • First day of the week
  • Elevated, minimal, or bordered style
  • Background, header, text, muted, border, and event colors
  • Border radius
  • Day-cell height
  • Live visual preview

Card Style

  • Background, text, metadata, border, and button colors
  • Image aspect ratio
  • Font size and content padding
  • Border radius and shadows
  • Hover and image zoom effects
  • Gap between slider cards
  • Natural or equal card height
  • Navigation visibility: always, hover only, or hidden
  • Button or plain-arrow navigation style
  • Arrow size, icon size, radius, border, colors, offsets, transitions, and transforms
  • Live visual preview

The settings sanitizer preserves values from inactive tabs, preventing one tab from resetting another tab’s options.

Registrations

Per-event registrations support:

  • Email confirmation with double opt-in
  • Capacity limits
  • Multiple places per registration
  • Registration deadlines
  • Automatic waitlist
  • Promotion from waitlist when space becomes available
  • Secure self-service cancellation
  • Administrator attendee management
  • CSV export
  • WordPress personal-data export and erase tools

Registration data is stored in {prefix}isw_event_registrations.

WooCommerce tickets

WooCommerce is optional. All non-ticket features work without it.

When WooCommerce is active, event editors can:

  • Create free or paid ticket tiers
  • Define stock and purchase limits
  • Configure sales windows
  • Bind a ticket tier to a recurring occurrence
  • Use WooCommerce checkout, taxes, payments, and order processing
  • Issue one unique attendee ticket per purchased quantity
  • Generate printable ticket pages with QR codes
  • Scan check-in URLs
  • Detect duplicate check-ins
  • Undo check-ins and reissue tickets
  • Export attendee data as CSV

Ticket and attendee data is stored in:

  • {prefix}isw_event_tickets
  • {prefix}isw_event_attendees

Ticket output can also be rendered manually:

[isw_event_tickets]
[isw_event_tickets event_id="123"]

Email reminders

Visitors can request a reminder from a single-event page. WordPress Cron checks upcoming occurrences and sends the message approximately 24 hours before the selected event begins.

For reliable delivery on low-traffic sites, configure a real server cron job to trigger WordPress Cron and use a properly configured transactional email provider.

Community submissions

Enable Community features under:

ISWorkshop HUB → ISW Events → Community

Submission form:

[isw_event_submit]

Logged-in user dashboard:

[isw_event_dashboard]

Community features include:

  • Frontend create and edit forms
  • Registered-user ownership
  • Optional guest submissions
  • Private SHA-256 guest edit tokens
  • Pending-review or immediate-publish workflow
  • Administrator email notifications
  • Honeypot and nonce protection
  • IP-based hourly rate limiting
  • Required terms/privacy page
  • Featured-image upload validation
  • User event dashboard
  • Event cancellation
  • Automatic occurrence synchronization

Assign the page containing [isw_event_submit] in Community settings so guest management links always resolve to the correct page.

Builder integrations

Gutenberg

The dynamic ISW Events block is registered with register_block_type() and provides InspectorControls for:

  • Grid, slider, list, or agenda layout
  • Card style
  • Items per view
  • Autoplay
  • Past-event visibility

Elementor

The ISW Events widget provides:

  • Grid, slider, list, and agenda layouts
  • Slider speed, autoplay, and cards-per-row controls
  • Past-event visibility
  • Card and accent color controls

Avada / Fusion Builder

The ISW Events element mirrors the main Elementor layout, slider, color, and past-event controls.

SEO and calendar feeds

The plugin provides:

  • Schema.org Event JSON-LD on single-event pages
  • Per-event .ics downloads
  • Public iCalendar subscription feed:
https://example.com/events-feed.ics

If the feed returns a 404 after activation, visit Settings → Permalinks and save once to refresh rewrite rules.

Import and export

Open:

ISW Events → Import / Export

The UTF-8 CSV format includes:

  • Content and excerpt
  • Slug and publication status
  • Start, end, timezone, and all-day state
  • Format, location, online URL, and price
  • Event state and featured flag
  • Recurrence settings
  • Categories and tags
  • Stable event UUID

Imports match existing events by UUID. Legacy CSV files without a UUID may fall back to the WordPress event ID. Imported events automatically rebuild their occurrence records.

Maximum import size is 5 MB, with up to 5,000 processed rows per request.

REST API

The public REST API is disabled by default. Enable it under:

ISWorkshop HUB → ISW Events → Integrations

Endpoints:

GET /wp-json/isw-events/v1/events
GET /wp-json/isw-events/v1/events/{id}

Collection parameters:

Parameter Default Description
page 1 Result page
per_page 20 Results per page, maximum 100
from current time Beginning of the occurrence range
to five years ahead End of the occurrence range
show_past false Allows historical occurrences

Responses expose event UUID, content, permalink, format, status, dates, timezone, next occurrence, location, price, featured image, categories, and tags.

Authenticated WordPress editors can use the endpoints even when public access is disabled.

Signed webhooks

Webhooks can be sent for:

  • event.created
  • event.published
  • event.updated
  • event.cancelled
  • event.postponed

Deliveries are queued through WordPress Cron and sent as JSON POST requests. If a signing secret is configured, the signature is sent in:

X-ISW-Signature: sha256=<hex-digest>

Verification example:

$expected = 'sha256=' . hash_hmac('sha256', $raw_request_body, $secret);
$valid = hash_equals($expected, $_SERVER['HTTP_X_ISW_SIGNATURE'] ?? '');

The Integrations tab displays the latest webhook event, HTTP status, and response message.

ISWorkshop HUB compatibility

ISW Events uses the shared isworkshop-hub parent slug.

  • The first active ISWorkshop plugin creates ISWorkshop HUB
  • Every current or future ISWorkshop plugin adds only its settings submenu
  • Duplicate HUB entries are removed automatically
  • The HUB is hidden when the current user cannot access any child page
  • ISW Events content-management pages remain under the separate ISW Events menu

Performance

  • Occurrence date ranges use an indexed custom table
  • Frontend scripts and styles are loaded only when the relevant shortcode, block, template, or module is rendered
  • Swiper is not loaded for static sliders
  • Event images use WordPress attachment IDs and lazy loading
  • AJAX requests use nonces
  • Past-event filtering uses occurrence data instead of comparing display-formatted dates

Security and privacy

The plugin uses:

  • WordPress capabilities and nonces
  • Strict input sanitization and escaped output
  • Token hashes instead of raw guest-management tokens in the database
  • Rate limiting and honeypots for guest submissions
  • Safe remote requests for webhook delivery
  • Optional HMAC-SHA256 webhook signatures
  • Upload type and size validation
  • WordPress privacy exporters and erasers for registration and ticket data

Installation

  1. Copy the plugin directory to:

    wp-content/plugins/isw-events
  2. Activate ISW Events Manager in WordPress.

  3. Configure global options under ISWorkshop HUB → ISW Events.

  4. Create events under ISW Events.

  5. Add a shortcode, Gutenberg block, Elementor widget, or Avada element to a page.

  6. If needed, save Settings → Permalinks once to refresh event and iCalendar routes.

WooCommerce must be installed and active only when paid ticket functionality is required.

Data storage

WordPress posts and post metadata remain the primary event source. The plugin creates the following optimized tables using the active WordPress database prefix:

Table Purpose
{prefix}isw_event_occurrences Recurring and one-time occurrence index
{prefix}isw_event_registrations Registration and waitlist records
{prefix}isw_event_tickets WooCommerce ticket-tier definitions
{prefix}isw_event_attendees Issued tickets and check-in records

Deactivation preserves event and attendee data.

Project structure

isw-events/
├── assets/
│   ├── css/
│   └── js/
├── includes/
│   ├── integrations/
│   ├── class-isw-events.php
│   ├── class-isw-occurrences.php
│   ├── class-isw-registrations.php
│   ├── class-isw-tickets.php
│   ├── class-isw-community.php
│   ├── class-isw-data-integrations.php
│   └── class-isw-hub.php
├── languages/
├── templates/
├── tools/
├── isw-events-manager.php
├── readme.txt
└── README.md

Development checks

PHP syntax:

Get-ChildItem -Recurse -Filter *.php | ForEach-Object { php -l $_.FullName }

JavaScript syntax:

node --check assets/js/admin.js
node --check assets/js/frontend.js
node --check assets/js/block.js

Translation coverage and Serbian MO compilation:

node tools/check-translations.js
php tools/compile-mo.php languages/isw-events-sr_RS.po languages/isw-events-sr_RS.mo

License

ISW Events Manager is licensed under the GNU General Public License v3.0.


Srpski

ISW Events Manager je kompletna WordPress platforma za upravljanje događajima sa ponavljanjima, kalendarom, slajderima, prijavama, WooCommerce ulaznicama, email podsetnicima, frontend unosom, builder integracijama, prenosom podataka, REST API pristupom i potpisanim webhook-ovima.

Plugin koristi indeksiranu occurrence tabelu za brze hronološke upite, dok WordPress objave i meta podaci ostaju primarni izvor podataka.

Najvažnije mogućnosti

  • Event custom post type sa naslovom, editorom, excerpt-om, istaknutom slikom i galerijom
  • Jednokratni, višednevni, celodnevni i ponavljajući događaji
  • Posebna vremenska zona za svaki događaj
  • Fizički, online i hibridni događaji
  • Kategorije, oznake, lokacije i organizatori
  • AJAX navigacija kalendara i filtriranje događaja
  • Responsive Swiper slajder sa statičnim prikazom kada nema dovoljno događaja
  • Premium vizuelna podešavanja kalendara, kartica i navigacionih strelica
  • Ugrađeni template-i single event stranice
  • Email podsetnici 24 sata pre početka
  • Double opt-in prijave, kapaciteti i liste čekanja
  • Opciona prodaja ulaznica preko WooCommerce-a i QR prijava
  • Frontend prijava događaja i korisnički dashboard
  • Gutenberg, Elementor i Avada integracije
  • Schema.org Event podaci i iCalendar podrška
  • UTF-8 CSV uvoz/izvoz sa stabilnim UUID povezivanjem
  • Opcioni javni REST API i HMAC-potpisani webhook-ovi
  • Integracija sa zajedničkim ISWorkshop HUB admin menijem
  • Engleska i srpska latinična lokalizacija

Model događaja

Svaki događaj podržava:

  • Datum i vreme početka
  • Opcioni datum i vreme završetka
  • Celodnevni režim
  • Vremensku zonu događaja
  • Tekstualnu lokaciju i višekratno upotrebljive venue objave
  • Organizatore
  • Fizički, online ili hibridni format
  • URL online događaja
  • Cenu
  • Zakazan, odložen, otkazan i rasprodat status
  • Oznaku istaknutog događaja
  • Kategorije i tagove
  • Galeriju sa više ID-jeva slika iz WordPress medijateke
  • Izbor single-page template-a

Prošli događaji se podrazumevano ne prikazuju u kalendaru, slajderu, listi i agendi. Za njihov prikaz koristite show_past="true".

Ponavljajući događaji

Occurrence engine podržava:

  • Dnevno ponavljanje
  • Nedeljno ponavljanje
  • Mesečno ponavljanje
  • Godišnje ponavljanje
  • Proizvoljne datume
  • Interval ponavljanja
  • Maksimalan broj termina
  • Datum završetka ponavljanja
  • Izuzete datume
  • Do 500 generisanih termina po događaju

Termini se čuvaju u indeksiranoj tabeli {prefix}isw_event_occurrences.

Shortcode prikazi

Kalendar

[isw_calendar]
[isw_calendar show_past="true"]

Početni prikaz generiše PHP, dok prethodni i sledeći mesec koriste nonce-zaštićen AJAX bez osvežavanja stranice.

Slajder

[isw_event_slider autoplay="true" loop="true" items_per_view="3"]
[isw_event_slider show_past="true" items_per_view="4"]
Atribut Podrazumevano Opis
autoplay true Uključuje automatsko pomeranje
loop true Uključuje kruženje kada postoji dovoljno događaja
items_per_view 3 Broj vidljivih kartica, od 1 do 6
show_past false Prikazuje prošle događaje

Ako broj događaja nije veći od items_per_view, Swiper se ne pokreće. Kartice postaju statičan responsive grid koji popunjava širinu elementa.

Događaj bez featured slike dobija automatski generisan gradient placeholder.

Lista i agenda

[isw_event_list]
[isw_event_list filters="false" category="konferencije" format="online"]

[isw_event_agenda]
[isw_event_agenda show_past="true"]

Podržani atributi:

Atribut Podrazumevano Opis
show_past false Prikazuje prošle događaje
filters true Prikazuje AJAX filtere
category prazno Slug kategorije
search prazno Početni pojam pretrage
format prazno physical, online ili hybrid
venue 0 ID venue objave
date_from prazno Početak raspona, YYYY-MM-DD
date_to prazno Kraj raspona, YYYY-MM-DD

Frontend filteri obuhvataju ključnu reč, kategoriju, format, lokaciju i raspon datuma.

Single event stranice

Dostupni template-i:

  • Classic — featured slika, sadržaj, detalji i galerija
  • Hero — veliki hero sa istaknutom slikom
  • Minimal — fokus na sadržaju
  • Active theme template — koristi template aktivne teme i dodaje ISW module

Single event stranica može sadržati detalje, galeriju, prijavu ili prodaju ulaznica, email podsetnik, iCalendar link i moderno dizajniranu navigaciju na prethodni/sledeći događaj.

Naslov kartice i dugme „Detaljnije“ uvek vode na permalink događaja.

Vizuelna podešavanja

Kompletna podešavanja se nalaze na:

ISWorkshop HUB → ISW Events

General

  • Primarna boja
  • PHP format datuma

Calendar

  • Prikaz ili skrivanje vikenda
  • Prvi dan u nedelji
  • Elevated, minimal ili bordered stil
  • Boje pozadine, zaglavlja, teksta, bordera i event elemenata
  • Border radius
  • Visina dnevne ćelije
  • Vizuelni preview

Card Style

  • Boje pozadine, teksta, meta podataka, bordera i dugmeta
  • Odnos stranica slike
  • Veličina fonta i padding
  • Border radius i senka
  • Hover i image zoom efekti
  • Razmak između kartica
  • Prirodna ili jednaka visina kartica
  • Strelice stalno vidljive, samo na hover ili skrivene
  • Dugme sa strelicom ili obična strelica
  • Veličina, boje, border, offset, animacija i hover transformacija strelica
  • Vizuelni preview

Sanitizacija čuva vrednosti neaktivnih tabova, pa snimanje jednog taba ne resetuje podešavanja drugog.

Prijave

Prijave za događaje podržavaju:

  • Potvrdu email adrese
  • Double opt-in
  • Ograničenje kapaciteta
  • Više mesta u jednoj prijavi
  • Rok za prijavu
  • Automatsku listu čekanja
  • Prebacivanje sa liste čekanja kada se oslobodi mesto
  • Bezbedno samostalno otkazivanje
  • Administratorsko upravljanje
  • CSV izvoz
  • WordPress privacy export i erase alate

Podaci se čuvaju u {prefix}isw_event_registrations.

WooCommerce ulaznice

WooCommerce je opcioni dodatak. Sve funkcije osim prodaje ulaznica rade bez njega.

Kada je WooCommerce aktivan, moguće je:

  • Kreirati besplatne ili plaćene tipove ulaznica
  • Definisati zalihu i kupovna ograničenja
  • Podesiti period prodaje
  • Vezati ulaznicu za određeni ponavljajući termin
  • Koristiti WooCommerce naplatu, poreze i obradu porudžbina
  • Generisati jedinstvenu ulaznicu za svakog posetioca
  • Prikazati i štampati ulaznicu sa QR kodom
  • Skenirati check-in link
  • Prepoznati duplu prijavu
  • Poništiti check-in i ponovo izdati ulaznicu
  • Izvesti podatke o posetiocima

Tabele:

  • {prefix}isw_event_tickets
  • {prefix}isw_event_attendees

Ručni prikaz:

[isw_event_tickets]
[isw_event_tickets event_id="123"]

Email podsetnici

Posetilac može zatražiti podsetnik sa single event stranice. WordPress Cron proverava predstojeće termine i šalje email približno 24 sata pre početka.

Za pouzdano slanje na sajtovima sa malim prometom preporučuju se pravi server cron i pravilno konfigurisan transactional email servis.

Community unos događaja

Aktivira se na:

ISWorkshop HUB → ISW Events → Community
[isw_event_submit]
[isw_event_dashboard]

Mogućnosti:

  • Frontend kreiranje i uređivanje
  • Vlasništvo prijavljenog korisnika
  • Opcione prijave gostiju
  • Privatni SHA-256 token za uređivanje guest događaja
  • Moderacija ili automatsko objavljivanje
  • Email obaveštenje administratoru
  • Honeypot i nonce zaštita
  • IP rate limiting
  • Obavezna stranica uslova i privatnosti
  • Validiran upload featured slike
  • Korisnički dashboard
  • Otkazivanje događaja
  • Automatska occurrence sinhronizacija

U Community podešavanjima izaberite stranicu koja sadrži [isw_event_submit].

Builder integracije

Gutenberg

Dinamički ISW Events blok podržava:

  • Grid, slider, list i agenda prikaz
  • Stil kartica
  • Broj kartica
  • Autoplay
  • Prikaz prošlih događaja

Elementor

ISW Events widget sadrži kontrole za layout, brzinu slajdera, autoplay, broj kartica, prošle događaje i boje.

Avada / Fusion Builder

ISW Events element pruža iste ključne layout, slider i style opcije.

SEO i kalendarski feed

Plugin generiše:

  • Schema.org Event JSON-LD
  • Pojedinačne .ics fajlove
  • Javni iCalendar subscription feed:
https://example.com/events-feed.ics

Ako feed nakon aktivacije vraća 404, otvorite Settings → Permalinks i jednom sačuvajte podešavanja.

Uvoz i izvoz

Otvorite:

ISW Events → Import / Export

UTF-8 CSV obuhvata sadržaj, excerpt, slug, status objave, datume, vremensku zonu, format, lokaciju, cenu, recurrence opcije, kategorije, tagove i stabilni UUID.

Uvoz prvenstveno povezuje događaje po UUID-u. Stariji fajlovi bez UUID-a mogu koristiti WordPress ID. Nakon uvoza se automatski ponovo generišu occurrence zapisi.

Maksimalna veličina fajla je 5 MB, a po zahtevu se obrađuje najviše 5.000 redova.

REST API

Javni REST API je podrazumevano isključen. Aktivira se na:

ISWorkshop HUB → ISW Events → Integrations
GET /wp-json/isw-events/v1/events
GET /wp-json/isw-events/v1/events/{id}

Parametri liste:

Parametar Podrazumevano Opis
page 1 Stranica rezultata
per_page 20 Broj rezultata, maksimalno 100
from trenutno vreme Početak occurrence raspona
to narednih pet godina Kraj occurrence raspona
show_past false Dozvoljava istorijske termine

Prijavljeni WordPress urednici mogu koristiti endpoint i kada je javni pristup isključen.

Potpisani webhook-ovi

Podržani događaji:

  • event.created
  • event.published
  • event.updated
  • event.cancelled
  • event.postponed

Isporuke se izvršavaju asinhrono preko WordPress Cron-a kao JSON POST. Kada je postavljena tajna, potpis se šalje u zaglavlju:

X-ISW-Signature: sha256=<hex-digest>

PHP provera:

$expected = 'sha256=' . hash_hmac('sha256', $raw_request_body, $secret);
$valid = hash_equals($expected, $_SERVER['HTTP_X_ISW_SIGNATURE'] ?? '');

Integrations tab prikazuje poslednji webhook događaj, HTTP status i poruku.

ISWorkshop HUB kompatibilnost

Plugin koristi zajednički isworkshop-hub parent slug:

  • Prvi aktivni ISWorkshop plugin kreira HUB
  • Svaki postojeći ili budući plugin dodaje samo svoj settings submenu
  • Duplirani HUB elementi se automatski uklanjaju
  • HUB je sakriven ako korisnik nema pristup nijednoj stranici
  • Operativne event stranice ostaju pod posebnim ISW Events menijem

Performanse

  • Datumski upiti koriste indeksiranu occurrence tabelu
  • Frontend resursi se učitavaju samo kada je odgovarajući prikaz prisutan
  • Swiper se ne učitava za statične slajdere
  • Slike koriste WordPress attachment ID-jeve i lazy loading
  • AJAX zahtevi koriste nonce zaštitu
  • Prošli događaji se proveravaju preko occurrence podataka

Bezbednost i privatnost

  • WordPress capabilities i nonce zaštita
  • Sanitizacija ulaza i escape izlaza
  • Hashovani guest tokeni
  • Rate limiting i honeypot zaštita
  • Bezbedni remote webhook zahtevi
  • Opcioni HMAC-SHA256 potpisi
  • Validacija tipa i veličine upload-a
  • WordPress privacy export i erase alati

Instalacija

  1. Kopirajte plugin u:

    wp-content/plugins/isw-events
  2. Aktivirajte ISW Events Manager.

  3. Podesite plugin u ISWorkshop HUB → ISW Events.

  4. Kreirajte događaje u meniju ISW Events.

  5. Dodajte shortcode, Gutenberg blok, Elementor widget ili Avada element.

  6. Po potrebi jednom sačuvajte Settings → Permalinks.

WooCommerce je potreban samo za prodaju ulaznica.

Čuvanje podataka

Tabela Namena
{prefix}isw_event_occurrences Indeks jednokratnih i ponavljajućih termina
{prefix}isw_event_registrations Prijave i lista čekanja
{prefix}isw_event_tickets Tipovi WooCommerce ulaznica
{prefix}isw_event_attendees Izdate ulaznice i check-in

Deaktivacija plugina ne briše podatke.

Razvojne provere

PHP:

Get-ChildItem -Recurse -Filter *.php | ForEach-Object { php -l $_.FullName }

JavaScript:

node --check assets/js/admin.js
node --check assets/js/frontend.js
node --check assets/js/block.js

Lokalizacija:

node tools/check-translations.js
php tools/compile-mo.php languages/isw-events-sr_RS.po languages/isw-events-sr_RS.mo

Licenca

ISW Events Manager je objavljen pod GNU General Public License v3.0 licencom.