MDJM Event Management


MDJM Event Management is the solution for Event based businesses who wish to automate their processes and enable clients to manage events.

It is an event planning solution built specifically for websites running on WordPress ensuring the users are familiar with the Administration settings and look and feel.

MDJM Event Management allows you to manage your events from enquiry stage through to completion. Add your employees, your clients and then create an event.

Key Features

  • No event or employee restrictions
  • Multi employee aware
  • Record all transactions
  • Detailed reporting
  • Granular permissions for employee roles
  • Showcase your business products
  • Auto calculate and apply travel costs to your events
  • A front-end client portal (Client Zone) where your clients can manage their events
  • Client playlists with guest access
  • Digital Contract Signing
  • Automated emails
  • Track whether or not client emails have been opened
  • Create event packages for simplistic price assignment
  • Track the most successful marketing strategies for your business
  • Automate daily and weekly tasks
  • Create an unlimited number of custom email and contract templates
  • Developer friendly
  • A number of plugin extensions are available to further enhance the automation including Contact Forms, Payment Gateways and Calendar Sync

Communication with MDJM Event Management Servers
This plugin will only communicate with MDJM Event Management servers when paid MDJM extensions are installed for the purpose of license checks and providing updates to the paid extensions only. This communication does not happen when there are no paid MDJM extensions installed.

Paid extensions installation, licensing and updates

All paid extensions for MDJM Event Management must be installed manually, see Installing Extensions for more info.

License and update checks for paid extensions are only run when there are paid extensions for MDJM Event Management installed.


  • An overview of the MDJM Event Management Dashboard screen as seen by an Administrator when they are logged into the WordPress Admin UI
  • The Dashboard as seen by an employee when they are logged in
  • A view of the settings page (not seen by non-admins)
  • Permissions can be set to determine what an employee can see/do within the application
  • Event listing within the Admin UI
  • The client’s homepage on the website front end
  • The playlist feature as utilised by clients


Automated Installation

  1. Login to your WordPress administration screen and select “Plugins” -> “Add New” from the menu
  2. Enter “MDJM Event Management” into the Search Plugins text box and hit Enter
  3. Click “Install Now” within the MDJM Event Management plugin box
  4. Activate the plugin once installation is completed

Manual Installation

Once you have downloaded the plugin zip file, follow these simple instructions to get going;

  1. Login to your WordPress administration screen and select the “Plugins” -> “Add New” from the menu
  2. Select “Upload Plugin” from the top of the main page
  3. Click “Choose File” and select the file you downloaded
  4. Click “Install Now”
  5. Once installation has finished, select “Activate Plugin”
  6. Once activation has completed, click the “Settings” link under the MDJM Event Management plugin
  7. Installation has now completed. Next you need to configure MDJM.


Is any support provided?

Support can be obtained via our online Support Pages.
Support is provided on a best-endeavours basis.

Is there a Pro version with additional features?

Extensions are available to enhance the plugin via our Extension Store


2024 年 3 月 13 日
This all-in-one solution offers everything we could possibly need, and then some. What sets it apart is not just its comprehensive features but also its commitment to frequent updates, ensuring that we always have access to the latest tools and improvements. Without a doubt,MDJM has become the only plugin we’ll ever need. Highly recommended for any DJ company looking to elevate their game.”
2019 年 9 月 16 日
Awesome plugin it’s about time i able to find something that i could use without any headaches for sure i would recommend and 5 star rating thank you for this plugin.
2016 年 9 月 3 日
Great plugin. I use it about 5 months and must say it’s perfect system for DJ management.
2016 年 9 月 3 日
This plugin seems to have every feature my DJ client wants (and didn’t know he wanted), and the system is easy to use. Worth the price.
2016 年 9 月 3 日
This plugin is amazing!, it does what it is supposed to do by letting your business look even more professional. No more hassle on sending emails messages you are already fully booked. No more taking up time setting up a whole quote on a document. Best plugin ever! and the support is fantastic!
閱讀全部 8 則使用者評論


以下人員參與了開源軟體〈MDJM Event Management〉的開發相關工作。


〈MDJM Event Management〉外掛目前已有 2 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈MDJM Event Management〉外掛本地化為台灣繁體中文版


任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄



Enhancement: Added customisable page excerpts for Client Portal pages.


Fix: Travel cost now working as expected.


