=== My Calendar Pro ===
Contributors: joedolson
Donate link: https://www.joedolson.com/my-calendar/pro/
Tags: event submissions, user generated content, my calendar pro
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Requires Plugins: my-calendar
Stable tag: 3.5.0

Add on to My Calendar plugin: adds many great features such as a responsive mode, create events from posts, and more.

== Description ==

My Calendar provides event management and provides numerous methods to display your events. The plug-in can support individual calendars within WordPress Multi-User, or multiple calendars displaying different categories of events.

This plug-in expands on the capabilities of My Calendar to give you more powerful capabilities and control.

New or updated translations are always appreciated. The translation files are included in the download.

== Installation ==

1. Upload the `/my-calendar-pro/` directory into your WordPress plugins directory.

2. Activate the plugin on your WordPress plugins page

3. Edit or create a page on your blog which includes the shortcode `[submit_event]` and visit the page you have edited or created. You should see your calendar. Visit My Calendar -> Help for assistance with shortcode options or widget configuration.

== Changelog ==

= 3.5.0 =

* Feature: Importer supports getting images by URL from ical import sources.
* Feature: Importer sets private status if iCal event marked as private.
* Feature: Importer sets cancelled status if iCal event marked as cancelled.
* Bug fix: Import status not changed when editing a scheduled import.
* Bug fix: Improve handling of current timezone when scheduling imports.
* Bug fix: When deleting a scheduled import, all imports of the same URL should not also be deleted.
* Bug fix: Fix output to use schedule label instead of schedule key in list of imports.
* Bug fix: `get_page_by_path()` expects `null`, not `false`, if no results.
* Bug fix: Handle import URLs with encoded values in URLs.
* Bug fix: Logic error caused import-specific approvals to always fall back to the default value.
* Bug fix: Guids passed as array to query, breaking updates of existing events during imports.
* Change: Use `wp_admin_notice` to show notices.
* Change: Minor design tweaks following WordPress 7.0 design updates.

= 3.4.2 =

* Bug fix: Don't auto-insert pages if content is managed by Elementor.
* Bug fix: Fix logic error forcing users to fully delete their license key to update its status.
* Bug fix: Show different error message if key is not activated than if key is not valid.
* Misc. improvements to licensing handling.

= 3.4.1 =

* Bug fix: Fix broken ability to automatically publish events from front-end.
* Bug fix: Fix PHP warning when REST API remote site ID returns false.
* Bug fix: Fix issues with setting post type permalink slugs if hosts post type enabled.
* Bug fix: Fix missing spaces in Stripe setup notes.
* Update: EDD Plugin Updater class from 1.9.1 to 1.9.4.
* Change: Modernize class usage in admin notices.
* Change: Add admin warning about automatically publishing events.
* Docs: Update hook docs format.

= 3.4.0 =

