Grenada MS Events

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

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
  • 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:

  1. Events List – Display events in grid or list layout
  2. Events Calendar – Interactive calendar view with month navigation
  3. Events Filter – Filter events by category, venue, or date
  4. Event Details – Display event title, content, and featured image
  5. Event Meta Information – Show event metadata (dates, location, venue)
  6. Event Date & Time – Advanced date/time display with icons and styling
  7. Event Location Map – Google Map for single event location
  8. Event Venue Maps – Display maps for all assigned venues
  9. Event Purchase/Interest Box – Ticket purchase and interest buttons
  10. Event Participants – Show registered attendees
  11. 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

  1. Upload the grenada-ms-events folder to /wp-content/plugins/
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. The plugin will automatically create necessary database tables
  4. Configure settings in Grenada Events → Settings

⚙️ Configuration

Initial Setup

  1. Navigate to Settings
    • Go to Grenada Events → Settings in WordPress admin
    • Configure Stripe payment credentials (if using paid events)
    • Set test/live mode
    • Configure custom login and registration pages
  2. Create Event Categories
    • Go to Grenada Events → Categories
    • Add categories for organizing events
  3. Create Venues
    • Go to Grenada Events → Venues
    • Add venue names and addresses
    • Optionally add latitude/longitude for map display
  4. 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

Google Maps Setup

  1. Obtain a Google Maps API key from Google Cloud Console
  2. Enable the following APIs:
    • Maps JavaScript API
    • Places API (for autocomplete)
    • Geocoding API
  3. 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

  1. Navigate to Grenada Events → Add New Event
  2. Enter event title and description
  3. Set event date and time using JetEngine meta fields:
    • event_start_date – Start date
    • event_start_time – Start time
    • event_end_date – End date
    • event_end_time – End time
  4. Set location and use map picker for coordinates
  5. Assign categories and venues
  6. Configure ticket settings:
    • Ticket price
    • Available quantity
    • Sales open/closed status
  7. Publish the event

Building Event Pages with Elementor

  1. Create a new page or edit existing event template
  2. Add Elementor widgets from the “Grenada Events” category
  3. Configure widget settings in the Content and Style tabs
  4. Customize styling using Elementor’s built-in controls
  5. 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 information
  • wp_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 purchase
  • admin_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 time
  • event_end_date: Event end date (timestamp or date string)
  • event_end_time: Event end time

Other meta keys:

  • GREV_location: Event location text
  • GREV_event_lat: Event latitude
  • GREV_event_lng: Event longitude
  • GREV_ticket_price: Ticket price
  • GREV_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.css is 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.