Enhancement: Changed the Event Status colours – can be customised too.
Enhancement: Changed the Settings Layout
Enhancement: Added “Remaining Balance due date” as a {custom_tag}
Enhancement: Added QR Code Generator (Optional in Settings) to display a QR Code for Guest Playlist access.
Fix: Fixed the travel pricing, distance and timing – users need to use their own API for this.
Fix: Fixed the Playlist Global Setting for new events.
Fix: Compliance Documents now get the Save As dialog when downloading.


PHP 8 Ready

– Email Client button now hides if the event status is set to “unattended enquiry”
– Finances Overview now in a separate Metabox.

– Event Details link from Event Summary screen now showing for everyone
– various mdjm** tags now displaying correctly


– Added the Balance Remaining amount to the deposit/balance paid metabox.
– Got ready for Mailchimp release

– Display “Make Payment” button if BACS option is only selected.


– Added functionality of clients being able to download PLI and/or PAT Certificates from the Client Area.
– Changed the Client Portal button colour to Hex value

– Position of the login form now showing in correct place


– CSS Change on settings page to make it easier to read
– Easier to determine the email and online quote templates

– File upload sending via email
– Time in Event settings


Few tweaks to code and few more security fixes.


– Added End Time and Guest Playlist URL to the Event Details page
– Added the option of inputting BACS details and displaying them front end on the payments page.
– Show an error if end time is set before the start time.
– Changed the CSS for the Print/Email Event button
– Made Event Status a sortable column.
– Add Venue name to the main events listing page.
– Added 7 new colours to the Action Button in the client zone – Black, White, Purple, Pink, Yellow, Light Grey and Dark Grey.
– Added client phone number to the event details printout.
– Changed the playlist page to print full event details to hand out to staff
– Allow the support of the new Stripe and
– Added a “next year” filter option.
– Added a 5 year buffer to the current year on filtering.
– Changed past date to -7 years.
– Deleting clients in bulk was throwing a fatal error. Fix applied.
– Force jQuery Datepicker to override Bootstrap Datepicker
– Employee Availability Calendar on the back end.
– jQuery for the front-end Availability Checker.
– Option to unload Font Awesome from plugin settings, if needed.
– Fixed bug in playlist manager which caused playlists to close.
– Fixed missed icons
– Fixed addons calculation

Emergency Fix


Saturday, 14th August 2021

New: Compatibility up to WordPress 5.8

Bug: Fixed PHP error on equipment package and add-ons pages
Bug: Fixed contract viewing conflict with Elementor / Elementor Pro

Removed: Optional upload playlist data to MDJM servers task


Wednesday, 23rd December 2020

Security: Audit – Fixed several XSS vulnerabilities
Security: Audit – Input data hardening (validation and sanitization)
Security: Audit – Output data hardening (escaping)
Security: Fix unauthorised client event access (Reported by waynehaffenden)
Security: Remove remote libraries called within the plugin, libraries are now stored locally within the plugin

New: Compatibility up to WordPress 5.6

Bug: ‘Disable the visual editor when writing’ breaks editor on communications screen (Reported by rikkilake)

Cleanup: Remove ‘qtip’ and ‘popover’ libraries from plugin as these are not used


Monday, 25th June 2018

New: Added setting options to customize the title, tip title and tip content for availability calendar entries
New: Added option to delete employee absence entries when user account is deleted

Tweak: Display all employee absences on the calendar – previous only those holding a role that was defined within Settings -> Client Zone -> Availability Checker -> Employee Roles were displayed

Bug: Incorrect return variable within mdjm_get_all_absences() resulted in meta not being removed with absences


Friday, 22nd June 2018

New: The availability system has been revamped to allow more functionality flexibity, and faster lookups
New: Full calendar view on the availability admin page. Click calendar events to manage them
New: New availability databases add flexibility for enhanced future functionality
New: Added calendar settings under Misc tab

Tweak: Creation of new playlist database tables ready for future release
Tweak: Updated uninstall process to remove new database tables

Bug: Incorrect formatting of currency during total cost calculation meant some events could not be saved

Dev: Added hooks to enable extensions to perform actions during absence actions
Dev: Removed a bunch of deprecated functions


Friday, 1st June 2018

Bug: Incorrectly formatted values for currencies that show the symbol after the amount caused event cost to not be updated
**Tweak*: Updated setting description for Privacy Policy settings


