(newer changes: see readme.txt)
= 2.2.69 (2022/03/26) =
* Export also partial payment info (received and remaining) in the CSV export for bookings
* Add forgotten filter eme_event_formfields
* Cache extra queries, resulting in much better performance
* Add a div with a class around the text "You can change your last name in your WP profile." so you can hide it if you'd like.
= 2.2.68 (2022/03/22) =
* Fix PHP warning
* Add filters eme_event_formfields, eme_location_formfields, eme_membership_formfields, allowing you to influence e.g. the order of custom fields shown in the EME admin interface
for events, locations and memberships
= 2.2.67 (2022/03/19) =
* Fix a recursion detection, causing some placeholders/shortcodes not to be replaced in certain cases
= 2.2.66 (2022/03/18) =
* Do not apply the filter eme_event_list_filter in the backend
* Add booking placeholder #_IS_PENDING (returns 1 if booking is pending approval, 0 otherwise)
* Added #_USER_IS_REGISTERED placeholder for shortcode eme_tasks_signups, can be used as e.g. conditional tag
* Added #_HAS_USER_TASK_REGISTERED{xx} (with 'xx' being one or more task ids, seperated by comma) returns 1 if the current logged in user is registered for one of the mentioned tasks
* Added shortcode eme_mytasks to show the signups for the current logged in user. Extra options:
'scope' => 'future' (other values: 'past', 'all')
'task_id' => 0 (so you can use this shortcode inside a eme_tasks shortcode to show signups in a specific format)
'event_id' => 0 (so you can use this shortcode inside a eme_events shortcode to show signups in a specific format)
'template_id' => 0 (if not specified, the generic task signup template will be taken)
'template_id_header' and 'template_id_footer' (see the doc)
* Allow to change also start date for recurrences via mass action
* Improved regex to better catch paired curly brackets, even when enclosed in others
This also allows for more recursion for event and membership placeholders
= 2.2.65 (2022/03/02) =
* Take deleted groups into account when editing a custom field of type "people"
* Update Braintree API to 6.6.0
* Update Dompdf to 1.2.0
* Added "on behalf of" part for cli_mail forwarding
* Add all sent mails to the database, even if no queueing is active
* Support "scope" as a parameter for the shortcode eme_mybookings. Default value "future" (other options: "past" or "all"). The old "future" parameter will override the scope parameter if set
= 2.2.64 (2022/02/19) =
* Multiseat typo fix
= 2.2.63 (2022/02/16) =
* Bring back the "Mark paid and approve" button
* Fix the deprecated option "approval_status" for eme_my_bookings, eme_bookings and eme_attendees shortcodes
= 2.2.62 (2022/02/16) =
* Fix eme_mybookings (sql error) shortcode
= 2.2.61 (2022/02/15) =
* Added placeholders #_CURDATE{xx}, #_CURTIME{xx}, #_BOOKINGPAYMENTDATE{xx}, #_BOOKINGPAYMENTTIME{xx}, #_BOOKINGCREATIONDATE{xx} and #_BOOKINGCREATIONTIME{xx} so you can format the layout to your liking ('xx' being the date/time format in php date notation)
* Added bulk actions to set GDPR or Massmail to "no"
* Fix #_ATTENDEES showing trashed bookings too
= 2.2.60 (2022/02/15) =
* For sub/unsub form: the mailgroup select will be a single preselected dropdown if only 1 group is to be presented
* Also delete person linked to unconfirmed booking after cleanup if that person is not used in other bookings or memberships and created around the same time as the booking
* Add action eme_delete_person_action
* Fix eme_mybookings (sql error) shortcode
* Fix sending reminders for pending/approved bookings (was reversed) and #_BOOKINGS (was showing trashed bookings too)
= 2.2.59 (2022/02/14) =
* Remove the ugly code for linking rsvp section from one event to another. You can always use [eme_add_booking_form] if you want to use the booking form from another event.
* Changed option approval_status to rsvp_status (the old option will continue to work for now, but is depecrecated) for shortcodes eme_bookings, eme_mybokings, eme_attendees
* Add an option to ask for user confirmation after a booking. The booking itself will stay marked as pending until the person has confirmed it. Also cleanup actions have been added to remove unconfirmed bookings (default: unconfirmed bookings older than 24 hours will get removed)
* For subscribe/unsubscribe: #_MAILGROUPS shows by default a list of all public groups, now you can limit that list by using #_MAILGROUPS{xx} with xx a comma-separated list of group ids
* Obfuscate all emails of people (not just contact/author but also bookers or members) if shown on the site
* Defined action eme_trash_person_action
* Added code to prevent mail obfuscation in html mails
= 2.2.58 (2022/02/10) =
* Attendance check returned empty for qrcode scan if a booking was not paid and the user doing the scan was logged in
* Don't replace shortcodes in event or location notes too soon
* Make sure gdpr cron actions are planned
= 2.2.57 (2022/02/07) =
* Fix attendance-only events (if someone selected 0 seats, it was not accepted)
* Add condition 'not equal to' for dynamic data
* Make dynamic fields also work for RSVP forms in the admin backend
= 2.2.56 (2022/02/06) =
* Fix for forever memberships (end date was not correctly set to 0)
* Change "mail_only" to "public" for groups as an option, becayse #_SUBSCRIBE_TO_GROUP can also be used for those
* Groups to subscribe to (that are rendered via #_SUBSCRIBE_TO_GROUP in the rsvp/member form) need to be set to 'public', just as for eme_subform and eme_unsubform shortcode or the form generated by #_UNSUB_URL
* Make sure no mail error message is returned if the subject/body is empty for certain member actions
= 2.2.55 (2022/02/05) =
* A custom field of type "People" can now be in more than one group as a field condition, meaning the field will then appear for all people in one of the selected groups when editing a person
* Fix list of people being shown for an empty group (list should be empty, not everybody)
* Allow eme_email as an URL parameter for the page containing the eme_subform or eme_unsubform shortcode, causing the email field there to be filled in immediately
* Added bulk action "remove from group" for people in the admin backend
* Add placeholder #_SUBSCRIBE_TO_GROUP{xx} for RSVP and member forms, to allow people to indicate they want to be a member of a certain group
(xx can be the id or name of a group)
= 2.2.54 (2022/02/02) =
* Add order param for multibooking form shortcodes (only has effect when using together with scope or category_id options)
* Fix 2 possible php notices
= 2.2.53 (2022/01/27) =
* Ajax for author and contact in admin interface when adding/editing an event (for big sites the list of wp users was just too big)
* Readonly for email/lastname/firstname in multibooking too if logged in
* Fix a php error when the combo of multibooking+only_one_event+simple was used
* Fix booking for only_one_event
* Fix php warning for categories
= 2.2.52 (2022/01/25) =
* For events and memberships: only configured payment methods are now shown and never selected by default
* Fix conversion for answer values causing a php error when wanting to convert to a localized value (currently no longer converted)
= 2.2.51 (2022/01/24) =
* Convert value to price when using #_FIELDVALUE for answer of custom fields that had "extra charge" indicated
* Better layout for backend task signups overview (clickable events and people now)
* Fix a typo causing bookings to fail to work for events (one letter ...)
= 2.2.50 (2022/01/23) =
* Add options signupform_template_id and skip_full to eme_tasks_signupform shortcode
* Add task placeholder #_TASKID (allows you to call e.g. [eme_task_signups task_id=#_TASKID] when inside the list of task signups
* Add task placeholder #_TASKSIGNUPS, to be able to show a list of signups inside the signup form itself (format is then done via the generic EME settings for tasks)
* Added event placeholders #_AVAILABLETASKS and #_FREETASKS, returns the number of free tasks for an event
* Added the option "simple" to the shortcode eme_add_multibooking_form, allowing simpler multi-booking form (no need to change per-event mail formatting)
* Renamed the option "only_one" to "only_one_event" for the shortcode eme_add_multibooking_form
* Added the option "only_one_seat" to the shortcode eme_add_multibooking_form, which forces the min/max allowed seats to book per event to 1 (and thus hidden)
This is mostly usefull in combination with "only_one_event" or "simple"
* Added shortcode eme_add_simple_multibooking_form, which is identical to eme_add_multibooking_form with the simple=1 option
* Allow to show all custom fields of purpose "people" in the membership overview too. This is a setting in the members-section of the EME options
= 2.2.49 (2022/01/19) =
* Allow the definition of an extra charge for new members in a membership (applied to members in "pending" status only)
* Also allow auto-completion for task signups from the frontend if the permissions allow it
* Removed the long deprecated filter eme_eval_booking_form_filter
* When manually marking a member as stopped, set the end date to today
* Take the full name format into account to do name sorting in groups
* Added people placeholders #_FIRSTNAME{x} and #_LASTNAME{x} (to show only the first x characters of the first or last name, followed by "."), #_INITIALS and #_LASTNAME_INITIALS
* Added extra access settings to define who is able to access the people/groups/members/membership menu (the "list" access setting then does what it currently advertises)
= 2.2.48 (2022/01/14) =
* Allow empty firstname for csv import of people/members
* Indicate that the member-edit template is only used when marking a member as unpaid
* Correctly take the offline info into account before deciding wether or not automatically redirecting to the payment gateway
* Send correct booking mail after moving automatically from waiting list to pending or approved
* For eme_events shortcode: if not needing to show events by period (or "long_events option"), don't try to group by date because that will not provide a correct result for events when using the "order" option
= 2.2.47 (2022/01/12) =
* Use CSS to diable password autocomplete, chrome just keeps messing with it
* Make more personal info read-only when editing a member
* Respect the setting "redirect wait period" for member payments too when the option "Redirect immediately to payment gateway?" is set
= 2.2.46 (2022/01/06) =
* Allow to set a cutoff period in which people can renew their active membership (e.g. renewal only allowed 30 days before the membership currently ends), so people can't pay for multiple periods
= 2.2.45 (2022/01/02) =
* Make sure the ticket gets attached for approved bookings
= 2.2.44 (2021/12/30) =
* Keep existing choice of queue schedule for upgrade from 2.2.41 (can help if you use queue scheduling and didn't update to 2.2.42 yet, otherwise verify your queue settings in the EME mail options section)
= 2.2.43 (2021/12/30) =
* Make sure a sensible default is set for the mail queue schedule ('hourly' if nothing present).
Due to the upgrade to 2.2.42 this option might have been reset to 'hourly'. Please check your EME mail options to verify/change the schedule to your liking.
= 2.2.42 (2021/12/29) =
* Fix gdpr daily actions schedule
* Update Mollie API to 2.39.0
* Fix upgrade from 2.1.122 that might have lost customer answers for events/locations/memberships (not for bookings or members)
* For the subscribe form, lastname and firstname are optional (even when #_LASTNAME and #_FIRSTNAME are used).
They can be made required by using #REQ_LASTNAME and #REQ_FIRSTNAME
* Removed the cron action to send out reminders for unpaid bookings for all events. You can schedule reminders per event, so this cron is no longer needed
* The mail queue settings are moved to the options page (where they belong)
* Fix member transfer to other membership
= 2.2.41 (2021/12/11) =
* Typo fix for dynamic member data
= 2.2.40 (2021/12/11) =
* CSS fix for people image preview
* Small discount layout fix when deleting a group
* Mass action to remove discounts from a group
* Make sure dynamic price calculations happen late enough so the theme discount functions are taken into account too
* If no dynamic fields but "the dynamic data on all fields" is checked, now discount functions of type code will run too, so dynamic price gets updated as well
* Fix adding recurrent events where end time was smaller than start time
= 2.2.39 (2021/12/07) =
* Fix selecting people by random id
* Allow multiple group_ids when using [eme_people]
* Show the person image as personal info too if present, and allow it to be changed in the front too (use #_IMAGE in the "Change personal info Form template")
* Make sure older members get extended too (payment id was missing)
= 2.2.38 (2021/12/03) =
* Mollie tracking fix for members (the mollie payment tracking number was not saved per member after payment)
* Small bugfix causing attachments to not be sent anymore
= 2.2.37 (2021/12/02) =
* Discount fix
= 2.2.36 (2021/12/02) =
* Add mass action to resend member expiration reminder
* Security fix (possible SQL Injection by authenticated users): fix an unescaped search query in the ajax eme_searchmail action (reported via WPScan)
= 2.2.35 (2021/12/01) =
* Allow people to clear the lastname/firstname fields if "Require WP membership" is not selected for events or memberships
* Fix eme_tasks_signups shortcode and let it have the same options as the eme_tasks_signupform shortcode
* Add #_PAYMENTID as placeholder for bookings and members
= 2.2.34 (2021/11/26) =
* Fix sending out reminders for approved bookings
= 2.2.33 (2021/11/24) =
* Allow member id to be imported too for CSV import of members (column: member_id). If the member_id already exists, that value will be ignored
* Added filters eme_event_email_subject_filter, eme_event_email_body_filter, eme_generic_email_subject_filter, eme_generic_email_body_filter
* Add groups, creation and modif date as extra columns for people
* Fix bulk action to add people to a group
* eme_countdown shortcode now shows the difference in days, not taking the hour into account
* Fix undefined var when subscribing to a group
* Fix undefined var when unsubscribing from a group
* For sortable elements (like dynamic data fields), only allow sorting when clicking the sort image, this prevents issues on mobile browsers
* Add eme_add_booking_form_prefilter so people can influence the placeholders already before being replaced
* Reminders can be set per event for pending/approved bookings
* Reminder days can be set to 0 for memberships, meaning to send a reminder the day the membership will expire (at midnight).
The same goed for reminders for pending/approved bookings or tasks
* Added event tasks (for volunteer signups per event). By default this is deactivated, so if you want to use this, go in the generic EME settings and set "Use tasks"
The shortcodes [eme_tasks_signups] and [eme_tasks_signupform] have been created for this (see the doc)
Reminders for tasks are configurable as well.
= 2.2.32 (2021/11/06) =
* In certain cases own javascript had also br-tags added, this caused javascript errors of course.
* Allow immediate redirect to online payment gateway if only 1 gateway is selected for that event/membership.
* Fix storing answers for members, it was a bug introduced in 2.2.29
= 2.2.31 (2021/11/04) =
* Fix subscribe with name/email to mailgroups
= 2.2.30 (2021/11/02) =
* Fix a weird php bug where array_map with extra arguments loses the array keys. This affected mainly the frontend submit plugin
= 2.2.29 (2021/11/01) =
* Allow all booking placeholders to be used as condition for dynamic fields (idem for members)
* Fix email tracking (due to a typo, tracking was not done anymore)
* Allow unfiltered html (except javascript) in some parts, as wordpress does for posts. This will be indicated.
* Fix the display of a person's birthdate/place in members overview
= 2.2.28 (2021/10/27) =
* Correctly move bookings to trash for future events if moving the corresponding person to trash
* Fix showing the language in the countries overview
* Add the translated strings for the select-windows (used for countries/states)
* Added filters eme_insert_discount_filter, eme_insert_event_filter, eme_insert_location_filter, eme_insert_person_filter, eme_insert_group_filter, eme_insert_member_filter
* The chosen setting for 'Check waitinglist when seats become available' was not being saved in the global options
* Added payment gateway placeholders #_PRICE_INCLUDING_CHARGES_NO_VAT and #_PRICE_INCLUDING_CHARGES_VAT_ONLY, #_EXTRACHARGE_NO_VAT and #_EXTRACHARGE_VAT_ONLY
* Allow all payment gateway placeholders to be used as booking and member placeholders too
* Fix 12:00 AM times for events (old bug in ExpressiveDate.php lib)
* Use more resilient placeholder replacement regex
* For Belgium: added Payconiq support
* Added filter eme_insert_event_filter (there's already eme_preinsert_event_filter, but this name is more logical)
= 2.2.27 (2021/10/14) =
* Documented [eme_person] shortcode
[eme_person] parameter person_id can be overriden via a url param (using the person's random id). This allows to create 1 page where you can show other people's info based on their random id (so not easy to guess) from e.g. within an event. The param name is "prid".
* The eme_change_personal_info shortcode will detect if you're logged in and immediately show the form if a linked EME user is found and the option "show_form_if_logged_in" is set to 1 or true
* The eme_request_personal_info shortcode will detect if you're logged in and immediately show the info if a linked EME user is found and the option "show_info_if_logged_in" is set to 1 or true
* EME notices will no longer be shown to non-admin users
* Fix updates for dynamic answers for family members when updating head-of-family (the same answers were taken for all family members, which was not the intention)
* Take UTF-8 BOM into account for CSV import
* Added mass-action to add discounts to groups
* Added mass-action to change "valid from" date for discounts
* Added mass-action to change "valid until" date for discounts
= 2.2.26 (2021/10/04) =
* Fix auto-removal of old expired members (if set in the GDPR settings)
* Fix subscribe/unsubscribe mail forms
= 2.2.25 (2021/10/01) =
* Fix sending of booking mails (due to the quick release of the security issue, I didn't get around to testing that too well, so made a typo)
= 2.2.24 (2021/10/01) =
* More nl2br tuning: don't add a br-tag if the next line starts with a html closing tag
* Optimize the code for extending recurrences
* Fix some undef php variables in paypal legacy payment method
* Allow generic placeholder to contain other placeholders in {..}, so generic placeholders that use {..} can contain event/location/membership placeholders
* Security fix (XSS): fix an unsanitized field (name) in the custom formfields form (reported by Huy Nguyen via WPScan)
= 2.2.23 (2021/09/25) =
* nl2br fixes
* Noscript-detection fixes
= 2.2.22 (2021/09/22) =
* Added event placeholder #_CANCELEND, returns the localized date+time until people can cancel a booking
* Make sure to restore the schedule of the planned actions after deactivation/reactivation of the plugin
* Add new timepicker for some cases (replaced the slider when creating events and for custom fields of type time_js)
* Work around the bug that wordpress doesn't allow "+" in the sanitize_email function
* Some more nl2br where needed
= 2.2.21 (2021/09/12) =
* Detect if javascript is disabled for forms and show an error message if it happens (and not the form)
* Cleanup action added to remove people in trash longer than X days
* Correct payment buttons for memberships
= 2.2.20 (2021/09/08) =
* Added action hook eme_trash_rsvp_action, so you can hook into the removal (trash) of a booking
* Add support for hCaptcha (since Google starts charching for reCaptcha). See https://www.hcaptcha.com/
* Make sure person phone gets updated if linked wp user updates his phone
= 2.2.19 (2021/09/01) =
* The option to check the waiting list when a seat becomes available is now also a global option
* Fix #_AVAILABLEWAITINGLISTSEATS and #_AVAILABLESEATS to better account for booked seats on the waitinglist
* Added #_BOOKEDWAITINGLISTSEATS (number of booked seats on the waiting list)
* Allow current discount usage to be edited too when editing a discount
* Added action hook eme_delete_rsvp_action, so you can hook into the actual removal of a booking too (not just trashing it)
* Added #_CURRENCY and #_CURRENCYSYMBOL for memberships too
* Added #_PRICE_INCLUDING_CHARGES (or #_GATEWAY_PRICE) as placeholder to be used above/below a payment button per gateway, so you can show the price with the charges for that gateway included
* Fix the location add when creating an event again in the backend (caused by setting a default language but because of that the location dropdown showed to avoid multiple locations to be creted)
* Update Mollie API to 2.37.1
* Allow "NOW" as default value for custom fields of type date_js,datetime_js and time_js
* Allow properties for discounts to be imported too
= 2.2.18 (2021/08/26) =
* In case a booking moves from one event to another, check the waiting list of the original event to optionally approve a booking
* #_FILTER_LOCS was not showing the location dropdown in the filter form due to a typo, this has been fixed
= 2.2.17 (2021/08/25) =
* Show a small error message if a non-existing membership ID is used in the eme_add_member_form shortcode
* You can now also use #_LASTNAME and #_FIRSTNAME in the email subscription form (not an obligation), and also in the email subscription confirmation mail
If a logged-in user wants to subscribe, the info is readonly in the form and taken from the wp profile
* Fix edit window for states/countries upon saving when also the option to "Stay on edit page after save" was set
* Fix slug-duplication check/warning in EME options
* Fix booking mails for pending bookings on waiting list
* Only add person to group for a membership (if configured to do so) if the member actually paid
* Added the option to automatically take a booking from the waiting list when seats become available for an event
* Added aria-label for input selects/dropdowns
* Support language tags under the form "[:ll]text[:]" (the default in qtranslate-xt)
* If activating the option to disable wpautop, EME replaces it by a function that replaces carriage returns by br-tags in a smart way
= 2.2.16 (2021/08/16) =
* Fix CSV export of bookings with people custom fields
* Fix discount and limits for groups/members
* When a person subscribes to "all" groups, add them to every group designated as "mail only"
* Be more strict in length of subject when sending mails (wordpress doesn't catch db length issues, so it seems to be an error but one can't trace it back)
= 2.2.15 (2021/08/11) =
* Fix some placeholder matching that accidentally got too strict
= 2.2.14 (2021/08/10) =
* Fix #_DYNAMICFIELD{xx} placeholder for members and bookings
* Show person language and allow to change it
* Start supporting language tags under the form "{:ll}text{:}" (with ll a 2 or 3-letter language code) no matter which plugin is installed. Supports the "lang=ll" query param or the "/ll/" url notation
* Added a filter (eme_language_regex) to change the url language regex detection if done by EME itself and not ok
The default regex is '[a-z]{2,3}', matching 2 letter and 3 letter lannguage notations
This also influences the format of the language tags, so normally you don't need to change this
* Mass action added to update language for a number of people in one go
* Make sure members table gets created for new setups
= 2.2.13 (2021/07/31) =
* Added member placeholders #_PAYMENTGATEWAYUSED, #_TOTALDISCOUNT, #_APPLIEDDISCOUNTNAMES, #_DISCOUNTCODES_ENTERED, #_DISCOUNTCODES_VALID, #_DISCOUNTCODES_USED
* Show more discount/payment columns in member overview
* Added all zero-decimal currencies to the regular currency list
* Added filter eme_payment_gateways, which allows you to change the payment gateways array (and also thus change the order gateways are shown in the payment form)
* Stop supporting IE for the dynamic fields/price
* Pending members are removed based on creation date alone, not start/end date (if configured to do so in the membership)
* Fixed sql for members or people in dynamic groups (in the new style, everyone was included)
* Added cli_mail.php, to be able to pipe mail via php-call to this script to a defined EME group
To use this in e.g. postfix:
1) in /etc/postfix/transport, add your email you want to forward to the group and a custom postfix transport. E.g.:
mygroupemail@mydomain.com my-custom-transport:
2) After that, compile the file (postmap /etc/postfix/transport)
3) Define that custom transport in /etc/postfix/master.cf:
my-custom-transport unix - n n - - pipe
flags=DRhu user=www-data argv=/usr/bin/php -q /path/to/wp-content/plugins/events-made-easy/cli_mail.php -d ${recipient}
4) reload postfix (postfix reload)
5) For all options available to cli_mail.php, do "/usr/bin/php -q /path/to/wp-content/plugins/events-made-easy/cli_mail.php -h"
(-f ${sender} and -d {$recipient} are typically used for postfix piping, but you can use other options too)
* Added eme_bookings_report_link shortcode
= 2.2.12 (2021/07/22) =
* Fix members and people overview which shows all info if on page 0
* Fix GDPR cleanup action (archiving) of old mailings
* Fix #_CONTACTPHONE for events and memberships
* Exclude selected rows when selecting people for deletion and choosing another person to transfer the bookings to
= 2.2.11 (2021/07/20) =
* Better code when updating a booking from the backend (payment status can now also be set when editing)
* When transfering a member to another membership, take dynamic answers into account too (if possible)
* You can transfer a memberships from one person to another person when editing the member
* For family members, also copy the paid status from the main family account
* Allow dynamic member and people groups to be edited (existing dynamic groups are incompatible, but will continue to work as before as long as you don't edit these, in previous releases editing was prohibited so it doesn't change in fact)
* Add mass action to set massmail to Yes for multiple persons in admin backend
(take gdpr into account hen you decide to change this of course)
= 2.2.10 (2021/07/14) =
* Fix a JS error in the console
* Support Brazilian Real
* Allow member transfer to another membership
* Fix searching on event end date too (or between start/end) in bookings
* Make sure that the result is considered ok if no mail is sent due to empty subject or body
* Account for non-linked wp user in the cancel booking form (caused a php notice)
= 2.2.9 (2021/07/10) =
* Allow all attachments to be reused
* Add an option that allows to remove the p-tags/br-tags that wordpress adds/replaces for event/location notes/excerpts
* Added placeholder #_DYNAMICFIELD{xxx} for members and bookings, which works like #_FIELD but for dynamic fields added. Since these can be repeated multiple times, those answers will be separated by a carriage return or a br-tag
* Added shortcode eme_members_report_link (see doc)
* Added option to eme_attendees_report_link to be accessible via the frontend without needing to be logged in (nonce-protected and then the page needs to be password protected too)
* Fix the reporting of approved/pending seats when clicking on Approved/Pending from the events overview and not being admin
= 2.2.8 (2021/07/04) =
* Added placeholder #_PAYMENTGATEWAYUSED for members and bookings, it returns the payment gateway that was used to make the payment
* Added conditional placeholders #_IS_MEMBER_PENDING, #_IS_MEMBER_ACTIVE, #_IS_MEMBER_GRACE, #_IS_MEMBER_EXPIRED
* Added placeholder #_MEMBER_STATUS (returns "Pending", "Active", "Grace period" or "Expired")
* Make Stripe work again
= 2.2.7 (2021/07/03) =
* Hook some actions later into wordpress, after the theme custome filters are loaded too
* Also reuse attachments when reusing a mail or mailing
* Fix CSV booking export for custom fields (due to extra check they were no longer added)
* Update remaining amount to pay if the price of an event has changed when updating a booking
* More userfriendly Stripe payment methods
* Added conditional placeholder #_IS_LOGIN_REQUIRED (returns '1' is login is required to rsvp or the event is private, '0' otherwise)
= 2.2.6 (2021/07/01) =
* Fix filtering for multiple custom fields (using shortcode eme_filterform) of type "event"
* Show linked WP user correctly when editing a person
* Membership evaluation was not working due to added code for discounts, corrected now
* Add attachments to preview mails too if present
= 2.2.5 (2021/06/29) =
* Add membership discounts
* Added bulk action to be able to extend recurrences until a new date
* Also create wp user if adding member from backend if the membership is configured like that
* Add possibility to copy recurrences (just like events)
* Add possibility to search for a name in the recurrences admin pane too
* #_IS_CONTACT or #_IS_AUTHOR_OR_CONTACTPERSON failed to return the expected value if the event contact person was indicated as "event author"
* Allow category descriptions to contain html
* Better removal of yoast headers by EME itself for the special events page
= 2.2.4 (2021/06/18) =
* Fix translation of recurrence table header, so CSV and Print show too
* When the contact or author filter is deselected, make sure we no longer filter for an non-existing person
* Stopping a member could result in all members being marked as expired
= 2.2.3 (2021/06/15) =
* Decrease size of EME by 50% removing unneeded files for mercadopago (saves about 25MB)
* Fix image removal for locations
* Update mercadopago lib to 2.3.0
* Make sure #_SINGLE_EVENTPAGE_EVENTID returns the event id, not the slug
* Fix #_EVENTFUL* filter placeholders
* Support #_EVENTFUL_FILTERWEEKS/MONTHS/YEARS
* Fix filtering for custom fields for events/locations/calendar
* Fix scanning qrcode for event attendance (the total was marked as 0)
= 2.2.2 (2021/06/10) =
* When searching for an existing person, also search for lastname/firstname in the wrong order (if not empty)
* Added filter placeholders #_FILTER_CONTACT and #_FILTER_AUTHOR together with the filters eme_filter_searchfilter_contact and eme_filter_searchfilter_author, which both take an array of options as argument (similar to wp_dropdown_users_args, but only 1 array as argument, this allows you to e.g. add the exclude param to the options so you can exclude certain WP users from the list)
#_FILTER_CONTACT{xx} and #_FILTER_AUTHOR{xx} are the same as #_FILTER_CONTACT and #_FILTER_AUTHOR, the 'xx' just influences the search label shown in the dropdown box
#_FILTER_CONTACT{xx}{yy} and #_FILTER_AUTHOR{xx}{yy} are again the same but the second params influence an exclude list (comma separated) of wordpress IDs you don't want to show in the dropdown list. While this exclude list could also be handled via the filters eme_filter_searchfilter_contact and eme_filter_searchfilter_author, it is easier to do this way (and more likely to be used)
* The body of the mail sent to change your personal info has been changed to a new default setting (reason is that now only 1 mail is sent for all matching emails, instead of 1 mail per matching email). Go in the EME settings to check the new value and change to your liking.
* The setting "full name" has been changed to a new default "#_FIRSTNAME #_LASTNAME". Go in the EME settings to change this after the upgrade if not wanted
* Fix placeholders #_IS_REGISTERED_PENDING and #_IS_REGISTERED_APPROVED
* Support #_CONTACTDISPNAME and #_AUTHORDISPNAME if the event contact/auther (a wp user) is not linked to an EME person
* Allow #_CONTACTLASTNAME (and FIRSTNAME) and also #_AUTHORLASTNAME (and FIRSTNAME) if the event contact/author (a wp user) is not linked to an EME person
* Support setting different payment methods for Stripe
* The address1/2 fields for family members were not copied from the main family member for membership signup
= 2.2.1 (2021/06/05) =
* If the event contact or author (or membership contact, they are all WP accounts) is linked to an EME person, you can now use #_CONTACT (or #_AUTHOR) followed by any person placeholders (e.g. #_CONTACTNAME, #_CONTACTADDRESS1, all people placeholders preceded by "AUTHOR" or "CONTACT") to show EME info from that person
* Added person placeholder #_FULLNAME to return the fullname of a person
* Added generic placeholder #_WPID to return the wp id, this can then be used in included eme_events shortcodes (if e.g. you want to filter on contact id based on current logged in user)
Also added the person placeholder #_PERSONWPID, to optionally return the wp id of the person you're looking at via [eme_people], so you could then show a list of events where that person is contact for (as an example)
* Fix ++YYY-MM-DD scope so it really searches for days greater than, not starting from the beginning of the mentioned day
* Fix sending event related mails (bug introduced in 2.1.117)
* Fix #_FIELD{xx} for files for rsvp/people/member answers (was new in 2.2.0 but not working as expected)
* Make sure events show on the last day too in the calendar if the end time was smaller than the start time (was a new bug in 2.2.0 due to switching over from separate date/time columns to 1)
= 2.2.0 (2021/06/02) =
* The date and time format can now be set differently for the EME backend, if the wordpress settings don't suit you. For frontend settings (replacements in placeholders) this can always be tuned via the existing placeholders and options
* Since #_MEMBER_QRCODE and #_ATTENDANCE_QRCODE (which name is poorly chosen anyway) can't conflict, both have been renamed to just #_QRCODE (the old placeholders still work)
* Event RSVP tab layout improvements
* Add unauthenticated and authenticated attendance format message options when accessing an event attendance url (typically the qrcode)
* Add unauthenticated (authenticated was already there) attendance format message options when accessing an member attendance url (typically the qrcode)
* Added event conditional placeholders #_IS_REGISTERED_PENDING (returns 1 if logged in and registered and user has 1 or more pending registrations for the event) and #_IS_REGISTERED_APPROVED (returns 1 if logged in and registered and user has no pending registrations for the event)
* Added booking conditional placeholder #_IS_APPROVED (returns 1 if approved, 0 if not)
* Added scope now--7d (same as +7d, but taking datetime into account)
* Switch to datetime notation for event start/end, simplifying a lot of code in doing so
* Change in database tables storing custom field answers (merge done for bookings, people, members, events, locations and memberships)
* Allow more placeholders to be used in the form for changing personal info in the frontend
* The shortcodes [eme_gdpr_approve], [eme_request_personal_info] and [eme_change_personal_info] now check the url of the page for the parameter eme_email. If present and a correct email, it will be used to prefill the email field for those forms
* Document the existing shortcodes [eme_request_personal_info] and [eme_change_personal_info] (documentation existed, but was not visible in the doc menu tree)
* Memberships now have the notion of family relationships (where only the main family member will be charged and get reminders, the rest are added as related members)
#_FAMILYCOUNT and #_FAMILYMEMBERS are new membership placeholders that allow to ask how many family members there are and where the data should be rendered in the form.
The membership defnition has an extra new setting ("Family Member Form") that gets repeated for each family member and rendered in place of #_FAMILYMEMBERS
You can also use #_FAMILYCOUNT and #_FAMILYMEMBERS as placeholders in the mail for new members then.
* People now also have the notion of family relationships, but it is only a notion (nothing relates to this, but you can use it to indicate families)
* Initial code added for event tasks (but not operational yet)
* Added personal placeholders #_BIRTHDATE and #_BIRTHPLACE (and the correspondig fields when editing a person)
* Fix multiple file upload for bookings/members
* Allow #_FIELD{xx} for files too when showing booking answers (showing the file upload html link)
= 2.1.122 (2021/05/07) =
* Fix cancel date check introduced in 2.1.121
= 2.1.121 (2021/05/06) =
* When canceling a payment, make sure to only cancel the bookings that are still allowed to be cancelled. The form already only showed those, but upon submit all bookings linked to the payment were still deleted (even if already in the past)
* Improve the search for events when moving a booking (by default only show future events)
* Fix person names when subscribing for an event. If a person with matching email already existed, that person would've been taken and not the latest one.
This was due to a problem created in 2.1.119
= 2.1.120 (2021/05/03) =
* Show a warning if a dynamic data condition is already used in answers when editing an event or membership
* Simplify the dynamic data condition form a bit when defining events or memberships
* Add #_DYNAMICDATA automatically if not present in the format but dynamic data conditions are defined
This was already happening for #_SUBMIT and #_CAPTCHA placeholders too and helps people to make less errors when defining a form format
* Allow reorder in dynamic data conditions for events and memberships
* Add people address info also in member overview (hidden by default)
= 2.1.119 (2021/05/01) =
* Added the option to define a VAT percentage globally or per event or membership.
Also added placeholders for events, bookings, memberships and members:
#_EVENTPRICE_NO_VAT (or #_PRICE_NO_VAT), #_EVENTPRICE_VAT_ONLY (or #_PRICE_VAT_ONLY), #_VAT_PCT
#_TOTALPRICE_NO_VAT, #_TOTALPRICE_VAT_ONLY, #_BOOKINGPRICEPERSEAT_NO_VAT, #_BOOKINGPRICEPERSEAT_VAT_ONLY, #_BOOKINGPRICEPERSEAT_NO_VAT{xx}, #_BOOKINGPRICEPERSEAT_VAT_ONLY{xx}
#_MEMBERSHIPPRICE_NO_VAT, #_MEMBERSHIPPRICE_VAT_ONLY, #_MEMBERSHIPPRICE_VAT_PCT
#_MEMBERPRICE_NO_VAT, #_MEMBERPRICE_VAT_ONLY
* Added placeholders #_DATETIMEDIFF_TILL_START, #_DATETIMEDIFF_TILL_END, #_DATETIMEDIFF_FROM_START, #_DATETIMEDIFF_FROM_END which produce a string like
"1 year 3 months 2 days 3 hours 1 min 5 seconds" or (if e.g. the differences for year and month are 0) "2 days 3 hours 1 min 5 seconds"
Also, if you want own formatting: #_DATETIMEDIFF_TILL_START{xx} and alike can be used, with xx being a php date interval format (see https://www.php.net/manual/en/dateinterval.format.php )
* Added placeholder #_DATETIMEDIFF_START_END{xx}, to indicate the date/time diffeence between start and end, with xx being a php date interval format (see https://www.php.net/manual/en/dateinterval.format.php )
* if the booking is paid for after entering a partial payment and the event is not set to automatic approve, send out the paid mail
* Fix unsub from email groups if the name of a person in EME is not empty
* Fix #_INVITEURL{xx} in rsvp mails when you want to invite the booker for another event
* The attendance qrcode for events is now scannable also when not logged in, people then just see if it is paid for or not (like the qrcode for members in fact)
= 2.1.118 (2021/04/21) =
* Copy the location custom field answers too when copying a location
* Correct the event sanitizing function so it keeps working for the emefs plugin too
= 2.1.117 (2021/04/17) =
* Fix new mail actions from bookings and members admin menu
* Don't queue mails with empty subject and body, they don't get sent anyway
* For invite-only events, the RSVP form now also takes the lastname/firstname from the invite url if present (and then it can't be modified in the rsvp form)
* Fix delete of custom formfields
* Treat a string consisting of only whitespaces as an empty string where appropriate in the admin setting for events and mail templates (and so take the default value if needed)
* Create a mailing entry for newsletters too, so you can see the statistics of it and cancel it as well
* Validate event or location externam url before redirect
* The eme_if conditions incsv and notincv now allow for "," and "+" in their values, so you can search for "string A or string B" (string A,string B) or "string A and string B" (string A+string B) in the mentioned tag
* Copy the event custom field answers too when copying an event
= 2.1.116 (2021/03/29) =
* New mail actions from bookings and members admin menu (to be able to send bookings/members related mails directly from there using templates)
* Added Stripe refund
* Fix a newly introduced db setup issue in 2.1.115 that would empty the title column in templates and type in formfields if you skipped some EME versions and needed a db update
= 2.1.115 (2021/03/21) =
* Make sure to add recaptcha and submit placeholders correctly for eme_subform and eme_unsubform shortcodes if not present in the format
* Fix an undefined var
* When deactivating and then reactivating, make sure the EME schedules are planned again too
= 2.1.114 (2021/03/12) =
* Correct a wrong split-statement and a typo when adding people to groups after rsvp submit
= 2.1.113 (2021/03/12) =
* For future versions, #_SUBMIT and #_CAPTCHA (or #_RECAPTCHA) will be added to forms if not present but needed. This makes life a bit easier for beginning users
* Removed the 3 options that allow to set category separators, only 2 filters remain: eme_categorydescriptions_sep_filter and eme_categories_sep_filter
* Added filter eme_validate_event_filter with 2 options (event and string with existing validation issues), to allow adding own validation rules for the created event.
If the output of the filter is not empty, the event will not be inserted in the db and the returned text will be shown as a validation error instead.
* Allow multiple group selection for rsvp/membership-adding a person to a group
= 2.1.112 (2021/03/05) =
* Added event placeholder #_IS_REGISTERED_PAID, to check if a logged-in person is already registered and has no unpaid bookings for this event
* Added wysiwyg for per-event mail templates
* The option to skip payment options per event was not checked when re-editing an event
* Add support for Google reCAPTCHA
= 2.1.111 (2021/02/26) =
* Allow expired members to sign up again too: this will change nothing in the db but they will be redirected to the membership payment page
* Update Braintree API to 5.5.0
* Update Stripe API to 7.75.0
* Update Mercado Pago API to 2.2.1
* Allow to skip payment directly after booking
= 2.1.110 (2021/02/16) =
* Correctly ignore mail count if the same tracker id arrives within a timeframe of 2 minutes
* Add some hints for mail templates to inform people when some template will not be used.
* Small maxlength fix for time-fields in events which would complain due to new jquery validation (if your wp settings cause the local time to be displayed in more than 8 chars only)
= 2.1.109 (2021/02/08) =
* Added "only_if_not_registered" and "only_one" options to the shortcode eme_add_multibooking_form
The only_one option (default 0) - if value=1 - will cause a dropdown of the matching events to show, and not a select-box list.
* Added "scope" option to the shortcode eme_add_multibooking_form (like for the eme_events shortcode)
* Start using the jquery validate plugin in the backend, so we can jump to the specific event/location/membership tab that has a validation problem if that's the case
* Add pending bookings count to EME admin menu as a badge
* Add "datetime (JS)" and "time (JS)" as formfield types
* Lots of db cleanups, using the local date/time and never db date/time again (it works fine, but just too confusing to take into account multiple timesources)
* Update select2 to 4.1.0-rc.0
* Update dompdf to 1.0.2
* More descriptive error messages upon import failure
= 2.1.108 (2021/01/30) =
* Fix the cancel specific booking per event functionality (when using #_CANCEL_LINK)
= 2.1.107 (2021/01/29) =
* Fix the cancel all bookings for an event functionality (e.g. when using #_CANCEL_OWN_LINK)
* Added placeholders #_BOOKINGPDF_URL{xx} and #_MEMBERPDF_URL{xx} (with 'xx' being a template id) that allows you to generate pdf's with booking/member info in them and mail that url to the person in question. If this placeholder is used multiple times with the same template (e.g. when you use it in "pending" and "approved" mail templates), the newest one remains and the older ones get removed. These placeholders can also be used in the booking thank-you message or the member signed-up template.
* Make sure that the ticket PDF is also sent for pending bookings upon booking time if the setting is "at booking time" or "always"
* Show mail subject in mailing overview too
= 2.1.106 (2021/01/25) =
* Fix mail tracking (it was not being stored in the db due to the new option)
* Add database index to random_id in the mail queue table, to be more efficient for searching
* Correct multivalue event field filtering in the filter form
* Implement first/last read datetime for mails (and not just the first read datetime)
* Added event scopes this_year--yesterday and YYYY-MM-DD--yesterday to show past events
* Align some event payment options with newer code (removes 6 columns in the database for events: 'use_paypal','use_2co','use_webmoney','use_fdgg','use_mollie' and 'use_sagepay')
* Ajaxify subscribe/unsubscribe/gdpr/gdpr approval forms
* Shortcode [eme_change_personal_info] added, which allows people to change their own personal info. The form to change the info can also be configured in the EME settings (tab GDPR)
* Some CSS id's got renamed. While I tried to keep backwards compatibility: if you have custom CSS for the RSVP or membership forms, I advise to check your layout.
* Added [eme_request_personal_info] as an alias for [eme_gdpr] (it is more than just for gdpr compliance anyway)
= 2.1.105 (2021/01/16) =
* Fix expiration reminders for members
= 2.1.104 (2021/01/14) =
* Remove the "always queue" option, now this is default when mail queueing is activated.
* Store the person id or member id for rsvp or member mails, so you can reschedule properly if wanted
* Allow the reschedule action on all queued mails
* Add an option so you need to explicitly activate mail read tracking
* Fix for: if the option to create a WP user upon registering is checked, we check if the email is not already taken in WP before accepting the booking if the booker is not logged in
* WP id is stored with the EME person, so no need to store it again per booking.
* Show all future events when trying to send event-related mails, not just the rsvp-enabled ones
* The placeholders #_MEMBERNEXTENDDATE and #_MEMBERENDDATE also take expired into account now
* Update Stripe API to 7.67.0
* Editing people resulted in a copy of the person with the changes if lastname/firstname/email was changed
= 2.1.103 (2021/01/07) =
* Allow custom seo prefix for categories and locations as well
* Correctly show relevant uploaded files in rsvp overview
* Allow "0" for membership reminder mails too, and don't send expiration reminderds for pending members
* Make #ESC_TOTALSPACES return 0 for events with no space limit
= 2.1.102 (2020/12/30) =
* Fix some undefined vars and optimize code
* Show relevant uploaded files in rsvp/people/members overview too
= 2.1.101 (2020/12/29) =
* Add an extra option to be able to change the page title for themes that don't work using in_the_loop correctly (which seems to be a lot of themes ...)
* Fix some undefined var I introduced to respect the membership start date for fixed period membership if that start date is in the future
= 2.1.100 (2020/12/29) =
* If the option to create a WP user upon registering is checked, we check if the email is not already taken in WP before accepting the booking if the booker is not logged in
This to avoid the creation of an EME user that is then not correctly linked to a WP user.
* Update Braintree API to 5.4.0
* Respect the membership start date for fixed period membership if that start date is in the future
* Allow multiple event seo prefixes to be defined, so you can choose per event which prefix you like best
= 2.1.99 (2020/12/16) =
* Update Leaflet gesture handling plugin to 1.2.1 and add missing map file
* Make sure the option "Hide RSVP ended events?" works correctly
= 2.1.98 (2020/12/09) =
* Make sure that "next_month" is working for the calendar if the current month is December (I forgot to update the year)
* Added Fondy as payment gateway (thanks to Alexander Mankuta)
= 2.1.97 (2020/12/06) =
* Options added to change the text format when trying to pay for a booking that's already paid for or on the waiting list
* Option added to allow to define extra attributes allowed in the html style-tag
= 2.1.96 (2020/11/23) =
* Update dompdf to 0.8.6
* Update Mollie API to 2.24.0
* Update Braintree API to 5.3.1
* Update Stripe API to 7.61.0
* Update Mercado Pago API to 2.2.0
* Fix rsvp submit error when upload field is present and not required but no file was uploaded
* Take into account received payments when showing the payment form again
* Show the remaining amount correctly when using #_AMOUNTREMAINING
* Allow payment date (date the last payment was received) for a member to be changed
* Fix adding a new member to a "forever" membership type
= 2.1.95 (2020/11/09) =
* Add category_id and recurrence_id as optional params for eme_countdown shortcode
* Take negative values into account for rsvp start/end conditions
* Allow to send a mail for cancelled bookings when moving an event to trash from the events overview table
* Update to leaflet 1.7.1
= 2.1.94 (2020/10/27) =
* Add last_seen column and #_MEMBERLASTSEEN placeholder, to indicate the time the member was last seen based on the member qr-code
= 2.1.93 (2020/10/14) =
* Fix the duplicate no-events span-id when showing the no-events message
* marking a booking as unpaid should clear the received amount too
* Better take into account empty wp info when linking a person to a wp user
* Fix #_INVITEURL{xx} (the placeholder #_INVITEURL was taking precedence and so the event-id mentioned was being ignored)
* Correct the twitter headers
* Mailing reuse now takes more info into account for generic mailings
= 2.1.92 (2020/09/20) =
* Fix jquery thing when checking for required fields
* Fix the bug where the ical location format setting was not taken into account for the ical output (a fixed format was used)
* Avoid using new reserved variable grouping in mysql 8.0.1
* #_DELETEBOOKINGFORM allowed too (next to #_DELBOOKINGFORM)
= 2.1.91 (2020/09/02) =
* Fix the combo of calendar_day and location_id (corrects the redirection in case of 1 event and no longer ignores the calendar day if location_id is mentioned)
* Allow to configure the attendance message for active members when the qr code is scanned by a person with enough rights
* Added booking placeholders #_AMOUNTRECEIVED and #_AMOUNTREMAINING, so people can let others know how much they already paid and how much is remaining
* Fix editing bookings with dyndata fields in the backend
= 2.1.90 (2020/08/29) =
* Improve search events when sending mail (you can now search all events, not just future ones)
* Update Mollie API to v2.22.1
* Add some more textual explanatioin to the mail templates settings to indicate when a mail is not being sent
* If logged in, you can't change your name/email for rsvp/memberships if not an admin. Log out if you want to enter other info then.
* Added back the load_plugin_textdomain call, so the backend changes language based on the user language and not on the site language
= 2.1.89 (2020/08/14) =
* More resilient event CSV import
* New shortcode [eme_members], to allow to show specific member info on a site
* Jquery and phpmailer fix (the code mentioned by wordpress is wrong, so this needed a fix)
= 2.1.88 (2020/08/03) =
* Logic fix to be able to allow rsvp until 0 hours before the evend ends
* Allow date to be set when manually adding an attendance
* Correct some EME option explanations
= 2.1.87 (2020/07/27) =
* Sanitize fix for templates (was being too strict now ...)
* Captcha fix
= 2.1.86 (2020/07/27) =
* Fix #_MYSELF as an calendar day argument too
* Added a search mail functionaility to allow to search all sent emails, even those not belonging to a specific mailing (if queuing is on)
* Allow to add an attendance record manually
* Added specific access rights to list or manage (add/delete) attendances
* Fix showing values for option textarea fields (typo for showing option values if those were a html textarea)
= 2.1.85 (2020/07/24) =
* For new installations, the mail sending method now defaults to WP Mail and allows html by default too.
* Update select2 to 4.1.0-beta.1
* New option to redirect pages protected with EME memberships to a custom url. The original page will be added to the query string in the form of "redirect=URL".
* Allow author or contact_person to be "#_MYSELF" if you want to limit events to only those where you're the author:
[eme_events author=#_MYSELF]
or the contactperson:
[eme_events contact_person=#_MYSELF]
or both of course :-)
This is also possible for the [eme_calendar] shortcode, and also for the event and calendar widget options.
* Fix the access rights when updating a recurrence (it denied access even when it should be allowed to update)
= 2.1.84 (2020/07/11) =
* Localize multiprice too
* Change the attendance field on RSVP forms from dropdown to checkbox, and add a class to it
* Added the conditional placeholder #_IS_RSVP_STARTED
* Reuse input from custom fields of type "people" in the frontend too
* Make sure no newsletter mail is sent if no events are planned
* Add a new menu to consult attendance reports on memberships or past events
* Prepare for new 5.5 release of wordpress (5.5 has a newer phpmailer version included in a new location)
* If booking approval is needed and auto-approve after payment is on and the price to pay is 0 (due to discount reduction for example), then mark the booking as approved and not pending
* Attendance records are now stored (for events or memberships that want it) if an EME admin scans the RSVP attendance QRCODE or the member QRCODE
= 2.1.83 (2020/06/26) =
* Allow empty discounts being entered if no discount is required
* Obey the ignore massmail setting for mailings to all people
* Fix the #_RSVP_STATUS placeholder
= 2.1.82 (2020/06/23) =
* Fix the switch for Instamojo from sandbox to live
* Fix hiding existing comments for memberships
* Fix the newsletter functionality
= 2.1.81 (2020/06/13) =
* Hide comments/pings/trackbacks and disable comment form on pages that are members-only
* Also hide the featured image for member protected pages
* Renamed some global constants to avoid conflicts. If you use these in your functions, please verify and correct:
STATUS_TRASH => EME_EVENT_STATUS_TRASH
STATUS_PUBLIC => EME_EVENT_STATUS_PUBLIC
STATUS_PRIVATE => EME_EVENT_STATUS_PRIVATE
STATUS_DRAFT => EME_EVENT_STATUS_DRAFT
RSVP_STATUS_ACTIVE => EME_RSVP_STATUS_ACTIVE
RSVP_STATUS_TRASH => EME_RSVP_STATUS_TRASH
PEOPLE_STATUS_ACTIVE => EME_PEOPLE_STATUS_ACTIVE
PEOPLE_STATUS_TRASH => EME_PEOPLE_STATUS_TRASH
MEMBER_STATUS_PENDING => EME_MEMBER_STATUS_PENDING
MEMBER_STATUS_ACTIVE => EME_MEMBER_STATUS_ACTIVE
MEMBER_STATUS_GRACE => EME_MEMBER_STATUS_GRACE
MEMBER_STATUS_EXPIRED => EME_MEMBER_STATUS_EXPIRED
* Allow online payments to succeed for membership extensions
* Added #_SUBMIT to the list of filter form placeholders, so you can put the submit button (with custom text) wherever you want it
* #_FILTER_CATS, #_FILTER_LOCS, #_FILTER_TOWNS and #_FILTER_COUNTRIES (and their #_EVENTFUL equivalents) now allow an argument to indicate the title for that search field
* Added a setting to disable refunds globally
= 2.1.80 (2020/06/05) =
* #_ATTENDANCE_QRCODE and #_MEMBER_QRCODE now support an argument to define the size. The options: any number from 1 to 8 or the predefined sizes small (=1), medium (=2, the default), large (=4), huge (=8)
Examples: #_ATTENDANCE_QRCODE{huge} or #_MEMBER_QRCODE{4}
Since the default is 2, this can change the size of the generated image (it used to be 3 for #_ATTENDANCE_QRCODE). If your layout depends on this, please verify.
* Revert an attempt to optimize the filter the_content
* Added placeholders #_MEMBERNEXTENDDATE (identical to #_MEMBERENDDATE, but will give the end date of the next period if the person would pay again)
* Member placeholder #_PAYMENT_URL now allows to pay for active members too, this also works for #_MEMBERSHIP_PAYMENT_URL
= 2.1.79 (2020/06/02) =
* Fix to allow non-ASCII characters in the global e-mail template settings (thanks to Sebastian Lisken)
* The placeholders #_USER_HAS_CAP, #_USER_HAS_ROLE, #_USER_IN_GROUP, #_USER_IS_MEMBER_OF, #_IS_USER_MEMBER_PENDING and #_IS_USER_MEMBER_EXPIRED now also allow multiple arguments (separated by ",")
* Revert an attempt to optimize the filter the_title
= 2.1.78 (2020/05/30) =
* In the frontend, allow the edit of firstname, lastname or email in the rsvp/member form if the respective value is empty, even for logged in users. Also allow edit of all other info in the frontend (so people can correct their address, ... on a subsequent signup)
* Generate a payment id for imported members too
* The placeholders #_ADDBOOKINGFORM_IF_USER_HAS_CAP, #_ADDBOOKINGFORM_IF_USER_HAS_ROLE, #_ADDBOOKINGFORM_IF_USER_IN_GROUP and #_ADDBOOKINGFORM_IF_USER_IS_MEMBER_OF now allow multiple arguments (separated by ",") so you can e.g. show the form to only users that are in one of the mentioned EME groups, with certain rols, or if member of one of the mentioned memberships
* Added an option so you can set the text when WP membership (login) is required for a membership
* Added a new bulk action in the members admin interface so you can resend the mail for paid memberships
* Improve the logic to send paid mails (if total price=0 due to a discount, it will be sent too)
* Added an option to disable browser caching of pages (and I recommend activating it ...)
* Added attendance count to CSV export report for bookings
* Added eme_if condition 'notincsv', so for ex. you can compare if a certain value is not in a CSV list (like groups/categories) and based on that show/hide stuff. Also added this as a test condition for dynamic data.
* Fix the #_USER_HAS_ROLE placeholder
= 2.1.77 (2020/05/20) =
* Improve custom field purpose behaviour (you can use 'generic' again, to indicate a field can be used as a member or rsvp field and the usage of these 3 purposes has become a bit more blurred, so in fact 'generic' is no longer deprecated).
* Use all available basic person info in RSVP/member forms when user is logged in
* Officially add the eme_mymemberships shortcode (it already existed but just returned a comma-separated list of membership names, now it has a template/header/footer that can contain member and membership placeholders
* Added placeholder #_RSVPSTART and corrected #_RSVPEND, these give in localized date/time the start or end date/time when rsvp can be done
= 2.1.76 (2020/05/02) =
* Improve paypal error output
* PDF output now has a configurable font setting, which defaults to the unicode font "Dejavu Sans" (setting in section "Other")
* Add organizer info to google ld+json html header
= 2.1.75 (2020/04/24) =
* Actually release the new version ...
= 2.1.74 (2020/04/23) =
* Make google metadata datetime headers show up in correct format for online-only events
For that, the event placeholders #_STARTDATETIME_8601 and #_ENDDATETIME_8601 have been introduced
* Refund made possible for paypal payments (not for existing stored payments though, since the stored paypal id was not the correct one to be able to refund)
* Expand eme_for to allow also lists with a custom separator, and also allow #_LOOPVALUE (plus #URL_LOOPVALUE) and #_LOOPCOUNTER in the repeating content (see doc)
* Fix copy/paste error that causes auto-approve after payment to not approve the booking
= 2.1.73 (2020/04/15) =
* Fix the usage of discount groups
* Make sure sanitized event properties are stored in the event
* Add Mercado Pago the the list of payment gateways
* Fix some SQL for retrieving bookings for registered users
= 2.1.72 (2020/04/04) =
* Fix some undefined variables
* Fix call to wp_kses when saving the EME access denied option
= 2.1.71 (2020/04/04) =
* Fix some undefined variables
* Fix the location url for the google ld+json html header
= 2.1.70 (2020/04/02) =
* When adding a person, custom person field weren't saved upon creation but only upon edit
* Location admin interface overhaul
* Added #_LOCATION_EXTERNAL_URL, as a location can now be totally online (virtual), physical or a combo (and then you might need the url)
* Added eventAttendanceMode to google json+ld output for events
* Existing filter eme_extra_event_headers_filter renamed to eme_extra_event_headers_json_filter, to indicate it is really only used for the json-part of the extra headers for an event
* New filter eme_extra_event_headers_filter that can filter on other extra event headers being added (meta tags)
* You can now receive partial payments for a booking too (only via the admin itf for bookings)
* Added refund option (only for Mollie and Instamojo for now)
* Updated Mollie api to 2.17.0
= 2.1.69 (2020/03/13) =
* Implement drip content
* Update dompdf to 0.8.5
* Fix some url escaping when sending mails
* Extra generic placeholder #_INCLUDE_TEMPLATE, so you can include a generic template where you want
* Template include placeholder (#_INCLUDE) has been renamed to #_INCLUDE_TEMPLATE too
= 2.1.68 (2020/03/08) =
* When importing members from CSV, overwrite existing members if already present
* Keep EME and WP userinfo more in sync
* When updating a person and changing the linked WP user, make sure no other user has that WP id. Also, refuse the update if another EME person already exists with the same lastname/firstname/email as the linked WP user
* If an EME person is linked to a WP user, the lastname/firstname/email of the person will be replaced by those of WP and these can then only be edited via the WP profile
= 2.1.67 (2020/03/05) =
* Fix an undefined variable that caused RSVP events to appear to be always full
= 2.1.66 (2020/03/04) =
* Fix autocomplete for members in the frontend
* If the logged in user has a EME phone entry, also use that in autocomplete when needed
* The "access denied" message per page is now an EME template selection
* The "access denied" message is now a new EME option (tab members) and can contain EME generic placeholders too
* Check if memberships still exist when evaluating access to regular WP pages
* Fix delete of memberships in the admin backend
= 2.1.65 (2020/03/01) =
* SQL fix for filtering locations in the backend
* Fix the maybe_serialize function from wordpress, it is not working as expected
= 2.1.64 (2020/02/29) =
* #_IS_USER_MEMBER_OF should only return true for active members or members in the grace period
* #_IS_USER_PENDING was always returning true, this is fixed
* Make sure that generic placeholders inside the eme_if-shortcode content are also replace
* Added the option to restrict regular wordpress page content to specific members
= 2.1.63 (2020/02/21) =
* Better code used for creating a wp user (so tools like wordfence won't block the creation anymore)
* Fix discounts with a "valid from" date (the date was wrongly handled as "valid until")
* Added #_EXPIRED_MEMBERSHIP_PAYMENT_URL{xx}, so you can show the payment url to expired members too
* Added a membership option to allow expired members to renew the membership via their payment url
* Show active memberships in the user profile's EME section
* Added a shortcode [eme_mymemberships], which will show a simple comma-seperated list of active memberships for the logged-in user
* Added conditional placeholder #_IS_RSVP_PASSWORD_ENABLED, so you can show a message if the RSVP form submit is password protected
= 2.1.62 (2020/02/15) =
* Better encoding of the mail subject (avoid html encoded characters in the subject)
* Make group edit work again (list of persons was not shown correctly)
* Updated PayPal SDK to 1.0.1
* Mollie notification to the event owner now only happen for actual payments, not when a booking is refunded
* Add the option to select a header/footer template when doing pdf/html output in rsvp/people/members overview
* Dynamic data option "on all fields" added for memberships (as for events)
* Small sql fix that caused people to be shown multiple times if you selected groups in the backend
= 2.1.61 (2020/02/02) =
* Fix #_DYNAMIC_PRICE for members
* Fix fields with extra charge for members
* Allow logged in user to change his address for membership signup
* The extra_charge for members was not allowed to be >127, this has been corrected
* Allow vertical checkboxes to be required too (and actually enforce it)
= 2.1.60 (2020/01/27) =
* Added extra options to change some text shown on the rsvp form (in the generic options, tab RSVP)
* Added placeholder #_RSVP_STATUS (returns 0 if rsvp is not yet allowed, 1 if allowed, 2 if ended)
* Added a new shortcode eme_person: has 2 params (person_id and template_id)
Returns info on a page on a person (or the person linked to the current logged in user if person_id is not provided)
* Treat 0 and 0.0 as different values for custom fields like dropdown
* Fix person image not being shown when using #_IMAGE* shortcodes
* Make #_IS_USER_MEMBER_OF work again
= 2.1.59 (2020/01/17) =
* Fix widget scope
* Fix dynamic formfields when the rsvp form is to be shown again after form submit
* Re-add the option to disable the server-side check for required fields upon RSVP form submit, so people can show/hide custom fields and the form will still submit
* The invite-only option will cause the email from the invite url to be taken, so even forwarding the link will cause the same email.
To make it a one-time link, additionally check the option "Allow only 1 booking per unique email address" when defining the rsvp properties for the event
= 2.1.58 (2019/12/26) =
* Execute the action eme_insert_rsvp_action only if all went well with the booking (including uploads)
* Added membership placeholders #_CONTACTNAME (or #_CONTACTPERSON), #_CONTACTEMAIL, #_CONTACTPHONE
* Added conditional placeholders #_IS_USER_MEMBER_EXPIRED{xx} and #_IS_USER_MEMBER_PENDING{xx} (with 'xx' being the name or id of a membership)
* Added generic placeholder #_MEMBERSHIP_PAYMENT_URL{xx} (with 'xx' being the name or id of a membership), returns the payment url of a member if the person is logged in and a member of the mentioned membership
* Allow shortcodes in the setting "Extra event html headers"
* Add the filter 'eme_extra_event_headers_filter' (2 arguments: current headers as array and the event as an array), so you can change the extra headers via own code if needed
= 2.1.57 (2019/12/17) =
* Allow multiple forms per page for rsvp, members, mail subscribe/unsubscribe
* Optional show people memberships in people admin table too
* Dynamic data content was not shown correctly when editing a booking due to a wrong nonce check
* Updated leaflet to 1.6.0
= 2.1.56 (2019/12/12) =
* Stripe change: only delete/create webhook IPN that is related to EME
* Payment check: in some cases (notable paypal), the result showed the booking was paid but it was not marked in the DB because of a wrong formatted return url
= 2.1.55 (2019/12/09) =
* Fix some delete issues for events when deleting inside the event itself
* Show the access denied message if appropriate when deleting events
* Hide the mass-action menu when managing events if not enough rights
* Hide the custom field purpose "generic" if/when possible (since it is deprecated)
* Improve the CSV button behavior
* Add bulk actions to the dynamic mailings tables
* Fix the option 'RSVP check no accents'
* allow eme_if to be used outside other eme shortcodes. A number of generic placeholders can be evaluated then:
#_CURDATE
#_CURTIME
#_SINGLE_EVENTPAGE_EVENTID
#_CALENDAR_DAY
#_USER_HAS_CAP
#_USER_HAS_ROLE
#_IS_USER_IN_GROUP
#_IS_USER_MEMBER_OF
#_IS_SINGLE_DAY
#_IS_SINGLE_EVENT
#_IS_LOGGED_IN
#_IS_ADMIN|#_IS_ADMIN_PAGE
#_LOCALE
#_LANG
#_UNSUB_URL
* Add an option to create a wp user at membership signup time
* The optional wp user created for rsvp or memberships is now linked to the corresponding EME person, and the booking too
* Attendance count can now be shown per booking
= 2.1.54 (2019/11/30) =
* Show the list of selected dates for recurrent events of type "specific" next to the calendar
* WP username is now also available in the bookings and members table
* Use wp_date function if possible, it avoids issues with plugins that use date_default_timezone_set in the backend (which they shouldn't be doing)
* When editing an event and clicking the delete button, the event now goes to trash
* Fix the action when clicking on the delete button when editing a recurrence
= 2.1.53 (2019/11/23) =
* Also account for summertime datetimes in the new datepicker
= 2.1.52 (2019/11/23) =
* The name of the recipient in an email can now be formatted (#_LASTNAME and #_FIRSTNAME are the only placeholders allowed, the default is "#_LASTNAME #_FIRSTNAME")
* Filter on payment id and payment gateway payment id is now possible for bookings
* Updated select2 lib to 4.0.12
* Changed the logic to present the date/time when editing events and such. It used to be microseconds based on UTC, but that can't take timezone info into account.
In fact every event/other stuff should have it's own timezone setting, so that it no longer conflicts (that's on the todo list).
* If a payment failure is detected, the user is redirected to the payment form again
* Datepicker fixes for events in other timezones
= 2.1.51 (2019/11/16) =
* Handle empty dates (like memberships without ending) better
= 2.1.50 (2019/11/14) =
* Make sure custom fields of type date store the info again
= 2.1.49 (2019/11/14) =
* List of bookings is now ordered by lastname by default (this influences the printable booking report and the csv export)
* Location info on recurrence admin page is now shown again
* Added single event duration on recurrence page overview, and replaced "Specific days" by the actual days the recurrence happens at
* Mailings can now be planned for multiple days in one go
* Event duration is now to be configured in days for a recurrence, no more event beginning/end date
* Added #_PASSWORD as an event placeholder too, so you can mail the password to people
= 2.1.48 (2019/11/08) =
* Redirect to booking payment page, so people can use the back-button if they change their mind halfway during payment
Options are added to the EME options, tab "Payments", so you can tune or disable this redirect.
* Fix the dynamic price calculation when editing a booking in the backend
* Use utc-milliseconds for setting dates and times the datepicker, this is more cross-browser resilient
* Allow import of attributes when importing events or locations (by prepending the attribute name with "att_" as column header)
* Add an option to change the timepicker step interval (defaults to 5 minutes-interval), in the Settings, tab "Other"
* Make sure event and location placeholders are replaced by their html counterpart during mail if html mail is desired
* Fix call to eme_db_insert_event when importing events
= 2.1.47 (2019/11/06) =
* Switch datepicker date format to php format, more compatible
* Today button selects today too again
* Search on date in the bookings overview was not switched to the new datepicker yet
= 2.1.46 (2019/11/04) =
* Take backslashes from wp datetime format into account for datepicker datetime format
* Make sure fields of type RSVP are shown in the list of fields of the booking overview table
* Remove unused code from old datepickers
* Show the correct error if creating a formfield fails on validation
= 2.1.45 (2019/11/03) =
* Make sure datepicker also works in the frontend
* Also allow price description for non-multiprice events, use #_PRICEDESCRIPTION in templates to show it
= 2.1.44 (2019/11/03) =
* Renamed the class eme-submit-button to eme_submit_button (was only used in the payment buttons).
So if you styled your buttons using eme-submit-button, please check your css and change it to eme_submit_button
* Updated Braintree API to version 4.4.0
* For multiprice events you can now add a description per price category, which is used in CSV exports too
Also #_PRICEDESCRIPTION{xx} returns the price description of the xx-th category, which can be used in forms etc ...
* Add valid from/to for discounts (the "valid to" used to be "expiration date") in datetime format
* Fix location placeholders #_LOCATIONCATEGORIES{}{}, #_LOCATIONCATEGORYDESCRIPTIONS{}{} and #_LOCATIONCATEGORIES_CSS{}{}
* Make sure newly create persons are active upon member import
* fix the edit-page link for events
* Save the end-date for recurences based on "specific dates", so it shows correctly in the recurrence overview
* Switch to new datetimepicker
= 2.1.43 (2019/10/19) =
* Update Mollie API to v2.12.0
* Update Stripe API to v7.3.1
* An expired member now also has paid status set to "no"
* Added location placeholders #_LOCATIONCATEGORIES{}{}, #_LOCATIONCATEGORYDESCRIPTIONS{}{} and #_LOCATIONCATEGORIES_CSS{}{}
* Allow event/location author to be edited
* Allow #_INCLUDE{xx} in templates, so you can include other templates
* Added access controls for event author to list/approve/edit bookings
* Attendance check was not working when checking the QR code due to a typo, fixed
* Revamp the access rights screen
* When searching based on event_id, it now overrides scope and event name searching in the event list (as it should)
* Fix edit location url (generated by #_EDITLOCATIONURL)
* There was too much being sanitized for admin input for event/location/membership custom fields
* Fix when editing a location would reset the location author to 0
* Small fix when deleting a custom field via the delete trash icon (the linked answers were not deleted)
= 2.1.42 (2019/10/11) =
* Also add the "list locations" access capability (was forgotten in 2.1.41)
= 2.1.41 (2019/10/10) =
* Improve the event overview and filtering of bookings per event
* Deleted bookings were still shown when viewing all bookings for a person
* Created a new custom formfield type "RSVP", the type "Generic" is now deprecated
* Call hook eme_delete_event_action earlier, so you can alert all bookings if the event is deleted too
* Added a "Manage recurrences" section next to "Manage events", to more easily have an overview of just recurrences
* Added access controls for people and members (list/author/edit).
The list access control is new and for those already limiting access specifically for people or members, this value needs to be checked.
* Allow attachments for approved,pending and paid mails per event too
= 2.1.40 (2019/09/30) =
* Implemented trash/restore for events
* group_id is no longer a required parameter for the shortcode eme_people
Older changes can be found in changelog.txt
= 2.1.39 (2019/09/29) =
* For rsvp forms, dynamic data conditions on all fields is now possible, even if the field condition is a placeholder not mentioned in the form (the field condition can then be one of the booking placeholers)
* ICAL export no longer gives the ORGANIZER attribute, it is not required
* Bugfix when editing a booking and clearing/changing the personal info of the booking (it didn't accept the changes and the booking stayed on the old person info)
* The EME DB version can now be changed as an option. Changing it to a lower value will - upon save - cause the db updates to be run again (if those failed for some reason).
* Correct #_WAITING_LIST_CLOSED and #_WAITING_LIST_ACTIVATED (in case the expected value was 0, it currently returned the empty string but in this release it will return 0)
= 2.1.38 (2019/09/16) =
* Answers to custom fields can now also be shown for memberships and bookings in their overview table
* Comment can now also be shown for bookings in the overview table
* Small bugfix to show select2-dropdown again for dynamic data fields
= 2.1.37 (2019/09/08) =
* Change in [eme_add_multibooking_form]: if the options template_id and template_id_header are not provided, a default will be used.
The default will be '#_{d/m/Y} #_24HSTARTTIME: #_SEATS
' if template_id is not provided
The default will be 'Lastname: #_LASTNAME
Firstname: #_FIRSTNAME
Email: #_EMAIL
' if template_id_header is not provided
* "Denied" has been renamed to "Deleted" for bookings deleted by the admin
* Revamp the per-event and admin email templates section
* Upgrade select2 to 4.0.10
= 2.1.36 (2019/08/22) =
* Fix discount edit when option "stay on page after edit" is selected
* Fix allowed html in several options upon save again
* Allow more characters in the slug
= 2.1.35 (2019/08/19) =
* Fix the country edit
= 2.1.34 (2019/08/17) =
* Fix a longstanding wrong call to the php header function for the email tracker image
= 2.1.33 (2019/08/17) =
* Updated Stripe API to version 6.41.0
* Updated Braintree API to version 4.2.0
* Updated Leaflet API to version 1.5.1
* Fix so #REQ_SPACES works as expected (workaround is to use #REQ_SEATS)
* Generated pdf names now start with "ticket-" and "member-" (and no longer end with that)
* Stripe webhook implemented (go to your EME payment settings and press "save", then the webhook will be created)
* The payment options tab is now an collapsed list op options per gateway, sos you can go faster to the gateway of choice
= 2.1.32 (2019/08/03) =
* Mailing fixes (updated template was used for approval mails, which was wrong, and also the denied and pending mails were not sent)
= 2.1.31 (2019/07/31) =
* Small html fixes in the events editing pane
* Some mails were not being sent (IPN and mail to contact person upon payment)
= 2.1.30 (2019/07/29) =
* small bugfix for people placeholders replacement
= 2.1.29 (2019/07/29) =
* Added featured image to rss feed
* Show event start date with local timezone in RSS feed if wanted (and not GMT)
* Add contact person paid emails format (next to the IPN format for the contact person)
* Documented the filter eme_csv_column_filter (allows you to change 1 CSV output line, so you can switch/remove/change columns). See the documentation on hooks and filters for an example.
* Added capabilities (access right settings) for attendance or member checks (both urls generated by #_ATTENDANCE_QRCODE and #_MEMBER_QRCODE) so you can more easily allow someone to be able to check for event attendance or if a member is active
* update select2 js to 4.0.8
* add mail header "X-EME-mailid", so in the future if/when we handle bounces we can indicate which mail failed
* added a per-event option to create a WP user after a successful booking
* fix for discount groups with regular and early bird-combo (the reported discount codes used were not correct)
* Added a filter eme_ical_filter, which lets you influence each entry of an ical entry in the ical feed of events. It takes one parameter: the current ical-representation of a single event (matching your filters, based on the ical link you generated with [eme_ical_link]), so you can add/remove/change lines per entry.
# Implemented #ESC and #URL for people placeholders
= 2.1.28 (2019/07/11) =
* Correct CSV export of bookings if dynamic fields were included (export was on multiple lines in excel)
* Add warning in EME options page if the SEO permalink settings are conflicting with an existing page
* Added event placeholder #_ADDBOOKINGFORM_IF_LOGGED_IN, which shows the booking form only if logged in. The difference with requiring WP membership when defining the RSVP properties for an event is that in the latter case you can't change your personal info (it comes from your profile)
* Account for unsupported PHP timezones
* Documented #_ADDBOOKINGFORM_IF_USER_HAS_CAP, #_ADDBOOKINGFORM_IF_USER_HAS_ROLE and the conditional placeholders #_USER_HAS_ROLE and #_USER_HAS_CAP
* Allow the phone field to be edited if the RSVP option "Require WP membership" is selected and the phone info in the WP userprofile is empty
* Show a hint on autocomplete on the lastname field if you have the needed rights
= 2.1.27 (2019/06/27) =
* Importing people now allows one or more group (or groups) columns. Each such column can contain either a group id or a groupsname (or multiple ids or names, separated by "||")
* In the RSVP form, you can now use #_COUNTRY{xx} (with "xx" being the code of a country created in EME, not the name). If used, that country will be selected as default in the form.
* For a required formfield of type checkbox with multiple values, the html rendered required all values to be checked. Now only one needs to be checked.
* ical fixes (events are exported in gmt now, and added the organizer field)
* New excerpt functionality:
- if "" is present in the event notes, #_EXCERPT will take the part before this seperator, and #_NOEXCERPT the part after it
- if "" is not present, #_EXCERPT will take the first 55 characters by default (filter eme_excerpt_length can be used to change this), #_NOEXCERPT will be the complete text
= 2.1.26 (2019/06/14) =
* Make eme_attendees and #_ATTENDEES work again (error in sql statement)
* #_EXCERPT placeholder should obey the wordpress filter the_excerpt, not the_content
= 2.1.25 (2019/06/13) =
* Update Mollie API to 2.10.0
* Catch more template errors when saving a template
* Added option 'order' to shortcode [eme_attendees], the default order is "lastname ASC, firsname ASC"
* Fix editing holidays
* Fix uploading files for bookings
= 2.1.24 (2019/05/28) =
* Updated select2 library to 4.0.7
* Fix sending of html mail
= 2.1.23 (2019/05/22) =
* Don't remove carriage returns from tables when sending mail
* The event notes field now obeys the wordpres regular filters (meaning all should behave as it does in regular posts for the notes field)
= 2.1.22 (2019/05/15) =
* Fix custom field headers in printable output
* Fix mollie payment detection
* Fix #_RESPSEATS{xx} and #_ATTENDSEATS{xx}
* Don't show the single location map if the lat/lon coordinates are empty (and thus avoid a javascript error on the page too)
= 2.1.21 (2019/05/09) =
* Add Instamojo payment gateway for Indian users (only Indian Rupee supported)
* Support Indian Rupee in the currency selection
* Added member placeholder #_MEMBER_QRCODE, which returns a qrcoded-url to check if a member is active.
This can be used inside a membercard pdf and allows EME member admins to quickly check (using a qr-reading app) if a member is active
= 2.1.20 (2019/05/04) =
* Make sure the paypal payment works for production sites
= 2.1.19 (2019/05/04) =
* Fix a PHP warning for memberships and number of function arguments
= 2.1.18 (2019/05/03) =
* Add an option that influences whether or not a list of events should be shown on the default special events page.
This complements the option to show a calendar on the default special events page.
It is recommended to leave this option off and use placeholders on regular wordpress pages instead.
* Custom fields of type "People field" can now be included in the CSV export for bookings
This can be set in the definition of the custom field.
* Mollie notification can arrive later than the return page shown, resulting in an wrong message shown of the payment not being paid
Now we store the mollie payment id generated with the EME payment, so we can check in the return page the result too
* Image url in the db was stored as relative url. Although the image id takes precedence, it is cleaner to store the url as is too.
Also the image placeholders (for events, people) now have a full url (so they work correctly in mails too)
* Add a parseFloat conversion in the javascript for single map locations, to make sure javascript recognizes the coordinates as floating point and not text
* In the location map, the popup was not sized correctly if an image was included, due to the image size not being known yet. JS code has been added to rectify that.
* Update to new v2-API for PayPal payments (v1 is in the process of being deprecated by PayPal)
While webhooks don't work, it should be fine. Bugs in the API or the way PayPal shows info (in the sandbox the amount and description are not shown to the buyer)
will hopefully get fixed by PayPal.
* Legacy paypal IPN works again
* Update to Braintree API version 3.40, and make Braintree actually work (typo fix)
* Update Stripe API to conform with their use of Strong Customer Authentication
= 2.1.17 (2019/04/19) =
* Fix a longstanding bug (but unnoticed) where a combination of groups to send mail to would result in not all the intented people to receive it
* Block the change of "field purpose" for custom fields if the field is already being used in answers
* QR-code fixes (qrcode was not being generated ok and optimisations done when generating)
* Some more options added when you want to send out the optional ticket PDF for bookings
* Fix an undefined variable php warning
= 2.1.16 (2019/04/17) =
* Fix a race condition where placeholders for people fields would replace #_FIELD-related placeholders that were in fact meant for rsvp/members
= 2.1.15 (2019/04/16) =
* Small fix so #_NAME is also accepted again (as a fallback, deprecated alternative to #_PERSONLASTNAME)
* Clarification notice: #_RESP* and #_ATTEND* related placeholders still work
(they might be considered as deprecated and the doc will change accordingly but currently there's no need for people to change their templates or config)
= 2.1.14 (2019/04/16) =
* If the booking price is 0 and there's no approval required, the optional PDF will be included in the mail sent at booking time
* #_ATTENDANCE_QRCODE can now also be used in regular mails, not only in a PDF template
* #_PERSONAL_FILES is now a people placeholder too
* For people, #_ID is deprecated in favor of #_PERSONID, and all people placeholders can be preceded with #_PERSON (so #_PERSONID, #_PERSONLASTNAME, etc ...)
* For bookings and attendees: the person-related placeholders should now start with #_PERSONxxx (and not with #_RESP or #_ATTEND anymore for the placeholders that hold person info)
* #_INVITEURL and #_INVITEURL{xx} can now be used in mails towards people (in case the mail is event-related #_INVITEURL will take the event id of the related event,
otherwise #_INVITEURL{xx} should be used with 'xx' being the id or name of the event)
These 2 can send out an invite url to people concerning an event. In case the event is then marked as invite-only, only the people that received such a mail can rsvp once.
* Added a new event placeholder #_IS_INVITE_ONLY (can be used in a eme_if-condition to show some other content if the event is invitation-only)
* CSS fix for the small calendar widget month name (it was not centered anymore)
= 2.1.13 (2019/03/28) =
* Fix [eme_events] showing only 1 event when the option "Number of events to show in lists" is 0 and no specific limit is set in the shortcode itself
= 2.1.12 (2019/03/28) =
* When you send out a mailing immediately and the "always queue" option is active, that mailing will now get a name and be visible in the mailing overview too
* Fix using show_recurrent_events_once and limit together
* Beter default contact person detection
* Ignore people in trash status in more functions, avoids problems when someone subscribes to an email group and the same person/email is already in the trash
* Make adding attachments work also when html mails are not activated
* CSS change: the calendar header showing the month name (when using the table layout) is now also using thead+th and not thead+td
= 2.1.11 (2019/03/16) =
* Fix template sorting by name
* Make attachment selection for mail templates work when editing a membership
* Add placeholder #_USER_HAS_ROLE{xxx} ('xxx' being the name of a wp role), so you can check if a user has a certain wp role and show/hide things based on that
Also added #_ADDBOOKINGFORM_IF_USER_HAS_ROLE{xxx}
* Fix for rsvp start/end conditions
* Added extra discount conditions: now you can require users to be logged-in for the discount to apply, or to be a part of an EME group or membership or have a certain WP role
= 2.1.10 (2019/03/05) =
* Add an option (in the "Other" section) where you can add extra html tags and attributes to be allowed for html content in eme settings (like templates)
* Add an option (in the "Events" section) that allows to specify a redirect url if a person not logged-in tries to view a private event (by default redirect to wp login page is done)
= 2.1.9 (2019/03/02) =
* Fix editing a multiprice booking when the total amount of seats is 0 (meaning unlimited)
* Allow sending a mail when adding a new member via the admin backend
* Fix #_FIELDS in rsvp mails
* Small sql fixes to be able to sort (as expected) on custom fields in people/members admin screen
= 2.1.8 (2019/02/22) =
* Deprecated #_CANCELBOOKINGFORM and _CANCELBOOKINGFORM_IF_NOT_REGISTERED in favor of #_CANCEL_ALL_BOOKINGS_FORM and #_CANCEL_ALL_BOOKINGS_FORM_IF_NOT_REGISTERED
* Cancel format options have been simplified and can contain people too
* Fix legacy paypal button not showing up due to typo
= 2.1.7 (2019/02/20) =
* Get a XML sitemap by visiting the url https://../?eme_sitemap=public
* For CSV imports, the enclosure can be an empty string too
* If the admin email is not matched to a user, take the first person with admin role as email sender
* Allow html in attributes and properties again
* Disable autofill on forms for events/locations/members, to aid people having autofill issues
* Allow attachments to be sent for approved, pending and booking paid emails, also for mailgroup subscriber emails and new members
* Added an option to allow RSVP cancel based on age of the booking
* Deprecated shortcode eme_cancel_booking_form in favor of eme_cancel_all_bookings_form
* Add options to set a template to cancel a payment (the form shown when browsing the url #_CANCEL_URL)
* Added the old paypal method back (but it is called "Legacy Paypal" now)
* Added 2 placeholders #_CURDATE and #_CURTIME, can be used to inform people/contacts of the date/time an action happened (like rsvp, cancel, member signup, payment, ...)
= 2.1.6 (2019/02/10) =
* A discount can now be in more than one group
* Fix html showing in extra html headers for events or locations
* ical fixes for utf-8 encoded characters (and line folding like required by the rfc)
= 2.1.5 (2019/02/06) =
* Event status was always set as draft upon save, this has been corrected
= 2.1.4 (2019/02/05) =
* Add a new option in the RSVP settings for an event so you can decide in which mail the optional PDF attachment should be included: the approval or payment mail
* Placeholders #_ADDBOOKINGFORM_IF_USER_IN_GROUP{xx}, #_ADDBOOKINGFORM_IF_USER_IS_MEMBER_OF{xx}, #_IS_USER_IN_GROUP{xx} and #_IS_USER_MEMBER_OF{xx} can now also take the id of the group or membership as parameter (and not just the name anymore)
* Send membership reminder mails also in grace period
* Some more sanitizing, we don't even trust admins ...
* Unslash where needed
* RSVP cancel cutoff time was ignored
= 2.1.3 (2019/02/01) =
* Fix a typo that prevented RSVP bookings from happening
= 2.1.2 (2019/01/30) =
* Security Fix: one could bypass the allowed file types to be uploaded
* Update Paypal to use their new interface.
WARNING: THIS IS BACKWARDS INCOMPATIBLE
If you have a Paypal account, you need to undertake actions if you wish to continue to accept payments via Paypal.
You need to create a Paypal "app" and enter the newly obtained client ID and secret in the EME payment options.
See [this page](https://developer.paypal.com/docs/integration/admin/manage-apps/#overview) for more info and guidelines.
* Add custom fields for membership definitions too (like for events and locations)
* Disabling certificates for sending mail is now only possible for private ip's, not for public mailservers anymore
= 2.1.1 (2019/01/27) =
* Fix dynamic-table html generation (closing ">" was missing for "table", most browsers fix this automatically, but is not nice)
* Make pdf generation more resilient to html errors (like the one mentioned above)
* eme_holidays was not working as expected
= 2.1.0 (2019/01/26) =
* Fix people import from csv
* Improve sql when searching for custom field answers
* Add an option to automatically archive old mailings after a certain period of days (can be set in GDPR options)
* Add an option to automatically remove old events after a certain period of days (can be set in GDPR options)
* Make the permalink for calendar days a little more strict, so events starting with yyyy-mm-dd-* don't match and correctly go to the event
* "Extra event html headers" and "Extra location html headers" now allow javascript too
* Add an action in the People admin window to verify the integrity between WP users and EME people (a WP user should be linked to at most 1 EME person)
* Add a mailing option to ignore the massmail setting if wanted (explanation added in-screen) for both event and generic mails
* Early-bird discount is possible by just leaving the coupon code empty for the discount and if you define an expiration date
* Fix mail logic for rsvp mails (some combinations of EME settings did not send out mails as would be expected)
* Avoid loading the Mollie API if it is already loaded by another plugin
* Update Mollie API to 2.5.0
* RSVP full message can now also be changed in the backend
* Disable (or try to) autocomplete for RSVP password protection
* Add placeholder #_ATTENDANCE_QRCODE, generating a qrcode to send to people. This in facts just encodes the attendance url (generated by #_ATTENDANCE_URL also)
* Document the use of #_ATTENDANCE_QRCODE ==> #_ATTENDANCE_QRCODE can only be used in the pdf template for tickets or membership cards
If any other php lib is loaded providing the same qrcode class, the qrcode will refuse to load, so then you'll need to use a shortcode provided by the other
plugin to create the qrcode based on the value of #_ATTENDANCE_URL
* Allow event/location/people properties (see functions eme_init_event_props, eme_init_location_props, eme_init_person_props) to be imported too
* Fix a show_recurrent_events_once sql bug (in fact not a bug, but indeterministic result) due to newer mysql/mariadb versions
* Add scope parameter to shortcode eme_holidays (default=all, other values: past or future; shows all/past/future holidays)
= 2.0.85 (2019/01/09) =
* Correct yet another bug at activation when using offset-based timezones
= 2.0.84 (2019/01/09) =
* Correct a bug at activation when using offset-based timezones
= 2.0.83 (2019/01/09) =
* Add an option to automatically remove pending members after a certain period of days (can be set per membership)
* Add an option to automatically remove expired members or old bookings after a certain period of days (can be set in GDPR options)
* Allow a separator to be specified for multi-value custom fields when printing the values via #_FIELD or #_FIELDVALUE by using a second set of braces specifying the separator
This can be used as: #_FIELD{xx}{yy}
The current known #_FIELD{xx} corresponds with #_FIELD{xx}{||}
* Fix readonly/hidden formfields
* Also update people fields from within a new booking
* Stripe currency upon submit needs to be lowercase ...
* Membership payments via several payment gateways (stripe, paymill and braintree) was not calculating the correct price resulting in the payment not being successful.
* No file upload allowed as custom field for events or locations
* Number of bookedseats can be 0 if set to be
* Update dompdf to 0.8.3
* Update leaflet to 1.4.0
* Update leaflet-markercluster to 1.4.1
* Update Mollie API to 2.4.1
= 2.0.82 (2019/01/02) =
* GDPR is now a field per person, will be completed when asking for it via #_GDPR in a form (until now the #_GDPR was not stored in the DB)
* Placeholder #_GDPR now also works for people info (like #_LASTNAME etc), so you can let people now in e.g. the RSVP or member mail that they approved.
* New shortcode [eme_gdpr_approve], shows a form where people can give their GDPR approval (based on email). The mail being sent is configured in the EME options for GDPR.
You can then use a WP page with this shortcode to send to all people that haven't approved yet too.
* Code deup
* Fix an undefined array warning in eme_events.php
* Fix location eventful paging
* Fix notcategory containing a "+" for events
= 2.0.81 (2018/12/29) =
* Placeholder IS_USER_MEMBER_OF was failing due to a wrong sql statement
* Make #_USER_HAS_CAP{xx}, #_IS_USER_IN_GROUP{xx} and #_IS_USER_MEMBER_OF{xx} return 0 for not logged users too
* Create/edit for countries/states/discounts and discount groups are now aligned with the other edit screens, this allows more explanation added on the screen which makes certain fields more clear
* Correct captcha detection in multibooking form
= 2.0.80 (2018/12/23) =
* Initialize some arrays to avoid php notices/warnings
* More sql cleanups (makes everything more pretty code-wise and also makes events listing work again ...)
= 2.0.79 (2018/12/22) =
* Major rework in searching+sorting custom fields in the admin interface:
- you can (must) now define which custom fields are "searchable" in the admin interface for events/locations/members/people when defining the field
- only those fields can be searched for
- all custom field answers will always be shown from now on in the table for events/locations/members/people
- new hint added: when searching for custom field values, you can optionally limit which custom fields you want to search in the "Custom fields to filter on" select-box shown.
* Fix 2 undefined variables in eme_people.php
= 2.0.78 (2018/12/21) =
* Really fix the sql statement to find bookings by wp user (when [eme_mybookings future=0] is used)
* Fix to find the eme person related to the current wp userid
* Code cleanup
= 2.0.77 (2018/12/20) =
* Fix location map showing in backend when a new address is entered (wrong coordinates were used for the marker to show, so the map showed the wrong location, but was ok upon edit)
* Fix a sql statement to find bookings by wp user
* Fix the case where event_category_ids is NULL in the database for an event and you want to show events not in a certain category
* Better messages to indicate what is missing in your rsvp form
* Better rewrite rules to account for events/locations starting with a number
= 2.0.76 (2018/12/18) =
* Map now zooms to max level that shows all markers (and the zoom option is removed again from eme_location_map, also from the settings)
* Small js fix for admin backend and location custom pin (it was not resized correctly there)
* Add an option to use gesture handling for maps (if you choose to use map gestures, then on a desktop zooming must be done using ctrl+zoom, and on a mobile device the user needs to use two fingers to pan the map. This to prevent getting "trapped" in the map when a big map is shown).
* Fix required custom fields in the rsvp form
* Fix multiline customfields with empty first value
= 2.0.75 (2018/12/15) =
* Added an option to disable the letter icons on the global map and location list (letter_icons=0 option for shortcode eme_locations_map)
* You can now set a custom map icon per location (size should be 32x32, bottom center will be pointing to the location on the map)
* Added zoom option for eme_location_map shortcode
= 2.0.74 (2018/12/12) =
* Added zoom option for eme_locations_map shortcode
* Added limit and random_order options to eme_locations shortcode
* Show link to locations view in Locations admin screen
* Renamed occurences of spaces to seats in text
* Deprecated #_ATTENDSPACES in favor of #_ATTENDSEATS, also #_RESPSPACES => #_RESPSEATS, and #_SPACES=>#_SEATS
* Added possibility to filter on template and field name in admin backend
* Fix html title for locations
* Fix an issue with widgets and header/footer missing
= 2.0.72 (2018/12/10) =
* More resilient json creation for the global map (needed if you do location imports)
* Correct location field filtering for custom fields
* Stricter checking for header and html title if the event/location exists
* Fix #_FIELD, #_FIELDNAME and #_FIELDVALUE replacements (event took precendence over rsvp etc .., now the field type is checked)
= 2.0.71 (2018/12/08) =
* Bugfix for non-existing table
= 2.0.70 (2018/12/08) =
* Import improvements for events and locations, and added delimiter and enclosure as parameters during import for everything (events, locations, members, people, discounts)
* Correct the event slug for recurrent events
= 2.0.69 (2018/12/08) =
* Validate country/state/email when adding person info, so possible autocompleted fields are better checked
* Added custom field types for events and locations, so you can now add custom info per event/location (as for attributes, but with more freedom for types and such)
* Added #_FIELD, #_FIELDNAME and #_FIELDVALUE for events and locations (to show the value for defined custom fields)
* Added #_FIELD{xx} to the eme_filterform too, so you can add a custom field to the search parameters
* Add filters eme_field_value_filter and eme_admin_field_value_filter. These take 3 arguments: the formfield, the form POST fieldname and the current value
Using these filters (eme_admin_field_value_filter is applied only in the admin backend, eme_field_value_filter only in the frontend), you can change the value
of certain form fields by looking up other info from other tables/posts and based on the formfield, the userid, ...
* Make event and location imports work (csv only currently)
* Membership payment logic is now unified (for pending,active,expired and grace status), so you no longer need to check the membership status in order to choose the correct action
* Better slug for events and locations (permalinks now without the event or location id). The new slug for an event will be used after you edit the event.
* Fix rights management for deleting your own event
* Fix bcc addresses
* Required fields can have a value of 0 for custom fields
* Show correct state name if no country was selected too
= 2.0.68 (2018/11/27) =
* Small SQL query fix
= 2.0.67 (2018/11/26) =
* Fix Mollie payment images due to new api
* Show correct Mollie payment status too
* Show 'Mark paid and approve' button again on pending bookings overview
* Auto-approve after payment now also works if you manually mark a booking as paid
= 2.0.66 (2018/11/20) =
* eme_mybookings now also shows events sorted by start date and time
* Allow multiple bcc addresses, separated by comma or semicolon
* Required discount field is now handled correctly upon submit
* If the discount field is filled out and the code is incorrect (ie. calculated discount=0), then the booking is not possible
* Added payment description form filters eme_rsvp_paymentform_description_filter and eme_member_paymentform_description_filter
* Fix the scroll-wheel zomming option for maps (the disable was not working)
= 2.0.65 (2018/11/12) =
* #_FIELDCOUNTER and #_FIELDGROUPINDEX now start counting from 1, easier on the eye for humans :-)
* Allow emoji codes in event notes
* Span (added with 2 css classes) around day numbers in calendar, so you can easily target the day numbers too in the cal using css
* Fix list of attendees
* Fix get bookings by wordpress id (affects [eme_mybookings] and wordpress profile edit
= 2.0.64 (2018/11/09) =
* Fix searching for people in groups in the people admin overview area
= 2.0.63 (2018/11/04) =
* Small fix when including events/locations in the WP link search dropdown
* Omit trashed persons in autocomplete fields
* Add name/id to filter form and submit (and style to submit too), so it is easier to style using css
* Cancel booking confirmation form (from created after clicking on the link generated by #_CANCEL_LINK) is ajaxified now
= 2.0.62 (2018/11/01) =
* Subscribe/unsubscribe forms are now ajaxified
* Show that RSVP is pwd protected in events and registrations overview
* Fix typo in sql for new scope 'now--today'
* Fix the cancel booking form
* Make edit of password protected bookings work
= 2.0.61 (2018/10/30) =
* A discount field can now be required too, and as such can even serve as a kind of individual password
* In the people admin screen, you can now also filter on memberships and membership status
* Fix typo in RSVP database query
= 2.0.60 (2018/10/27) =
* Fix CSV export and booking list
= 2.0.59 (2018/10/26) =
* Add notion of Trash to bookings too (when cancel happens, the booking is moved to trash so it can be restored when needed)
* Deprecated eme_delete_booking_form_filter in favor of eme_cancel_booking_form_filter
* Deprecated #_DELBOOKINGFORM in favor of #_CANCELBOOKINGFORM
* Scroll down to booking message also in the case the payment form is shown
* Mollie changes (API update and GET=>POST)
* Return formatted string for #_TRANSFER_NBR_BE97
* Added scopes today--future (showing events from today onwards, the original behavior for the scope 'future') and now--today (showing events from now till the end of the day)
The old scope 'future' now takes the event time into account as well, as does the scope 'past'
The old behavior of 'past' (which showed events until yesterday), is now called 'past--yesterday'
* Fix for storing dynamic data with events (typo fix)
= 2.0.58 (2018/10/13) =
* Captcha fallback if no freetype support is compiled in your PHP GD library
* Option to set the use of a captcha per event or membership
* Captcha is now always case-insensitive, so the corresponding option for that is removed
* Correctly replace #_ADDBOOKINGFORM_IF_USER_HAS_CAP{xx} and #_USER_HAS_CAP{xxx} if user is not logged in too (idem with the similar MEMBER_OF and IN_GROUP placeholders)
* Fix the detection of required fields when using the form #REQ_FIELD{fieldname}
* Make sure the image property for the person is saved upon add/edit of a person
* If the total amount of seats=0 (unlimited), then obey the set max for number of seats to book
* Make sure the datefield is empty and not the current date when it should be empty
= 2.0.57 (2018/10/04) =
* Fix for editing recurrent events on specific days (the check for end date is not needed in that case and was blocking the edit)
* Fix for storing custom answers (they were stored, but deletedd immediately after)
= 2.0.56 (2018/10/02) =
* Small improvement for event and location featured image (a little bit of text was shown too much in the add/edit screens)
* Small improvement in member start/end date calculations for new members when defined in the backend (made it more logical)
* Fix new location being added through event add
= 2.0.55 (2018/10/02) =
* Add grace period for memberships, to allow people to remain member for a number of days after the end date has passed
* Add "one extra free period" for memberships. This is mostly for the fixed period membership type, where people "jump" in the middle of a current membership period but still need to pay the full price. This option then allows them to receive 1 extra membership period for free. Example: someone becomes a member for 1 year (membership starts in Jan) in June, he would need to pay full price but only receives six months (till Dec). So either you calculate pro-rata the price for him (not possible automatically yet), or you give 1 year free (so it would end Dec + 1 year)
* Added API function eme_get_booking_post_answers, this allows people to easily get the POST answers for a booking for e.g. own discounts
* Fix showing draft events (when paging event listings or in the calendar)
* Fix for updating old version of EME to latest (argument count was wrong for function eme_get_mailings in the upgrade procedure)
= 2.0.54 (2018/09/23) =
* The captcha will now return an error if the wordpress configured temp dir is not writable
* The captcha was removed if correctly entered, but other form validations might fail later on, so we take care of that now and not invalidate the captcha until the whole validation is ok
* Added event placeholders #_ADDBOOKINGFORM_IF_USER_HAS_CAP{xx} (shows the booking form if user has a certain WP capability) and #__USER_HAS_CAP{xxx} (usefull as conditional tag check)
* Avoid double "Required field" messages
* Fix a setting logic so you can still rsvp after the start of an event if configured so
* When editing a recurrence with 'Specific Days', only 1 day was shown
* Add a missing html div-tag to the eme calendar
= 2.0.53 (2018/09/15) =
* SECURITY RELEASE
Please update to this release if using the client clock functionality and EME version>2.0.48
Info: the cookie is now stored using json_encode and not serialize, to avoid for Object Injection
See https://www.owasp.org/index.php/PHP_Object_Injection
Reported by pluginvulnerabilities.com (Thank you guys!)
= 2.0.52 (2018/09/13) =
* Fix #_EDITEVENTLINK and #_EDITEVENTURL (had wrong nonce)
* Fix a double escaping in the location marker balloon format (resulted in double links and maybe not all image showed in the balloon)
* Fix showing the list of uploaded files in the edit-booking window
= 2.0.51 (2018/09/11) =
* Fix map balloon format
* Remove a double function call
= 2.0.50 (2018/09/10) =
* Fix an uninitialized db connection for recurrent events
= 2.0.49 (2018/09/10) =
* No more sessions needed for captcha or client clock
* More ajax actions the 'wordpress way'
* Less inline javascript, will allow better minification of EME javascript files
* Discount of type code was not working since version 2.0.43, corrected
* Reactivate #_DIRECTIONS until something better comes along
* Small cosmetic fix for delete recurrences
= 2.0.48 (2018/09/03) =
* Show reason of failed mail in the mailing report
* When mailing is finished with failed mails, let the mailing contact person know
* Fix mail error message after rsvp
* Fix massmail popup dialog
= 2.0.47 (2018/09/03) =
* Fix mail sending and error reporting in the admin backend
= 2.0.46 (2018/09/02) =
* Allow file upload fields.
This causes all forms to require a reasonably new browser, but already tested on: IE11 (Edge should be ok too), Firefox and Chrome (also Android versions)
The field upload can also be done for persons in the backend (if defined as a dynamic field)
* #_FILES can be called for bookings and members, returning the files uploaded for that booking or member (all files uploaded!). However: a custom field that was
marked as "Person field" (so asking for personal info) will not be returned when using #_FILES
* #_PERSONAL_FILES can be called bookings and members, returning the files uploaded for the relevant person
* Show smtp debugging only when sending a test email
* Implement an optional limit on the datetime people can start using the rsvp form ("Allow RSVP from" setting per event, complementing the "Allow RSVP until" setting)
* When editing a booking and the price of the event changed in the meantime, take the new price into account and show a warning
* Activate ignore_filter in the calendar shortcode (option was documented but not activated)
* Marker clustering is now possible again too (it was on google maps, now also on openstreetmap)
* Bugfix for multiple maps on one page
* Bugfix when moving a booking from one event to another (the data was lost)
= 2.0.45 (2018/08/25) =
* Simple bugfix release
= 2.0.44 (2018/08/25) =
* Moved from Google Maps to OpenStreetMap since the Google Maps service now requires a credit card etc ...
This helps me in deciding not to try and integrate Google products anymore (not even recaptcha)
Because of this, the #_ADD_DIRECTIONS_FORM currently will not return a form anymore (might become a map later on)
* Revamped some recurrence code
* Bugfix: when looking at a single location in the frontent, a 404 was returned
* Bugfix: default page template was not selected for new events
= 2.0.43 (2018/08/24) =
* Added booking placeholders #_DISCOUNTCODES_ENTERED and #_DISCOUNTCODES_VALID (or #_DISCOUNTCODES_USED) to show the discount codes someone entered and those that are valid (the used ones)
* Allow a different wordpress page template to be used per event (like any other wordpress pages)
* Fix so #_MAPS returns empty and not a warning if you don't have Google Maps activated
* Bugfix when reusing a mail (html code was not escaped correctly)
= 2.0.42 (2018/08/21) =
* Formfields of type 'people' are now stored per person, so you can ask for extra personal info during rsvp or membership signup
* Autocomplete now also works for the membership form
* Bugfix for massmail popup dialog (it popped up on the wrong condition)
* Bugfix when trashing a person (memberships and groups were not removed)
= 2.0.41 (2018/08/19) =
* Added separate view for mail archive
* Implemented people trash and restore, together with an option to simply remove personal data (like the wordpress request for removal does)
* The unsubscribe form shortcode eme_unsubform now takes 1 argument: template_id. This template can use the following placeholders: #_EMAIL, #_MAILGROUPS, #_GDPR (or #_GDPR{xxx}), and #_SUBMIT (or #_SUBMIT{xx}). If you want your own form for unsbscribe, use this on a page and not #_UNSUB_URL
= 2.0.40 (2018/08/17) =
* Re-added the default setting for massmail for new persons
* Option added to show a popup if a person selects 'No' for #_OPT_IN or #_OPT_OUT. This allows to ask the person if they are sure that they don't want to receive mails
* GDPR removal of a person keeps the person id, but removes all user info in it. This allows booking counts for events to stay correct.
* In the events overview you can now filter on start or end date, or both (in which case it is a range for events starting on or later than the first selected date and ending on or before the second selected date)
* The subscribe form shortcode eme_subform now takes 1 argument: template_id. This template can use the following placeholders: #_EMAIL, #_MAILGROUPS, #_GDPR (or #_GDPR{xxx}), and #_SUBMIT (or #_SUBMIT{xx})
= 2.0.39 (2018/08/16) =
* Removed the default setting for massmail for new persons. This setting was not GDPR compliant. If you want to know if a person wants massmailing or not, use the #_OPT_IN or #_OPT_OUT placeholders in your form (and #_OPT_OUT is not GDPR compliant as well)
* Added a popup if a person doesn't want massmailing, to ask them to be sure
* Bugfix for disabling the honeypot field
* JS bugfix if gmap is not enabled or API key not defined
= 2.0.38 (2018/08/15) =
* Added the option to require a password for rsvp submit, together with a new rsvp form placeholder #_PASSWORD
* Groups can now be designated for "mail only", and then people can unsubscribe from those groups in the new subscribe/unsubscribe form
* Added [eme_subform] and [eme_unsubform] shortcodes, so people can subscribe/unsubcribe to email groups
* Added placeholders #_EVENTS_COUNT and #_EVENT_COUNTER for eme_events shortcode. This gets interpreted for the templates and results in the count of events shown in the list (#_EVENTS_COUNT) or the position of the event in the list (#_EVENT_COUNTER)
These can then be used in conditional tags to create dynamic templates based on the position or the amount of events
* Most booking placeholders concerning people no longer need "RESP" in them, meaning you can almost literally copy the rsvp form format to the mail format and the resulting mail should reflect the expected result
* Added placeholder #_GDPR for forms, shows just a checkbox that needs to be ticked, otherwise the form will not submit. Extra explanation is yours to add of course.
Also added #_GDPR{xxx} where xxx is an extra label text for the checkbox
* All rsvp related placeholders for events now use the linked event for rsvp info (some were missing)
* Since the google maps api key is now required, don't show the map anymore if not so, but show a warning
* Add a generic option to disable the hidden honeypot field
* Attempt to disable caching for the captcha image by some caching plugins
* Bugfix for attendance url
= 2.0.37 (2018/07/31) =
* Added option template_id_no_events to [eme_events]
* New rsvp placeholder #_ATTENDANCE_URL, will allow you to create an url (and using any other wp plugin create a qr-code), to send to the booker. When entering, this is scanned and checked:
- if it is paid for
- if the number of times this link is used is not higher than the amount of seats
- only valid 5 hours before the event starts and until the event is finished (these limits can be set per event)
* Added conditional tags #_IS_ENDED_EVENT, #_IS_USER_IN_GROUP{xxx} and #_IS_USER_MEMBER_OF{xxx}
* Added #_ADDBOOKINGFORM_IF_USER_IN_GROUP{xxx} and #_ADDBOOKINGFORM_IF_USER_IS_MEMBER_OF{xxx}
* Allow RSVP from one event to be linked to the RSVP section of another event
* Several email subject formats can now also be customized per event
* Moved the setting concerning the "required field text" for form fields to the section "Other", because it also applies to membership forms and not just rsvp forms
* Fix when editing personal info for an existing booking, together with autocomplete fix
* Bugfix: mail to all active members of specific memberships was not working
= 2.0.36 (2018/06/26) =
* When showing a calendar day with only 1 event: redirect to that event, solves title issues
* remove an old code fragment that did php output buffering
* Added action eme_approve_rsvp_action, executed immediately after booking approval. 1 parameter: $booking (contains all info of the booking in an array)
* Send an approval mail if total price to pay is 0 (due to discount or so) and auto-approve is set
* Added an option to add events and locations to the link search when creating links in the wordpress editor
* Correctly show the payment form for memberships too
= 2.0.35 (2018/05/28) =
* Fix readonly formfields (disabled formfields are not passed via POST)
= 2.0.34 (2018/05/25) =
* Bugfix when storing person info after editing a booking in the backend
= 2.0.33 (2018/05/22) =
* EME is now compatible with the new gdpr functionality of wordpress, but not everybody is willing to update their WP version, so this version takes that into account
= 2.0.32 (2018/05/21) =
* Fix a bordercase with dynamic data where you use the same custom fields both in the main RSVP form and in the dynamic fields section
* Documented the eme_people shortcode
* Added options template_id_header and template_id_footer to the eme_people shortcode
* Added #_GROUPS to attendee, booking and people placeholders, returning a csv list of the groups a person is in
* Added #_GROUPS to dynamic data condition placeholders for events and memberships, returning a csv list of groups a user that is entering a form is currently in
* Added eme_if condition 'incsv', so for ex. you can compare if a certain person is in a certain group and based on that show/hide stuff
* Added extra dynamic data conditions (like 'contains', 'notcontains' and 'incsv')
* Make EME compliant with the new wordpress gdpr functions
= 2.0.31 (2018/05/07) =
* Revert the global use of Nuberformatter, not every php installation has the intl extensions loaded (even though it is available in cpanel etc ...)
= 2.0.30 (2018/05/04) =
* Don't store the IP when creating a booking, this is unneeded info to keep and might be a problem for GDPR compliancy
* Fix sending custom event mails to specific wordpress users/groups
* Allow sending a preview mail for event mails
* Add payment gateway and transaction ID info to booking/member payment info
* Improve FirstData payments (other currencies except USD accepted now)
* Add filter eme_add_currency_codes to be able to define the 4217 numeric code for own currencies (next to eme_add_currencies filter)
Currently this code is only used for FirstData payments
* NumberFormatter is now a requirement. This is not an issue for any php version >=5.6, which is required anyway.
* Update DomPDF to 0.8.2
= 2.0.29 (2018/04/22) =
* Stay on edit page now also includes templates, formfields, people and groups
* Fix for editing a booking with dynamic fields
* Show dropdown field tag values too for a formfield of type 'Person'
* Fix dynamic pricing for custom fields again
* Add EME version number to all javascript files, solves caching issues
= 2.0.28 (2018/04/16) =
* Use older array notation and take into account older mysql versions, both just needed for very old mysql/php installations
* Correct the default behaviour for an empty location when creating/editing an event
* Allow javascript to be used in the "booking recorded message"
* Add an option to stay on the edit page after saving an event
= 2.0.27 (2018/04/09) =
* Add an option to exclude registered people from event mailings
* Added creation_date and modif_date columns to virtual every eme table (and removed the unused *_gmt columns)
* Review #_EVENTFIELD{xx}, #_LOCATIONFIELD{xx}, #_PERSONFIELD{xx}, #_BOOKINGFIELD{xx} and #_ATTENDFIELD{xx} with 'xx' being the name of a field for events, locations, persons, bookings or attendees. With the newly (or existing) columns for creation/modif you can use these placeholders for creation/modif timings
* Allow all mails to be queued (new option in EME settings)
= 2.0.26 (2018/03/27) =
* Database table definition fixes for new installations
* Fix for an option that was not saved
* Show the format settings for rsvp payment success/failure (they were hidden in the options by old javascript)
* Fix for the case where only 1 country is defined and #_COUNTRY is not used in the rsvp form (in which case #_STATE should return the states for that 1 country)
= 2.0.25 (2018/03/26) =
* Planned mailings now get their conditions reevaluated before the mailing starts (groups and such) so the result of the mailing will be as close to reality as possible on that moment
This change is kindly sponsored by Alex Floris
* Cancelled mailings had wrong statistics (reported 0 cancelled), this has been fixed
* Added event placeholders #_STARTDATE{xx}, #_ENDDATE{xx}, #_EVENTCREATIONDATE{xx}, #_EVENTMODIFDATE{xx} with 'xx' being the date format of your liking (php date format compatible)
* Added event placeholders #_DAYS_FROM_START and #_HOURS_FROM_START
* Member extension javascript fix
* Event location edit fix: the edit was not retained due to the location id of the current event having priority over the text entered
* Discount code fixes when showing/editing dynamic prices in the admin backend
* Deleting a person when deleting a member was not working as expected
= 2.0.24 (2018/03/16) =
* Undo clickable links, too much unwanted side-effects for now
= 2.0.23 (2018/03/15) =
* Added placeholders #_PAIDSPACES and #_PAIDSPACES{xx}
* Allow to completely delete a person when deleting a member
* Rename #_PAYED to #_PAID and #_IS_PAYED to #_IS_PAID
* In case of multibooking the thank-you message was shown for each booking, has been corrected
* Mentioned http/https/mailto addresses in events descriptions/notes/... are now clickable by default if you don't create your own clickable link
* Add an option to automatically add a person to a group when rsvp-ing or becoming a member
* Discount fixes in case use per seat is set and max discount usage is 0
* Discount edit was not saving the "use per seat" if it was unset after update
= 2.0.22 (2018/03/07) =
* Total seats for an event can be 0 now, to indicate no limit
* Make discounts work again
* Rename conditional tag #_IS_NOT_START_OR_END_DATE to #_IS_NOT_START_OR_END_DAY
= 2.0.21 (2018/03/01) =
* Bugfix: fix country/state required validation in the rsvp form
* Bugfix: if mail queuing was not activated, custom mails for events were not possible
* Fix num-3 validation
= 2.0.20 (2018/02/28) =
* Better country/states management
* Set default country if only one country is defined
* Don't complain for sending an email if the receiver email is empty, just act as if it is ok
This allows us to have persons in EME without email info now (it might seem archaic, but it happens ...)
* Bugfix: make state edit work again
= 2.0.19 (2018/02/24) =
* Use and enfore a list of states/countries for RSVP and people/members
* Add marker_clustering option to eme_locations_map shortcode (allows to cluster a umber of markers together, values: true/false)
* Autocomplete discount and discountgroup selection in the event RSVP setting screen
* Allow people to be added to a static group from the people admin screen
* Added a new template type "HTML output", can be used in peple/members/rsvp admin screen. This allows you to create your own layout/lists
* Allow to add a category to a list of selected events in the admin interface
* Add option show_ongoing to shortcode eme_rss_link
* Limit rsvp autocomplete to WP users if WP membership is required for the event
* Global locations map now obeys the eme_filter shortcode too
* Improvement: take into account deleted locations for event location updates
* Removed a function that deleted old planned but unsent mailings after 7 days. This was ok in the past, but now interferes with planned mailings
* Added option ignore_filter to shortcodes eme_events, eme_locations and eme_locations_map, so you can use several
shortcodes on 1 page and only some are optionally influenced by the eme_filter
* Bugfix: make notcategory work again in eme_calendar
* Bugfix for taking into account WP membership and "register only once"
= 2.0.18 (2018/01/13) =
* Added the possibility to store the filter for people or member lists as a dynamic group, so you can send mail to that group
* Make #_CAPTCHAHTML\{...} obey newlines
* More mailing options (archiving + better cleanup done)
* Allow sending of mails to specific EME people and groups for event mails
* More search-functionality in people/member admin screens
* Show the applied discount i(group) names in the rsvp csv and printable report, and when editing a booking
* Add rsvp placeholder #_APPLIEDDISCOUNTNAMES, returns a csv-list of applied discount names for a booking
* Fix planning of generic mails again
= 2.0.17 (2018/01/08) =
* Allow planning of event mails too
* Some more mailing stats
* Extra RSVP setting per event to optionally require an unique person or email registration
* Add option to check lastname/firstname without_accents when required (for unique registrations or the cancel form)
* Allow an option to track discount usage per booked seat
* Add the correct surrounding div to the payment form if shown standalone
* Remove a wordpress db-debug statement
* Better account for wordpress br-issues ...
= 2.0.16 (2017/12/31) =
* GDPR improvements and corrections
* Cron tip
In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
And in wp-config.php: define('DISABLE_WP_CRON', true);
= 2.0.15 (2017/12/30) =
* Use even less sessions (no sessions in admin backend needed at all for eme)
* Track queued mails (count the times a mailing is read and when someone read the mail)
* Allow include/exclude in #_EVENTCATEGORYDESCRIPTIONS too, and allow html in the cat description
* Allow multiple category ids in the eme_add_multibooking_form shortcode
* When deleting locations, you can now select to transfer associated events to another location
* Bugfix for sending mails to "all" for events (and in cron)
* Added filters eme_event_categories_sep_filter, eme_event_categorydescriptions_sep_filter, eme_linked_event_categories_sep_filter
Also added options for these (in the 'Other' section), so the filters shouldn't be needed
These control the separator for #_EVENTCATEGORIES (default: ", "), #_EVENTCATEGORYDESCRIPTIONS (default: ", ") and #_LINKEDEVENTCATEGORIES (default: ", ")
= 2.0.14 (2017/12/20) =
* Remove an old polylang workaround
* Make sure we don't interfere with wordpress ajax when using sessions (although sessions are not recommended, so that will get replaced in the future)
* Add action hook eme_insert_member_action, so you can add custom code after a member signed up. One param: $member (to get the answers of that member and more: see the doc on hooks and filters)
* Cron tip
In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
And in wp-config.php: define('DISABLE_WP_CRON', true);
= 2.0.13 (2017/12/15) =
* Another discount fix (for dynamic price calc)
* Added creation/modif datetime columns for events in the admin backend
= 2.0.12 (2017/12/13) =
* Fix discounts (discount usage was increased each time for dynamic price calculation and showing in paypal,... resulting in discounts not to apply when the max usage was set to 1)
* Fix for adding a location
= 2.0.11 (2017/12/13) =
* Stripe and Braintree payment gateway corrections
* Added payment gateway Paymill
* Correct some CSS (not all relevant messages were being shown)
* Correct dropdown_multi (typo fix)
* Bookings with price 0 (after discount and such) are now marked paid and (if set) auto-approved
* Fix paging header for events (paging and monthly/daily/weekly scope did not show the paging header anymore if a period had no events)
* BEHAVIOUR change: from now on a custom page will always be shown after payment, so the option itself to decide wether or not to show it has been removed
= 2.0.10 (2017/12/06) =
* Allow more HTML5 formfield types
* Handle some datetime exceptions more gracefully for membership status calculation
* Fix so event authors can edit own events again
* Fix for template parsing (added a possible newline too much at the end)
* Make location autocomplete for events more predictable
= 2.0.9 (2017/12/02) =
* Show category slug (SEO permalink) and allow to change it
* Make mailing reports useful again
* Add bulk action to resend mail to pending members
* Updating dynamic fields for members was not working
* Remove the deprecated 'fields' option for the filterform shortcode, making it work more logically
* Cron tip
In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
And in wp-config.php: define('DISABLE_WP_CRON', true);
= 2.0.8 (2017/11/24) =
* Add "Send email" mass action to rsvp-list
* Fix for dynamic pricing field
* Delete answers not linked to anything when updating members/people/rsvp
* Fix for replacement of booking/attendee placeholders in the EME header/footer settings for bookings/attendees
* Fix for mail to all people
* Initial support for GDPR (General Data Protection Regulation, [eme_gdpr] shortcode)
= 2.0.7 (2017/11/17) =
* Adding/editing a membership was not saving its properties
* The displayed start/end date for new members was not correct when signing them up in the backend interface
= 2.0.6 (2017/11/13) =
* Allow shortcodes in the rsvp and member forms (allows you to use conditional tags and e.g. only show certain fields in the admin section)
For this #_IS_ADMIN and #_IS_LOGGED_IN now work in member forms
* Better handling of answers (update when needed), to alleviate the pressure on the answers table
* Integrate better with wordpress images, so:
- for people, we can use #_IMAGETITLE, #_IMAGEDESCRIPTION, #_IMAGEALT, #_IMAGECAPTION (the 4 properties you can set for a wordpress image)
- for events, we can use #_EVENTIMAGETITLE, #_EVENTIMAGEDESCRIPTION, #_EVENTIMAGEALT, #_EVENTIMAGECAPTION (the 4 properties you can set for a wordpress image)
- for locations, we can use #_LOCATIONIMAGETITLE, #_LOCATIONIMAGEDESCRIPTION, #_LOCATIONIMAGEALT, #_LOCATIONIMAGECAPTION (the 4 properties you can set for a wordpress image)
* Fix for inserting persons in the database (was causing a WP-prepare error)
= 2.0.5 (2017/11/12) =
* Show more error messages on screen to catch php issues for people ...
* Make global map work again
* Simple search added in mailing reports
* Person image column deleted and moved to properties, this allows more person properties in the future without needing to change the db
* Added title/description to person image, together with the placeholders #_IMAGETITLE, #_IMAGEDESCRIPTION
* Removing a person from the last group he was in was not working
* Removed the option "Add payment id to return page info" (added by default now) and as a result simplified the code for custom return/error pages for bookings (works for multi-bookings too now)
* Small interface fix for the membership and forever-period (to show an empty end-date and not the date of today)
= 2.0.4 (2017/11/10) =
* Add #_FIELDCOUNTER and #_FIELDGROUPINDEX for dynamic field formfields, so you can indicate the number used
* Small bugfix to make "Show all bookings" link work as expected again
* The mailing report showed all mails sent, not the one from the selected mailing
* Allow individual mails from the report to be reused
* Allow people to have a picture
* Add shortcode [eme_people] with option group_id (to show a specific group) and template_id (for the formatting)
All people placeholders can be used in the format
* Added extra people placeholders #_IMAGE, #_IMAGEURL, #_IMAGETHUMB, #_IMAGETHUMBURL
#_IMAGETHUMB{xx} and #_IMAGETHUMBURL{xx} ('xx' being a thumbnail format)
= 2.0.3 (2017/11/09) =
* Default ordering for people was not correct (should be lastname/firstname)
* The filtering fields for the people search form is now limited to those of fields with purpose "people"
* Corrected the startdate calculation for members
* The mailings tab is now ajaxified, showing correct results all the time without needing to refresh the page
* PDF output for people was no longer working due to typo
= 2.0.2 (2017/11/08) =
* Some mobile screen improvements in the admin
* Bugfix for answers table (was not storing answers for fresh EME installations)
= 2.0.1 (2017/11/05) =
* Allow some basic membership placeholders to be used in the memberform: #_MEMBERSHIPNAME, #_MEMBERSHIPDESCRIPTION, #_MEMBERSHIPPRICE
* New actions in people and members: send mail to selected rows
* Mailing can now be reused too
* Layout improvements for selecting people, groups and defining a mailing
* Bugfix: on new installations the answers and queue tables were not created due to a typo
= 2.0.0 (2017/11/03) =
Because of new membership functionality, this is a major update.
* INCOMPATIBILITY: Dynamic field conditions are now much more flexible, but not backwards compatible!
* "Add event" submenu is now part of "Events"
* Allow mails to be sent concerning multiple events
* Revamp the send-mails, holidays, categories, templates and formfields screens
* Form fields with multiple choice can now have different values in the backend as in the frontend
* Groups added, and the possibility to send mails to groups
* Mailings can now be planned, making EME into a very nice mailing system
* Custom fields are now possible for people (even with the possibility to conditionally show them for a specific group), and FIELDVALUE can be used in people placeholders now
* Add custom formfield type Date (JS) ==> to show a datefield via jquery
* Add custom formfield type Dropdown (Multi) ==> to show a dropdown multi-select field
* Membership functionality added
Member placeholders: see doc
Membership form placeholders: see doc
Membership form shortcode eme_add_member_form: see doc
* PDF can be generated for both members and bookings (based on a choosen template with new type 'PDF')
* API search function eme_wordpress_search_events can now take an argument "scope" (values=past/future/all, default=future)
* More visual feedback in the rsvp admin section when executing actions
* Added option to change the "bookings no longer allowed on this date" text
* Also check for free available seats when updating a booking in the backend
* Show dyndata in CSV export
* Allow "month=next_month" in the calendar shortcode
* Add new people placeholder #_MASSMAIL
* Updated Stripe API to 5.5.0
* Bugfix: when someone cancelled a booking from the frontend, no mail was sent to the contact person
* Bugfix: #_FIELD was not working anymore in the multibooking rsvp form
* Bugfix: template type 'All' was not working as expected
* Cron tip
In crontab: */5 * * * * php -q /path/to/wordpress/wp-cron.php >/dev/null 2>&1
And in wp-config.php: define('DISABLE_WP_CRON', true);
= 1.9.8 (2017/09/28) =
* Add option to allow overbookings to happen in the admin backend interface when adding/editing a booking
* Bugfix: make single-char lowercase time-placeholders work again
* Bugfix: new people were not inserted in EME (copy/paste error ...)
= 1.9.7 (2017/09/27) =
* Better visual feedback for add/update/delete people and discounts
* Templates can now indicate a type (meaning: what they can be used for: events, rsvp form, rsvp mail, generic mail). The default is empty, meaning it can be used for anything
* Formfields can now be called by their name or id in RSVP forms, easier to use ...
* Rename comment fields so that some plugins don't intercept it anymore (like antispambee does)
* Bugfix in payment random id select in the database, preveting cancel links from working
= 1.9.5 (2017/09/22) =
* Ajaxify the add/cancel-booking form
* Add option paid_status to eme_my_bookings
* Add payment_datetime field to RSVP overview tables
* Add an option to send a "registration paid" mail when a payment arrives via a payment gateway or you mark a registration as paid
* Make 2Checkout actually work ...
* Currency South African Rand (ZAR) added
* Add an option to force nl2br conversion for HTML mails, to work around some WP editor weirdness
* Removed columns modif_date(_gmt) for bookings and locations (and the placeholders #_BOOKING_MODIF*), this greatly simplifies the code ...
* Added placeholders #_BOOKINGPAYMENTDATE and #_BOOKINGPAYMENTTIME so you can use these in payment-mails
* Fix EME phone wordpress profile field
* Make attributes work for locations again
* Fix a bug that made the offline-payment selection stick in the rsvp settings of an event
* Remove some css added too much by plugin widget-opts
= 1.9.4 (2017/09/05) =
* Dynamic price fix
= 1.9.3 (2017/09/02) =
* #_PAYMENT_URL now contains a random id, a bit safer, the older url will be deprecated after some releases
* The newsletter will now be sent only to unique emails, no more doubles ...
* You can now ask for more info based on number of booked seats. See the RSVP section when creating a new event and use #_DYNAMICDATA to show the extra form info wanted in your RSVP form
* You can also use the placeholder #_DYNAMICDATA to show the entered dynamic data in mails or booking info
* The dynamic added fields can also influence the price
* The rsvp placeholder #_FIELDVALUE will show the value as a price if the formfield indicated an extra charge
* Bookings on a waitinglist can't be paid for or get auto-approved. This wasn't the case but extra checks have been put in place.
* The option 'Attendees list ignore pending' caused the attendees list to return the pending bookings, not the paid ones
* Shortcodes eme_attendees and eme_bookings have 2 extra options (to be able to show all/approved/pending and all/paid/unpaid)
approval_status (default:0, 1:only pending, 2:only approved)
paid_status: (default:0, 1:unpaid, 2:paid)
* long_events now also works for shortcode eme_events if not using periods
* Bugfix for weekly selector in recurring events
* Bugfix for dynamic price update when filling out a discount input field
* Bugfix for event scope 0000-MM
* Fixes for not sending pending mails
= 1.9.2 (2017/08/11) =
* Sending of generic mails and newsletter now uses the mail from name/address as indicated in the Mail settings tab
(and as backup the default contact person for events)
* You can now send a preview mail to an existing person when sending generic mails
* To make sure no accidental mail to everyone is done, you're now asked to confirm
* Fix to be able to send HTML mails when sending a generic mail to everyone
* Tip: you can clear all messages in the mail queue in the Cleanup section
= 1.9.1 (2017/08/10) =
* Add RSVP form placeholders #_OPT_IN and #_OPT_OUT, so you can ask for massmailing preferences
* Also add a default option for massmailing preferences
* Allow calculated discount to be shown in the registration management screens
* CSS fix
= 1.9.0 (2017/08/03) =
* Add an option to queue mails and send them in the background
* Allow mails to be sent to all people that ever registered in EME (don't forget to use queueing)
* Added a placeholder #_UNSUB_URL for attendee mails, new newsletter feature and new "generic mail sending" feature if you decide to send mails to all people that ever registered
* Added a placeholder #_UNSUB_CONFIRM_URL, to be used in the new mail option "Unsubscribe email body"
* Add the possibility to import people into the database, can be used together with the queue mail functionality to send mails for new events ...
* You can now plan a newsletter to send automatically for upcoming events, or send a mail to all EME people
* The date of the last automatic reminder sent for a booking can now be shown in the pending booking overview
* Attendance can be for multi-price events too
* Allow RSVP cancel cutoff per individual event too
* Sometimes sending of mail was attempted even if not wanted
= 1.8.9 (2017/06/15) =
* Make sure mails are send out also when canceling a registration from the frontend if the event doesn't require approval
* Make sure mails are send out also when updating/denying a registration from the backend if the event doesn't require approval
* Make google maps work again with 'javascript in the header' setting
= 1.8.8 (2017/06/13) =
* Attempt to load google api async/defer and still get the map to work reliable on all browsers
= 1.8.7 (2017/06/12) =
* Fix how the NumberFormatter class is checked for (resulted in a php warning)
* Only load google maps in the EME admin pages where needed (was still not always the case)
* Remove a javascript comment setting, was unneeded and might cause troubles with caching/optimizing plugins/themes
= 1.8.6 (2017/06/11) =
* Fix a function call so it also works with older (unsupported) php versions
* Please read the changes concerning 1.8.5 too
= 1.8.5 (2017/06/11) =
* Show warning sign for locations with empty coordinates
* Render initial map for edit-events correctly again
* The placeholders #_EVENTPRICE, #_TOTALPRICE, #_CHARGE, #_TOTALDISCOUNT, #_BOOKINGPRICEPERSEAT, #_DYNAMICPRICE (which were already showing the localised price layout) now also show the currency symbol if the NumberFormatter php class is present (which is the case in all newer php versions).
An option is created to deactivate this behavior if you don't like it.
*** It might be needed to change your templates accordingly to not show multiple times the same currency symbol ***
* Add #_CURRENCYSYMBOL as placeholder to show the symbol if you need it specifically. This option only works if the php class NumberFormatter is present, which is the case in all newer php versions.
* If possible, show the currency symbol in booking table, csv and printable outputs and for mails (when using price-related placeholders). Again, see above: this option can be deactivated.
* The placeholder #_RECURRENCE_DESC now returns a list of comma-separated days in the frontend
= 1.8.4 (2017/05/27) =
* small bugfix release to fix renamed function in eme_locations.php
= 1.8.3 (2017/05/27) =
* Allow automatic reminders to be sent (in the cleanup section)
* More control over sending mails when changing registrations
* Allow resending pending or approved mail for selected bookings in the rsvp admin screens
* Revamp the edit-event screen
* Removed the fb-sync here, there's a separate plugin that does that better
= 1.8.2 (2017/05/18) =
* Fix a settings error on the map settings page
= 1.8.1 (2017/05/14) =
* Added placeholders #_AVAILABLEWAITINGLISTSEATS and #_WAITING_LIST_CLOSED, and make #_WAITING_LIST_ACTIVE actually work too
* Correct template sorting selection when sending mails
* Add a setting to ignore certificate problems for secure SMTP (some hosting providers need this ...)
* Remove a redundant end-div tag in the cancel form if the event has already passed
= 1.8.0 (2017/04/23) =
* Fix for eme_events month scope ranges
* Allow divs for calendar layout, making the calendar responsive in case you want it too (see the shortcode doc)
* Stripe payments were twice multiplied by 100, this is fixed now, together with other stripe fixes
* Make sure the example locations are created correctly for new installations
* Improvement: the 'No events' message now also has a span and not a div surrounding it, with id 'events-no-events'. Reason: div could interfere with the surrounding layout (if inside a p-tag for example)
* Waiting list feature implemented, together with some extra placeholders for events (#_WAITING_LIST_ACTIVATED and #_WAITINGLISTSEATS) and for the RSVP mails (#_ON_WAITINGLIST), see the doc
* Now one can indicate that RSVP formfields can influence the total price, this allows you to create for example "donation fields"
or allow people to pay for extra attributes ordered (t-shirt, drinking tickets, ...)
= 1.7.18 (2017/03/28) =
* Entered custom field values were not correctly shown when editing a booking
* Make the field_name available in eme_get_answers again, easier for discount codes (so people don't need to change their code)
= 1.7.17 (2017/03/27) =
* In mails, add newlines carefully, to not disrupt possible html layout
* Custom field values were empty in the mails
= 1.7.16 (2017/03/26) =
* BUGFIX BUGFIX BUGFIX!!!
* People that use custom answer fields and already updated to 1.7.15 should either:
* revert to a backup of their database for 1.7.14 and update to 1.7.16, or:
* revert to a backup for their answers table (from before 1.7.15) and execute the following query afterwards:
ALTER TABLE wp_eme_answers add field_id INT(11) DEFAULT 0;
UPDATE wp_eme_answers SET field_id = (select field_id from wp_eme_formfields where field_name = wp_eme_answers.field_name LIMIT 1);
ALTER TABLE wp_eme_answers DROP COLUMN 'field_name';
(and check if the newly created column field_id contains the correct field id numbers)
(The second method is less intrusive but requires a bit more manual work)
You can check if you're impacted by looking at your wp_eme_answers table in mysql and see if the column field_id contains any NULL values
= 1.7.15 (2017/03/24) =
* Support zero-decimal currencies in Stripe (like JPY)
* Prevent html-chars for text stuff in rsvp placeholders (again)
* Widget used a unchecked calendar_day variable in a date string (it couldn't hurt, but attackers try everything and it is not pretty in logfiles)
* Show "my bookings" more consistently for logged in users
* Better html-editor usage
* Removing a custom field will also delete the RSVP answers linked to that field (if any)
* Since Google Maps require an API key, maps are no longer attempted to be shown if no API key is entered
* Even more rigurous javascript/html removal from rsvp form input. I already removed all html-tags, but sometimes it might not be enough (no XSS known here, but one never knows)
* Better error message if a new recurrence contains no events
* Allow to put a registration back in pending state
* Bugfix: when sending mails concerning unpaid bookings, all bookings were mailed (not just the unpaid ones)
* Bugfix: location dropdown select was not showing the map anymore
* Workaround: wordpress allows wrongly encoded chars to pass in their db-functions, so I'm cleaning these out now (useful for e.g. facebook syncs, that also can pass wrongly encoded chars)
* Renamed the admin page events-manager to eme-manager
= 1.7.14 (2017/03/02) =
* Fix cal header days
= 1.7.13 (2017/03/02) =
* Extra sorting in the bookings admin table
* Prevent double RSVP submits by disabling the submit button after click
* Make sure #_FIELDVALUE gets replaced correctly
* Formfield types checkbox and radiobox now correctly use "labels" in the generated html (no longer plain html text)
* Prevent html-chars for text stuff in rsvp placeholders
* Some formats are allowed to have javascript in them, but it was removed upon save
* Better edit for existing events/locations
* Allow to filter by date in the backend for events and bookings
= 1.7.12 (2017/02/14) =
* Dutch language updates (thanks to Benny De Vuyst)
* The location placeholders #_PASTEVENTS, #_NEXTEVENTS, #_ALLEVENTS now have an optional parameter so you can decide the sorting order
of the events shown. Default is ASC, so e.g.:
#_PASTEVENTS{ASC}
#_NEXTEVENTS{DESC}
More complex ordering can be used too, see the eme_events shortcode for tips
* Allow the status of the event to be given as an url parameter for the admin list of events, so you can quickly show the list
of e.g. draft events:
/wp-admin/admin.php?page=eme-manager&status=2
(1: public, 2: private, 5: draft)
* The text "Required field" in the rsvp form can now be customized in the rsvp settings
* The ical location format for an event can now be customized in the ical settings
* Bugfix: eme_filters shortcode could skip a month for the month filter
= 1.7.11 (2017/01/21) =
* Allow to search for location countries too (placeholder FILTER_COUNTRIES added for the eme_filter shortcode layout)
* The shortcode eme_filterform can now also be used together with the shortcode eme_locations (using the filters FILTER_LOCS, FILTER_TOWNS, FILTER_COUNTRIES)
* Added API function eme_wordpress_search_locations, to allow you to search for locations (as eme_wordpress_search_events). See the doc
* Put js as much in the footer as possible, and defer the execution also, to speed up page rendering
* RSS pubdate was being localised and it should be RFC822 format, this has been corrected now
* The people table can now be exported, printed and searched like the events table
* The locations table has been ajaxified too
* The 'order' option in [eme_events] can now contain own columns you want to order on.
The default is "event_start_date ASC, event_start_time ASC, event_name ASC"
* Try to remove yoast SEO headers from the special page
* The shortcode eme_if now also accepts "eq" as an alternative for "value" and "ne" as an alternative for "notvalue"
This is more in line with the other options (lt, gt, ge, ...)
= 1.7.10 (2016/12/16) =
* Fixed #_LOCATIONIMAGETHUMBURL
* Added #_LOCATIONIMAGETHUMBURL{MyCustomSize}
* Split out mail templates in separate section, so we can easily take the option to send html mails into account and disable the
html editor if not needed
* Fixed some location issues
= 1.7.9 (2016/12/11) =
* Offline fix
= 1.7.8 (2016/12/10) =
* Add new discount type "fixed discount per seat"
* Add offline-payment setting
* Backwards incompatibility: renamed the multibooking option eme_register_empty_seats to just register_empty_seats
(and documented it)
* Backwards incompatibility: for a multibooking, events that use the attendance option won't store empty seats (the 'no'-answer) unless you use the option register_empty_seats=1 (default=0)
* The HTML editor is shown for many settings/templates now, more will follow after feedback
* Add extra fields for location info: address1, address2, city, state, zip, country (the old address field is now address1; the old town field is now city).
= 1.7.7 (2016/11/01) =
* Make the delete icon for events and discounts actually work again
* Add option to make captcha case insensitive
* Make notices permanently dismissable again
= 1.7.6 (2016/10/14) =
* Added eme_for shortcode, to be able to show certain html multiple times (2 values: min, max, see doc for examples)
* Bugfix: show the no-longer-allowed-to-book message again if the end-date has passed (not for multi-booking)
* Bugfix: allow 0-seats for attendance-like events again
* Bugfix: the extra attributes field for formfields was not showing the correct value when editing the formfield
* Add the possibility to send a test email via the "Send Mails" page
* Bugfix: the smtp port setting was not correctly taken into account (always resulting in port 25 being used)
= 1.7.5 (2016/09/14) =
* Client clock functionality was not working anymore
* Fix setting 'Age of unpaid pending bookings in minutes'
* Make captcha work again (although sometimes it worked ... the quirks of php session autostart I guess)
= 1.7.4 (2016/09/13) =
* Mail was not being sent after payment arrived for autoapproval
= 1.7.3 (2016/09/12) =
* Moving a registration to another event was not working anymore
= 1.7.2 (2016/09/07) =
* Make sure mail is sent out when denying a registration
* Correct the link to RSVP in the Pending registration menu
* When adding a booking in the backend, don't mark it immediately as paid
* Add booking ID back to rsvp overview
= 1.7.1 (2016/09/06) =
* Small fix: make sure payments received via ipn approve the booking if auto-approve is set
* Improvents in the event overview: you can now click on pending bookings
= 1.7.0 (2016/09/06) =
* Paging events for the last day of the month failed if the next month has fewer days. E.g. if you're
on August 31 and tried to go to the next month via event paging, it would give you October because Sept 31 doesn't exist
* Added the possibility to send mails after payment notification from payment gateway was received. You just need to set what you want in the regular mail settings page of EME.
* Added shortcode [eme_holidays], with 1 parameter: the id of the holidays list. Will return a simple html list of your holidays list
* The event listing in the backend is now ajax based, this will result in much better performance if you have many events
* Bugfix: typo: payed => paid
= 1.6.26 (2016/08/27) =
* Fix an php warning
* For sagepay the extra cost of FirstData was taken, corrected
* When automatic cleanup of bookings is activated, the payment page will now redirect back to the event
if not yet paid and the timer passed, to avoid people to pay for bookings that are no longer in the system
= 1.6.25 (2016/08/27) =
* Localised prices can contain html entities (weird wp function ...), in e.g. text emails this is of course not desired.
* The end date selector for recurring events was not working anymore
* The function eme_wordpress_search (to be used in your search.php, see the FAQ), was not working as it should
= 1.6.23 and 1.6.24 (2016/08/18) =
* Make sure end date >= start date in the datepicker, easier if you're switching months and so ...
* Partial update for Swedish (thanks to Magnus Tamelander)
* re-added some placeholders that were not supposed to be removed
* dismissable notices were not dismissable at all ...
= 1.6.22 (2016/08/17) =
* Add email to stripe checkout form
* Fix a php warning when editing a registration
* Show lat/long in location overview, easier to detect front-end problems then if the map doesn't show the correct location
* Finally removed legacy and deprecated placeholders.
* INCOMPATIBILITY: The pattern for custom formfields is gone and replaced by a more generic attributes field
So if you had patterns for a formfield (only possible for the datefield in fact), please re-add these
* Show that there were mail problems if not all mails went through in the "Send Mail" window
* Use dismissable admin notices, much prettier... (using a slightly adapted version of collizo4sky's persist-admin-notices-dismissal)
* Bugfix that prevented correct mails to be sent out for private events after IPN from e.g. paypal arrived
= 1.6.21 (2016/08/02) =
* Added holidays selection to the widget
* CSRF Security fix: although I already check the permissions of the persons doing this, and everything is checked afterwards,
I now use the wordpress nonce to make sure nobody messes with the form/url contents for events/locations/... .
Detected by Securify/Summer of Pwnage/Job Diesveld
* Remove inserted javascript from not allowed option fields (which is just
about anything, except
'eme_html_header','eme_html_footer','eme_payment_form_header_format','eme_payment_form_footer_format','eme_multipayment_form_header_format','eme_multipayment_form_footer_format')
This is just an extra precaution, next to the CSRF fix, suggested by Securify/Summer of Pwnage/Job Diesveld
* Remove javascript from event and location format settings and templates.
This is just an extra precaution, next to the CSRF fix, suggested by Securify/Summer of Pwnage/Job Diesveld
* Make #_ADDBOOKINGFORM_IF_NOT_REGISTERED and #_REMOVEBOOKINGFORM_IF_REGISTERED behave correctly again
* Multibooking form fix
* Booking return page was not shown correctly
= 1.6.20 (2016/07/28) =
* Bugfix in sending mails on first booking
= 1.6.19 (2016/07/28) =
* Added an option to disable the extra html paragraph tags around notes/excerpts
* Bugfix for the payment buttons (not only paypal)
* Fix a php warning for empty discounts, created because the price is now formatted to the locale in wordpress (and can thus not be an empty string, but needs to be a real floating point)
= 1.6.18 (2016/07/24) =
* You can now add/delete/edit discounts and discount groups in the backend
* Bugfix: adding bookings in the backend was not working anymore
* Small bugfix: the payment header/footer format settings were not always taken into account
= 1.6.17 (2016/07/21) =
* Allow calculated discount to be changed for bookings in the backend
* Allow dynamic price calculation in the RSVP form (using #_DYNAMICPRICE and a
setting to activate it if wanted; for multibooking this placeholder needs to
be in the header or footer section)
* Added booking placeholder #_TOTALDISCOUNT, so you can let people know how much discount they got in the end
* The price shown (mails, tables, frontend) will now be formatted according to the locale in wordpress. The number of decimals is now an option you can set in the 'Other' section of the EME settings. In the input fields you still need to use the international notation though ...
* In the template header/footer for multibooking events, you can now also use regular event placeholders. The first event in the multibooking list will be used as source. So you can now use #_LANG, #_CURRENCY, etc ...
* Add function eme_wordpress_search, makes it easier to use in your theme's search.php
* Add filter eme_calday_url_class_filter, so you can change the class for calendar day-urls yourself (e.g. for setting "noindex" or so, searchbots don't execute js so the class needs to be added via code)
* Bugfix: when showing a single event, the external url was not always taken into account
= 1.6.16 (2016/07/13) =
* Feature: coupon codes can now be case insensitive (new coupon column 'strcase' added, 1: case sensitive, 0: case insensitive)
* Small bugfix: discount groups couldn't be deleted, this has been fixed
= 1.6.15 (2016/07/12) =
* Feature: cleanup of unpaid bookings can be scheduled now, and should be working too ...
* Feature: added discounts (coupon codes) with fixed discount or a percentage, expiration date, limit number of uses, allow different discounts to be entered, (discount groups) and CSV upload of coupons and groups. See the documentation for more.
* Added placeholder #_RESPFIELD{xx}, with 'xx' being a db field property of a person (like person_id, lastname, firstname, email, phone; ... see events-manager.php, function eme_create_people_table)
* Added placeholder #_LANG, so now you can use conditional tags, check the lang and then use your own text where you want it. Since conditional tags are possible just about anywhere, this allows for true multilanguage mails, subjects, screen messages etc ...
* Added event placeholder #_NOEXCERPT, so you can show the rest of the event notes and not the excerpt itself. Together with the other 2 placeholders (#_EXCERPT and #_NOTES) this now gives you full control of what part of the notes you want to show.
* Updated Mollie API to version 1.6.0
* Added a setting to bring back the google api key for google maps, and added a separate Maps section in the options.
* Change: the automatic cleanup of unpaid bookings now works for pending bookings only, so as not to interfere with approved bookings that don't need payment
* Bugfix: when the difference in seconds was less than a day, recurrent events would happen on the same day even if they start on day 1 and end on day 2
* Bugfix: when not using permalinks and using "?lang=" in the url, the rsvp submit wasn't working for events
= 1.6.14 (2016/05/26) =
* Remove deprecated function call get_current_user
* Added filters to change the scope of the week/month/year filters to your liking: eme_week_scope_filter, eme_month_scope_filter, eme_year_scope_filter
* Added placeholders #_EVENTFIELD{xx}, #_LOCATIONFIELD{xx}, #_BOOKINGFIELD{xx} and #_ATTENDFIELD{xx} with 'xx' being the name of a field for events, locations, bookings or attendees. This way you can show any info as stored in a respective field (in the db) in your format (can easily replace a number of existing placeholders: #_ATTENDFIRSTNAME, #_ATTENDADDRESS1, #_ATTENDADDRESS2, #_ATTENDCITY, #_ATTENDSTATE, #_ATTENDZIP, #_ATTENDCOUNTRY, #_ATTENDID, #_BOOKINGID, #_RESPFIRSTNAME, #_RESPADDRESS1, #_RESPADDRESS2, #_RESPCITY, #_RESPSTATE, #_RESPZIP, #_RESPCOUNTRY, and more for events and locations.
* Allow the external url for event/location details to be used directly or not when clicking on event/location details (default: yes, the original behavior)
* Feature: added option ignore_url to shortcode eme_location, so you can choose to ignore the external url for a single event when using this shortcode
* Added an option to quote the timezone info in ICAL outputs, since some ICAL clients require that despite the RFC
* Added new shortcode eme_categories, with optional parameters event_id,
eventful, scope, template_id, template_id_header and template_id_footer
The format understands placeholders with values like #_CATEGORYFIELD{xx}, with 'xx' being category_id, category_name, description or slug.
Also #_CATEGORYURL, so you can create your own links to categories too.
* Bugfix: fix a uninitialized variable error and also the CSV export in the "Send mail" EME admin page
* Bugfix: for private events, the auto approval upon payment was not working
* Bugfix: corrected placeholders #_EVENT_EXTERNAL_REF and #_LOCATION_EXTERNAL_REF
= 1.6.13 (2016/04/12) =
* Bugfix: event scope "this_year" was not working as expected
* Bugfix: make sure regular event placeholders get correctly replaced when the option to add the booking id to the custom payment return page is set
* Bugfix: the event author value was not retained when updating an event
* Bugfix: when using autocomplete for adding people to an event, the selected lastname included the wp username too, resulting in a new record
* Added event scope "next_year"
* Added formfield type "date" (html5 form type), together with the possibility to provide a date pattern
* Disable the possibility to convert an event to a recurrence if bookings exist for the event, otherwise those bookings would get deleted.
* For filters/hooks: the booking variable now also contains the payment id, so the functions eme_get_booking_payment_id and eme_get_bookings_payment_id have been removed
* Also store the ip per booking
= 1.6.12 (2016/02/26) =
* Better php session handling (and add an option to clean the session upon login/logout)
* Add an option to select whether or not to immediately show a single event on a calendar day and not an event list if there's only 1 event on that day
* Use phone number of person logged in (from profile) when showing the phone rsvp field
* Make sure some chosen defaults for events don't interfere with disabling settings when creating/editing an event
= 1.6.11 (2016/02/12) =
* Added CSS classes for rsvp success/error/full messages when showing the booking form or the booking result
* Add conditional tag #_IS_PAYED, which returs '1' if the booking is paid, 0 otherwise. Can be used in the custom payment return page (together with the option "Add booking id to return page info") to create your own text based on payment status
* Bugfix: not all changes were stored when editing events
= 1.6.10 (2016/02/04) =
* Bugfix: events without location info were returning blank content when viewing the single event details
= 1.6.9 (2016/02/04) =
* Bugfix if you used the option to hide rsvp full events (the new sql statement from 1.6.7 was incomplete)
= 1.6.8 (2016/02/04) =
* Bugfix if you used the option show_recurrent_events_once in the eme_events shortcode (the new sql statement from 1.6.7 was incomplete)
= 1.6.7 (2016/02/03) =
* Performance improvement when showing the calender by reducing the number of sql statements made
* Bugfix in the calendar: in some cases all events were selected in the database, resulting in memory problems if you had many events
= 1.6.6 (2016/01/31) =
* Feature: added braintree and stripe payment gateways
* Feature: added filter eme_csv_column_filter, so you can change the csv columns to your liking (adding/removing columns ..)
Has 3 arguments: csv line (an array with all columns), event (array with all event data), current line number
= 1.6.5 (2016/01/21) =
* Add the possibility to disable autocomplete for the registration form
* Added event placeholder #_EXTERNALURL, to show the external url for the event if it has a value
* Bugfix for locations, preventing a location-filtered calendar to work correctly
= 1.6.4 (2015/12/19) =
* Improvement: some more cleanup actions added
* Bugfix: make sure the calendar title tags contain valid escaped chars
= 1.6.3 (2015/12/19) =
* Feature: added option holiday_id to [eme_calendar], so you can show holiday info in the calendar if wanted
* Bugfix: captcha fix if code is wrong
= 1.6.2 (2015/12/11) =
* Feature: added option id to [eme_mybookings], so you can now show only the bookings for the logged in user if you use this in the single event format as:
[eme_mybookings id=#_EVENTID]
* Feature: added #_CANCEL_OWN_LINK (as #_CANCEL_OWN_URL but clickable)
* Bugfix: if the start and end date are equal and the end time is not set, set it to 23:59:59 and not 00:00:00
= 1.6.1 (2015/12/07) =
* Bugfix: make captcha work again
= 1.6.0 (2015/12/06) =
* Feature: you can add holidays to a recurrent list of events, in which case that day will be skipped (no event) when creating/editing the recurrence
A list of holidays consists of 1 or more rows of the format YYYY-MM-DD
* Feature: added option weekdays to the calendar shortcode, so you can select which days of the week you want to show (0-6 as values)
* Feature: added #_CANCEL_OWN_URL rsvp shortcode, can be used in event lists so you can allow logged in people to just cancel their own booking with
a single click, or the event owner/author
Difference with #_CANCEL_URL is that #_CANCEL_URL gives the url no matter what (easier for mails, not wp-members and such)
* Feature: added shortcode [eme_attendees_report_link], generating a csv for the attendees/events (events as rows, dates as columns, attendees as cell entries)
Options: - event_template_id (if not given, format is "#_EVENTNAME #_STARTTIME")
- attend_template_id (if not given, format is "#_ATTENDFIRSTNAME #_ATTENDLASTNAME")
- scope (the scope of events to return, if not given, scope=this_month)
- category and notcategory (empty if not given, see the [eme_events] shortcode)
- title (title of the link, if not given: "Attendees CSV")
* Feature: autocomplete is now possible in the frontend rsvp form if you have the correct rights, together with #_CANCEL_OWN_URL this means bookings can totally be managed in the frontend if wanted
* Improvement: 'Bookings for' was not translated in the printable view
* Improvement: added partial Hungarian translation, thanks to Márton Jakobey
* Improvement: for attendance types, if the min. number of seats to book is 1 (so attendance is required), then the yes/no field is now hidden (not for multibookings yet)
* Improvement: some layout improvements when creating events (concerning the date/time and recurrent info)
* Bugfix: firstname was not detected as an 'ok' field if it was required and WP membership was required too. Since the value
is then readonly, we can ignore the required check then anyway ...
* Bugfix: for multiprice events, the multibooking form was not rendered because the count of required fields in the formats was wrong
= 1.5.53 (2015/11/17) =
* Feature: added filters eme_cal_full_yearmonth and eme_cal_small_yearmonth, so you can change the header shown in the full/small calendar
Has 3 arguments: current string, selected month, selected year
* Work around a bug in wordpress date_i18n that doesn't translate everything correctly ...
= 1.5.52 (2015/11/16) =
* Improvement: added cancel form placeholder #_CANCELCOMMENT and corresponding rsvp placeholder #_RESPCANCELCOMMENT
This allows you to show a comment form field when canceling, and to mail that comment to booker and/or contact person
* Improvement: don't show the payment form if the total price to pay is 0
* Improvement: show a spinner when switching months in the calendar
* Improvement: added email filters eme_rsvp_email_text_xxx_filter and eme_rsvp_email_html_xxx_filter with "xxx" being one of:
confirmed_body,updated_body,pending_body,denied_body,cancelled_body
confirmed_subject,updated_subject,pending_subject,denied_subject,cancelled_subject
contact_body,contact_cancelled_body,contact_pending_body
contact_subject,contact_cancelled_subject,contact_pending_subject
* Improvement: renamed eme lang files to events-made-easy, also changed the gettext calls accordingly
this will allow to have wordpress language packs in the future
* Improvement: German language updates, thanks to Joerg Knoerchen
* Bugfix: when updating a recurrence, the days were set wrong in the edit screen
* Bugfix: comparing min/max allowed seats was not working in a multiseat setup
* Bugfix: allow for min=1,max=1 seats for a multiprice event to force exactly 1 seat to be taken in total
= 1.5.51 (2015/10/13) =
* Bugfix: make sure you can still add categories, templates, formfields
= 1.5.50 (2015/10/12) =
* Feature: you can now deactive the mail sending for approved and/or pending bookings
* Feature: add cleanup action for old unpaid bookings
* Feature: added 3 specific calendar conditional tags: #_IS_STARTDATE, #_IS_ENDDATE, #_IS_NOT_START_OR_END_DATE and a filter eme_cal_format_prefilter
* Bugfix: if long_events=1 in the eme_calendar shortcode, and the end time was lower than the start time, the last day wasn't shown as eventfull
* Bugfix: multi-fields in the filterform weren't working
* Bugfix: excluding multiple categories in the widgets was not working as expected
* Security fix: fix possible XSS attack vector in the admin pages for templates, categories, formfields and cleanup (thanks to David Sopas)
= 1.5.49 (2015/09/28) =
* Bugfix: when approving a booking and at the same time setting the paid status, the mail sent out was using the old paid status so #_PAID was wrong
* Bugfix: fix undefined variable in eme_rsvp.php
= 1.5.48 (2015/09/26) =
* Feature: you can now move a booking to another event (when updating the booking)
* Bugfix: when editing a recurrence, the end-days per individual event were set at the end date of the recurrence instead of the correct event end date
= 1.5.47 (2015/09/23) =
* Feature: added event placeholder #_SINGLE_EVENTPAGE_EVENTID, returns the event id of the single event page currently shown
* Improvement: add a class to the rsvp form submit button
* Bugfix: when editing a location, don't translate fields that are multi-language compatible (otherwise you lose the other languages)
* Bugfix: make sure the calendar monthname is localised again
= 1.5.46 (2015/09/18) =
* Feature: you can now also set the cancelled and denied mail format per event
* Bugfix: remove leading 0 for minutes was not working ok
* Bugfix: event end time was not correct when editing an event with local timeformat in AM/PM notation
= 1.5.45 (2015/09/10) =
* Bugfix: the payment form was not shown after registration for #_ADDBOOKINGFORM_IF_NOT_REGISTERED
* Bugfix: entering/updating events showed an error in some cases as the timezone was passed along as an argument
= 1.5.44 (2015/09/09) =
* Bugfix: the countdown and HOURS/DAYS_TILL_START/END were reversed (negative values shown)
= 1.5.43 (2015/09/09) =
* Improvement: German language updates, thanks to Joerg Knoerchen
* Bugfix: take into account wordpress weirdness when setting UTC-like timezones in the preferences ...
* Bugfix: forgot to initialize colreorder for the datatables, works again now
= 1.5.42 (2015/09/08) =
* Feature: added placeholders #_EVENT_EXTERNAL_REF and #_LOCATION_EXTERNAL_REF, returning the external reference for an event or location (typically the facebook id)
* Feature: you can now also select a template in the event list widget
* Feature: added attendee placeholder #_ATTENDSPACES{xx} to return the number of seats registered for a specific price for a multi-price event
* Improvement: use wordpress is_email function to check for valid email addresses
* Improvement: small visual improvement when showing the username in the registration overview
* Improvement: also show the CSV export link if there are just pending seats (not approved)
* Bugfix/improvement: don't set the timezone globally anymore, use class ExpressDate (should help with some time conflicts in other plugins)
* Bugfix: when updating a registration, the old info was still being shown in the mail sent
* Bugfix: when showing a calendar day, not always the single event was shown if only 1 event was on that day
* Bugfix: when showing the booking form, no check was made whether or not enough seats were available in the case of multiprice with a defined multi-minimum too
* Bugfix: make sure all #_*SPACES placeholders return a number for multi-price values (wasn't the case if the value should be 0)
* Bugfix: replace possible multibooking placeholders in the payment return page too
= 1.5.41 (2015/7/27) =
* Feature: added placeholder #_EVENTCATEGORIES_CSS, returning a space-separated list of categories.
Also, excluding categories is possible, like in #_EVENTCATEGORIES
Also added #_LOCATIONCATEGORIES_CSS
* Feature: added rsvp placeholders #_RESPNICKNAME, #_RESPNICKNAME and attendee placeholders #_ATTENDNICKNAME and #_ATTENDDISPNAME (displays the nickname or displayname for a booker or attendee if the user is a wordpress user)
* Feature: add extra header/footer format settings when showing the list of events for a specific category
* Feature: allow attributes to be text areas now, so you can do more with them
* Feature: add the option to ignore paypal tax setting in your profile
* Change: mails with no subject or body will not be sent
* Bugfix: for some reason, in the older plugin code I added the logic that the excerpt was never to be shown on single event pages. This has been corrected now.
* Bugfix: add db column 'lang' for the peoples table if missing
* Bugfix: the booker firstname/lastname was not correctly replaced in the cancel form for WP users
= 1.5.40 (2015/05/31) =
* Bugfix: when deleting a booking, the extra field answers were deleted before the mail was sent, resulting in some placeholders not being replaced in that mail
* Bugfix: fix untranslated and unescaped category names when creating/editing events
* Bugfix: fix edit and update bookings (missing argument for a function)
= 1.5.39 (2015/05/21) =
* Bugfix: small fix for undefined variable
= 1.5.38 (2015/05/21) =
* Bugfix: multibooking fix for mails
* Bugfix: allow firstname to be required too
= 1.5.37 (2015/05/08) =
* Bugfix: cancel url was not correctly shown (and was also not working for bookings with no price)
* CSS Bugfix for chrome (the fix got added in 1.3.4 and removed later on):
datatable CSS fix so the footer doesn't overlap with the table in some browsers
* Improvement: German language updates, thanks to Joerg Knoerchen
= 1.5.36 (2015/05/01) =
* Feature: added Worldpay payment gateway
* Feature: added event placeholders #_AUTHORNAME, #_AUTHOREMAIL and #_AUTHORPHONE
* Feature: added event placeholders #_EVENTCREATIONDATE, #_EVENTMODIFDATE, #_EVENTCREATIONTIME, #_EVENTMODIFTIME
* Feature: added description for categories, together with placeholders #_EVENTCATEGORYDESCRIPTIONS and #_LOCATIONCATEGORYDESCRIPTIONS
* Feature: added option "approval_status" to shortcode eme_mybookings. Values: 0=all, 1=approved, 2=pending. Default: 0
* Feature: added function eme_get_person_by_post(), so people can call this to check if somebody is registered without needing to now the internals:
$booker = eme_get_person_by_post();
if (!empty($booker)) {
$already_registered=1;
}
* Feature: now everybody can cancel a booking (even non-wp users) via a special link. Cancel urls in mails and user profile use these links now.
The old booking cancel form will be deprecated in the future, as using this link/form is more secure and easier to maintain
For this #_CANCEL_LINK and #_CANCEL_URL have been adapted already. And a new placeholder #_CANCEL_CODE has been added that
returns the cancel code to be used in the new cancel booking form (to be implemented)
* Feature: added option ignore_url to shortcode eme_event: in a number of cases (like when using this shortcode in the calendar format for an event entry), the url would case the page to be redirected. Using this, you can ignore that url.
* Bugfix: when canceling a booking via the cancel url, the mail being sent contained the free spaces info from before the cancel, it was sent too early in the process
* Bugfix: event placeholders were not being replaced in booking mails (they were replaced in attendee mails)
* Bugfix: make sure you can require the first name to be completed if wanted
* Bugfix: a redundant check was made for firstname in multibooking events, so people filling in their last name still received an error that the last name was not filled out
* Bugfix: some category link fixes
= 1.5.35 =
* Bugfix: RSVP placeholders in multibooking mails were not being correctly replaced
= 1.5.34 =
* Bugfix: make #_FIELDVALUE actually work ..
* Bugfix: show the user display name as lastname if the lastname is empty for a user in forms
= 1.5.33 =
* Bugfix: in a borderline case new registrations were not possible
= 1.5.32 =
* Bugfix: make sure the booking recorded message shows, no matter what
* Workaround: take into account that wordpress sets NULL for empty strings in the database (which it shouldn't)
= 1.5.31 =
* Bugfix: don't make firstname required for the cancel form too
= 1.5.30 =
* Bugfix: don't make firstname required when submitting, to preserve backward compatibility
= 1.5.29 =
* Feature: allow 2Checkout sandbox/test/live modes
* Feature: added Sage Pay payment gateway
* Feature: attempt to make the map sizes responsive: width and height can be "%" too, for responsiveness: width should be 100%
* Feature: added conditional booking placeholder #_IS_MULTIBOOKING again, only returns 1 when actually doing a multi-booking, not when updating/deleting a booking
* Feature: extra info can be requested for a person: #_LASTNAME (= #_NAME), #_FIRSTNAME, #_ADDRESS1, #_ADDRESS2, #_CITY, #_STATE, #_ZIP, #_COUNTRY
also the corresponding booking placeholders are there: #_RESPLASTNAME (= #_RESPNAME), #_RESPFIRSTNAME, ...
* Feature: added placeholders #_EVENTCSVBOOKINGSLINK and #_EVENTCSVBOOKINGSURL
* Feature: added conditional event placeholders #_IS_AUTHOR, #_IS_CONTACTPERSON and #_IS_AUTHOR_OR_CONTACTPERSON
* Feature: allow csv/print/column reorder and column hiding in people, pending bookings, registrations
* Security improvement: the form message could be altered upon booking, so one could be tricked in executing wrongful html code
so a check has been added to make sure that the form message is generated by the system, not a malicious person
* Bugfix: make the location map show again when editing locations
* Improvement: German language updates, thanks to Joerg Knoerchen
* Improvement: autocomplete person info (based on name) when adding new registrations in the backend
= 1.5.28 =
* Bugfix: make 2checkout work again
* Bugfix: fix event scopes today--this_week and today--this_week_plus_one
= 1.5.27 =
* Bugfix: make #_EDITLOCATIONLINK and #_EDITLOCATIONURL actually work ...
= 1.5.26 =
* Feature: added location placeholders #_EDITLOCATIONLINK and #_EDITLOCATIONURL
* Feature: added generic "eme html header" and "eme html footer" settings, so you can add javascript in there if wanted without needing to change your theme
* Bugfix: the 'no events message' was not always being shown
* Bugfix: fix the double headers-options in EME settings (tab 'Other')
* Bugfix: datapicker was not being added in the front end (for the monthly filter)
* Bugfix: load google js via https when needed
* Improvement: the smtp port setting should not be shown if smtp is not used for sending mails
= 1.5.25 =
* Feature: added the possibility to add a Bcc address to all outgoing mails
* Bugfix: Mollie form was not being displayed
= 1.5.24 =
* Feature: implement a second extra charge option for payment gateways (so you can use a percentage and a fixed amount together)
* Feature: add Mollie payment gateway
* Feature: add event placeholder #_MYLOCATIONATT{xx} (see doc)
* Feature: per payment gateway, you can now customize the button label and the text above/below the button. You can use #_EXTRACHARGE and #_CURRENCY as placeholders, multilanguage ready too. Also, the button can be an image if wanted.
* Improvement: prevent double click on form submit
* Improvement: German language updates, thanks to Joerg Knoerchen
* Bugfix: the setting "Default location list format footer" was overwriting
the format header, not footer
* Bugfix: small template fix when listing the bookings per person
* Bugfix: eme_mybookings was only replacing 'event' level placeholders once for all bookings
* Removed old Google Checkout
= 1.5.23 =
* Bugfix: make client clock checking work again for the calendar
* Improvement: optimize the inclusion of javascript files the way wordpress likes it most
= 1.5.22 =
* Bugfix: another function rename that came back to haunt me is fixed
= 1.5.21 =
* Bugfix: make #_BOOKINGS work again (typo fix)
= 1.5.20 =
* Feature: added shortcode eme_mybookings with as optional arguments a
template_id for header, content and footer, and an option to show future or all bookings
[eme_mybookings template_id=3 template_id_header=7 template_id_footer=9 future=0]
[eme_mybookings template_id=3 future=1]
Will show all bookings for the logged in user, based on the layout given by the templates or by the generic booking list format
Also added booking placeholders #_CANCEL_LINK and #_CANCEL_URL, so you can create a link to cancel 1 specific booking too (for future events only)
Also: the list of future bookings made is now in the user's profile, with an cancel link
* Feature: you can now also change the text above/below the payment buttons for a multi-booking form
* Feature: added filters eme_eval_booking_form_post_filter and eme_eval_multibooking_form_post_filter, which happen just after the POST of the booking form
(1 arg: $event for eme_eval_booking_form_post_filter, or $events of eme_eval_multibooking_form_post_filter; containing the event(s) details that are being booked for). The filter eme_eval_booking_form_post_filter differs from eme_eval_booking_form_filter in this sense that this filter happens immediately after the POST, while eme_eval_booking_form_filter happens after the booker has been created already (which is a bit stupid).
* Feature: added option no_events_message to the shortcode eme_events, so you can adjust the text when there're no events per shortcode usage if wanted
* Feature: the CSV separator can now be changed in the 'Other' section of the EME settings
* Bugfix: sometimes when multiple maps were shown (and dependant on the OS used), even multiple calls to microtime() return the same value
so as a result some javascript variables had the same name and thus the maps might show the same address
This is now fixed by adding a rand() call to the variable names
* Bugfix: required formfields that were defined as dropdown were not allowed to post "0" as a return value for required fields
* Bugfix: fix some firstdata issues, thanks to ecoyork
* Bugfix: when creating recurrent events, the last day was not taken into account
* Bugfix: show correct number of days in months in the calendar
* Change: renamed function eme_event_category_url to eme_category_url
* Change: removed #_IS_MULTIBOOKING placeholder, was not working correctly
* Improvement: when using custom fields in a form, FIELD{03} and FIELD{3} (thus leading zero's) are now supported. This was already working ok for storing the values, but not for checking the required field values
* Improvement: when clicking on a calendar day in the small calendar and there's only one event where the external url is set, we now redirect to that url
* Improvement: #_PHONE and #_COMMENT can now also be used in header/footer parts in a multibooking form
* Improvement: German language updates, thanks to Joerg Knoerchen
* Improvement: Dutch language updates, thanks to Herman Boswijk
= 1.5.19 =
* Feature: rsvp end date/time restriction can now be negative, so you can say "Allow RSVP until -2 days -1 hours before the event starts, indicating the rsvp can go on for 2 days and 1 hour AFTER the event has started. The rsvp end can never go beyond the event end date itself of course.
* Feature: new scope for events: 'ongoing': only shows ongoing events, for this we try to use the date and time, but it might be incorrect since there's no user timezone info
* Feature: basic support for qtranslate-X (not fully functional yet, awaiting reply from the qtranslate-x authors)
* Feature: added placeholders #_APPROVEDSPACES and #_APPROVEDSPACES{xx} (see the doc)
* Feature: added option eme_register_empty_seats to the shortcode eme_add_multibooking_form: by default it is 0, but if you want to register 0-seats too, set this to 1
* Feature: an event can now also be designated to take attendances only for bookings, a corresponding conditional tag #_IS_ATTENDANCE has been created as well so you can change messages shown or emails sent
* Bugfix: the required fields were not being checked in the backend, so browsers not supporting the html5-required tag could input empty custom field info
* Bugfix: take booking price=0 into account for events that still have a payment gateway configured
* Bugfix: make simple event paging work again
* Improvement: German language updates, thanks to Joerg Knoerchen
= 1.5.18 =
* Feature: added action eme_delete_recurrence_action
* Feature: allow custom fields also in the header/footer for multi-booking format templates, but use with care: will only work correctly for 'identical' events (events with the same custom fields)
* Feature: support polylang, but only if the setting 'The language is set from content' is choosen
* Feature: added filter eme_events_format_prefilter, a initial filter for the events format, in case people want to change anything before the placeholders get replaced. Has 2 arguments: $format and $event
* Feature: added placeholder #_LOCALE, returning the currently chosen locale. Can be used in multilanguage setups, so you can change content of anything inside an event, location or form based on the locale active at that time (if no language tags are provided by the language plugin you're using)
* Improvement: support custom translations files in wp-content/languages/ (WP_LANG_DIR setting), so changed translation files are not overwritten when updating EME
* Bugfix: #_RSVPEND was incorrect
* Bugfix: if the period was "daily" in the list widget and 2 events were on the same day but a different month, the new month info wasn't shown, making it look as the second event happened in the same month as the first
* Bugfix: translation url fixes
* Bugfix: recurrence defined as "start day" was not working ok
* Code change: small code change to make multi-bookings more wordpress 404-proof
= 1.5.17 =
* Bugfix: #_RSVPEND was incorrect
= 1.5.16 =
* Improvement: each category now also has a SEO slug (albeit not editable yet)
* Incompatibility: the function eme_event_category_url now takes the whole category array as argument (as for events and locations)
* Incompatibility: the function eme_get_event_categories now returns an assoc array of categories, the old behaviour is renamed to a new function eme_get_event_category_names
* Bugfix: make sure the booking cancel form work again
= 1.5.15 =
* Improvement: allow username/email to be changed when doing a new registration via the backend and WP membership is required for an event
* Bugfix: the new filters eme_rsvp_email_body_text_filter and eme_rsvp_email_body_html_filter were not taken into account (missing underscore)
* Bugfix: the end date/time placeholder #@[a-z] were being replaced correctly, but the '@' remained too
= 1.5.14 =
* Bugfix: make sure initial date for new events and recurrences is the current date, not 1970 ...
= 1.5.13 =
* Bugfix: for events with no defined contact person, I tried to get the admin email but used a multisite function for it (which doesn't seem to be defined if you don't activate multisite)
* Bugfix: fix sending of mail for normal registrations (typo fixes)
= 1.5.12 =
* Bugfix: use php 5.3 notation for arrays, not everybody uses php 5.4 ...
= 1.5.11 =
* Bugfix: not all mails were being sent out correctly
= 1.5.10 =
* Feature: support qtranslate plus, next to qtranslate and mqtranslate
* Feature: added new filters eme_rsvp_email_body_text_filter and eme_rsvp_email_body_html_filter to be able to change the mail body just before it is sent
* Incompatibility: removed the per-user date format settings, was getting too confusing for coding up different formats for backend and frontend date formatting, while the generic WP settings should be used anyway
* Incompatibility: renamed eme_email_filter to eme_email_obfuscate_filter
* Improvement: try to use admin info when no other contact info is present for an event (can happen after using the frontent submit form)
* Bugfix: better use of function strtotime to take Daylight Saving Time into account (not all days have 24 hours)
* Bugfix: there's a bug for the cancel-mails and placeholders due to the fact that I first delete the booking before sending the mail (otherwise the number of free seats in the mail can be wrong), but because of that the placeholders can't be replaced anymore since the booking no longer exists. This has been fixed by getting the booking info before doing anything and handing that info to the function that does the mail sending (and not letting that function get the booking info anymore, since it might already been deleted)
= 1.5.9 =
* Bugfix: the unique nbr for bookings only got generated when online payment was being selected too, now it gets generated if the total booking price >0
= 1.5.8 =
* Feature: added 2 new scopes: relative-Xd--YYYY-MM-DD (end YYYY-MM-DD, start X days before that) and YYYY-MM-DD--relative+Xd (start YYYY-MM-DD, end X days past that)
* Feature: added monthly range select in filter form: use #_FILTER_MONTHRANGE in the filter format and fields=monthrange in the eme_filterform shortcode
* Feature: the shortcode eme_add_multibooking_form now also supports category_id as a parameter, to select all events for a single category
* Doc: documented the template_id option for the shortcode eme_filterform, as the template is preferred before the fields option
* Bugfix: first day of week in the datepicker is a integer, not a string. Putting a string created mangled day headers in the datepicker.
= 1.5.7 =
* Feature: first day of week is now also respected in the datepicker
= 1.5.6 =
* Feature: added 2 new filters to influence CSV output: eme_csv_header_filter
and eme_csv_footer
Both take 1 parameter ($event) and should return an array (representing
columns in the csv output in the header or footer)
Can be used to add extra info at the top or bottom of the CSV output
* Feature: new event placeholder #_RECURRENCE_NBR, returns the sequence number of an event in a recurrence series (first event is 1, second is 2, etc ...)
Also added conditional tags #_IS_FIRST_RECURRENCE and #_IS_LAST_RECURRENCE
* Feature: the RSVP cut-off date/time can now also be done based on the end-date of the event, not just the start-date
* Feature: add a generic option to disable server-side required field checks when submitting a RSVP form
* Improvement: renamed #_RECURRENCEDESC to #_RECURRENCE_DESC for conformity (the old one is still possible)
* Bugfix: the unique number for payments should be calculated based on the payment ID, not the booking ID anymore.
* Bugfix: small html correction in EME admin interface, tab Payments
* Bugfix: fix some 'notcategory' behaviour for the eme_events shortcode
* Bugfix: the optional choosen template got lost when switching months in the full calendar
* Bugfix: the mail for cancellation was sent before the cancellation was done, resulting in wrong number of spaces free/reserved in the cancellation mail
* Bugfix: better 24h-timeformat notation detection
* Bugfix: better value escaping with ESC when using conditional tags
* Bugfix: use correct headers when sending html-mail via wp_mail function
= 1.5.5 =
* Bugfix: featured image for locations wasn't working anymore
* Bugfix: show the map when editing an existing event with a known location
* Bugfix: fix a JS error when looking at the list of events
= 1.5.4 =
* Bugfix: account for the fact that a WP setting might be never changed, and thus just be empty in case of booleans
= 1.5.3 =
* Feature: new hook eme_ipn_action (1 parameter: $booking), executed after successfull IPN
Hint: get the event from the booking id by using this: $event = eme_get_event_by_booking_id($booking['booking_id']);
* Feature: added placeholders #_PENDINGSPACES and #_PENDINGSPACES{xx} (see the doc)
* Improvement: added conditional shortcodes eme_if7 till eme_if15 (some people really want these ...)
* Bugfix: #_PAYMENT_URL was no longer replaced correctly
* Bugfix: First Data payment button was not being generated correctly
= 1.5.2 =
* Bugfix: multiple categories in widgets still contained an error, tested ok now
= 1.5.1 =
* Bugfix: multiple categories in widgets wasn't working
* Bugfix: removing a location wasn't working
= 1.5.0 =
* Incompatible change: due to some changes in the code, 2 CSS id's changed too: no longer using a container id but using a real css class name:
#eme_global_map img becomes .eme_global_map
#eme_locations_list becomes .eme_locations_list
* Feature: added template functionality to the calendar as well (new option template_id to the shortcode eme_calendar, for templating entries in the full calendar)
* Feature: support tls when sending mail via smtp by prepending 'tls://' to the hostname (typically for port 587)
* Feature: new placeholders #_HOURS_TILL_START and #_HOURS_TILL_END
* Feature: new shortcode eme_add_multibooking_form that lets you use either a
comma-seperated list of event id’s or a recurrence id for which you want to do
multiple bookings in one go. It also has a template id for the header, entry
and footer of the form list. More info in the doc.
* Feature: new rsvp placeholder #_MULTIBOOKING_DETAILS_TEMPLATE{xx} (with xx a template id): parses the template for each booking in a multibooking scenario, all regular booking and event placeholders can be used in the template
* Feature: new rsvp placeholder #_MULTIBOOKING_TOTALPRICE (the total price of all bookings in a multibooking scenario)
* Feature: new rsvp placeholder #_MULTIBOOKING_SEATS (the total seats of all bookings in a multibooking scenario)
* Feature: new rsvp placeholder #_IS_MULTIBOOKING (conditional tag you can use in rsvp mails)
* Feature: new event placeholder #_EVENTATT, taking 2 arguments: eventid and attribute key. This allows to get the non-default value for an attribute from another event. E.g, for eventid 3 and attribute "my_att": #_EVENTATT{3}{my_att}
* Feature: added the possibility to define an extra charge when paying via a payment gateway. Also added an extra rsvp placeholder so you can show the extra cost being added per payment gateway: #_CHARGE{google}, #_CHARGE{fdgg}, #_CHARGE{2co}, #_CHARGE{paypal}, #_CHARGE{webmoney}
* Feature: now more than one global map can be shown on the same page
* Feature: added event placeholders #_STARTDATE, #_STARTTIME, #_ENDDATE and #_ENDTIME, resulting in a easy way to get the start/end date and time for the event in the current WP settings format, without needed to use the other possible date/time placeholders
* Feature: 2 new event scopes: ++YYYY-MM-DD (all events starting later than YYYY-MM-DD) and --YYYY-MM-DD (all events ending before YYYY-MM-DD)
* Feature: mail subjects for the contact person can now also be changed in the settings
* Feature: you can now select multiple categories in the widget. Multiple selected categories will be OR'd together (see the events placeholder)
* Feature: added new filter eme_event_preupdate_filter, taking place just before the event is updated in the DB (the update companion of eme_event_preinsert_filter)
* Feature: added a global option to ignore pending users when using the #_ATTENDEES or #_BOOKINGS placeholders.
* Feature: you can now also send mails about a new event to all WP users, or to all WP users that did not yet register
* Improvement: better image selection code for the featured image (since WP doesn't play nice with the 'insert from url', I needed to remove this)
* Improvement: show the compact bookings table only when not editing a recurrence
* Bugfix: eme_locations shortcode wasn't showing anything for option eventful=1
* Bugfix: First Data setting was not being saved when selecting it as payment method for an event
* Bugfix: added FDGG lib (First Data lib, was missing)
* Bugfix: take into account lonely CR's when creating the javascript balloon text
* Bugfix: when updating an event, the end time was not allowed to be equal to the start time
* Bugfix: corrected contact_person as option for eme_rss_link (and documented it)
* Bugfix: the shortcode eme_location used the wrong default format (should be the one specified in the settings called "Default single location page format")
= 1.4.6 =
* Feature: added an option to hide past events (on a day-basis, not hour) in the calendar
* Feature: added an option to hide events (from lists and calendar) which RSVP registration period has already ended
* Feature: added #_FIELDVALUE{xx} to get the formfield value (can be used in the registration form, in #_BOOKINGS and RSVP mails)
* Bugfix: using custom fields and/or html when re-sending mails didn't work as expected
* Improvement: Italian language updates, thanks to Gianluca Granero
* Improvement: Ukranian language updates, thanks to Michael Yunat (michael.yunat@gmail.com, see also http://www.iphostmonitor.com )
* Improvement: updated Italian translation, tx to Antonio Venneri
= 1.4.5 =
* Feature: added placeholders #_EVENTPRINTBOOKINGSLINK and #_EVENTPRINTBOOKINGSURL, showing either a link or just the URL to the printable bookings list, if you have the correct permissions
* Improvement: if people enter field tags for multi-value custom fields, check that the number of tags is the same as the number of values
* Bugfix: empty custom field tags were not correctly handled
* Bugfix: make sure the day-hover title in the calendar no longer contains html
* Bugfix: 24H format placeholders shouldn't return seconds, was never the case but got added in 1.3.0
* Bugfix: for the detection of required fields for the RSVP form, I didn't take into account the fact that you can now use templates for the form so the required field detection failed
= 1.4.4 =
* Feature: added placeholders #_12HSTARTTIME_NOLEADINGZERO and #_12HENDTIME_NOLEADINGZERO
* Feature: added filter eme_eval_booking_filter, doing evaluations before the person is entered in the db. One parameter: $event. And $_POST can be used too of course.
* Feature: added #_BOOKINGPRICEPERSEAT and #_BOOKINGPRICEPERSEAT{xx} rsvp placeholders, to return the end-price per booked seat (either normally or for multiprice for the indicated price category). The filter eme_insert_rsvp_action is taken into account, so the end-price includes anything you do with it (including discounts)
* Feature: subjects of mails being send to bookers is now also customizable and multi-lang ready
* Feature: you can now delete "unused" people (people without bookings, can happen if you delete old events)
* Feature: you can now select a template for mail message and body when sending after-mails, and for many format settings when creating/editing an event
* Feature: added an option to no longer show the RSVP form after a successful booking
* Improvement: a little more polite bad-boy message
* Improvement: renamed an eme option, no big deal
* Improvement: all RSVP prices are now showing as floating point, with 2 digits behind the "."
* Bugfix: removing a person and his booking info left orphaned answers, cleaning those now
* Bugfix: when using the #_PAYMENT_URL in an email, all works ok but a php warning was shown (third variable for a function not initialized). Fixed
* Bugfix: when deleting 1 template, all were deleted.
= 1.4.3 =
* Bugfix: the filter eme_eval_booking_form_filter was called too early, causing the second argument to be empty
* Bugfix: the captcha isn't taken into account when adding a booking via admin backend, but it prevented adding a booking then
= 1.4.2 =
* Bugfix: some undef values fixed
* Bugfix: make the default use the new notation too for captchas (for new installations)
* Bugfix: the frontend submission plugin has been updated to account for new jquery timeentry plugin too
= 1.4.1 =
* Bugfix: fixed a bug with a undefined var, preventing activation of the plugin for new installations
* Bugfix: for plugin deletion, the tables were not deleted for multisite blogs
= 1.4.0 =
* Feature: more consistent notation for placeholders, see https://www.e-dynamics.be/wordpress/?p=51559
* Feature: people page can now do merging of bookings, show all bookings per person and allows person editing
* Feature: RSS feed now shows html (no maps or forms), as does all other parts of wordpress do
* Feature: use language selected at booking time for sending mail concerning the booking or the attendee
* Feature: the cancel registration form can now also be formatted (also per event if wanted)
* Feature: locations can now also be duplicated
* Feature: added field tags to form fields, these are shown to the booker and are (m)qtranslate-compatible
* Bugfix: don't show the captcha when showing the booking form in the admin backend, it was ignored but still it's best not to confuse people
* Bugfix: if the current day had an event, the calendar didn't show the eventfull class
* Bugfix: don't match "[...]" for location placeholders, solved more generically by the new placeholders notation feature.
* Bugfix: show weekday initials only again for small calendar format
* Bugfix: the wordpress nonce was being outputted too much times. Although the fields are hidden, it's not good to do so.
* Bugfix: when inserting or updating a booking, the action hook was executed before the answers for extra fields were stored in the db
* Improvement: the events database now gets updated upon first site visit (admin or not), so no more deactivate/reactivate action needed
* Improvement: when the events page setting changes, the SEO rules are flushed, so no more deactivate/reactivate action needed
* Improvement: code dedup for locations page
* Improvement: show a warning if a custom field requires a value but it was left empty
= 1.3.4 =
* Feature: when doing the "quick" deny for registrations while editing an event, no mails were being sent. There's now a general option in the Mail section that allows you to change that.
* Bugfix: make #_ADDBOOKINGFORM_IF_NOT_REGISTERED and #_REMOVEBOOKINGFORM_IF_REGISTERED work again
* Bugfix: added a CSS to the datatables when showing events, so the footer div following it is moved when the table grows or shrinks
* Bugfix: adding shortcodes to event details resulted in bad headers when using the setting "extra html headers" with placeholders like #_EXCERPT, and also gave problems for conditional tags
= 1.3.3 =
* Feature: you can now send html-mails for RSVP messages if wanted
* Bugfix: make the booking removal work again when in the event edit-window
* Bugfix: make start of month correct again in new calendar code
= 1.3.2 =
* Bugfix: remove some abiguous placeholder matching and correct the newly introduced image dimensions
= 1.3.1 =
* Improvement: add width and height to thumb images, just in case the resized versions don't exist
* Bugfix: make #_LOCATIONNAME work again
* Bugfix: calendar days with a single digit didn't show the events
* Bugfix: the booking recorded format may contain html, but was being sanitized
= 1.3.0 =
* Feature: add/edit booking is now all possible from the backend, and when editing all custom fields show as well
* Feature: added template functionality to the filter form as well (new option template_id to the shortcode eme_filterform)
* Feature: added option 'show_recurrent_events_once' to the shortcode eme_events to show recurrent events only once. Remember that people will only see a normal event unless you add recurrent info to it using the placeholder #_RECURRENCEDESC
* Feature: added placeholder #_EVENTCATEGORYIDS, returning the different category id's for an event. Not really useful, unless you use the shortcode [eme_events category=#_EVENTCATEGORYIDS] inside a single event format, resulting in a list of events in the same categories as the one being viewed.
* Feature: use jquery datatables in the backend for event and bookings, makes it easier to search, sort, ...
* Improvement: doing a javascript post after a booking add/delete to prevent double actions when refreshing the page, also avoids using global variables
* Improvement: German language updates, thanks to Wolfgang Löster
* Improvement: extra antispam measurements
* Behaviour change: make it possible for start and end date+time to be exactly the same
* Bugfix: cleanup function shouldn't change recurrences with specific days, since those "end date" is 0
* Major code rewrite in progress
= 1.2.9 =
* Feature: added the possibility to define a return page for payment succes or failure, with event and/or booking placeholders
* Feature: added placeholder #_RSVPEND that will show the date+time end of the registration period
* Feature: added conditional placeholder #_IS_RSVP_ENDED, returns 1 if the registration period has passed
* Feature: retain all filled in values if RSVP form validation proved wrong
* Improvement: show an admin warning if the special events page is not ok
* Improvement: German and Italian language updates, thanks to Stephan Oberarzbacher
* Bugfix: make location attributes actually work
* Bugfix: also deal with RESPNAME, RESPEMAIL, ... in the registration form format
* Bugfix: the payment page was not shown for the placeholder #_ADDBOOKINGFORM_IF_NOT_REGISTERED after booking was done
* Bugfix: fix double inclusion of eme_settings.php in uninstall.php, so uninstall works now
= 1.2.8 =
* Feature: added new filter eme_categories_filter, executed when searching for the categories (e.g. when creating an event). With this, you can e.g. limit the categories shown when creating an event or location or ... . Has one parameter: array of categories.
* Bugfix: make rsvp form work again (copy/paste error fix)
= 1.2.7 =
* Bugfix: let shortcodes in booking and attendees lists be replaced at the end, so conditionals can be used there as well.
= 1.2.6 =
* Feature: added width/height as optional parameters to shortcode eme_location_map
* Feature: added radiobox, 'radiobox vertical', 'checkbox' and 'checkbox vertical' as new formfield types
* Feature: added attributes for locations as well, and all templates are also searched for attribute definitions
* Feature: event notes can now contain all event placeholders as well, when activating the new option called 'Enable placeholders in event notes'. This
changes old behavior, so by default it is disabled
* Improvement: make IS_REGISTERED work for all logged in users, not just when requiring WP membership for rsvp
* Bugfix: fix layout for location list (the default format setting was being ignored)
* Bugfix: some template header/footer fixes for attendee and booking lists
* Bugfix: make [eme_location] work again
= 1.2.5 =
* Feature: the payment form showing the buttons can now be customized in the EME settings, Payment section. The same placeholders as for bookings can be used.
You can format the section above and below the payment buttons and everything is surrounded by CSS tags as well.
* Feature: max and min amount of seats to book for one booking can now also be used for multiprice events (multi-compatible)
* Feature: added option template_id to shortcode eme_single_event
* Feature: added shortcode eme_location, with location id as argument, and optional a template_id for content:
[eme_location id=1 template_id=3]
* Feature: added shortcodes eme_bookings and eme_attendees, with event id as
argument, and optional a template_id for header, content and footer
[eme_attendees id=1 template_id=3 template_id_header=7 template_id_footer=9]
* Feature: added placeholder #_IS_MULTIDAY. Returns 1 if the event start date is different from the end date, 0 otherwise.
* Feature: added placeholder #_BOOKINGID for rsvp mails and booking info, in case you want to share the booking id
* Feature: added new filter eme_add_currencies, so you can add extra currencies to the list. Be aware that not all payment portals support all currencies.
Example: to add Ghanaian Cedi (GHS) to the list of currencies, add the following to your theme's functions.php:
function my_eme_add_currencies($currencies){
$currencies['GHS'] = 'Ghanaian Cedi';
return $currencies;
}
add_filter('eme_add_currencies','my_eme_add_currencies');
* Improvement: unified shortcode names:
events_calendar ==> eme_calendar
events_list ==> eme_events
display_single_event ==> eme_event
events_page ==> eme_events_page
events_rss_link ==> eme_rss_link
events_ical_link ==> eme_ical_link
events_countdown ==> eme_countdown
events_filterform ==> eme_filterform
events_if ==> eme_if
events_if2 ==> eme_if2
events_if3 ==> eme_if3
events_if4 ==> eme_if4
events_if5 ==> eme_if5
events_if6 ==> eme_if6
locations_map ==> eme_locations_map
display_single_location ==> eme_location_map
events_locations ==> eme_locations
events_add_booking_form ==> eme_add_booking_form
events_delete_booking_form ==> eme_delete_booking_form
The old names are still valid, but will disappear from the doc
* Bugfix: make sure that relative protocol urls (no http: or https:) are used for google api's in the admin backend
* Bugfix: in the event edit window, the ajax method for removing rsvp's wasn't working anymore
* Bugfix: some plugins add the lang info to the home_url, remove it so we don't get into trouble or add it twice
* Bugfix: booking placeholders are also possible for the 'booking ok' message
* Bugfix: only show location info in the ical feed if there's actually a location
* Bugfix: ical fix for multiday allday events (they ended a day too soon)
* Bugfix: use str_replace for replacing placeholders, to avoid issues with replacement strings containing $13 (preg_replace interprets those as backreferences)
* Bugfix: the booking price is now shown correctly as floating point, not just integer
* Bugfix: correct the placeholder replacement sequence for attendees and bookings
* Bugfix: #ESC_NOTES was not working
= 1.2.4 =
* Bugfix: prevent double header/footer appearance in event lists
= 1.2.3 =
* Bugfix: prevent double header/footer appearance in event lists
= 1.2.2 =
* Fixed a small bug I introduced in 1.2.1 + better detection for sending mail for auto-approval
= 1.2.1 =
* Feature: added conditional tags #_IS_MULTISEAT and #_IS_ALLDAY
* Feature: add template_id_header and template_id_footer for events_list and
events_locations shortcodes, so you can also use templates for the headers and
footers
* Improvement: make #_IS_REGISTERED also work even when the option "Require WP membership for registration" is not checked, of course you still need to be logged in as a WP user for it to work.
* Bugfix: the template format field was too small in the database, limiting the number of characters
* Bugfix: booking list should show a single number for booked seats for multiseat events when asked for
* Bugfix: send approval mail also for auto-approve events upon payment
* Bugfix: events_locations shortcode no longer listed all locations (typo in 1.2.0 caused this)
= 1.2.0 =
* Feature: multi-seat events are now possible: the same as multiprice events, but now you can limit the number of seats per price category if wanted
* Feature: format templates can now be created and used in the events_list and events_locations shortcodes as follows:
[events_list template_id=3]
This renders the use of the 'format' parameter obsolete and is more powerfull as it allows conditional tags inside the format template.
* Feature: recurrence is now also possible on specific days, not just a pattern
* Feature: maptype for google maps can be defined in the settings for global and individual maps (Roadmap, Satellite, Hybrid or Terrain)
* Feature: added event placeholders #_TOTALSEATSxx, #_AVAILABLESEATSxx and #_BOOKEDSEATSxx to show seat info per seat category
* Improvement: remove some unneeded caching in the EME admin section.
* Improvement: Dutch language update, thanks to Guido
* Improvement: show which required fields are missing when filling out a rsvp form
* Bugfix: better all-day indication in ical
* Bugfix: make #_TOTALPRICE and #_TOTALPRICExx also work for "Booking mails" reminders
* Bugfix: jump to RSVP confirmation message upon successfull registration
* Bugfix: better matching rules for #_CATEGORIES with include/exclude categories
* Bugfix: all day event fix
= 1.1.6 =
* Improvement: #_MAP and #_DIRECTIONS for an event are only replaced/shown if the event is linked to a location
* Bugfix: forgot to escape the forward slash, so some placeholders might have resulted in errors
= 1.1.5 =
* Bugfix: better regex replacement for replacing placeholders
= 1.1.4 =
* Feature: added 'First Data Global Gateway Connect 2.0' payment gateway implementation
* Feature: new option: consider pending registrations as available seats for new bookings (meaning: ignore pending registrations for new rsvp's)
* Feature: implemented feature request "Automatic Approval after Payment is received", optional per event
* Feature: all day events can now be indicated as such
* Feature: placeholder #_TOTALPRICEx added for mail formats (with x being a number: gives the total price to pay per price for multiprice events: the amount of spaces booked times the specific price of the multiprice event)
* Feature: added a facebook import function when creating a new event. Thanks to Tom Chubb and Jashwant Singh Chaudhary.
* Feature: some themes result in weird behaviour because they use the_content filters, resulting in loops or unwanted content replacement. Added a setting against possible loop protection.
* Feature: RSS pubdate can now also be the event start time
* Feature: separate format for ICAL entries
* Feature: zoom factor can be changed for the global or individual maps
* Feature: added new filter eme_event_preinsert_filter, taking place just before the event is inserted in the DB
* Feature: added 2 placeholder options to #_CATEGORIES and #_LINKEDCATEGORIES to include/exclude categories. To be used like this:
#_CATEGORIES[1,3][] ==> this will get all categories for the event, but only show cat 1 or 3
#_CATEGORIES[][1,3] ==> this will get all categories for the event, but not show cat 1 or 3
* Feature: added option to define image size for placeholders #_EVENTIMAGETHUMB and #_EVENTIMAGETHUMBURL, to be used as:
#_EVENTIMAGETHUMB[MyCustomSize] or #_EVENTIMAGETHUMBURL[MyCustomSize], where "MyCustomSize" is a custom size either known to wordpress or defined in your
functions.php via the function add_image_size()
* Feature: the events_if shortcode now also supports "le" (lower than or equal to) and "ge" (greater than or equal to) comparisons
* Feature: new filter eme_eval_booking_form_filter, so you can create your own eval rules for a booking
* Feature: make #_SPACESxx also work in RSVP info, next to #_RESPSPACES
* Feature: new hook eme_update_rsvp_action, executed when updating booking info
* Bugfix: correct escaping of characters for ical format
* Bugfix: better regex replacement for replacing placeholders
* Bugfix: make sure URL's created by placeholders aren't touched by wordpress anymore
* Bugfix: when specifying a location by latitude and longitude, town and address are not needed
* Bugfix: fix a JS error on some admin pages
* Bugfix: the multiprice array was not correctly initialized, causing troubles if you used #_SEATSx form fields that were out of order
* Improvement: shortcodes [add_booking_form] and [delete_booking_form] now properly return the generated html instead of echoing it, and also return empty if rsvp not active
* Improvement: events_list header/footer can now also contain shortcodes, useful for conditional tags. Idem for locations.
* Improvement: json is limited in size we only return what's needed in the javascript
* Improvement: booking date/time info is now visible in the backend registration pages
* Improvement: add image thumb url to the ical feed if present
* Improvement: the day difference function now returns a negative value as well, the countdown and DAYS_TILL* placeholders can take advantage of this
* Improvement: use the WP time setting for new/edit events as well when trying to detect 12 or 24 hour notation
* Code improvement: added event_properties to stop needing to change the event database table all the time. Ideal for new event properties.
= 1.1.3 =
* Feature: added #_HTML5_PHONE and #_HTML5_EMAIL to indicate you want the html5 input type field for phone and/or email
So you can use e.g. #_HTML5_PHONE or #REQ_HTML5_PHONE and the result will be: the html5 tel-type field for phone, and required if #REQ used.
Other html5 input types will be added.
* Feature: events_if4, events_if5 and events_if6 added
* Feature: support wp_mail as a method of sending mail, allowing other plugins to work on the mail as well via the existing wp_mail hooks and filters
* Feature: added placeholder #_LINKEDCATEGORIES: creates a link per category for the corresponding event, linking to a list of future events for that category
* Feature: new option 'title' for the shortcode events_rss_link, so the title can be given a specific name
* Feature: you can now exclude categories in the widget list and calendar as well, and in the regular shortcode events_calendar also with the new option 'notcategory'
* Feature: events_ical_link shortcode now also supports the options scope (default: future), author, contact_person and notcategory
* Feature: added placeholder #_EVENTIMAGETHUMB, to show a thumbnail of a featured image, so you can e.g. show a thumbnail of a featured image instead of the whole image. The size can be choosen in the EME settings (panel 'Other'), by default it is 'thumbnail' size.
* Feature: added placeholder #_EVENTIMAGETHUMBURL, to get just the url to the thumbnail. Also added #_LOCATIONIMAGETHUMB and #_LOCATIONIMAGETHUMBURL
* Improvement: mail sending is by default enabled for new installations
* Improvement: upon auto-update, the DB version of EME is now also checked and a DB update is done if needed
* Improvement: the 'No events' message now also has a div surrounding it, with div-id 'events-no-events'
* Improvement: extra plugin events-made-easy-frontend-submit now also uses AM/PM or 24 hours notation based on site preferences
* Bugfix: html encapsulated in RSS feed was needlessly escaped inside a CDATA section
* Bugfix: multiprice bookings were reset to "1" if the first booking was 0 upon approval
* Bugfix: default selected town was always the first town when using [events_filterform]
* Bugfix: make sure the correct scheme is used for admin_url
* Bugfix: the generated ical link didn't take the author or contact person into account
* Bugfix: the calendar links now take into account all options for contact person, categories etc ...
* Bugfix: fix class warnings in extra plugin events-made-easy-frontend-submit
* Bugfix: the featured image for locations was not retained after you re-edit and save the location without changing the image
* Bugfix: url-encoded strings in the format argument of the [events_list] shortcode were not being interpreted
* Bugfix: remove use of deprecated wordpress functions get_userdatabylogin and wpdb::escape
= 1.1.2 =
* Feature: new placeholder #_RESPSPACESxx for bookings, to indicate the bookings per price for multiprice events
* Feature: new placeholders #_BOOKINGCREATIONTIME and #_BOOKINGMODIFTIME for bookings list
* Feature: ability to use attributes and conditional tags in registration form added
* Feature: added conditional tag #_IS_MULTIPRICE
* Feature: location_id argument in shortcodes now supports 'none' to indicate no location
* Feature: query string eme_town (+SEO) has been added, so only events for a specific town are shown. Not really sure how I'll use it, but it's there ...
* Improvement: updated Italian translation, tx to Antonio Venneri
* Improvement: updated German translation, tx to Daniel Rohde-Kage
* Improvement: every column in the print preview for bookings now has a class, so you can CSS style it
* Change: placeholders #_RESPSPACES and #_RESPCOMMENT now preferred for bookings
* Bugfix: the 'Booking recorded html Format' setting for a single event was not being saved
* Bugfix: the div for a required field should have a class, not an id
* Bugfix: don't show a link to a month without events (occured if on the last day of the month an event was booked)
* Bugfix: better sanitize RSS feed by using CDATA
= 1.1.1 =
* Feature: new placeholder #_PAYMENT_URL for bookings, in case you want people to be able to pay later on, or for reminders
* Feature: you can now select paid/unpaid and pending status when sending mails, good for sending reminders for payments etc ...
* Feature: you can now specify the latitude/longitude of a location if wanted, overriding the detected values
* Feature: you can now specify the cut-off hours for RSVP as well
* Bugfix: make qtranslate work again (one-liner fix)
* Bugfix: make ical work correctly with server timezone included
* Bugfix: wpdb prepare doesn't use correct backticks for column names, resulting in multisite issues (I tried to use the correct prepare syntax in 1.1.0)
* Improvement: only include the datepicker locale if it exist (like in 1.0.18), and take into account 2-letter locales again if the full locale doesn't exist
= 1.1.0 =
* Feature: multiprice events are now possible (see wordpress site for explanation: price and booked seats need to be seperated by "||"). Also, for multiprice events, the min number of seats to book is always 0
* Feature: you can now send mails to all attendees for an event in the admin backend. This functionality has it's own access right settings as well.
* Feature: revamped the edit/add event interface: you can now use wordpress 'screen options' in the admin page to decide which parts to show and in what sequence
* Feature: added the possibility to use a print stylesheet called eme_print.css in your theme style dir
* Feature: shortcode events_ical_link now has 3 extra options: scope, author and contact_person
* Feature: the creation and modif date can now be shown for the bookings list (when using #_BOOKINGS) via 2 new placeholders: #_BOOKINGCREATIONDATE and #_BOOKINGMODIFDATE
* Improvement: the price for each event is stored per booking now, so if the price changes afterwards it doesn't affect the booking in question
* Improvement: ical format includes the timezone now
* Improvement: #ESC_ATT and #URL_ATT are now also recognized when looking for attributes definitions
* Improvement: the CSV export didn't show the paid status
* Improvement: when editing a single event, delete buttons to edit the event and/or recurrence are now there (and asked for confirmation)
* Improvement: when trying to view a non-existing location, now also a 404 is returned (as for events)
* Improvement: in the backend, you can now choose wether or not mails are being sent when approving or changing registrations
* Bugfix: for recurrent events, the wanted date/time format was not being taken into account when being shown in the admin interface or when using #_RECURRENTDESC
* Bugfix: #_EVENTDETAILS has never been working (#_NOTES and #_DETAILS did work ok)
* Bugfix: according to http://codex.wordpress.org/Plugin_API/Action_Reference/wp_print_styles: wp_print_styles should not be used to enqueue styles or scripts on the front page. Use wp_enqueue_scripts instead.
* Bugfix: when converting a single event into a recurrence, the featured image was not kept
* Bugfix: English has 24-hour format, plus a jquery datepicker correction
= 1.0.18 =
* Improvement: the booking list format (used with #_BOOKINGS) now also supports #ESC_* for placeholders, so you can safely use shortcodes (like conditional tags) inside it
* Bugfix: make drop down postbox expanding work again
= 1.0.17 =
* Feature: added support for paypal encrypted button
* Bugfix: url_decode should be urldecode
* Bugfix: remove remaining occurences of eme_upload_event_picture()
= 1.0.16 =
* Feature: for events and locations, the featured image now uses the WP media gallery
* Feature: Webmoney support added
* Feature: rss and ical shortcodes now support a location id, to limit events shown to a specific location
* Feature: a little extra for more WPML support (added, but not guaranteed)
* Feature: added #_IS_REGISTERED conditional tag, returns 1 if WP user has already registered for the event, 0 otherwise
* Improvement: you can now activate SMTP debugging if you have issues when sending mail via SMTP
* Improvement: the booking format now also can use #_PAYED to show the paid status
* Improvement: ability to set default currency, price and "Require approval for registration"
* Improvement: the "Allow RSVP until" can now also be given a default value
* Improvement: the week/month/year scopes in [events_filterform] now show the text 'select week/month/year' by default.
* Bugfix: when creating/editing an event, location creation is now also being checked for access rights
= 1.0.15 =
* Improvement: more options for shortcodes that were booleans with 0 or 1 have now true/false support too
* Bugfix: the page title for single location pages was not being set correctly
= 1.0.14 =
* Feature: new parameters "show_events" (default:0) and "show_locations" (default:1) for shortcode [locations_map], allows to show a list of events corresponding to the locations on the map
* Improvement: the "Required field" text has a div-id surrounding it now, so you can change the look of it as wanted using CSS
* Improvement: removed deprecated wp_tiny_mce as editor and solved some php warnings (and moved the minimum required version up to 3.3)
* Improvement: a number of options for shortcodes were booleans with 0 or 1, now we added true/false support too
= 1.0.13 =
* Feature: integrated 2Checkout. Instant Notification is also possible, but you have to specify the url in your 2Checkout account. The value for this will be shown in the EME settings.
* Feature: integrated Google Checkout, but no automatic payment handling since that requires client certificates. And for Google Checkout to work, the price must be in dollars or pounds (identical to your google wallet account, otherwise it will fail)
* Feature/Bugfix: the paypal class didn't really support the business ID, should work now
* Feature: added event scope "today--this_week_plus_one" so you can show the beginning of next week as well
* Improvement: revamped the admin settings interface, it was getting too much for one page so I switched to tabs
* Improvement: don't depend on wp-admin/ajax.php anymore, so as to better support https
* Improvement: use google maps https if the page is https as well
= 1.0.12 =
* Bugfix: the participant info was not correctly replaced in mails sent
* Bugfix: make paypal work via https and HTTP/1.1
* Bugfix: the CSS classes in the calendar indicating the weekday were wrong for days in the previous/next month
= 1.0.11 =
* Bugfix release: the list of participants was not shown anymore
= 1.0.10 =
* Feature: added #_BOOKINGS placeholder (+ customizable bookings format)
* Feature: added #_FIELNAMExx to get the formfield name (can be used in the registration form, in #_BOOKINGS and RSVP mails)
* Feature: added shortcodes [events_add_booking_form] and [events_delete_booking_form] (with 'id' as parameter: the id of the event)
This way you can have normal pages for events (using the url option), but still show the booking form as well
* Bugfix: make qtranslate work again
* Bugfix: the CSV export and print of custom fields was not being alligned properly
* Bugfix: allow empty contact phone
* Extra: updated Dutch translation, thanks to Peter Goldstein
= 1.0.9 =
* Feature: added #_DAYS_TILL_START and #_DAYS_TILL_END placeholders
* Bugfix: the full calendar was showing month 0 of the year 0 if the option "use client clock" was used
* Extra: when denying registrations, confirmation is now being asked
* Extra: updated Dutch translation, thanks to Peter Goldstein
* Extra: some warning for the capability 'List events'
= 1.0.8 =
* Bugfix: apparently some WP update changed the capability checking worked, so the code to get all caps has been updated
* Bugfix: custom (per event) event_registration_pending_email_body was not working
* Bugfix: fix a WP php notice for wp_enqueue_script: it should be called from within other wp_* calls, not directly. So I added it to the callback for add_action('wp_enqueue_scripts')
* Bugfix: fix typo with acl for "Edit events"
* Extra: the admin backend will now use a new date_format setting in the user's profile (if present) for all dates shown
= 1.0.7 =
* Feature: placeholder #_EDITEVENTURL added, gives you just the link to the admin page for editing the event
* Feature: added a setting to wether or not show the event creation/modification date as PubDate info in the in the events RSS feed
* Bugfix: calendar navigation now also respects the qtranslate language if permalinks are enabled
* Bugfix: filter forms now also respects the qtranslate language
* Bugfix: if phone or comment was defined as a required field, the booking was not working
* Bugfix: fix wrong call to event_rul(), must be eme_event_url(), bug added in changeset 649391
* Bugfix: [events_countdown] shortcode was not working as expected
* Extra: Added error if image upload fails
= 1.0.6 =
* Feature: extra registration field info can now also be mailed, using #_FIELDS as a placeholder in mail formats
* Feature: event SEO links now also take into account the qtranslate language if present
* Feature: added extra capability to just list events, so people with no edit cap can still do e.g. CSV exports. All your event admins would need this cap as well, otherwise the menu will not show.
* Feature: preview added for draft events
* Bugfix: the results for custom fields were not shown in the printable overview or the CSV export
* Bugfix: the table for answers had a wrong index (primary), which resulted in only the first custom field to be stored in it
* Extra: added Danish translation, thanks to Torben Bendixen
* Extra: updated Dutch translation, thanks to Peter Goldstein
= 1.0.5 =
* Feature: forms are customizable now, although extra defined fields can be viewed/exported but not changed in the admin backend (and is qtranslate compatible)
* Feature: contact person mails for cancellations and approvals are now customizable
* Feature: submit button for registration form is now qtranslate compatible
* Bugfix: make html title work correctly for locations too
* Bugfix: the html anchor was not always being shown for RSVP
* Bugfix: email body and subject can now contain qtranslate calls as well (code got removed when changing the plugin name)
* Bugfix: corrected and added some sql prepare statements
* Extra: give all RSVP forms a name and a html id
* Extra: give full day events a CSS class in the calendar (eme-calendar-day-event)
* Extra: some RSS readers don't like it when an empty feed without items is returned, so we add a dummy item then
= 1.0.4 =
* Bugfix: again better the_content filter recursion detection, so it should now work ok with Arras theme, Pagelines, TwentyEleven and hopefully all other ones.
* Bugfix: this_year and paging was not working ok due to a php bug
= 1.0.3 =
* Bugfix: scope=this_year was not working
* Bugfix: better the_content filter recursion detection, so it should now work ok with Arras theme and using page-include plugins inside event content
* Bugfix: removing a booking in the event edit window via ajax was no longer working
* Bugfix: #_EVENTIMAGEURL was not being replaced correctly
* Bugfix: the available number of seats can be <0 if more than one booking happened at the same time and people fill in things slowly ...
* Bugfix: events spanning multiple months were not correctly shown in the calendar or list
* Bugfix: some 'this_week' scopes did not take the start day of the week preference into account
* Bugfix: RSS needs "" and not "" as valid tag
* Feature: the html title of a single event or location can now also be formatted
* Feature: new conditional tag #_IS_ONGOING_EVENT
* Extra: Romanian language added, thanks to Web Geek Science (http://webhostinggeeks.com/)
= 1.0.2 =
* Feature: placeholders #_TOTALSPACES and #_TOTALSEATS added (gives the total amount of spaces for an event)
* Feature: placeholder #_TOTALPRICE added for mail formats (gives the total price to pay: the amount of spaces booked times the price of the event)
* Feature: placeholder #_RECURRENCEDESC added, shows the recurrence info for an event like it does in the admin backend
* Feature: events can now also have a featured image, like locations, resulting also in 2 new placeholders: #_EVENTIMAGE and #_EVENTIMAGEURL
* Feature: location list formatting is now possible in the settings, when using the shortcode [events_locations], as it was already for [events_list]
* Feature: each day in the calendar now also has the short day name as an extra class
* Feature: list widget now also can choose to show ongoing events or not
* Feature: made the message 'Your booking has been recorded' formattable
* Feature: scope=Nd--Md, to get the events from day N in the past/future till day M in the past/future (eg. scope=-3d--2d , scope=0d--3d)
* Feature: initial state for a new event can now be set in the settings page
* Feature: new access right setting for publish events
* Extra: included the plugin events-made-easy-frontend-submit, see the dir extras/plugins/events-made-easy-frontend-submit
* Extra: if the end date is empty, it will always be the start date now. If you want to check if they are equal, use conditional tags
* Extra: French translation updated, thanks to Philippe Lambotte
* Bugfix: typo fix in eme_events.php influencing location showing
* Bugfix: typo fix in eme_events.php for a jquery statement
* Bugfix: when adding a registration via the backend and approval was required, the registered person would get a pending message although it was already approved
* Bugfix: #_USER_RESERVEDSPACES wasn't working correctly for the attendees format setting
* Bugfix: location title was not qtranslate-ready in the [events_location] shortcode
* Bugfix: better retreiving of new booker info, should resolve the booker being empty in some cases
* Bugfix: datepicker images were not in svn
* Bugfix: list widget was behaving incorrectly for the author option
* Bugfix: when clicking on calendar day and there's only 1 event, only show the event content directly if the event doesn't point to an external url
* Bugfix: the booking form was still shown for fully booked events if the max number of seats to book was not defined
* Bugfix: typo fix in the admin edit location pages
* Bugfix: #_PLAIN_CONTACTEMAIL was being replaced by empty string in mails
= 1.0.1 =
* Bugfix: fix replacement in menu for page title by events title when viewing a single event
* Bugfix: fixed a closing-div tag, preventing the rich html-editor to appear sometimes for locations
= 1.0.0 =
* Feature: added options 'category' and 'notcategory' to the shortcode [events_filterform], so you can choose to only show specific categories or exclude certain categories from the select box
* Feature: all location placeholders can now be used inside events (those that make sense of course). In order to make a distinction among event and location placeholders with the same name, some have been deprecated (see below)
* Feature: the end time can now be the same as the start time, so you can test on this to not show end date/time info (for eg. events without end)
* Feature: each booking now has a unique bank transfer number for belgian transfers, the placeholder "#_TRANSFER_NBR_BE97" can be used in booking mails
* Improvement: when adding a registration in the backend, you can now only choose from events that have RSVP activated
* Improvement: when the setting "Max number of spaces to book" is empty, it is now ignored so unlimited number of attendees is now possible
* Improvement/fix: price can be a decimal number as well
* Improvement: make sure the Settings page can be reached if something is not correct with the security settings
* Improvement: make sure the first event of an recurrent series is used to get the info from
* Improvement: for location formatting, #_IMAGE has been deprecated in favor of #_LOCATIONIMAGE
* Improvement: for location formatting, #_IMAGEURL has been deprecated in favor of #_LOCATIONIMAGEURL
* Improvement: for location formatting, #_DESCRIPTION has been deprecated in favor of #_LOCATIONDETAILS
* Improvement: for location formatting, #_CATEGORIES has been deprecated in favor of #_LOCATIONCATEGORIES
* Improvement: for event formatting, #_NOTES, #_DETAILS and #_DESCRIPTION have been deprecated in favor of #_EVENTDETAILS
* Improvement: for event formatting, #_CATEGORIES has been deprecated in favor of #_EVENTCATEGORIES
* Improvement: the html header now only shows the event name, and not the whole single event title format string
* Improvement: some rsvp info remains entered now if the user enters a wrong captcha
* Improvement: updated German translation (thanks to Jorgo Ananiadis)
* Improvement: locations are now also sorted alphabetically when using the eventfull option
* Improvement: email body text can now contain qtranslate calls as well
* Improvement: the paypal form now also shows that the registration was successfull
* Improvement: the RSS feed now includes the pubDate field for each event (value is the creation or modification date of the event)
* API change: eme_insert_recurrent_event renamed to eme_db_insert_recurrence (old function exists for backwards compatibility)
* API change: eme_update_recurrence renamed to eme_db_update_recurrence (old function exists for backwards compatibility)
* API change: function eme_db_update_event now takes the event_id as the second parameter (you can still use the where-array method directly, made it backwards compatible)
* API change: function eme_email_rsvp_booking now only takes booking_id as the first parameter and the action as the second
* Bugfix: attributes weren't taken into account for the new email formats pending, cancelled, denied
* Bugfix: the filtering threw an error when selecting multiple items
* Bugfix: the attendee list didn't return the correct number of booked seats
* Bugfix: for the filter form, the selected items were not highlighted upon submit
* Bugfix: true and 1 now work as value for the options full and long_events
* Bugfix: array in hook eme_update_event_action missed event_id and event_author
* Bugfix: typo: payed => paid
* Bugfix: the widget update refused anything different than future, past or all for scope
* Bugfix: number of events can now be 0 in the widget
* Bugfix: attribute values were not sanitized
* Bugfix: if the booked seats were 0, the pending screen wouldn't show the booking
* Bugfix: the capability for adding events in draft wasn't working ok
* Bugfix: when paypal was active, rsvp field validation results were ignored
* Bugfix: ampersand character in event title breaks RSS feed
* Bugfix: make sure that we apply the the_content filter only once