The Events Calendar
Features
- Added a tribe_get_venue_website_url() function for fetching Venue website URLs (props to fervorcreative in our forums for this request!)
Performance
- Lazy-load venue and organizer selector data
Tweaks
- Allow iCal filenames to be filtered via a new filter: tribe_events_ical_feed_filename
- Added a hook to allow single day queries in month view to be filtered: tribe_events_month_daily_events_query_args
- Improved the logic around rebuilding known date ranges
- Always show the "Merge Duplicates" button for venues and organizers in the Events General Settings page
- Allow the "same slug" notice to be dismissed and fix some text in that message
- Ignore alpha/beta/rc suffixes on version numbers when checking template versions
- Add a filter for month view daily events query: tribe_events_month_daily_events_query_args
- Added a more flexible cost range parsing function
- Obfuscate license keys Events > Help > System Information
Fixes
- Fixed a fatal that sometimes occurred when refreshing the import CSV page
- Fixed issue where some characters were not escaped appropriately for month and year formats
- Added missing [email protected]
- Fixed a warning produced by passing a DateTime() object into start_date or end_date args of tribe_get_events (props to iamhexcoder for the pull request!)
- Fixed bug where events in month view were not always sorted in chronological order
- Fixed the System Info URL in Events > Help
- Resolved issue where the default country would be "Array" if no default country is set
- Fixed bug where ajaxurl was sometimes undefined
Fixes
- Resolve display issues on templates with Jetpack and a few themes
- Mobile breakpoints on month view working with custom breakpoints
- Reordering Venue and Organizer metadata no longer breaks titles
- Prevented notices from happening when using
the_titlefilter - iCal links now will respect categories on the first page
- Prevent third-party bugs with SEO plugins when inserting events programmatically
- Organizer information is showing up again correctly
- Modified the add-on license validation method to better explain what is happening
- Description on mobile views now have the correct class attribute on HTML
- Added missing semicolon on the list navigation for "«"
Tweaks
- Adjust injection of event data into the_content from priority 10 to 9 for better 3rd-party plugin compatibility
- Change mobile month view selector to load event details below the calendar for better theme compatibility
- Better handling of edge cases on the post_excerpt for List View
- Removal of generic CSS classes like
.updatedand.published
Fixes
- Prevent Notices from appearing when using
tribe_get_organizer() - Make HTML Single Event Pages valid
- Numeric named categories URLs are now fully working
- Event Title now Accepts HTML on Tooltips
- Licenses Tab now will work with
DISALLOW_FILE_MODS(Props to Sun for spotting and fixing this)
Security
- Security fix with Venues and Organizers (props to grantdayjames for reporting this!)
Tweaks
- Including the latest embedded Event Tickets release for backward compatibility
Tweaks
- Adjust single-event.php template to allow the "Time" title and content to be filterable (Props to Sitecrafting for highlighting this issue!)
Fixes
- Resolved issue with an overly escaped Event Category edit URL that prevented editing categories (Thanks to Ian for the first report of this issue!)
- Fixed issue where clicking on columns on the Events listed in the Admin Dashboard were ALWAYS sorted by Event start/end date before sorting by the column selected (Cheers to Corrado for bringing this to our attention!)
Tweaks
- Adding better support for non-numeric cost values on events (Props to Mirja for highlighting this!)
- Avoid notice level errors when advanced events list widget settings are saved (Thank you Johan for reporting the issue!)
- Improve messaging in the same-slug warning message (Thanks to Simon for bringing this to our attention!)
- Hook to Event Tickets to inject event dates into ticket emails
- Adding better support for default venues (Props to Karly for noting this!)
- Improve handling of internationalized slugs (Cheers to Oliver for the help!)
Fixes
- Ensure the past events list displays the correct events when accessed via ajax (Thank you Jesse for highlighting this!)
- Support ordering by venue/organizer within event queries (Thank you Doug for bringing this to our attention!)
- Fixed issue where events with the same date/time would sometimes be excluded from single-event navigation (Cheers to JeremyEnglert for the tip!)
- Resolved issue where events set with the explicit cost of 0 were not showing as "Free" (Thank you terrizsolo for reporting this!)
- Fixed bug where the datepicker in Twenty Sixteen was really ugly
- Fixed bug where using Quick Edit on events caused the table columns in the event list to become jumbled on save (Props to A K for the report!)
- Resolved bug where category links sometimes included event category 1 (Thank you Anthony for the original report of this problem!)
- Fixed a settings page URL (Props to Kristy for the heads up!)
Tweaks
- Add a warning message for major updates
- For SEO reasons, use an h1 for the title rather than an h2 (props to @wpexplorer for this fix)
- Target the calendar view grid in JS using a simpler selector
Fixes
- Resolved WP 4.4 related fatal on the Nav Menu page that prevented the admin footer from rendering/enqueuing JS
- Resolved bug where visiting /events/upcoming could sometimes result in an infinite redirect loop
- Removed
wp_trim_excerptand use only it's powers, fixing the excerpt problem - Fixed bug where the mobile calendar view did not display the date for the date being viewed
- Fixed bug where the admin toolbar's Events > Import > CSV did not link to the CSV importer page
- Fixed issue where the events list in the admin dashboard were not ordered in an intuitive manner
- Resolved bug where sorting by event category or tag resulted in an error
- Fixed bug where full event content text was displayed where excerpts should have been displayed
- Resolved issue where events imported via CSV were excluded from single event navigation
- Fixed bug where /events/list would sometimes 404 on a new install
- Resolved bug where multiday all-day events displayed the end date as one day later than it should be when the End of Day Cut-off was set to something other than 12am
- Timezone handling fixed within generated iCal feeds
Security
- A TON of escaping was added to our codebase thanks to the efforts of the always-helpful Andy Fragen (@afragen)
Features
- Moved the Ticket framework code into its own plugin (event-tickets)
- The event cost now supports more international formats with the addition of the tribe_events_cost_separators filter (Thank you remokrol for bringing this to our attention!)
- Added support for the twentysixteen theme
- Created a new Add-Ons tab in Settings so that TEC add-ons can have a consolidated settings tab
- Improve the date formats UI by providing example output for each selected format
Tweaks
- Restructured TEC's core settings code for reusability with other standalone plugins like Event Tickets
- Deprecate old JS event names in favor of a new JS event naming standard. Example: deprecated tribe_ev_runAjax in favor of run-ajax.tribe
- Consolidated import pages for TEC and add-ons
- When suggesting a UTF-8 compatibility CSV formatting tool, point to one that still exists
- Added the ability to filter attendees CSV items via tribe_events_tickets_attendees_csv_items (Props to @bostondv on GitHub for this patch!)
- Updated all excerpt output to use tribe_events_get_the_excerpt() to ensure a consistent display of excerpt content (Cheers to Joseph to pointing this out!)
- Add support for wp_get_document_title in response to the WordPress 4.4 deprecation of wp_title
- Check post creation permissions before letting users create venues and organizers from the event meta box
- Only display data separators between fields that have data when rendering organizers (Thank you Bud for highlighting this issue!)
- When a user cannot create organizers, prevent the auto-selection of organizers when editing an event
- Remove microformat CSS classes from templates and replace with namespaced content-relevant CSS classes
- Changed the "updated" CSS class to "tribe-updated" so that it is properly namespaced (Thank you vijayrajesh!)
- The Plugin Update Checker will now auto-save valid plugin keys (Thanks to Denon for originally bringing this up!)
- Cleaned up the output of JSON-LD data. Filterable via the new tribe_google_data_markup_json filter
- Drop the use of the generic CSS class "placeholder" in favor of "tribe-event-placeholder" (Thanks to Marc on the forums!)
- Adjusted the CSS padding on Admin Menu items for Events
- Various codesniffer fixes
- tribe_get_venue_link() no longer echoes if you ask it to return an element
- Error messages for empty Venue names
- Improve our responsiveness for the widget mini calendar, allowing smaller sidebars.
- No longer retrieve empty costs when fetching all costs for all events
- Change the priority of bootstrapping the-events-calendar to ensure it occurs before any of the TEC addons in the event some addons are upgraded to v4.0 later than TEC
- Adjust the logic used for adding a noindex/follow tag to event views
- No longer hiding default address fields when default venues are selected when Pro is active
Fixes
- Resolved issue where the iCal feed did not provide an appropriately formatted timezone in some cases (Cheers to Matt for the report!)
- Added support for translating some previously untranslatable strings (Props to tititou36, media325, and Stef!)
- Prevented duplicate CSS IDs on the mini calendars (Cheers to Corrado for the help!)
- Fixed bug causing tribe_get_single_ical_link() and tribe_get_ical_link() to use the same URL when it shouldn't (Props to Ben Byrne @drywall on Twitter for the heads up!)
- Fixed issue where the "Add another organizer" text wasn't using the correct singular label (Thank you MIKE for the report!)
- Various CSS fixes for twenty(ten-fifteen)
- Improved our handling of
get_current_screen()across the plugin, avoiding notices and warnings (Thank you Mike for the help!) - Fixed bug where accessing object properties on a non object errored out when saving event meta (props to @dalethedeveloper on GitHub for this fix!)
- Fixed bug where organizer ID meta attached sometimes included a blank record. That blank record is no longer returned in tribe_get_organizer_ids()
- Fixed error message returned when tabbing away from a blank event name meta box so that it properly indicates that an event name is required (Our thanks to @tapan29bd for this fix!)
- Resolved issue where Timezone event start/end date property name strings were malformed which guaranteed a a call to get_post_meta for Timezone date strings
- Fixed CSS issue where the month view calendar could sometimes extend beyond the edge of the page when Skeleton Styles were enabled
- Fixed a problem where iCal data was generated with incorrect dates in the case of some all days events (thanks to Matt for highlighting this)
- Resolved a problem causing the previous month view to appear when it should not
- Fixed issue in mobile month view where date was missing from heading
- Resolved issue that caused /events/ to 404 if it was visited on a new install before hitting "Save" on the Events > Settings > Display page
Deprecateds
- The Tribe__Events__Main::defaultValueReplaceEnabled() method is being deprecated in favor of tribe_get_option('defaultValueReplace'). Schedules for removal in v4.5
- The tribe_event_link() has been deprecated in favor of tribe_get_event_link(). Scheduled for removal in 5.0
- The third parameter of tribe_get_organizer_link() (the $echo parameter) has been deprecated and is scheduled for removal in 5.0
- Tribe__Events__Abstract_Deactivation in favor of Tribe__Abstract_Deactivation
- Tribe__Events__Admin__Helpers in favor of Tribe__Admin__Helpers
- Tribe__Events__App_Shop in favor of Tribe__App_Shop
- Tribe__Events__Autoloader in favor of Tribe__Autoloader
- Tribe__Events__Cache in favor of Tribe__Cache
- Tribe__Events__Cache_Listener in favor of Tribe__Cache_Listener
- Tribe__Events__Changelog_Reader in favor of Tribe__Changelog_Reader
- Tribe__Events__Credits in favor of Tribe__Credits
- Tribe__Events__Date_Utils in favor of Tribe__Date_Utils
- Tribe__Events__Field in favor of Tribe__Field
- Tribe__Events__Settings in favor of Tribe__Settings
- Tribe__Events__Settings_Tab in favor of Tribe__Settings_Tab
- Tribe__Events__Support in favor of Tribe__Support
- Tribe__Events__Template_Part_Cache in favor of Tribe__Template_Part_Cache
- Tribe__Events__Tickets__Attendees_Table in favor of Tribe__Tickets__Attendees_Table in the event-tickets plugin
- Tribe__Events__Tickets__Metabox in favor of Tribe__Tickets__Metabox in the event-tickets plugin
- Tribe__Events__Tickets__Ticket_Object in favor of Tribe__Tickets__Ticket_Object in the event-tickets plugin
- Tribe__Events__Tickets__Tickets in favor of Tribe__Tickets__Tickets in the event-tickets plugin
- Tribe__Events__Tickets__Tickets_Pro in favor of Tribe__Tickets__Tickets_Handler in the event-tickets plugin
- Tribe__Events__Validate in favor of Tribe__Validate
- Tribe__Events__View_Helpers in favor of Tribe__View_Helpers
- Tribe__Events__Main::OPTIONNAME in favor of Tribe__Main::OPTIONNAME
- Tribe__Events__Main::OPTIONNAMENETWORK in favor of Tribe__Main::OPTIONNAMENETWORK
- Tribe__Events__Main::addHelpAdminMenuItem() in favor of Tribe__Settings_Manager::add_help_admin_menu_item()
- Tribe__Events__Main::addNetworkOptionsPage() in favor of Tribe__Settings_Manager::add_network_options_page()
- Tribe__Events__Main::array_insert_after_key() in favor of Tribe__Main::array_insert_after_key()
- Tribe__Events__Main::array_insert_before_key() in favor of Tribe__Main::array_insert_before_key()
- Tribe__Events__Main::debug() in favor of Tribe__Debug::debug()
- Tribe__Events__Main::defaultValueReplaceEnabled() in favor of tribe_get_option( 'defaultValueReplace' )
- Tribe__Events__Main::doHelpTab() in favor of Tribe__Settings_Manager::do_help_tab()
- Tribe__Events__Main::doNetworkSettingTab() in favor of Tribe__Settings_Manager::do_network_settings_tab()
- Tribe__Events__Main::doSettingTabs() in favor of Tribe__Settings_Manager::do_setting_tabs()
- Tribe__Events__Main::do_licenses_tab() in favor of Tribe__Settings_Manager::do_licenses_tab()
- Tribe__Events__Main::getNetworkOption() in favor of Tribe__Settings_Manager::get_network_option()
- Tribe__Events__Main::getNetworkOptions() in favor of Tribe__Settings_Manager::get_network_options()
- Tribe__Events__Main::getNotices() in favor of Tribe__Notices::get()
- Tribe__Events__Main::getOption() in favor of Tribe__Settings_Manager::get_option()
- Tribe__Events__Main::getOptions() in favor of Tribe__Settings_Manager::get_options()
- Tribe__Events__Main::have_addons() in favor of Tribe__Settings_Manager::have_addons()
- Tribe__Events__Main::isNotice() in favor of Tribe__Notices::is_notice()
- Tribe__Events__Main::pluginDir in favor of Tribe__Events__Main::plugin_dir
- Tribe__Events__Main::pluginName in favor of Tribe__Events__Main::plugin_name
- Tribe__Events__Main::pluginPath in favor of Tribe__Events__Main::plugin_path
- Tribe__Events__Main::pluginUrl in favor of Tribe__Events__Main::plugin_url
- Tribe__Events__Main::removeNotice() in favor of Tribe__Notices::remove_notice()
- Tribe__Events__Main::renderDebug() in favor of Tribe__Debug::render()
- Tribe__Events__Main::saveAllTabsHidden() in favor of Tribe__Settings_Manager::save_all_tabs_hidden()
- Tribe__Events__Main::setNetworkOptions() in favor of Tribe__Settings_Manager::set_network_options()
- Tribe__Events__Main::setNotice() in favor of Tribe__Notices::set_notice()
- Tribe__Events__Main::truncate() in favor of tribe_events_get_the_excerpt()
- tribe_event_beginning_of_day() in favor of tribe_beginning_of_day()
- tribe_event_end_of_day() in favor of tribe_end_of_day()
- tribe_event_format_date() in favor of tribe_format_date()
- tribe_events_the_notices() in favor of tribe_the_notices()
Fixes
- Remove constraints on defining new venues and organizers that were added prematurely (our thanks to Jeramey for highlighting this)
- Resolve error encountered by users of some ticketing addons when accessing the orders report (our thanks to Sean for highlighting this)
- Restore live reload functionality which was failing to function in some cases (our thanks to cityofroundrock for highlighting this)
Tweaks
- Alter month view logic for better isolation of different month views (such as when the calendar widget and main calendar view co-exist)