Thursday, 31st May 2018

New: Added privacy functionality for General Data Protection Regulation (GDPR) compliance
New: Added Compliance tab within MDJM Events -> Settings
New: Added ability to present and require acceptance of Privacy Policy for all MDJM related forms
New: Added ability to present and require acceptance of Terms & Conditions for all MDJM related forms (payment forms, contact forms, etc.)
New: User information stored as part of MDJM will be exported as part of the WordPress Export Personal Data process
New: Capture time of acceptance for privacy policy and terms and conditions
New: Added MDJM GDPR Privacy Policy template suggestion


Wednesday, 30th May 2018

Fix: Custom event fields were not correctly setting value on events screen following contact form submission
Fix: Client primary phone was not being displayed within the Show client details box on the events screen


Monday, 28th May 2018

Fix: Manually entered venues were not output on the events screen
Fix: Fatal error when viewing client screen
Fix: Client details not output on events screen (related to above)
Tweak: Added Required PHP Version to readme.txt


Sunday, 27th May 2018

NOTE: The playlist-client.php, playlist-guest.php, profile-client.php mdjm.css and mdjm.min.css files have been updated. If you have customized templates and copied to your theme, you will need to compare the changes

New: Refreshed the events admin screen with more responsive and easy to manage layout
New: Discounts can now be applied to events
New: Display break down of event costs on events page
New: Added option to require deposit to be paid before an event is marked as confirmed
New: Added the Tasks metabox to the event screen so admins can execute tasks whilst managing an event
New: Client profile page is now templated and AJAX based
New: Client profile page has been updated to be more responsive and inline with the formatting of forms used elsewhere
New: Playlist client and guest pages have been updated to be more responsive and inline with the formatting of forms used elsewhere
New: Client playlist is powered by AJAX
New: Added Twitter and Facebook share links to the client playlist page
New: Guest playlist form is now powered by AJAX and displays all entries added by the guest during the current session
New: Guests can now remove songs they have entered during their current session
New: Added client playlist notification task to notify clients of guest submissions
New: Added employee playlist notification task to notify if entries exist
New: Added fields to enter client address when creating client from events page
New: Auto set the setup time based on event start time. Define the default setup time within Settings -> Events
New: Added the employee_address content tag
New: Clicking the number of events within the venue list table will now take you to a filtered list of events for the venue
New: Added pagination to the clients list
New: Added the additional_cost content tag
New: Added the discount content tag
New: Added caching to event transaction queries to improve event screen load times
Tweak: Prohibit the deletion or renaming of the slug for the playlist Guest category
Tweak: Clients can now be searched by ID, email, and display name on the clients page
Tweak: Correctly named media button options from Shortcodes to Content Tags
Tweak: Employee content tags now start with employee_ rather than dj_. dj_ is maintained for backwards compatibility
Tweak: Updated jQuery Chosen library version
Tweak: Removed a bunch of deprecated files
Fix: Employee notification email was not sent during event confirmation
Fix: Balance reminder task may not send reminder until day of event
Fix: Do not hide empty categories when adding items to the playlist
Fix: Corrected value for default playlist category
Fix: Corrected the number of events a contract is assigned to
Fix: Removed notification that client received playlist email when emailing to employee via admin
Fix: Correctly set the value to ‘all’ if no event type is defined for a package
Fix; Correctly honour the min/max values for a number field within the MDJM_HTML_Elements class

Released 10th January, 2018

  • IMPORTANT: An admin updating their own user profile may result in a loss of MDJM permissions

Released 3rd November, 2017

  • New: Added playlist limit option to limit the number of entries that can be added. Define within Event settings. Overide per event.
  • Fix: Adding employee absence generates error

Released 15th September, 2017

  • Fix: Stray comment tag within login form template
  • Fix: Payment process may cause PHP notice due to missing meta key

Released 27th July, 2017


  • Added option to export and import MDJM settings via the MDJM menu, Tools -> Import/Export so settings can be exported from one site and imported into another

Bug Fixes

  • Event end date should not be a required field
  • Event end date was not auto recognising next day finishes
  • Corrected setting variable within cache helper
  • PHP warning may have been displayed when formatting date for datepicker

