=== My Calendar Pro === Contributors: joedolson Donate link: http://www.joedolson.com/my-calendar/pro/ Tags: event submissions, user generated content, my calendar pro Requires at least: 4.2 Tested up to: 5.5 Requires PHP: 5.6 Stable tag: 2.0.4 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_events]` 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 == TODO: handle tzoffsetfrom/to in iCal from Google (part of the overall vcal block, not part of an event) TODO: Add Stripe support to Event submission = 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) * Add controls on My Calendar defined page to alter shortcode settings on that page? * Feature: list of user's submitted events to provide access for editing; build into Submissions form & as separate shortcode * Feature: restrict access for non-admins to only be able to edit from front-end; no access to WP Admin for calendar. * Feature: schedule periodic imports by URL * Add event to personal calendar == 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](http://www.joedolson.com/my-calendar/faq/) to read my Frequently Asked Questions! == Screenshots == 1. Event Submissions Widget == Upgrade Notice ==