A comprehensive WordPress plugin for event management, ticketing, and reporting designed specifically for Visit Grenada, Mississippi. This plugin provides a complete solution for creating, managing, and selling tickets for events with seamless Elementor integration.
📋 Table of Contents
- Features
- Requirements
- Installation
- Configuration
- Elementor Widgets
- Usage
- Settings
- API Endpoints
- Developer Notes
✨ Features
Core Functionality
- Event Management
- Custom post type for events (
grev_event) - Event categories and venues taxonomies
- Start/end date and time management (via JetEngine)
- Location and venue assignment
- Google Maps integration for event locations
- Featured images and event descriptions
- Custom post type for events (
- Ticketing System
- Ticket quantity management
- Ticket pricing (free or paid events)
- Ticket sales status control
- Remaining tickets tracking
- Attendee registration and management
- User Features
- User interest tracking (save events for later)
- Ticket purchase system
- Ajax-based purchase flow
- User registration form with auto-username generation
- User dashboard for registered events
- Payment Integration
- Stripe payment gateway support
- Test mode for development
- Live/test mode toggle
- Secure payment processing
- Admin Dashboard
- Event orders management
- Event participants tracking
- Settings panel for Stripe credentials
- Custom login/registration page settings
- Comprehensive reporting
Elementor Integration
The plugin includes 11 custom Elementor widgets for building event pages:
- Events List – Display events in grid or list layout
- Events Calendar – Interactive calendar view with month navigation
- Events Filter – Filter events by category, venue, or date
- Event Details – Display event title, content, and featured image
- Event Meta Information – Show event metadata (dates, location, venue)
- Event Date & Time – Advanced date/time display with icons and styling
- Event Location Map – Google Map for single event location
- Event Venue Maps – Display maps for all assigned venues
- Event Purchase/Interest Box – Ticket purchase and interest buttons
- Event Participants – Show registered attendees
- Registration Form – User registration with Ajax validation
🔧 Requirements
- WordPress: 5.0 or higher
- PHP: 7.4 or higher
- Elementor: 3.0 or higher (for widget functionality)
- JetEngine: Latest version (for date/time meta fields)
- Google Maps API Key (for map features – optional)
📦 Installation
- Upload the
grenada-ms-eventsfolder to/wp-content/plugins/ - Activate the plugin through the ‘Plugins’ menu in WordPress
- The plugin will automatically create necessary database tables
- Configure settings in Grenada Events → Settings
⚙️ Configuration
Initial Setup
- Navigate to Settings
- Go to
Grenada Events → Settingsin WordPress admin - Configure Stripe payment credentials (if using paid events)
- Set test/live mode
- Configure custom login and registration pages
- Go to
- Create Event Categories
- Go to
Grenada Events → Categories - Add categories for organizing events
- Go to
- Create Venues
- Go to
Grenada Events → Venues - Add venue names and addresses
- Optionally add latitude/longitude for map display
- Go to
- Create Events
- Go to
Grenada Events → Add New Event - Fill in event details
- Set date/time using JetEngine meta fields
- Configure ticket pricing and availability
- Set location and assign venues
- Use Google Map picker for precise location
- Go to
Google Maps Setup
- Obtain a Google Maps API key from Google Cloud Console
- Enable the following APIs:
- Maps JavaScript API
- Places API (for autocomplete)
- Geocoding API
- Add the API key in WordPress admin under your theme/plugin settings (if required by your theme)
🎨 Elementor Widgets
Events List Widget
Display a list or grid of events with filtering options.
Features:
- Grid or list layout
- Filter by category
- Show/hide past events
- Posts per page control
- Featured image display
Events Calendar Widget
Interactive calendar view with month navigation.
Features:
- Month view with week numbers
- Navigation arrows (customizable styling)
- Event display in calendar cells
- Today’s date highlighting
- Responsive design
Event Date & Time Widget
Advanced date and time display with extensive styling options.
Features:
- AM/PM time format
- Separate styling for date and time
- Icon support (Font Awesome and SVG)
- “From” and “To” labels
- List or inline layout
- Smart single-date handling
- Comprehensive style controls
Event Location Map Widget
Display Google Map for a single event’s location.
Features:
- Customizable map height and zoom
- Show/hide location text
- Gap control between map and location
- Full styling options
Event Venue Maps Widget
Display maps for all venues assigned to an event.
Features:
- Show/hide map toggle
- Show/hide venue address toggle
- Multiple venue support
- Individual map for each venue
Registration Form Widget
User registration form with Ajax validation and submission.
Features:
- Name, email, username, password fields
- Auto-username generation from email
- Real-time field validation
- Ajax submission
- Success/error message display
- Optional redirect after registration
- Comprehensive style controls
📝 Usage
Creating an Event
- Navigate to
Grenada Events → Add New Event - Enter event title and description
- Set event date and time using JetEngine meta fields:
event_start_date– Start dateevent_start_time– Start timeevent_end_date– End dateevent_end_time– End time
- Set location and use map picker for coordinates
- Assign categories and venues
- Configure ticket settings:
- Ticket price
- Available quantity
- Sales open/closed status
- Publish the event
Building Event Pages with Elementor
- Create a new page or edit existing event template
- Add Elementor widgets from the “Grenada Events” category
- Configure widget settings in the Content and Style tabs
- Customize styling using Elementor’s built-in controls
- Preview and publish
Using Shortcodes
The plugin provides shortcodes for displaying events:
[grev_events_list category="category-slug" limit="10" show_past="false"]
🔐 Settings
Stripe Payment Settings
Configure Stripe payment gateway in Grenada Events → Settings → Stripe Payment:
- Test Mode: Toggle for testing without real payments
- Test Publishable Key: Stripe test publishable key
- Test Secret Key: Stripe test secret key
- Live Publishable Key: Stripe live publishable key
- Live Secret Key: Stripe live secret key
Page Settings
Configure custom pages in Grenada Events → Settings → Page Settings:
- Login Page: Select custom login page (built with Elementor/JetEngine)
- Registration Page: Select custom registration page (built with Elementor/JetEngine)
🔌 API Endpoints
The plugin provides REST API endpoints for Ajax functionality:
Registration
- POST
/wp-json/grev/v1/register- Register new user
- Requires: name, email, username, password, confirm_password
Purchase
- POST
/wp-json/grev/v1/purchase- Purchase event tickets
- Requires: event_id, quantity, nonce
- Requires user authentication
Interest
- POST
/wp-json/grev/v1/interest- Toggle user interest in event
- Requires: event_id
- Requires user authentication
User Events
- GET
/wp-json/grev/v1/user/events- Get user’s registered and interested events
- Requires user authentication
👨💻 Developer Notes
File Structure
grenada-ms-events/
├── assets/
│ └── js/ # JavaScript files
├── includes/
│ ├── elementor-widgets/ # Elementor widget classes
│ ├── grev-admin.php # Admin interface
│ ├── grev-assets.php # Asset enqueuing
│ ├── grev-elementor.php # Elementor integration
│ ├── grev-helpers.php # Helper functions
│ ├── grev-post-types.php # Custom post types
│ ├── grev-rest.php # REST API endpoints
│ └── ...
├── grenada-ms-events.php # Main plugin file
└── grev-styles.css # Frontend styles
Custom Post Types
- grev_event: Event post type
- grev_category: Event category taxonomy
- grev_venue: Event venue taxonomy
Database Tables
wp_grev_attendees: Stores ticket purchases and attendee informationwp_grev_user_interests: Stores user interest in events
Hooks and Filters
The plugin uses standard WordPress hooks. Key actions:
grev_after_order_created: Fired after ticket purchaseadmin_menu: Menu registration (position: 30)
Meta Keys
The plugin uses JetEngine meta fields for date/time:
event_start_date: Event start date (timestamp or date string)event_start_time: Event start timeevent_end_date: Event end date (timestamp or date string)event_end_time: Event end time
Other meta keys:
GREV_location: Event location textGREV_event_lat: Event latitudeGREV_event_lng: Event longitudeGREV_ticket_price: Ticket priceGREV_ticket_quantity_available: Available tickets
📚 Additional Documentation
🐛 Troubleshooting
Widgets Not Showing
- Ensure Elementor is installed and activated
- Check that the page is built with Elementor
- Verify widget is in the “Grenada Events” category
Maps Not Displaying
- Verify Google Maps API key is configured
- Check browser console for API errors
- Ensure required APIs are enabled in Google Cloud Console
Styles Not Loading
- Clear browser cache
- Ensure
grev-styles.cssis enqueued - Check for theme CSS conflicts
📄 License
This plugin is proprietary software developed for Visit Grenada, Mississippi.
👥 Credits
- Developer: Visit Grenada MS
- Version: 1.1.0
- WordPress Compatibility: 5.0+
For support and updates, contact the development team.