Released 7th July, 2017


  • Added End Date field to event screen
  • Made Add New Client table more responsive. Reduced to 2 column
  • Made Client Email field larger on event screen
  • Added Event Name column to event list table. Column is hidden by default and can be made visible via Screen Options
  • Added Edit Event link to transactions that are linked to events

Bug Fixes

  • From column may display “array” within Communication History

Released 4th July, 2017


  • Added MDJM_Cache_Helper class to automatically prevent caching of MDJM pages – so long as caching plugins adhere to standards!

Bug Fixes

  • Fixed responsive display for events table


Released 19th June, 2017


  • New Automated Tasks interface
  • Added options to run automated tasks on demand
  • Added {event_admin_url} content tag
  • Minified all MDJM scripts
  • Added better styling to the licensing settings page
  • Added Extensions page
  • Updated license handler
  • Set all default settings on install

Bug Fixes

  • Issue #177 – Corrected end date format for exporting of transactions which was causing CSV export failure
  • Issue #176 – Incorrect URL format for redirects on availability check when there is no availability
  • Issue #174 – Some automated tasks were not running if the associated meta key was missing from the event
  • Issue #180 – Client shortcodes displayed employee details when templates are emailed to employees via the Communication feature
  • Textarea input not saving correctly for custom fields on the event screen
  • Inserted missing text domain in various locations
  • Duplicate enqueuing of datepicker within Availability widget causing potential PHP notice
  • Ensure employee settings are saved correctly for add-ons
  • “Null” message was being displayed when adding a new client failed


  • Validate zero cost for an event before saving
  • {event_date} now returns the date as defined within WordPress -> Settings -> Date Format
  • Added mdjm_do_honeypot_check() function
  • Improved uninstallation procedure
  • Added hooks before and after employee holiday additions
  • Display template path in system info if custom templates in use
  • Better scheduling of WP Cron tasks
  • Adjusted license handler checks to daily
  • Moved language files from /lang/ to /languages/
  • Use local jquery-ui CSS files
  • Some generic code tidying
  • Improved code commenting
  • Removed a bunch of deprecated constants


Release 28th November, 2016

Bug Fixes

  • Issue #170 – Unattended Enquiries were missing when Hide Inactive Events? was enabled
  • Issue #166 – Package select field may generate a PHP notice if not set to an employer
  • Issue #167 – Journal entries are not visible
  • Issue #168 – Duplicate event statuses returned from mdjm_all_event_status() function


Release Friday, 7th October 2016


  • Added Event setting Hide Inactive Events?. When checked, The All view within the event listing page is replaced with Active Events and includes events in the status of Enquiry, Awaiting Contract and Confirmed only

Bug Fixes

  • Issue #162 – Reduced width of contract signing fields to avoid mis-alignment
  • Corrected path to gateway log file. Logs were not being written
  • Issue #163 – Custom Event Field descriptions were not displayed correctly


  • Use updated alert class after signatory details


Released 27th September, 2016


  • Allow passing of input field name within the /mdjm/v1/addons/options/ API route to support Dynamic Contact Forms


Released 25th September, 2016

Bug Fixes

  • Issue #151{dj_email} content tag does not render content
  • Issue #152 – Make sure Custom Client Field slugs do not contain non-standard characters and stripslashes from the labels
  • Issue #153 – Corrected display for the {ddmmyyyy} content tag


  • Add the data-cfasync="false" attribute to MDJM JS scripts that are enqueued to tell CloudFlare Rocket Loader to ignore them
  • Do not include journal entries in comment counts on the dashboard, or associated with the mdjm-event post type
  • Update all MDJM Journal entries to type mdjm-journal
  • Ensure we’re using the mdjm_add_journal() function and no other deprecated function to insert journal entries


Released 10th September, 2016

Bug Fixes

  • Default package and addon values to array() during upgrade to avoid PHP notices
  • Corrected ordering for packages and addons
  • Order by meta_value_num on packages and addons edit screen for price ordering
  • Downgrade required permissions for accessing upgrades page due to sporadic behaviour
  • Manually update_user_meta() for a new client to address a strange issue whereby wp_insert_user() is not populating first/last name


  • Let upgrade transients expire rather than forcefully deleting
  • If the auto applying of travel costs is disabled, we will not display the travel cost under the venue


Released 7th September, 2016