* Change: Import recurring events from iCal as single events with custom instances, rather than individual events.
* Change: Add function to remove single events now imported as instances of a full event.
* Change: Add method to get items in REST API via GUID if event ID is unknown.
* Change: Update minimum supported version to 6.5, matching My Calendar.
* Change: Admin style changes to prepare for WP 7.0.
* Change: Handle changes in `wp_kses_hair()` in WP 7.0.
* Change: Hide author column if only a single author on front-end.
* Change: Widen default state of event edit list.
* Bug fix: When importing events from iCal, line breaks in event descriptions not properly handled.
* Bug fix: When importing events, titles longer than the 255 characters should be truncated instead of rejected.
* Bug fix: Member discount prices not shown properly in admin.
* Bug fix: Migrate SQL queries to prepared statements using the %i placeholder supported since WP 6.2.
* Bug fix: `REST->get_item()` expected an instance ID, but received an event ID.
* Bug fix: REST API queries to update events failed.
* Bug fix: REST API queries to delete events failed.
* Bug fix: REST API permissions not propagated through to event functions.
* Bug fix: Don't mutate global variables when SCRIPT_DEBUG enabled.
* Update: Geolocation features.
* Documentation: Geolocation features. (https://docs.joedolson.com/my-calendar-pro/geolocation/)
* Performance: Memoize custom fields array fetch.
* Performance: Don't fetch constant options inside loops.
* Performance: Remove leading wildcard on GUID queries.
* Performance: Batch guid exists queries.
* Performance: Only examine POST array if non-empty and related to a submission.
* Performance: Limit location queries to a single check per import cycle.
* Performance: Reduce unnecessary requests for event objects that are already available.
* Misc. minor back-end design changes.

= 3.3.1 =

* Change: Add styles for category icons in selection list for submissions.
* Bug fix: Undefined variable in `mcs_generate_search_page()`.
* Security hardening: use `wp_unslash()` more consistently before running sanitizing.

= 3.3.0 =

* Feature: Support personal event status in Pro.
* Bug fix: Multiple checkbox groups did not save all checked values.
* Bug fix: Improved detection and saving of locations during import.
* Bug fix: Img not shown after upload when creating a new event on front-end.
* Bug fix: Calendar email notifications selection rendered wrong state.
* Bug fix: Don't show license form if network activated and not main site.
* Bug fix: Don't attempt to access unset post values in custom fields.
* Change: Populate key used for tags array during custom field tag generation.
* Change: Don't duplicate the Duet calendar registration.
* Change: Update iCal parser to more modern package.
* Change: Check objects for custom fields before inspecting meta data.
* Change: Add custom fields to event object when setting event language parameters.
* Change: Use system stack for receipt fonts.
* Change: Prevent automatic assignment of key pages to unpublished posts.
* Change: Misc. design hardening to override some theme issues.

= 3.2.1 =

* Bug fix: Could not set scheduled import status to 'Draft' due to type checking.
* Bug fix: Incorrectly named function in payment listings.
* Bug fix: Undefined variable `$action_url` in payment editor.
* Docs: Fix data types in a few function documents.

= 3.2.0 =

* Feature: Add controls to control import status on event imports (global & individual source settings.)
* Feature: Edit scheduled imports.
* Feature: Add option to use post title as event title when creating an event from a post.
* Bug fix: Improper call to My Calendar primary URL in known posts.
* Bug fix: Support either `event_status` or `event_approved` in imports, due to documentation errors.
* Bug fix: Disable location editing in front-end event editor.
* Change: Change textdomain from `my-calendar-submissions` to `my-calendar-pro`.
* Change: Require WordPress 6.4.
* Change: Move Stripe SDK into vendor directory.
* Change: Sales receipt generation modernized.
* Change: Update autocomplete package.
* Change: Improve CSS inheritance in front-end styles.
* Security: Misc. hardening.

= 3.1.11 =

* Feature: Allow license keys to be set from the MCS_LICENSE_KEY constant in code.
* Docs: Document the `mcapi_default_state` filter.
* Change: Update license statuses to use core styling.
* Bug fix: Fix bugs in updating REST API client settings.

= 3.1.10 =

* Bug fix: Event check in importer can be an array.
* Bug fix: Add safety check if location preset field is used for location name.
* Bug fix: Only render language wrapper if description has content.

= 3.1.9 =

* Bug fix: Front-end event category container had incorrect class.
* Bug fix: Custom fields input HTML repeated type class on wrapper and input.
* Bug fix: Improve consistency of submissions layout spacing.
* Move textdomain loader to `init` hook.

= 3.1.8 =

* Bug fix: Custom fields not saved when using non-AJAX front-end submission.
* Bug fix: Fix error in importer documentation for access parameters.
* Bug fix: Fix postcode not saving from front-end form.
* Bug fix: Prevent empty labels on category input.
* Bug fix: Don't control location name input when adding new.
* Bug fix: Replace deprecated .focus() shorthand.
* Bug fix: Fix file path for additional script when debugging.
* Bug fix: Fix pagination.
* Accessibility: Add `nav` element for pagination.

= 3.1.7 =

* Bug fix: Incorrect file path for main scripts when script_debug enabled.
* Bug fix: Improve licensing error messages for better clarity.
* Change: Remove usages of deprecated SQL_CALC_FOUND_ROWS.

= 3.1.6 =

* Bug fix: Missing support for radio and checkbox groups in custom field creation.
* Bug fix: If input field group values have terminal white space, strip before generating value group.
* Bug fix: Improperly keyed custom fields if `transliterator_transliterate` present but encoding doesn't require it.
* Change `http` to `https` in referenced URLs.
* Build: Add script minification.

= 3.1.5 =

* Docs: Fix distinction between location access and event access in importer inline docs.
* Bug fix: Misc. minor HTML validation errors.
* Bug fix: Unset default name attribute if custom name attribute passed.
* Bug fix: PHP8: Missing argument in `crypt` call.
* Bug fix: Rest API: stray close PHP tag in HTML.
* Bug fix: Rest API settings: remove obsolete aria-labelledby attributes.
* Bug fix: Custom fields: required setting rendered as true if key exists in array.
* Bug fix: Improve handling of event images when editing public images.
* Feature: Add preview of image uploads.

= 3.1.4 =

* Bug fix: [Events from posts] Disable custom post time field if not relevant.
* Bug fix: [Events from posts] Move to later action, so that custom fields and meta data is passed to action.
* Bug fix: [Events from posts] Don't access POST global directly, uses post values passed previously.
* Bug fix: [Imports] Strip whitespace from event headers so minor typos in CSV formatting are ignored.
* Bug fix: [Imports] Remove quotes from CSV headers so fields don't report as unrecognized fields.
* Bug fix: [Imports] Unset blank lines in CSV to have more accurate event counts.
* Bug fix: [Form generator] Forms not listed in available forms if no title provided.
* Bug fix: [Event Submission] Restore support for event registration fields.
* Bug fix: [Event Submission] New locations not set as assigned to event.
* Bug fix: [DB] Revert InnoDB adaptations.
* Feature: [Front end event management] Add shortcode argument `show_past` to hide past events in event management lists.
* Feature: [Imports] Support fetching event author by email address or username as well as ID.

= 3.1.3 =

* Bug fix: Switch category and location types to active types if made visible.
* Bug fix: Autocomplete script did not require parent script.

= 3.1.2 =

* Bug fix: JS error broke image uploads.
* Bug fix: Improvements in sqlite support.
* Change: Use `clamp` to prevent super small button text.

= 3.1.1 =

* Bug fix: Improve duplicate location check in importer.
* Bug fix: Strip charset identifier from imported iCal sources with charset declarations.

= 3.1.0 =

* Feature: Add capability to save custom event hosts as post type.
* Feature: Ability to label individual submission forms.
* Update location handling to remove references to the events db table.
* Bug fixes to event counts and output of advanced search results.
* Misc. sanitizing changes to be more specific to the related input.
* Fix public submitter template tags.
* Update to WPCS 3.0.
* Update Stripe library
* Don't load responsive styles and scripts if My Calendar > 3.5.
* Design improvements for search, edit, and submissions forms.
* Support multibyte languages in custom field creation & editing.
* Compatibility with My Calendar 3.5.0.

= 3.0.12 =

* Bug fix: Post events from post editor broken due to reversed arguments.
* Bug fix: Ajax files were merged in My Calendar in 3.4, but still called in Pro.
* Bug fix: Return empty string if select options are not an array.
* Bug fix: MC Ajax scripting was enqueued twice; simplify enqueuing.
* Bug fix: Bug fix: Field notes misplaced in custom fields.

= 3.0.11 =

* Bug fix: Alias kses callback to allow options in form for non-privileged users.
* Bug fix: Fix unhandled case for hidden event categories.
* Bug fix: PHP notice for undefined array key in event images.
* Bug fix: $event not required in `mcs_submit_url()`, verify exists before attempting to use.
* Bug fix: Responsive view fixes in form builder.
* Change: Add option to disable front-end submissions and related scripts, styles, and cookies.

= 3.0.10 =

* Bug fix: unclosed link when logged-in on submissions form.
* Bug fix: Inconsistency in version numbers in 3.0.9.

= 3.0.9 =

* Bug fix: Clear previous license status when rechecking licenses.
* Bug fix: Ensure that `mcs_submit_url` and `mcs_delete_url` have default values.
* Bug fix: Clarify ability to build a submission form with pre-set category.
* Bug fix: Not possible to choose end time without also choosing end date.

= 3.0.8 =

* Feature: Allow users with mc_manage_events to view all authors on front-end.
* Bug fix: Correctly handle zero search results case.
* Bug fix: Make search input a required field.
* Bug fix: Remove deprecated ini_set argument.
* Bug fix: Fix responsiveness of REST API settings.
* Change: Use uploads directory for parsing imported CSV files.

= 3.0.7 =

* Bug fix: Replace h1 widget titles with h2 instead of removing heading entirely.
* Bug fix: Use GET queries for advanced search to prevent breaking back button and allow links to search results.
* Bug fix: Don't default to current user for advanced search.
* Change: Add HTML wrapper around private content notice for better styling and display.
* Change: Change private content text to something more friendly.
* Feature: Advanced search shows all results within time frame & adds tabbed navigation for pages of results.

= 3.0.6 =

* Feature: Add link to current form's form builder screen on front-end for administrators.
* Feature: Improve advanced event search layout & update default template.
* Change: Include count of found events in advanced search results.
* Change: Minor change to layout of advanced search form to layout date inputs in two columns.
* Change: Default event search queries next 3 months instead of just one.
* Bug fix: Only attempt to unlink an import file if it still exists.
* Bug fix: Create payments database table on installation or when payments are enabled.
* Bug fix: Prevent fatal error if license status is not an object.

= 3.0.5 =

* Bug fix: Add some missing filter documentation.
* Bug fix: Verify event_image is set before inspecting.
* Change: Add new actions 'mcs_before_processing' and 'mcs_after_processing' in front-end submissions handler.

= 3.0.4 =

* Bug fix: Stripslahes on event titles when displayed in delete confirmation on front-end.
* Bug fix: Inconsistent application of mcs_automatic_approval filter.
* Bug fix: Install advanced search page on installation, like submit and edit pages.
* Bug fix: Add labeling to admin page list for event editing page.
* Security Hardening: Earlier and more thorough input sanitizing.
* Add: Filter (mcs_import_locations`) to import venues from iCal sources.

= 3.0.3 =

* Bug fix: Validate values submitted for hosts when host field is required.
* Bug fix: Other settings could not be disabled once checked.
* Bug fix: Don't offer attachments or My Calendar locations as post types for event creation or blogging.
* Change: Use taxonomy labels instead of internal names in select input.
* Change: Don't offer attachments and My Calendar locations as bloggable post types.
* Change: Add validate_callback key to field schema.
* Change: Layout changes for blog events settings.

= 3.0.2 =

* Bug fix: Event category can be a hidden field passed as an array.
* Bug fix: Image supplied as URL was not saved.
* Bug fix: Image alt attribute when img supplied as URL not saved.

= 3.0.1 =

* Bug fix: Ensure that settings are accurate for private event descriptions if using default value.
* Bug fix: Remove version check for private event descriptions.
* Bug fix: Ensure that mcs_hidden_fields always returns an array.

= 3.0.0 =

* Feature: Add support for custom categories & custom taxonomies to events from posts.
* Feature: Conceal license keys once validated.
* Feature: Support Stripe payment gateway for purchasing submission access.
* Feature: Support AJAX form submission for front-end event form.
* Feature: New form building interface with support for custom labels, managing multiple forms, and positioning custom fields.
* Feature: Support all My Calendar input fields in front end submissions.
* Feature: New custom field building interface.
* Feature: Clean up of front-end event editing.
* Feature: Ability to turn off multi-language selector.
* Feature: Separately disable notifications sent on edit.
* Feature: Default messages when current visitors can't submit events.
* Feature: Use CodeMirror to help edit HTML email when enabled.
* Bug fix: Add version number to scripts and styles for cache breaking on updates.
* Bug fix: wp_die() usages not sourced.
* Bug fix: SameSite parameter in setcookie called incorrectly.
* Bug fix: REST api setting didn't display default state.
* New filter: `mcs_import_directory` to change the directory handling event import temporary files.
* Numerous bug fixes in payment handling for events.
* Deprecate Responsive modes, obsolete since 2.0.
* Code reorganization.
* Accessibility: Apply table ARIA roles so responsive mode retains table semantics.

= 2.2.0 =

* Feature: Support language handling for individual event listings.
* Bug fix: Update post meta box data if event deleted.
* Bug fix: Correct missing/incorrect textdomains.
* Bug fix: Create event editing page on new installs.
* Bug fix: Update link to documentation.
* Change: Redesign tabs for vertical layout.
* Change: Link to pending events only when they exist.
* Change: Explanatory material about disabled features.
* Remove: Authorize.net support.

= 2.1.6 =

* Bug fix: Title was not passed to display when deleting event from front-end.
* Bug fix: Handle event author not existing at import.
* Bug fix: Properly handle recurring event dates when importing from My Calendar.

= 2.1.5 =

* Bug fix: Don't show locations in search form if 1 or fewer locations available.
* Bug fix: Date formats should not apply to data sources, only display sources.
* Bug fix: Correctly unfold multiline descriptions in ICS imports. Props @UrsWeberG.
* Bug fix: Trim CSV file so event count is correct in imports.
* Bug fix: Scripts loading in head could break submit form.
* Change: Set 'logged-in' as default submission permissions.
* Change: label Advanced Event Search in page list.
* Minor admin UI tweaks.
* Change: Render default forms without shortcode on set pages.
* Feature: edit Advanced Event Search settings in page editor.
* Feature: add text label editing for Advanced Event Search.

= 2.1.4 =

* Bug fix: Error in check for date type in ical imports.
* Bug fix: PHP notice due to undefined $action.
* Bug fix: required attribute incorrect value on alt attributes.
* Bug fix: empty DTEND parameter caused ical import error.
* Bug fix: Stripslashes in front-end event editor
* Bug fix: time formats and time zone incorrectly handled in front-end event editing.
* Bug fix: CSS improvements in submissions form.
* Change: Label event submission page in admin page list.
* New: Block rapid submission from bots. Filter time frame with `mcs_honeypot_limit`.

= 2.1.3 =

* Bug fix: Nonce passed in shortcode generator was not valid.
* Bug fix: ical sources with TZID could cause fatal errors in imports.
* Bug fix: verify GUI references a valid event ID before processing.
* Bug fix: Run core DB upgrades in Pro if needed.

= 2.1.2 =

* Missing variable in advanced search form broke date selector.
* Missing styles & scripts in UI to add events from post editor.
* Style clean-up for a couple of changes in My Calendar.

= 2.1.1 =

* Removed Geolocation DB due to file size problems.

= 2.1.0 =

Frontend:
* Improved styles for recurring event submissions.
* Improve image sideloading for image imports.
* Change recurring events entry model to define end date instead of number of iterations.
* Switch datepicker from Pickadate to Duet.
* Customize styling for file upload interface.
* New shortcode: `[geolocate]`. Map of nearby locations centered on user geolocation data or specific point.
* Custom permissions for private event content.
* Support alt attribute in front-end image submission.

Bug fixes:
* Bug fix: Use COOKIEPATH instead of SITECOOKIEPATH.
* Bug fix: Avoid PHP notice on currencies that aren't defined.
* Bug fix: Singular events not tested correctly in event to post metabox.
* Bug fix: End date fields should show if 'event_end' is defined.

Admin:
* Use properly set up tab role & keyboard behavior in settings.
* New filter to set default API state.
* Prevent submission processor from running in the admin.
* Better event from post styling.
* Allow imports to set event location.
* Improve license verification messages.
* Prevent event submission if email invalid.
* Compatibility with My Calendar 3.3.0

= 2.0.6 =

* Bug fix: Importing iCal sources not compatible with required fields settings.
* Prevent duplicates of event end date/time fields from displaying.
* Pass samesite value when setting cookies when PHP supports.
* Change autocomplete limit.
* Check variable type in importing to prevent NaN errors.

= 2.0.5 =

* Bug fix: Encoded location labels in autocomplete.
* Bug fix: Checkbox labels in frontend form should have inline display.
* Bug fix: Posts published from events as future-dated drafts should not be auto-published.
* Bug fix: out of date Templating help links.
* Change: Pass different event status messages on front end submissions.
* Change: Add form_id attribute to submit shortcode & pass through to field selector.
* Misc. bug fixes.

= 2.0.4 =

* Bug fix: Invalid filter name managing event import permissions.
* Change: Modify sample import file.

= 2.0.3 =

* Bug fix: Clear a couple of PHP warnings possible during imports.
* Bug fix: Event times not passed as arrays to imported data.

= 2.0.2 =

* Bug fix: Trashed events should not show in default filter.
* Bug fix: Notices caused by undeclared defaults in Event Posts
* Bug fix: Reset event importer array to avoid duplicating values.
* Bug fix: Importing locations will check for duplicate insertions.
* Bug fix: Better checking of line breaks in event imports.
* Bug fix: Add category color, icon, and privacy status to known import fields.
* Simplify parsing of array during imports.
* New feature: Auto-switching between select and autocomplete when large numbers of locations available.

= 2.0.1 =

* Bug fix: Ensure table cells are 100% width in responsive.
* Bug fix: Don't apply responsive styles to mini calendar.

= 2.0.0 =

* Feature: Enabling required submission form fields.
* Feature: Rest API-driven event sharing. (Thanks to Purdue University Northwest for funding.)
* Feature: Add a notification to public submitters sent when an event transitions from draft to publish.
* Feature: New filter to make custom fields sortable in public submissions.
* Feature: Ability to edit payments in admin.
* Feature: Add styles to make all My Calendar stylesheets responsive. (When Responsive Mode disabled.)
* Extensive re-write of Payments module.
    * Improve error messages from PayPal
    * Bug fix: Display of receipts broken.
    * Prep for additional gateways.
    * Only configure payments to support multiple key purchases.
    * Better admin payment handling (edit, delete, and search payments.)
* Bug fix: Did not handle multiple categories correctly in front-end editing.
* Bug fix: Incorrect Event ID passed to front-end editor.
* Bug fix: Setting no categories in shortcode generator did not eliminate category in shortcode.
* Bug fix: custom fields not included in shortcode builder
* Bug fix: Setting default end date causes data-entry problems.
* Display recurring event information in metabox.
* New filter: allow use of a field other than UID to detect whether an event is new.

= 1.9.5 =

* Bug fix: Notice thrown by undefined POST index.
* Bug fix: Event importer did not have sufficient permissions to update events.
* Bug fix: Event Posts still used "unapproved" language.
* Bug fix: Duplicate "select" in location selection form.
* Bug fix: Extra closing div in submission form.
* Added: button to trigger import screen after previous import.
* Design tweaks in submission form.

= 1.9.4 =

* Update plugin updater class
* Bug fix: event_link not displaying in Submit Events form.

= 1.9.3 =

* Bug fix: Categories not included in event submission form.
* Bug fix: End dates & End times duplicated in submission form.
* Add filter to disable date picker.
* Remove ssl_verify=false

= 1.9.2 =

* Square braces used instead of parentheses in IPN error statement

= 1.9.1 =

* GUID debugging test removed.

= 1.9.0 =

* Deactivate if PHP version requirements not met.
* Bug fix: Verify that dtend exists before referencing.
* Exit early if event does not exist.
* Improve styling on access features in submit form.
* Break submit form input fields into separate function.
* Display input fields in order listed in shortcode.
* Make shortcode generator have sortable input fields.
* By default, disable user inputs for logged-in users.
* Minor style changes.
* Paypal URL obsolete in Payment Gateway.
* Improve error message if PayPal payment fails.
* Importer only imported last copy of recurring events in iCal if they had a GUID value.
* Add option for importer to ignore events in the past. Filter via 'mcs_import_limit'
* Capable of handling webcal protocol in imports
* Improved handling of multi-day & all-day events imported from iCal sources.
* Bug fix: HTML email not supported in Payment notifications
* Bug fix: Names in payment records should stripslashes.
* Links to shortcode generator direct to form, rather than Help screen generally.

= 1.8.5 =

* Bug fix: Link to Pro documentation not visible.
* Bug fix: iCal automatic imports should reflect 'Automatic Approval' setting.

= 1.8.4 =

* Bug fix: shortcode setting field labels to 'true'
* Bug fix: spaces in generated shortcodes

= 1.8.3 =

* Feature: Option to set a category for .ical imports.
* Bug fix: Improvements to datetime conversions from GMT during imports
* Bug fix: Don't execute advanced search form when simple search submitted

= 1.8.2 =

* Bug fix: Move author saving before spam check
* Bug fix: Handle case where wp_mail fails better.
* Bug fix: Prevent autocomplete from filling in the honeypot.
* Change: No need to check if Pro exists within Pro
* More code formatting resolutions.

= 1.8.1 =

* Bug fix: base.css enqueued when responsive mode disabled.
* Bug fix: event author not passed in Gutenberg in Post > Event creation
* Bug fix: event from post should be saved as draft if post saved as draft
* Bug fix: prevent double posting of events from posts
* Add file docs, more function docs.

= 1.8.0 =

* Bug fix: correct start day value on front-end submission
* Bug fix: shortcode generator handling of categories
* Bug fix: Should submit form to current URL when possible.
* Bug fix: notices thrown if license key not yet saved
* Bug fix: missing ol around default search results
* Bug fix: Only enqueue print responsive styles when responsive enabled
* Bug fix: date picker styling fixes
* Bug fix: update event filter did not fire correctly
* Bug fix: wrong function used to check whether calendar pages already exist

* Only display admin notice on main site in network environments
* Remove create_function for PHP 7.2 compatibility
* Code reformatting
* Update plugin updater

* Add: Support for controlled location fields in submit form
* Add: Support data pattern controls in advanced search
* Add: Support copy location in submit form
* Add: Support for My Calendar 3.0 multi-category events

* Change: language from 'approvals' to 'drafts'

= 1.7.0 =

* Updates to compensate for 4.8.3 changes in esc_sql
* Fix missing property test in object
* New template tags for submitter data
* New feature: Front-end editing shortcode [submitted_events]. Show current user's submitted events and provide access to edit or delete.
* New feature: add option so Posts from Events can automatically use post permalink for event link field
* New feature: add option so Events from Posts can automatically use post permalink for event link field

= 1.6.4 =

* Bug fix: Missing custom cron schedules
* Bug fix: improve handling of all day events imported from iCal sources
* Bug fix: improve handling of iCal imports using UTC time zones.

= 1.6.3 =

* Bug fix: JS date format
* Bug fix: default date formats if data missing
* Bug fix: Images not set as post thumbnail when front-end submission converted to blog post.

= 1.6.2 =

* Bug fix: Typo in class
* Update: Use 'mc_get_users' if exists instead of older class
* Style change: clearer UI on toggles

= 1.6.1 =

* Bug fix: Publishing future posts from events did not work correctly
* Bug fix: Inconsistent class naming for date and time picker fields broke some instances of picker
* Bug fix: verify validity of user-submitted email address before attempting to send

= 1.6.0 =

* Bug fix: logic error prevented hiding the category selector [need to check this]
* Bug fix: If offset included in TZID for .ics imports, time & date misinterpreted
* Bug fix: Indicate which field is the 'Edit' field for event submitter notifications
* Bug fix: Admin edit subject not used
* Bug fix: Event category not added to generate post as category, only as tag
* Bug fix: Broken label in search settings
* Bug fix: PHP notices in responsive settings
* Bug fix: Use selected date format in search & create event post fields
* Change: Provide default dates so that date fields don't automatically error
* Add: separate fields for edit & new email messages
* Add: Event UID tracking so that imports of events that have already been imported will be updated instead of duplicated
* Add: Scheduled automatic event imports
* Add: responsive design support for print view
* Add: support for start of week option in submit events date field (props Josef Fällman)
* Add: support for event search by location fields other than location name
* Added hook to prevent activation if PHP version below 5.3.0.
* Improved inline documentation

= 1.5.10 =

* Bug fix: In import, use occur_begin & occur_end instead of event_begin and event_end if exists
* Bug fix: pass default location with no selector
* Bug fix: better support for My Calendar exported CSVs
* Bug fix: Support multiline descriptions in ics import
* Bug fix: Support DATE format in ics datetime fields
* Bug fix: strip timezone from dates before processing
* Filter: provide filter to process dates & timezones 'mcs_apply_timezone'
* Bug fix: don't remove 'Import Completed' message after import completes.
* Update translations
* Accessibility: broken explicit label relationship
* Enhancement: Added some additional classes
* Enhancement: better default text for location selector

= 1.5.9 =

* Bug fix: Handle event end dates if not provided in import file

= 1.5.8 =

* Add user-agent to PayPal integration
* Miscellaneous improvements to usage of defaults in submissions
* Save author data from public submissions
* Display author data when submitted from public
* Change import options to transients so errors expire.
* Import correct number of files & number of rows per file

= 1.5.7 =

* Bug fix: moving event submission into 'init' broke email notifications
* Bug fix: remove blogname from "from" address due to fatal error in some versions of PHPMailer
* Feature: add honeypot to submission form

= 1.5.6 =

* Bug fix: Add missing class to event description textarea in post editor
* Bug fix: Better handling of translations for event submission field labels
* Move event submission processing out of shortcode and into 'init' action.
* Add Japanese & Spanish translations; update Dutch

= 1.5.5 =

* Bug fix: remaining instance of deprecated function get_currentuserinfo
* Update permissions check to new function description
* Not a security update; but a permissions checking function changed in My Calendar requiring this update.
* My Calendar 2.4.19 is a critical security update; apply that update as soon as possible.

= 1.5.4 =

* Performance & stability improvements to event imports
* Bug fix with handling of newline character in event descriptions
* Event import now requires > PHP 5.3

= 1.5.3 =

* Bug fix: could not send event notifications to multiple users
* Bug fix: undeleted variable
* Bug fixes to effective handling of license verification
* Bug fix: obtain full first instance of an event instead of just event core when processing templates.
* Bug fix: Better feedback after license activation.
* Bug fix: changed default location value to false (no default)
* Bug fix: event repeats input type on front-end form should be 'number'
* Bug fix: Improve import CSV if user on PHP 5.3+ using str_getcsv
* Add support for selective refresh in customizer in WordPress 4.5
* Add feature: Option to create post excerpt at time of event creation for Event to Post feature.
* Add feature: Provide custom template with My Calendar template tag support in custom post content & excerpt fields.
* Add feature: selectively hide event content based on user permissions. (Requires > My Calendar 2.4.18)
* Add feature: support for recurring events in 'create event from post' feature.
* Update: modify default location fields to simplify default form; eliminate GPS & Region
* Update: Improved UI for location submission from front-end
* Translation: Add Dutch translation

= 1.5.2 =

* Feature: Set categories on posts created from events
* Action: do_action( 'mcp_post_published', $post_id, $event );
* Bug fix: Only add an event from post when the event title is defined.
* Bug fix: Event description field forced overwrite of post content if event not created.

= 1.5.1 =

* Bug fix: Handling of license activation response
* Bug fix: advanced search queries

= 1.5.0 =

* Add event importer by iCAL or CSV
* Bug fix: misc. PHP notices
* Bug fix: currency code in Submission payments reports

= 1.4.0 =

* Adds Advanced Event Search widget
* Adds Responsive Mode UI & backend code.
* Adds custom responsive stylesheets
* Bug fix: Use WordPress installation time as base for current time instead of server time.
* Bug fix: Cleared out stray PHP notices
* Bug fix: Issue with missing database update function
* Bug fix: Saving mcs_time_format did not show saved value
* Bug fix: Select dropdowns display issue on date picker
* Bug fix: Saving payments settings moved focus to Submissions tab
* Bug fix: Advanced search page not generated on save of settings

= 1.3.1 =

* Files were included that were doing existence checking, but existence checker function only existed after includes.
* Undefined index when using custom content
* Pass default value definitions for event recurrence data when creating event from post

= 1.3.0 =

* Enqueue front-end styles in this plug-in, rather than in My Calendar.
* Major feature: Add functionality to send new events as blog posts (or any post type).
* Update Authorize.net API Urls per June 2016 change.
* Incorrect default data type for some widget parameters raised notices.
* Change from jQuery UI to Pickadate
* Add time selector & time format settings
* Create event from post screen (no editing, just creation)
* Edit submitted events in submissions form
* Add field to define location of submit event page
* Add Edit subject line for notifications
* Add advanced search with customizable results template.

= 1.2.8 =

* Fix licensing URL.
* Update class constructors to PHP 5 syntax.

= 1.2.7 =

* Bug fix: My Calendar: Submissions widget is now compatible with SiteOrigin PageBuilder.
* Option: require name & email on submissions
* Prevent deprecation notice when fetching text_direction
* Bug fix: My Calendar Manual link was out of date.
* Bug fix: Add _wpnonce to generator function.

= 1.2.6 =

* Add ability to use Host field in My Calendar Submissions (with capability-based filter; defaults to require mc_add_events)
* Add ability to disable email notifications when events are auto approved. [needs testing]
* Bug fix: notice thrown if user login submitted as name.

= 1.2.5 =

* Added several new filters and actions to support greater extensibility.
* Updated licensing conditions.
* Bug fix: Locations with no default location supplied raised PHP warnings

= 1.2.4 =

* Bug fix: notices in shortcode generator
* Bug fix: fatal error in shortcode generator under PHP 5.4+

= 1.2.3 =

* Bug fix: event_allday and event_hide_end values could return date/time results.
* Bug fix: numerous bug fixes to My Calendar widget.
* Bug fix: date popup attached globally to .date class. OMG.
* New feature: Shortcode Generator (My Calendar > Help > Shortcode Generator > "Submissions")
* Supports same label replacement in locations as in event fields
* Set image as featured image for event post.
* Removed the required label from event locations label.

= 1.2.2 =

* Bug fix: Event Title label did not show up unless added as an attribute title.
* Clarification: Provide link to user's guide from settings page.
* New filters: mc_submit_fields and mc_submit_location_fields. Filter value of the 'fields' and 'location_fields' attributes to customize form text without using a complex shortcode attribute.

= 1.2.1 =

* Bug fix: Submission widget not correctly registered.

= 1.2.0 =

* Adds support for Authorize.net DPM as payment processor.
* Adds printable receipts for purchasers.
* Change: if a default location is set & no input method is allowed, default location is used for all submitted events.

= 1.1.1 =

* Updated automatic updater.
* Bug fix: locations preset generated MySQL error if not provided.
* Send emails from sender, not from WordPress default.
* Update to submissions payments table format.

= 1.1.0 =

* Form labels are now customizable. (Excludes recurring events and GPS coordinates.)
* Option to set forms to submit automatically approved events.
* Change: users with 'Manage Events' permissions submitting events through submissions form do not require approval.
* Automatic plug-in upgrade now supported.
* Updated recurring interface to match options in My Calendar 2.2.0
* HTML formatting now available in notification emails
* Added support for file uploads in image field.
* Assigned email notifications as an action so it can be removed or modified.

= 1.0.5 =

* Fixed license validation problem resulting from bug in WP HTTP prior to version 3.3.

= 1.0.4 =

* Shortcode event entry form was not protected when user not logged in.
* Turned submit_event shortcode into an enclosing shortcode. Enclosed text shown when user not logged in.

= 1.0.3 =

* Bug fix: removing category field broke event submission

= 1.0.2 =

* Bug fix: locations field restrictions did not work
* Bug fix: possible to create an event with a null repetition value

= 1.0.1 =

* Bug fix which could potentially introduce a 'headers already sent' error in admin.

= 1.0.0 =

* Initial launch.

= Future =

* Feature: limiting of viewing categories to specific member groups
* Feature: limit ability to enter categories by member groups
* Make only portions of events private (e.g., time and location for children's events, etc.)
* Provide notifications of new events by category (to specific users or to lists of users; set up as user meta option?) (use save_event hooks; set up reminder schedule; use cron; see RQ by Don Brown via email)
* Feature: restrict access for non-admins to only be able to edit from front-end; no access to WP Admin for calendar.
* Add event to personal calendar
* handle tzoffsetfrom/to in iCal from Google (part of the overall vcal block, not part of an event)


== Frequently Asked Questions ==

= Hey! Why don't you have any Frequently Asked Questions here! =

Because the majority of users end up on my web site asking for help anyway -- and it's simply more difficult to maintain two copies of my Frequently Asked Questions. Please visit [my web site FAQ](https://www.joedolson.com/my-calendar/faq/) to read my Frequently Asked Questions!

== Screenshots ==

1. Event Submissions Widget

== Upgrade Notice ==