Bug Fixes

  • Incorrectly passing date string to dashboard widget causes fatal error
  • Issue #144 – Incorrectly validating event ID renders {event_name} empty
  • Issue #143 – Addon price not displaying when using {event_addons_cost} shortcode
  • Issue #137 – Order packages and addons in ascending order
  • Issue #139 – Auto setting employee for Unattended Enquiries received via Contact Forms may obscure available packages and add-ons


Released 5th September, 2016


REST API introduced

A number of API endpoints have been introduced enabling developers to easily and securely integrate and query MDJM.

In order to use an API endpoint, a user must have an API key and token which can be generated under MDJM->Tools->API Keys. Exceptions for the Availability and all Package/Addon related endpoints, which are public and require no authentication to generate a response.

Endpoints Include

  • /event/ to query a single event by ID
  • /events/ to retrieve all events or query multiple events by date, employee, client, or status
  • /employee/ to retrieve an employees details by their user ID
  • /client/ to retrieve a clients details by their user ID
  • /availability/ to query availability by date. Further filtering by employees or roles is also possible
  • /package/ to retrieve information regarding a single equipment package
  • /packages/ to retrieve multiple equipment packages. Filtering possible
  • /addon/ to retrieve information regarding a single addon
  • /addons/ to retrieve multiple equipment addons. Filtering possible.

Equipment Packages and Addons

  • Now treated as posts enabling you to write detailed descriptions and add multiple images
  • Easy to showcase within your website content
  • Packages and Addons can be categorised and marked as available at all times or during certain months, event types, or for certain employees
  • Variable pricing is possible for individual (or grouped) months of the year
  • Settings for Packages and Addons have been moved to MDJM -> Settings -> Events -> Packages & Add-ons

Travel Data

  • Added options to automatically add travel costs to overall event cost
  • Define cost per mile/kilometer
  • Select not to add costs if under specified distance
  • Costs are determined from events primary employee address (if stored), otherwise a default address specified in settings
  • Generation of URL to Google Maps to view directions to event
  • Content Tags added to output travel data including cost, distance, directions and time


  • Add songs to playlist from within admin
  • Added System Info data under MDJM->tools. May be requested during support requests
  • New upgrade procedures. Initiated via Ajax and informative whilst running
  • Removed deprecated Playlists custom DB table
  • Re-ordered some items within the WP Toolbar New Admin menu
  • Added API Keys interface to manage users API keys
  • Removed a number of deprecated constants related to post types
  • Availability checker on the front end now uses MDJM REST API if Ajax enabled
  • Improved licensing validation for addons
  • Added event count to At a Glance dashboard widget

Bug Fixes

  • MDJM Event Management user fields not updating within Admin user profile if value is removed
  • Overview dashboard widget was displaying income/expenditure that was not in the completed status

Released Thursday 28th July, 2016

Bug Fixes

  • Corrected message parameter when data is missing from contract signing form. Fixes issue #124
  • Better validation of checkboxes for contract signing form. Fixes issue #126
  • User ID is not converted to integer value in URL string. Fixes issue #125
  • Spelling correction in div class


  • Use new alert class when contract is signed

Released Sunday 24th July, 2016

Bug Fixes
* Corrected content tag for retrieving {dj_email}. Fixes issue #121

* Added {dj_lastname} content tag.

* Added mdjm_get_employee_phone() and mdjm_get_employee_alt_phone() functions
* Added mdjm_get_client_login() and mdjm_get_client_alt_phone() functions

Released Wednesday 20th July, 2016

Bug Fixes
* Corrected hook for setting custom artist label. DJ will now be correctly substituted. Fixes issue #104
* mdjm_get_addons() and mdjm_get_packages() may have generated a PHP notice if no add-ons/packages were defined. Fixes issue #118

* Added {final_balance} content tag. Outputs the final balance payment for an event. Total cost minus deposit, even if the deposit is unpaid

* Added mdjm-tick css class within admin
* Input labels are no longer bold on the admin event screen

Released Tuesday 12th July, 2016


  • Corrected shortcode [mdjm-quote] in description for quotes_page setting option. Props @nikmartin
  • Added hooks to the new client table on the events screen
  • Added hooks mdjm_before_add_new_client and mdjm_after_add_new_client
  • Corrected hook name within mdjm_process_payment_form()
  • Added hooks mdjm_before_events_overview and mdjm_after_events_overview to overview widget
  • Display notices above and below payment form

Released Sunday 10th July, 2016

Bug Fixes

  • Issue #108 – Missing css class selector for event action buttons


  • Added Failed as transaction status
  • Added function mdjm_get_required_payment_fields() function to enable registration of required fields on the payments form
  • Added function mdjm_required_payment_field() function to determine if a payment form field is required
  • Improved CSS on payments page
  • Display notices above and below payment form


Released Friday 7th July, 2016


  • MDJM now supports multiple payment gateways

Bug Fixes

  • Issue #108 When creating an event set the default venue ID as manual to capture fields from Contact Forms


  • Updated payment settings page
  • Display payment button in Client Zone if a gateway is defined
  • Updated Client Zone alert CSS classes
  • Added mdjm_update_txn_status() function for easier status updates of transactions
  • Added mdjm_has_gateway() function to check if a gateway is enabled
  • Record the transaction ID of the merchant fee in the main incoming transaction
  • Added generic payment success, cancel, fail messages in the event that a gateway extension does not provide
  • Added mdjm_send_gateway_receipt() function which is called as part of the complete event payment process hooks
  • Added function mdjm_get_user_ip() to determine users IP address
  • Enqueue dashicons on the payments page
  • Display a padlock and message if the payment page is SSL

Released Sunday 3rd July, 2016

Bug Fixes
* Need to sanitize deposit / balance payment to correctly identify if paid

* Added new mdjm-alert css classes to be introduced across the system in due course

Released Saturday 2nd July, 2016

Bug Fixes
* Do not save event cost as a formatted value. Causes issues with some currencies. Issue [#105( “Issue #105”)

* Added function mdjm_get_event_txns()
* Added function mdjm_list_event_txns()
* Use mdjm_get_event_txns() when calculating total event income
* Use mdjm_list_event_txns() for {payment_history} content tag
* Better sanitization of currency values
* Comment corrections

Released, Sunday 26th June 2016
Bug Fixes

  • Issue #100 PLaylist count was not displayed correctly when using view filters
  • Unattended events should not have the deposit/balance checkboxes checked
  • Hold the selection when the Event Type filter is used
  • Remove possibility of PHP notice generation when no client events are within filter
  • Spelling correction in $mdjm_allowed_taxonomies variable

Released, Saturday 25th June 2016
Bug Fixes
* Issue #101 Corrected {guest_playlist_url} output and redirect visits to incorrect URL

Released, Friday 24th June 2016
Bug Fixes
* Issue #97 Process deposit/balance payments after meta updates in case their values have changed
* Issue #96 Corrected display of un-saved event address fields and ensure that the correct value is initially selected for the venue list

* When creating a new event default to - Select Venue -

Released, Friday 24th June 2016
Bug Fixes
* Issue #97 Process deposit/balance payments after meta updates in case their values have changed
* Issue #96 Corrected display of un-saved event address fields and ensure that the correct value is initially selected for the venue list

Released, Thursday 23rd June 2016
* Select how you want events to be sorted on the admin screen. Default Order By and Default Order setting options added within MDJM->Settings->Events

Bug Fixes
* Issue #94 Venue content tags not returning correct values
* Issue #84 Enable Playlist not remaining checked
* Issue #93 Event type filter should display event count for each event type
* Issue #92 Maintain current event status view when using event filters
* Issue #90 Save the DJ setup date value when after it is auto populated
* Issues #88 and [#83( “Issue #83”) Deposit Paid should not be checked when creating a new event. Ensure that the Balance Paid checkbox holds is checked status

* Remove deprecated use of MDJM_MULTI from the mdjm_event_post_filter_list() function
* Added mdjm_get_employee_address() function
* Added mdjm_get_employee_post_code() function

Released, Monday 20th June 2016
Bug Fixes
* Make sure we catch custom event fields that are set as checkboxes during event save
* Possible PHP notice generated during event save if no venue address defined

* Display venue information field on event screen


Released, Sunday 19th June 2016

* Event screen metabox facelift
* Client list is searchable on event screen
* Checking the deposit or balance paid checkboxes on the events screen now creates transactions for the remaining amounts
* Checking the balance paid checkbox auto sets the deposit to the paid status
* Manual event payments from the events screen now determine if the deposit and/or balance for the event is paid and mark as appropriate
* Manual event payments from the events screen now generate an email using the selected Manual Payment Template
* Added content tag {deposit_remaining}
* New setting Set Client Inactive?. When enabled, a client will be set as inactive when their event is cancelled, failed, or rejected and they have no further upcoming events
* Determine if a client needs re-activating when an event is recovered
* Request #76 Added content tag {client_alt_phone} to display the clients additional phone # if provided
* Request #79 Form validation on communication page
* Add a new venue directly from the event screen
* Toggle details for clients, venues, and transactions on event screen

* Client list is readonly if event is no longer active
* Pre-load $employee_id within the MDJM_Event class
* Added function mdjm_get_clients_next_event() to replace method in deprecated MDJM_Events class
* Don’t display view contract link if contract not digitally signed. Applies to both admin and Client Zone
* Make sure client is shown in dropdown when viewing a non-active event and the client is set as inactive
* New class MDJM_HTML_Elements for easier display of input fields
* Custom client fields are now displayed two fields per row
* Custom event fields are now displayed two fields per row
* Added function mdjm_get_event_remaining_deposit()
* Added functions mdjm_get_taxonomy_labels() and mdjm_get_post_statuses()
* Added function mdjm_month_num_to_name()
* Added function mdjm_sanitize_key()
* Added function mdjm_get_event_deposit_type()
* Added get_start_time(), get_finish_time(, get_package(), get_addons() to MDJM_Event class
* Added method get_remaining_deposit() to MDJM_Event class
* Make sure all ajax functions are prefixed mdjm_ and suffixed _ajax
* Better formatting of currencies
* Added functions mdjm_get_enquiry_sources() and mdjm_enquiry_sources_dropdown()
* Added client functions mdjm_get_client_full_address(), mdjm_get_client_last_login(), mdjm_do_client_details_table
* Removed deprecated methods from soon to be deprecated MDJM_Txns class
* Correctly sanitize venue details for display

Bug Fixes
* Events should not be publicy queryable
* If deposit type is set to percentage of total cost, a JS error ocurred when focusing out of the total cost field
* Issue #70 Client phone number does not save when created on the events screen
* Issue #72 Use remove_query_arg for redirect link on login page
* Issue #73 Admin is unable to review signed contracts
* Issue #75 Unattended Enquiry and Enquiry admin bar links had extra whitespace causing link to malfunction
* Issue #77 {application_home} content tag not correctly returning URL


  • New : MDJM now uses internal login functions for the Client Zone login process
  • New : Added [mdjm-login] shortcode to present a login form on any page
  • New : Added {event_employees} and {event_employees_roles} content tags
  • Bug Fix: Issue #68 {guest_playlist_url} is missing part of the string

  • Bug Fix: Issue #66 Template content does not load when a recipient is auto loaded into the communication page
  • Bug Fix: Missing </div> tag from single-event template file
  • Tweak : Added None option to Manual Payment Confirmation Template setting

  • Bug Fix: Issue #63 Incorrect formatting caused transactions over 999.99 to be displayed as 1
  • Bug Fix: Adding event transaction ajax function now works in Firefox browser
  • Bug Fix: Correctly manage arrays within the $copy_to var in the communication page
  • Tweak : All admin ajax functions re-written and consolidated into single file except for soon to be deprecated validation
  • Tweak : Added Added method get_remaining_deposit() to MDJM_Event class
  • Tweak : Changed ajax loader image from spinner
  • Tweak : Added button class to Add New link for Event Types on events screen
  • Tweak : Added button class to Remove Employee link events screen
  • Tweak : Moved MDJM_Employee_Table class to start of file
  • Tweak : Removed New -> Quote from admin bar

  • Tweak: Login form is now aligned and responsive
  • Bug Fix: Spelling correction in function name

  • Bug Fix: Corrected output for contract signed date
  • Bug Fix: Issue #60 Random echo statement causes PHP notice on employee permission update
  • Tweak: Added content tag {event_package_description}
  • Tweak: Better formatting for event price
  • Tweak: Client filter is sorted alphabetically
  • Tweak: GitHub links now direct to organisation

  • Bug Fix: Issue #53 Do not double format the event deposit cost
  • Bug Fix: Issue #54 Display action buttons even when no event ID is passed
  • Tweak: Allow filtering of the number of action buttons being displayed via add_filter( 'mdjm_action_buttons_in_row', '*your_function*' );. Default is …