diff --git a/.editorconfig b/.editorconfig index 479f39403b..890c954e15 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,6 +7,6 @@ indent_style = tab insert_final_newline = false trim_trailing_whitespace = true -[**.{jshintrc,json,scss-lint,yml}] +[**.{jshintrc,json,neon,scss-lint,yml}] indent_style = space indent_size = 2 diff --git a/.github/workflows/changelogger.yml b/.github/workflows/changelogger.yml new file mode 100644 index 0000000000..bb180f970b --- /dev/null +++ b/.github/workflows/changelogger.yml @@ -0,0 +1,43 @@ +name: Check changelog + +on: + pull_request: + branches: + - master + - 'release/**' + paths-ignore: + - '.github/**' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + check-changelog: + name: Check changelog + runs-on: ubuntu-latest + steps: + # clone the repository + - uses: actions/checkout@v4 + with: + fetch-depth: 1000 + submodules: recursive + # enable dependencies caching + - name: Add composer to cache + uses: actions/cache@v4 + with: + path: ~/.cache/composer/ + key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }} + # setup PHP + - name: Configure PHP environment + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: composer + coverage: none + # Install composer packages. + - run: composer self-update && composer install --no-progress + # Fetch the target branch before running the check. + - name: Fetch the target origin branch + run: git fetch origin $GITHUB_BASE_REF + # Check if any changelog file is added when comparing the current branch vs the target branch. + - name: Check changelog + run: bash bin/check-changelog.sh origin/$GITHUB_BASE_REF HEAD \ No newline at end of file diff --git a/.github/workflows/link-project.yml b/.github/workflows/link-project.yml index 7ee250c7a4..d9560624ab 100644 --- a/.github/workflows/link-project.yml +++ b/.github/workflows/link-project.yml @@ -11,4 +11,4 @@ jobs: template-project-url: https://github.com/orgs/the-events-calendar/projects/29 project-owner: 'tec-bot' base-branch-pattern: 'release/*' - name-prefix-remove: 'release/' + name-prefix-remove: 'release/' \ No newline at end of file diff --git a/bin/check-changelog.sh b/bin/check-changelog.sh new file mode 100644 index 0000000000..ff748d5883 --- /dev/null +++ b/bin/check-changelog.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +BASE=${1-origin/master} +HEAD=${2-HEAD} + +# Get only added files from git diff. +CHANGELOG_FILES=$(git diff --name-only --diff-filter=A "$BASE" "$HEAD" | grep '^changelog\/') + +if [[ -n "$CHANGELOG_FILES" ]]; then + echo "Found changelog file(s):" + echo "$CHANGELOG_FILES" +else + echo "::error::No changelog found." + echo "Add at least one changelog file for your PR by running: npm run changelog" + echo "Choose *patch* to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times." + echo "Remove changelog in readme.txt and changelog.md if you have already added them in your PR." + exit 1 +fi + +echo "Validating changelog files..." +CHECK=$(./vendor/bin/changelogger validate --gh-action) +if [[ -z "$CHECK" ]]; then + echo "All changelog files are valid." +else + echo $CHECK + exit 1 +fi \ No newline at end of file diff --git a/bin/class-tec-changelog-formatter.php b/bin/class-tec-changelog-formatter.php new file mode 100644 index 0000000000..f6a9c7ff80 --- /dev/null +++ b/bin/class-tec-changelog-formatter.php @@ -0,0 +1,224 @@ + "\n" ] ); + $changelog = strtr( $changelog, [ "\r" => "\n" ] ); + while ( strpos( $changelog, "\t" ) !== false ) { + $changelog = preg_replace_callback( + '/^([^\t\n]*)\t/m', + function ( $m ) { + return $m[1] . str_repeat( ' ', 4 - ( mb_strlen( $m[1] ) % 4 ) ); + }, + $changelog + ); + } + + // Remove title. Check if the first line containing the defined title, and remove it. + $changelog_parts = explode( "\n", $changelog, 2 ); + $first_line = $changelog_parts[0] ?? ''; + $remaining = $changelog_parts[1] ?? ''; + + if ( false !== strpos( $first_line, $this->title ) ) { + $changelog = $remaining; + } + + // Entries make up the rest of the document. + $entries = []; + preg_match_all( '/^###\s+\[([^\n=]+)\]\s+([^\n=]+)([\s\S]*?)(?=^###\s+|\z)/m', $changelog, $version_sections ); + + foreach ( $version_sections[0] as $section ) { + $heading_pattern = '/^### +\[([^\] ]+)\] (.+)/'; + // Parse the heading and create a ChangelogEntry for it. + preg_match( $heading_pattern, $section, $heading ); + if ( ! count( $heading ) ) { + throw new InvalidArgumentException( "Invalid heading: $heading" ); + } + + $version = $heading[1]; + $timestamp = $heading[2]; + if ( $timestamp === $this->get_unreleased_date() ) { + $timestamp = null; + $entry_timestamp = new DateTime( 'now', new DateTimeZone( 'UTC' ) ); + } else { + try { + $timestamp = new DateTime( $timestamp, new DateTimeZone( 'UTC' ) ); + } catch ( \Exception $ex ) { + throw new InvalidArgumentException( "Heading has an invalid timestamp: $heading", 0, $ex ); + } + if ( strtotime( $heading[2], 0 ) !== strtotime( $heading[2], 1000000000 ) ) { + throw new InvalidArgumentException( "Heading has a relative timestamp: $heading" ); + } + $entry_timestamp = $timestamp; + } + + $entry = $this->newChangelogEntry( + $version, + [ + 'timestamp' => $timestamp, + ] + ); + + $entries[] = $entry; + $content = trim( preg_replace( $heading_pattern, '', $section ) ); + + if ( '' === $content ) { + // Huh, no changes. + continue; + } + + // Now parse all the subheadings and changes. + while ( '' !== $content ) { + $changes = []; + $rows = explode( "\n", $content ); + foreach ( $rows as $row ) { + $is_entry = substr( $row, 0, 1 ) === $this->bullet; + + // It's a multi line entry - add them to previous as content unformatted. + if ( ! $is_entry ) { + $changes[ count( $changes ) - 1 ]['content'] .= "\n" . $row; + continue; + } + + $row = trim( $row ); + $row = preg_replace( '/\\' . $this->bullet . '/', '', $row, 1 ); + + $row_segments = explode( $this->separator, $row, 2 ); + + if ( count( $row_segments ) !== 2 ) { + // Current row (change entry) does not have correct format. + // It usually happens before migrating to Jetpack Changelogger. + throw new Exception( 'Change entry does not have the correct format. Please update it manually and run this command again. Change entry: ' . $row ); + } + + array_push( + $changes, + [ + 'subheading' => trim( $row_segments[0] ), + 'content' => trim( $row_segments[1] ), + ] + ); + } + + foreach ( $changes as $change ) { + $entry->appendChange( + $this->newChangeEntry( + [ + 'subheading' => $change['subheading'], + 'content' => $change['content'], + 'timestamp' => $entry_timestamp, + ] + ) + ); + } + $content = ''; + } + } + + $ret->setEntries( $entries ); + + return $ret; + } + + /** + * Write a Changelog object to a string. + * + * @param Changelog $changelog Changelog object. + * @return string + */ + public function format( Changelog $changelog ) { + $ret = ''; + + foreach ( $changelog->getEntries() as $entry ) { + $timestamp = $entry->getTimestamp(); + $release_date = null === $timestamp ? $this->get_unreleased_date() : $timestamp->format( $this->date_format ); + + $ret .= '### [' . $entry->getVersion() . '] ' . $release_date . "\n\n"; + + $prologue = trim( $entry->getPrologue() ); + if ( '' !== $prologue ) { + $ret .= "\n$prologue\n\n"; + } + + foreach ( $entry->getChanges() as $change ) { + $text = trim( $change->getContent() ); + if ( '' !== $text ) { + $ret .= $this->bullet . ' ' . $change->getSubheading() . ' ' . $this->separator . ' ' . $text . "\n"; + } + } + + $ret = trim( $ret ) . "\n\n"; + } + + $ret = $this->title . "\n\n" . trim( $ret ) . "\n"; + + return $ret; + } + + /** + * Get string used as the date for an unreleased version. + * + * @return string + */ + private function get_unreleased_date(): string { + return gmdate( 'Y' ) . '-xx-xx'; + } +} diff --git a/bin/process-changelog.sh b/bin/process-changelog.sh new file mode 100755 index 0000000000..d379f17781 --- /dev/null +++ b/bin/process-changelog.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +RELEASE_VERSION=${1-} +CURRENT_VERSION=${2-} +ACTION_TYPE=${3-generate} +RELEASE_DATE=${4-today} + +RELEASE_DATE=$( date "+%Y-%m-%d" -d "$RELEASE_DATE" ) # Release date formatted as YYYY-MM-DD + +SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" + +cd $SCRIPT_DIR/../ + +echo "RELEASE_DATE=$RELEASE_DATE" + +if [ "$ACTION_TYPE" == "amend-version" ]; then + sed -i "s/^### \[$CURRENT_VERSION\] .*$/### [$RELEASE_VERSION] $RELEASE_DATE/" changelog.md +else + if [ "$ACTION_TYPE" == "generate" ]; then + CHANGELOG_FLAG="" + echo "Generating the changelog entries." + else + CHANGELOG_FLAG="--amend" + echo "Amending the changelog entries." + fi + + # Run changelogger through the project's base dir. + ./vendor/bin/changelogger write --use-version="$RELEASE_VERSION" --release-date="$RELEASE_DATE" $CHANGELOG_FLAG --no-interaction --yes +fi + +CHANGELOG=$(awk '/^### / { if (p) { exit }; p=1; next } p && NF' changelog.md) + +# Escape backslash, new line and ampersand characters. The order is important. +CHANGELOG=${CHANGELOG//\\/\\\\} +CHANGELOG=${CHANGELOG//$'\n'/\\n} +CHANGELOG=${CHANGELOG//&/\\&} + +echo "CHANGELOG=$CHANGELOG" + +if [ "$ACTION_TYPE" == "amend-version" ]; then + sed -i "s/^= \[$CURRENT_VERSION\] .* =$/= [$RELEASE_VERSION] $RELEASE_DATE =/" readme.txt +else + if [ "$ACTION_TYPE" == "amend" ]; then + perl -i -p0e "s/= \[$RELEASE_VERSION\].*? =(.*?)(\n){2}(?==)//s" readme.txt # Delete the existing changelog for the release version first + fi + + sed -ri "s|(== Changelog ==)|\1\n\n= [$RELEASE_VERSION] $RELEASE_DATE =\n\n$CHANGELOG|" readme.txt +fi \ No newline at end of file diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000000..c328eb26fb --- /dev/null +++ b/changelog.md @@ -0,0 +1,1443 @@ +# Changelog + +### [5.3.0.5] 2024-07-11 + +* Fix - Ensure compatibility with WordPress 6.6 for removed polyfill `regenerator-runtime`. [TECTRIA-149] + +### [5.3.0.4] 2024-06-18 + +* Fix - In installations where the plugins or wp-content directories were symbolic linked, assets would fail to be located. [TECTRIA-91] +* Language - 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted + +### [5.3.0.3] 2024-06-14 + +* Fix - Issue where scripts would not be enqueued as modules. [TECTRIA-86] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.3.0.2] 2024-06-14 + +* Fix - Windows Server compatibility issues with updated Assets handling. [TECTRIA-83] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.3.0.1] 2024-06-13 + +* Fix - Issue on which some assets (css,js) would not be located in WP installs which could have some WP constant modified (WP_CONTENT_DIR, WP_PLUGIN_DIR)[TECTRIA-83] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.3.0] 2024-06-11 + +* Feature - Refactor tribe_asset to use Stellar Assets. [TCMN-172] +* Tweak - Remove ini_check for deprecated safe_mode. [TBD] +* Tweak - Added information about upcoming promotion. [ET-2113] +* Tweak - Added filters: `tribe_asset_enqueue_{$asset->get_slug()}` +* Tweak - Removed filters: `tribe_asset_enqueue_{$asset->slug}`, `tribe_asset_pre_register` +* Language - 7 new strings added, 5 updated, 2 fuzzied, and 0 obsoleted + +### [5.2.7] 2024-05-14 + +* Fix - Add dir/filename of `event-automator` in the Plugins_API to fix CTA button text/links in the Help section. [TEC-5071] +* Tweak - Add `aria-hidden="true"` to icons so screen readers ignore it. [TEC-5019] +* Tweak - Updated our `query-string` javascript library to version 6.12. [TEC-5075] +* Tweak - Add Events Schedule Manager cards in the Help and App Shop admin pages to promote. [TEC-5058] +* Tweak - Prevent potential conflict by changing all calls to select2 to our internal select2TEC version. [TCMN-170] +* Tweak - Removed filters: `tec_help_calendar_faqs`, `tec_help_calendar_extensions`, `tec_help_calendar_products`, `tec_help_ticketing_faqs`, `tec_help_ticketing_extensions`, `tec_help_ticketing_products` +* Tweak - Changed views: `v2/components/icons/arrow-right`, `v2/components/icons/caret-down`, `v2/components/icons/caret-left`, `v2/components/icons/caret-right`, `v2/components/icons/search` +* Language - 6 new strings added, 161 updated, 2 fuzzied, and 0 obsoleted + +### [5.2.6] 2024-04-18 + +* Tweak - Added the `position` parameter for submenu pages on the admin pages class. [ET-1707] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.2.5] 2024-04-09 + +* Tweak - Improve compatibility with some theme styling re: calendar buttons. [TEC-5047] +* Tweak - Rename the `Controller_Test_Case` `setUp` and `tearDown` methods and annotate them with `@before` and `@after` annotations to improve PHPUnit version cross-compat. +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted. + +### [5.2.4] 2024-03-20 + +* Fix - Resolves a PHP 8.2 deprecation error on `Date_Utils` - `PHP Deprecated: strtotime(): Passing null to parameter #1 ($datetime) of type string is deprecated in /.../wp-content/plugins/the-events-calendar/common/src/Tribe/Date_Utils.php on line 256`. [ECP-1620] +* Fix - This fixes an issue where a template with a duplicate name but located in different folders is called it would always reference the first file. Updated the key to be unique by folder as well. [ECP-1627] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.2.3] 2024-02-19 + +* Tweak - Refactor JS logic to prevent ticketing of recurring events. [ET-1936] +* Fix - Better clean up of global space in Controller test case. [ET-1936] + +### [5.2.2] 2024-02-19 + +* Tweak - Added timezone param to our date utility function `Date_Utils::reformat`. [TEC-5042] +* Language - 1 new strings added, 4 updated, 6 fuzzied, and 0 obsoleted + +### [5.2.1] 2024-01-24 + +* Feature - Add the `get_country_based_on_code` method to the `Tribe__Languages__Locations` class. [EA-469] +* Feature - Enable auto-updates for premium plugins. +* Fix - Correct some signatures in the Tribe__Data class so they conform to the classes it implements, avoiding deprecation notices. [TEC-4992] +* Fix - Fix PHP 8.2 deprecation errors `PHP Deprecated: html_entity_decode(): Passing null to parameter #1 ($string) of type string is deprecated`. [ECP-1603] +* Tweak - Update the DataTables library used by Event Aggregator. [EA-479] +* Tweak - Improve the notice dismissal logic with more modern JavaScript and PHP. +* Tweak - Added filters: `tec_dialog_id`, `tribe_repository_{$this->filter_name}_before_delete` +* Language - 0 new strings added, 20 updated, 4 fuzzied, and 0 obsoleted + +### [5.2.0] 2024-01-22 + +* Feature - Add the `Tribe__Repository::first_id` method to fetch the first ID of a query. [ET-1490] +* Feature - Add the 'Tribe__Repository__Query_Filters::meta_not' method to work around costly meta queries. +* Feature - Add the 'Tribe__Repository__Query_Filters::meta_not' method to work around costly meta queries. +* Feature - Fire an action on Service Provider registration; register Service Providers on action with `Container::register_on_action`. +* Fix - Ensure we output valid html around
and
elements in an accessible way. [TEC-4812] +* Tweak - Add the `set_request_context( ?string $context)` and `get_request_context(): ?string` methods to the `Tribe__Repository__Interface` and classes. [ET-1813] +* Tweak - Ticketing & RSVP tab selected by default when clicking Help from the Tickets menu. [ET-1837] +* Language - 0 new strings added, 8 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.17] 2023-12-14 + +* Fix - Adding a param safe list to validate input for Select2 usage on AJAX requests. [BTRIA-2148] +* Language - 0 new strings added, 24 updated, 2 fuzzied, and 0 obsoleted + +### [5.1.16] 2023-12-13 + +* Tweak - Include Wallet Plus on Add-Ons Page. [ET-1932] +* Tweak - Include Wallet Plus on Help Page. [ET-1931] +* Language - 7 new strings added, 54 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.15.2] 2023-12-04 + +* Fix - Ensure correct access rights to JSON-LD data depending on the user role. [TEC-4995] +* Language - 0 new strings added, 21 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.15.1] 2023-11-20 + +* Security - Ensure all password protected posts have their settings respected. [TCMN-167] + +### [5.1.15] 2023-11-16 + +* Fix - Ensure the JavaScript module assets are properly getting the `type="module"` added on all scenarios [ET-1921] +* Language - 0 new strings added, 11 updated, 1 fuzzied, and 2 obsoleted + +### [5.1.14] 2023-11-13 + +* Tweak - Added pre-check filter `tribe_repository_{$this->filter_name}_before_delete` to enable overriding the `Repository` delete operation. [TEC-4935] +* Fix - Resolved several `Deprecated: Creation of dynamic property` warnings on: `\Tribe__Field::$allow_clear, $type, $class, $label, $label_attributes, $error, $tooltip, $size, $html, $options, $value, $conditional, $placeholder, $display_callback, $if_empty, $can_be_empty, $clear_after, $tooltip_first` and `\Tribe__Settings_Tab::$priority, public $fields, $show_save, $display_callback, $network_admin` [BTRIA-2088] +* Language - 2 new strings added, 9 updated, 1 fuzzied, and 2 obsoleted. + +### [5.1.13.1] 2023-11-10 + +* Fix - Update Telemetry library to prevent potential fatals. [TEC-4978] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.13] 2023-11-08 + +* Tweak - Ensure stability of opt-in data. + +### [5.1.12] 2023-11-01 + +* Tweak - Ticketing & RSVP tab selected by default when clicking Help from the Tickets menu. [ET-1837] +* Language - 0 new strings added, 124 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.11] 2023-10-19 + +* Tweak - Changed scope of the Tribe__Editor__Blocks__Abstract::$namespace property to protected. [TEC-4792] +* Fix - AM/PM time formats `g:i A` and `g:i a` are now respected for the French locale. [TEC-4807] +* Tweak - Pass the appropriate arguments to telemetry opt-ins. +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.10.1] 2023-10-12 + +* Fix - Correct a problem that can cause a fatal when plugins are deactivated in a certain order. [TEC-4951] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.10] 2023-10-11 + +* Tweak - Add the `tec_cache_listener_save_post_types` filter to allow filtering the post types that should trigger a cache invalidation on post save. [ET-1887] +* Tweak - Updates to the Date_Based banner functionality. [ET-1890] +* Language - 2 new strings added, 2 updated, 1 fuzzied, and 2 obsoleted + +### [5.1.9] 2023-10-03 + +* Tweak - Updated focus state for relevant elements to have default outline ensuring improved accessibility and consistent browser behavior. [TEC-4888] +* Fix - Resolved "Uncaught ReferenceError: lodash is not defined" error by adding `lodash` as a dependency for the Block Editor Assets. [ECP-1575] +* Language - 0 new strings added, 9 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.8.1] 2023-09-28 + +* Fix - Correct issue where Telemetry would register active plugins multiple times. [TEC-4920] +* Fix - Ensure Telemetry's `register_tec_telemetry_plugins()` only runs on the plugins page i.e. on plugin activation. [TEC-4920] + +### [5.1.8] 2023-09-13 + +* Tweak - Compress the size of all images used by the Common module, to reduce the size of the plugin +* Tweak - Set background image to none on the button element to prevent general button styling overrides. [ET-1815] +* Tweak - Add the `set_request_context( ?string $context)` and `get_request_context(): ?string` methods to the `Tribe__Repository__Interface` and classes. [ET-1813] +* Tweak - Ticketing & RSVP tab selected by default when clicking Help from the Tickets menu. [ET-1837] + +### [5.1.7] 2023-09-05 + +* Fix - Broken UI on the WYSIWYG field in the Additional Content section of the admin display settings. [TEC-4861] +* Fix - Resolves a plugin integration bug that happens in certain scenarios with instantiating `Firebase\JWT` library classes. In these scenarios you would see a fatal error similar to `Uncaught TypeError: TEC\Common\Firebase\JWT\JWT::getKey(): Return value must be of type TEC\Common\Firebase\JWT\Key, OpenSSLAsymmetricKey returned..` [TEC-4866] +* Fix - WP Rewrite was being incorrectly initialized in some scenarios due to container DI, and causing some 404s. This was affecting classes that extend the `Tribe__Rewrite`. [TEC-4844] +* Tweak - Add checks to ensure that settings don't pass null to wp_kses() or esc_attr() [TBD] +* Language - 0 new strings added, 6 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.6] 2023-08-15 + +* Feature - Add the 'Tribe__Repository__Query_Filters::meta_not' method to work around costly meta queries. + +### [5.1.5] 2023-08-15 + +* Feature - Fire an action on Service Provider registration; register Service Providers on action with `Container::register_on_action`. +* Tweak - Added filters: `tec_block_has_block`, `tec_block_{$block_name}_has_block`, `tec_common_rewrite_dynamic_matchers`, `tec_shortcode_aliased_arguments`, `tec_shortcode_{$registration_slug}_aliased_arguments` +* Language - 0 new strings added, 23 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.5] 2023-08-15 + +* Version - This version was skipped due to a merge and packaging issue. + +### [5.1.4] 2023-08-10 + +* Feature - Fire an action on Service Provider registration; register Service Providers on action with `Container::register_on_action`. +* Fix - Make use of `wp_date` to format dates and avoid translation issues with translating month names in other languages. [ET-1820] +* Fix - Ensure we output valid html around
and
elements in an accessible way. [TEC-4812] +* Tweak - Correct some issues around PHP 8.1 deprecations. [TEC-4871] +* Tweak - Added filters: `tec_integration:should_load`, `tec_integration:{$parent}/should_load`, `tec_integration:{$parent}/{$type}/should_load`, `tec_integration:{$parent}/{$type}/{$slug}/should_load`, `tec_debug_info_sections`, `tec_site_heath_event_stati`, `tec_debug_info_field_get_{$param}`, `tec_debug_info_field_{$field_id}_get_{$param}`, `tec_debug_info_section_get_{$param}`, `tec_debug_info_section_{$section_slug}_get_{$param}`, `tec_common_timed_option_is_active`, `tec_common_timed_option_name`, `tec_common_timed_option_default_value`, `tec_common_timed_option_pre_value`, `tec_common_timed_option_value`, `tec_common_timed_option_pre_exists`, `tec_common_timed_option_exists`, `tec_telemetry_migration_should_load`, `tec_common_telemetry_permissions_url`, `tec_common_telemetry_terms_url`, `tec_common_telemetry_privacy_url`, `tec_common_telemetry_show_optin_modal`, `tec_telemetry_slugs`, `tec_admin_update_page_bypass`, `tec_disable_logging`, `tec_common_parent_plugin_file`, `tec_model_{$this->get_cache_slug()}_read_cache_properties`, `tec_model_{$this->get_cache_slug()}_put_cache_properties`, `tec_pue_invalid_key_notice_plugins`, `tec_pue_expired_key_notice_plugins`, `tec_pue_upgrade_key_notice_plugins`, `tec_common_rewrite_localize_matcher` +* Tweak - Removed filters: `tribe_google_data_markup_json`, `tribe_general_settings_tab_fields` +* Tweak - Added actions: `tec_container_registered_provider`, `tec_container_registered_provider_`, `tribe_log`, `tec_telemetry_auto_opt_in`, `tec_common_telemetry_preload`, `tec_common_telemetry_loaded`, `stellarwp/telemetry/optin`, `tec_locale_translations_load_before`, `tec_locale_translations_load_after`, `tec_locale_translations_restore_before`, `tec_locale_translations_restore_after` +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.1.3] 2023-07-13 + +* Tweak - Prevents Telemetry servers from being hit when migrating from Freemius to Telemetry more than once. +* Tweak - Various improvements to event creation to improve sanitization. +* Tweak - Update Stellar Sale banner. [TEC-4841] +* Fix - Properly handle plugin paths on Windows during telemetry booting. [TEC-4842] +* Language - 16 new strings added, 24 updated, 1 fuzzied, and 1 obsoleted. + +### [5.1.2.2] 2023-06-23 + +* Fix - Ensure there is backwards compatibility with Extensions and Pods. + +### [5.1.2.1] 2023-06-22 + +* Fix - Prevent Telemetry from being initialized and triggering a Fatal when the correct conditionals are not met. + +### [5.1.2] 2023-06-22 + +* Fix - Lock our container usage(s) to the new Service_Provider contract in tribe-common. This prevents conflicts and potential fatals with other plugins that use a di52 container. + +### [5.1.1.2] 2023-06-21 + +* Fix - Adjusted our PHP Exception usage to protect against third-party code causing fatals when attempting to access objects that have not been initialized. + +### [5.1.1.1] 2023-06-20 + +* Fix - Adding Configuration feature, to enable simple feature flag and other checks, with less boilerplate. See [readme](https://github.com/the-events-calendar/tribe-common/pull/1923/files#diff-cf03646ad083f81f8ec80bbdd775d8ac45c75c7bc1bf302f6fb06dfa34a1dc64) for more details. [ECP-1505] +* Fix - In some scenarios the garbage collection of our query filters would slow page speeds. Removed garbage collection for the filters. [ECP-1505] +* Fix - Increase the reliability of Telemetry initialization for Event Tickets loading [TEC-4836] + +### [5.1.1] 2023-06-15 + +* Feature - Include a Integrations framework that was ported from The Events Calendar. +* Enhancement - Made settings field widths more uniform and mobile-friendly. [ET-1734] +* Fix - Change image field styling for a better look and user experience. + +### [5.1.0] 2023-06-14 + +* Feature - Replace Freemius with Telemetry - an in-house info system. [TEC-4700] +* Feature - Add architecture for adding our plugins to the Site Health admin page. [TEC-4701] +* Fix - Elementor and other themes would inadvertently override styles on the tickets button, when the global styles were set. This hardens the common button (rsv/ticket button) styles a bit more. [TEC-4794] +* Tweak - Update our container architecture. +* Tweak - Added filters: `tec_common_rewrite_localize_matcher` +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.17] 2023-05-08 + +* Feature - Add the `TEC\Provider\Controller` abstract class to kick-start Controllers and the `TEC\Common\Tests\Provider\Controller_Test_Case` class to test them. +* Fix - Fix for the fatal `PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function Firebase\JWT\JWT::encode(), 2 passed` from other plugins using a different version of the `Firebase\JWT` library. Setup a Strauss namespaced version for this library. [TEC-4635] +* Fix - Fixes a cache bug that showed up in ECP-1475. The underlying issue was cache would carry stale data and not clear with the `save_post` trigger being hit repeatedly. +* Fix - Minor button style hardening to prevent some common theme global style bleed, namely from Elementor global styles. [TEC-4677] +* Tweak - Added filters: `tec_common_rewrite_localize_matcher` +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.15] 2023-04-10 + +* Fix - Update the Google Maps API setting url on the Troubleshooting page. [TEC-4728] +* Fix - Updates the Monolog repository to use TEC namespacing via Strauss, to provide more compatibility with other plugins. [TEC-4730] +* Tweak - Replace the use of `FILTER_SANITIZE_STRING` in favour of `tec_sanitize_string` to improve PHP 8.1 compatibility. [TEC-4666] +* Tweak - More flexible filtering of localized and dynamic matchers in the Rewrite component to allow easier rewrite rules translation. [TEC-4689] +* Tweak - Added filters: `tec_common_rewrite_localize_matcher` +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.14] 2023-04-03 + +* Fix - Fixed issue with "Upload Theme" button not working properly when a notification was displayed on the Theme page. [CT-77] +* Enhancement - Added an `email_list` validation check for validating a delimited string of valid email addresses. [ET-1621] +* Tweak - Fix styles for checkboxes and toggle, to have the description in the same line. [ET-1692] +* Language - 1 new strings added, 6 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.13] 2023-03-20 + +* Feature - Add the `is_editing_posts_list` method to the `Tribe__Context` class. [APM-5] +* Feature - Add the `Tribe__Context::is_inline_editing_post` method. +* Fix - Fix a false positive on checking if a cache value is set after cache expiration passed. +* Tweak - Extract `TEC\Common\Context\Post_Request_Type` class from `Tribe__Context` class; proxy post request type methods to it. +* Tweak - Removed actions: `tribe_log` +* Tweak - Changed views: `single-event`, `v2/day/event/featured-image`, `v2/latest-past/event/featured-image`, `v2/list/event/featured-image`, `v2/month/calendar-body/day/calendar-events/calendar-event/featured-image`, `v2/month/calendar-body/day/calendar-events/calendar-event/tooltip/featured-image`, `v2/month/mobile-events/mobile-day/mobile-event/featured-image`, `v2/widgets/widget-events-list/event/date-tag` + +### [5.0.12] 2023-03-08 + +* Enhancement - Added a way to customize the WYSIWYG editor field by passing in a `settings` parameter. [ET-1565] +* Feature - Added new toggle field for settings in the admin area. [ET-1564] + +### [5.0.11] 2023-02-22 + +* Tweak - PHP version compatibility bumped to PHP 7.4 +* Tweak - Version Composer updated to 2 +* Tweak - Version Node updated to 18.13.0 +* Tweak - Version NPM update to 8.19.3 +* Tweak - Reduce JavaScript bundle sizes for Blocks editor + +### [5.0.10] 2023-02-09 + +* Feature - Add new `get_contrast_color` and `get_contrast_ratio` methods to the color utility for determining contrasting colors. [ET-1551] +* Feature - Add the stellarwp/db library and configure it. +* Feature - Add the stellarwp/installer library and bootstrap it. +* Fix - Set max width to image in image setting field. [ET-1597] +* Fix - Added safeguard against the `rewrite_rules_array` filter being passed non-array values, avoids fatal. [TEC-4679] +* Tweak - Added filters: `tec_disable_logging` +* Language - 0 new strings added, 21 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.9] 2023-01-26 + +* Feature - Add Event Automator to Add-ons and Help page. [TEC-4660] +* Language - 7 new strings added, 140 updated, 1 fuzzied, and 2 obsoleted. + +### [5.0.8] 2023-01-19 + +* Fix - Correct handling of translated slugs in rewrite context. [TEC-3733] +* Fix - Handle the case where rewrite rules map to arrays avoiding fatal errors. [TEC-4567] +* Tweak - Allow disabling the Logger by setting the `TEC_DISABLE_LOGGING` constant or environment variable to truthy value or by means of the `tec_disable_logging` filter. [n/a] + +### [5.0.7] 2023-01-16 + +* Tweak - Added a dashboard notice for sites running PHP versions lower than 7.4 to alert them that the minimum version of PHP is changing to 7.4 in February 2023. +* Language - 1 new strings added, 0 updated, 1 fuzzied, and 2 obsoleted + +### [5.0.6] 2022-12-14 + +* Feature - Include `Timed_Options` as a storage for simple replacement for Flags, avoiding Transients for these cases to improve performance and reliability. [TEC-4413] +* Fix - Prevent calls to `supports_async_process` that were slowing down servers due to not stopping reliably once a decision was made [TEC-4413] +* Fix - Ensure the `clear country` icon resets the value as expect in the create/edit venue page. [TEC-4393] +* Tweak - Added filters: `tec_common_timed_option_is_active`, `tec_common_timed_option_name`, `tec_common_timed_option_default_value`, `tec_common_timed_option_pre_value`, `tec_common_timed_option_value`, `tec_common_timed_option_pre_exists`, `tec_common_timed_option_exists` +* Language - 0 new strings added, 21 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.5] 2022-12-08 + +* Tweak - Sync `tribe-common-styles` to its latest, in order to fix styling issues. [ETP-828] + +### [5.0.4] 2022-11-29 + +* Fix - Fixed a bug where the `Tribe\Utils\Taxonomy::prime_term_cache()` method would throw on invalid term results (thanks @shawfactor). [TCMN-160] +* Tweak - Add some styling for the ECP View teasers. [TCMN-149] +* Tweak - Move the General and Display settings tab content to TEC. [TCMN-149] +* Tweak - Removed filters: `tribe_general_settings_tab_fields`. +* Language - 6 new strings added, 17 updated, 3 fuzzied, and 26 obsoleted. + +### [5.0.3] 2022-11-15 + +* Fix - Prevent `Lazy_String` from ever returning anything that is not a string, avoiding PHP 8.1 warnings. Props @amiut +* Fix - Ensure the TEC timezone settings are applied correctly when using a combination of the WP Engine System MU plugin and Divi or Avada Themes. [TEC-4387] +* Fix - Ensure that when filtering script tags we return the expected string no matter what we're given. [TEC-4556] +* Language - 0 new strings added, 1 updated, 1 fuzzied, and 0 obsoleted. + +### [5.0.2.1] 2022-11-03 + +* Fix - Refactor the Post model code to avoid serialization/unserialization issues in object caching context. [TEC-4379] + +### [5.0.2] 2022-10-20 + +* Feature - Adds a new `by_not_related_to` repository method for retrieving posts not related to other posts via a meta_value [ET-1567] +* Fix - Update version of Firebase/JWT from 5.x to 6.3.0 +* Fix - Prevents fatal around term cache primer with empty object ID or term name. +* Fix - Prevent Warnings from Lazy_String on PHP 8.1 [5.0.6] +* Tweak - Support replacement license keys in premium products and services. +* Tweak - Deprecated the `Tribe__Settings_Manager::add_help_admin_menu_item()` method in favour of `Settings::add_admin_pages()`. [TEC-4443] +* Tweak - Add a function to Tribe__Date_Utils to determine if "now" is between two dates. [TEC-4454] +* Language - 0 new strings added, 14 updated, 1 fuzzied, and 0 obsoleted. + +### [5.0.1] 2022-09-22 + +* Fix - Avoid invoking unwanted callables with ORM post creation/updates. [ET-1560] +* Tweak - patch some PHP8 compatibility and ensure we don't try to test globals that might not be set. (props to @theskinnyghost for the implode fix!) [TEC-4453] +* Language - 0 new strings added, 1 updated, 1 fuzzied, and 0 obsoleted + +### [5.0.0.1] 2022-09-07 + +* Fix - Prevent `E_ERROR` from showing up when calling `tribe_context()->is( 'is_main_query' )` too early in execution. [TEC-4464] + +### [5.0.0] 2022-09-06 + +* Feature - Set the Logger logging threshold do DEBUG when WP_DEBUG is defined. +* Fix - Avoid fatal errors when transient notices are registered from inactive plugins. +* Tweak - Allow suppression of admin notices for specific plugins via the filters `tec_pue_expired_key_notice_plugins`, `tec_pue_invalid_key_notice_plugins`, and `tec_pue_upgrade_key_notice_plugins`. +* Language - 2 new strings added, 185 updated, 1 fuzzied, and 1 obsoleted + +### [4.15.5] 2022-08-15 + +* Feature - Added image field for settings in the admin area. [ET-1541] +* Feature - Added color field for settings in the admin area. [ET-1540] +* Tweak - Prevent a possible infinite hook loop. [ECP-1203] +* Language - 4 new strings added, 104 updated, 3 fuzzied, and 2 obsoleted. + +### [4.15.4.1] 2022-07-21 + +* Fix - Update Freemius to avoid PHP 8 fatals. [TEC-4330] + +### [4.15.4] 2022-07-20 + +* Tweak - Implement 2022 Stellar Sale banner. [TEC-4433] +* Tweak - Added filters: `tribe_{$this->slug}_notice_extension_date` +* Tweak - Changed views: `v2/components/icons/stellar-icon` +* Language - 2 new strings added, 4 updated, 1 fuzzied, and 0 obsoleted + +### [4.15.3] 2022-07-06 + +* Fix - Correct some hardcoded admin URLs. [ECP-1175] +* Tweak - Add a target ID for the EA Troubleshooting page link. [TEC-4403] + +### [4.15.2] 2022-06-08 + +* Fix - Only show Event Aggregator status on the troubleshooting page if Event Aggregator is accessible. [ET-1517] + +### [4.15.1] 2022-05-31 + +* Feature - Add Calendar Export icon as a template. [TEC-4176] +* Tweak - Add Stellar Discounts tab in Event Add-Ons +* Tweak - Element Classes now will support callbacks inside of arrays as well as non boolean values that are validated by `tribe_is_truthy` +* Tweak - Add Stellar Discounts tab in Event Add-Ons. [TEC-4302] +* Fix - On the import preview screen when ctrl/shift click to multi-select rows make sure all the in between rows are counted as selected. [EA-123] +* Language - 21 new strings added, 46 updated, 1 fuzzied, and 0 obsoleted + +### [4.15.0.1] 2022-05-23 + +* Fix - Check if function exists for `get_current_screen` to avoid a fatal if not. + +### [4.15.0] 2022-05-19 + +* Feature - Introducing new admin pages structure and updating the settings framework to have Settings on multiple pages. [ET-1335] +* Tweak - Add Stellar Discounts tab in Event Add-Ons +* Language - 0 new strings added, 150 updated, 0 fuzzied, and 43 obsoleted + +### [4.14.20.1] 2022-05-12 + +* Tweak - Modify PUE Checker class to support faster and more reliable license checking [ET-1513] + +### [4.14.20] 2022-05-11 + +* Fix - Fixed missing target and rel attribute for admin view links. [ETP-792] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.19] 2022-04-27 + +* Tweak - Add long-term license validation storage using options in addition to transients. [ET-1498] +* Language - 0 new strings added, 26 updated, 1 fuzzied, and 1 obsoleted. + +### [4.14.18.1] 2022-04-28 + +* Fix - Undo reversion. + +### [4.14.18] 2022-04-28 + +* Feature - First iteration of changes for Full Site Editor compatibility. [TEC-4262] +* Tweak - Added EA status row showing if it is enabled or disabled in the Event Aggregator system status [TCMN-134] +* Tweak - Added actions: `tec_start_widget_`, `tec_end_widget_`. +* Fix - Ensure the Classic Editor "forget" parameter overrides all else when loading the editor w/Classic Editor active. [TEC-4287] +* Fix - Do not autoload options used to save batched data. [EA-427] +* Fix - Update bootstrap logic to make sure Common will correctly load completely in the context of plugin activations requests. [TEC-4338] +* Language - 1 new strings added, 29 updated, 1 fuzzied, and 2 obsoleted. + +### [4.14.17] 2022-04-05 + +* Feature - New customizable upsell element to offer upgrades, additions and services that are available. [ET-1351] +* Fix - Updated Dropdown functionality to work with PHP8, thanks @huubl. [CE-141] +* Tweak - Changed the wording to include upgrading required plugins to reduce confusion. [TCMN-132] +* Language - 2 new strings added, 1 updated, 1 fuzzied, and 1 obsoleted + +### [4.14.16] 2022-03-15 + +* Fix - Modify logic of `filter_modify_to_module` so that we can safely set as module those assets that are loaded in themes without support for `html5`, `scripts`. [ET-1447] +* Fix - Ensure our full common variables file requires the skeleton variables. [TEC-4308] +* Fix - Correct Troubleshooting Menu Item label in Admin Bar. [TEC-4310] +* Language - 0 new strings added, 24 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.15] 2022-03-01 + +* Tweak - Update version of Freemius to 2.4.3. + +### [4.14.14] 2022-02-24 + +* Feature - The PUE Checker now stores a transient with the status of the last license key check. +* Language - 0 new strings added, 49 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.13] 2022-02-15 + +* Tweak - Prevent scripts from loading on all Admin pages, only load on pages needed. +* Tweak - Performance improvements around Block Asset loading and redundancy. +* Tweak - Internal caching of values to reduce `get_option()` call count. +* Tweak - Switch from `sanitize_title_with_dashes` to `sanitize_key` in a couple instances for performance gains. +* Tweak - Prevent asset loading from repeating calls to plugin URL and path, resulting in some minor performance gains. +* Fix - Update the way we handle Classic Editor compatibility. Specifically around user choice. [TEC-4016] +* Fix - Remove incorrect reference for moment.min.js.map [TEC-4148] +* Fix - Fixed troubleshooting page styles for standalone Event Tickets setup [ET-1382] +* Fix - Remove singleton created from a deprecated class. +* Language - 0 new strings added, 38 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.12] 2022-01-17 + +* Fix - Prevent Onboarding assets from loading on the admin when not needed. +* Tweak - Included new filter `tec_system_information` allowing better control over the Troubleshooting Help page. + +### [4.14.11] 2022-01-10 + +* Fix - Alter logic to not test regex with missing delimiters fail them as invalid immediately. [TEC-4180] +* Language - 0 new strings added, 4 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.10] 2021-12-20 + +* Fix - Initial steps to make The Events Calendar compatible with PHP 8.1 + +### [4.14.9] 2021-12-14 + +* Feature - Add loader template for the admin views. [VE-435] +* Feature - Included Price, Currency and Value classes to improve monetary handling from Common [ET-1331] +* Tweak - Included End of Year Sale promotion to the General Settings panel and banner. [TCMN-129] +* Fix - Prevent PHP 8 warnings when using extensions. (props to @huubl for this fix!) [TEC-4165] +* Fix - Modify the encoding for Help Page data to enable a better experience when sharing with support. +* Language - 5 new strings added, 4 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.8] 2021-11-17 + +* Feature - Add link to TEC customizer section in admin menu and on Event->Settings->Display page [TEC-4126] +* Feature - Adding Onboarding functionality, featuring `Tours` and `Hints`. +* Tweak - Added the `tribe_repository_{$filter_name}_pre_first_post`, `tribe_repository_{$filter_name}_pre_last_post`, and `tribe_repository_{$filter_name}_pre_get_ids_for_posts` actions. (Props to @sc0ttkclark) +* Language - 10 new strings added, 3 updated, 1 fuzzied, and 0 obsoleted + +### [4.16.7] 2021-11-04 + +* Feature - Added Black Friday promo to the General Settings panel. [TCMN-127] +* Tweak - Update Black Friday banner. [TCMN-126] + +### [4.14.6] 2021-10-12 + +* Fix - Ensure all SVG elements have unique IDs to improve accessibility. [TEC-4064] +* Fix - Ensure the proper domain name is sent to PUE when validating licenses. [TCMN-122] +* Fix - Correct block use checks around the Classic Editor plugin. [TEC-4099] + +### [4.14.5] 2021-09-14 + +* Fix - Ensure all the content within the recent template changes section in the troubleshooting page is visible. [TEC-4062] +* Fix - Updated dropdowns controlled via ajax to return unescaped html entities instead of the escaped version. [CE-97] +* Fix - Ensure Troubleshooting page has the required DOM pieces and the call to TEC.com works as expected. [TEC-4052]w +* Fix - Updated dropdowns controlled via ajax to return unescaped html entities instead of the escaped version. [CE-97] +* Language - 6 new strings added, 88 updated, 1 fuzzied, and 2 obsoleted + +### [4.14.4] 2021-08-31 + +* Tweak - Separation of the CSS variables and the Media Queries which are still compiled into the build Assets. +* Language - 0 new strings added, 22 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.3] 2021-08-24 + +* Feature - Added a new Warning dialog for the Dialog API. [ECP-901] +* Feature - Alter common postcss to leverage exposed namespaced custom properties from common-styles. [TCMN-104] +* Feature - Add new custom Customizer controls - Number, Range Slider, Toggle. [TEC-3897] +* Tweak - Added a `tribe_post_id` filter to `post_id_helper` in the Main class. +* Tweak - Alter Customizer and Section objects to be more versatile. [TCMN-104] +* Tweak - Split pcss variable imports so we only import hte necessary variables for skeleton, and don't import more than once. [TCMN-104] +* Tweak - added new `get_hex_with_hash` function to Tribe/Utils/Color.php to reduce need for manual string concatenation. [TCMN-104] +* Language - 0 new strings added, 50 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.2] 2021-08-17 + +* Feature - Redesign In-App help and troubleshooting pages. [TEC-3741] +* Fix - Fix issue of time selector for recurring rules not working for the block editor. [ECP-918] +* Fix - Ensure that $wp_query->is_search is false for calendar views that have no search term. [TEC-4012] +* Fix - Fix issue of month names not being translatable. This was caused by a missing moment js localization dependency. [ECP-739] +* Fix - Ensure that block editor scripts don't enqueue wp-editor on non-post block editor pages (widgets) [TEC-4028] +* Tweak - Alter Assets->register and tribe_asset() to accept a callable for assets. [TEC-4028] +* Tweak - Change label of API Settings tab to "Integrations". [TEC_4015] +* Language - 169 new strings added, 121 updated, 2 fuzzied, and 0 obsoleted + +### [4.14.1] 2021-07-21 + +* Feature - Add new notice for Stellar Sale. [TCMN-111] +* Feature - Create a Notice Service Provider and some initial tests. Move the BF sale notice to the new provider, as well as several of the others. [TCMN-111] +* Language - 0 new strings added, 24 updated, 1 fuzzied, and 0 obsoleted + +### [4.14.0] 2021-07-01 + +* Feature - Add new custom Customizer controls. +* Tweak - Add central compatibility functionality. A step in the move from using body classes to container classes. +* Language - 0 new strings added, 22 updated, 1 fuzzied, and 0 obsoleted + +### [4.13.5] 2021-06-23 + +* Feature - Add checkbox switch template and css [VE-353] +* Fix - Fix call to call_user_func_array( 'array_merge'... ) to make PHP8 compatible +* Tweak - Set up recurring, featured, and virtual icons to not rely on aria-labeled. [TEC-3396] +* Language - 3 new strings added, 1 updated, 2 fuzzied, and 0 obsoleted + +### [4.13.4] 2021-06-09 + +* Tweak - When using The Events Calendar and Event Tickets split the admin footer rating link 50/50. [ET-1120] +* Language - 1 new strings added, 2 updated, 1 fuzzied, and 1 obsoleted + +### [4.13.3] 2021-05-27 + +* Feature - Create new functionality in Tribe__Customizer__Section to allow for simpler creation of controls and sections. [TEC-3836] +* Feature - Added the `set_chunkable_transient` and `get_chunkable_transient` functions to the Cache class, see doc-blocks. [TEC-3627] +* Fix - Compatibility with Avada themes and third party plugins or themes loading `selectWoo` at the same time. [ECP-737] +* Tweak - Adjust the actions used to register and load the styles for the tooltip component [TEC-3796] +* Tweak - Update lodash to 4.17.21. [TEC-3885] +* Language - 0 new strings added, 2 updated, 1 fuzzied, and 0 obsoleted + +### [4.13.2] 2021-04-29 + +* Fix - Modify Select2 to clone the `jQuery.fn.select2` into `jQuery.fn.select2TEC` to avoid conflicting with third-party usage that didn't include the full version of Select2 [TEC-3748] +* Fix - Add filtering hooks to Cache Listener to allow modifications of which options trigger an occurrence. [ECP-826] [ECP-824] +* Language - 0 new strings added, 1 updated, 1 fuzzied, and 0 obsoleted + +### [4.13.1] 2021-04-22 + +* Feature - Add the hybrid icon as a template. [VE-303] +* Fix - Add compatibility for the new default theme, TwentyTwentyOne. [ET-1047] +* Language - 0 new strings added, 2 updated, 1 fuzzied, and 0 obsoleted + +### [4.13.0.1] 2021-04-05 + +* Fix - Reduce overhead of widget setup on every page load by setting up the widgets only as needed. [TEC-3833] + +### [4.13.0] 2021-03-29 + +* Feature - JavaScript and Styles can be set to be printed as soon as enqueued, allowing usages like shortcodes to not have jumpy styles. +* Feature - Include code around administration notices to support recurring notices. [TEC-3809] +* Fix - Makes sure Javascript extra data is loaded following WordPress architecture, respecting it's dependencies. +* Fix - Decode country picker names [TEC-3360] +* Tweak - Include a way for the context locations to be regenerated, with plenty of warnings about the risk [FBAR-36] +* Tweak - Remove deprecated filter `tribe_events_{$asset->type}_version` +* Tweak - Include Utils for dealing with Taxonomies with two methods, one for translating terms query into a repository arguments and another for translating shortcode arguments to term IDs. [ECP-728] +* Language - 3 new strings added, 304 updated, 8 fuzzied, and 2 obsoleted + +### [4.12.19] 2021-03-02 + +* Fix - Prevent problems when using longer array keys in `Tribe__Cache` so the correct non-persistent groups are referenced. [ET-1023] +* Language - 0 new strings added, 1 updated, 1 fuzzied, and 0 obsolete + +### [4.12.18] 2021-02-24 + +* Feature - JavaScript Assets can now be marked for async or defer, giving the asset manager more flexibility. +* Tweak - Modify all of the jQuery to be compatible with 3.5.X in preparation for WordPress 5.7 [TCMN-99] +* Fix - Ensure we don't enqueue widget customizer styles before the widget stylesheets. [ECP-574] +* Tweak - Created templates for admin Widgets form `admin-views/widgets/components/fields.php`, `admin-views/widgets/components/form.php`, `admin-views/widgets/components/fields/fieldset.php`, `admin-views/widgets/components/fields/section.php` ,`admin-views/widgets/components/fields/text.php`, `admin-views/widgets/components/fields/radio.php`, `admin-views/widgets/components/fields/checkbox.php`, `admin-views/widgets/components/fields/dropdown.php` [ECP-486] +* Language - 0 new strings added, 4 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.17] 2021-02-16 + +* Tweak - Allow usage of HTML within the Tribe Dialog button. [ETP-523] +* Language - 0 new strings added, 1 updated, 1 fuzzied, and 1 obsoleted + +### [4.12.16] 2021-01-28 + +* Fix - Increase the minimum width of the datetime dropdown when editing an event with the block editor. [TEC-3126] +* Fix - Ordering with an Array when using `Tribe__Repository` now properly ignores the global order passed as the default. [ECP-598] +* Fix - Resolve PHP 8.0 incompatibility with `__wakeup` and `__clone` visibility on Extension class. +* Fix - Prevent `tribe_sort_by_priority` from throwing warnings on `uasort` usage for PHP 8+ compatibility. +* Fix - Update Di52 to include PHP 8+ compatibility. +* Fix - Modify Freemius `class-fs-logger.php` file to prevent PHP 8+ warnings. +* Fix - Correctly handle *nix and Windows server paths that contain falsy values (e.g. `0` or spaces) when building template paths. [TEC-3712] +* Language - 3 new strings added, 3 updated, 2 fuzzied, and 1 obsoleted + +### [4.12.15.1] 2020-12-29 + +* Tweak - Point PUE URLs to the correct servers to avoid redirects. + +### [4.12.15] 2020-12-15 + +* Tweak - Add the `tribe_customizer_print_styles_action` to allow filtering the action the Customizer will use to print inline styles. [TEC-3686] +* Tweak - Allow disabling and enabling logging functionality by calling hte `tribe( 'log' )->disable()` and `tribe( 'log' )->enable()` methods on the Log service provider. +* Tweak - Update di52 containers to latest version for compatibility with WPStaging Pro. [TCMN-136] +* Language - 0 new strings added, 9 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.14] 2020-12-02 + +* Fix - Correctly handle multiple calls to the Repository `by` or `where` method that would cause issues in some Views [ECP-357] +* Fix - Do not try to store overly large values in transients when not using external object cache. [TEC-3615] +* Fix - Improve the Rewrite component to correctly parse and handle URLs containing accented chars. [TEC-3608] +* Tweak - Add the `Tribe__Utils__Array::merge_recursive_query_vars` method to correctly recursively merge nested arrays in the format used by `WP_Query` [ECP-357] +* Language - 0 new strings added, 109 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.13.1] 2020-11-20 + +* Fix - Prevent `tribe_get_first_ever_installed_version()` from having to spawn an instance of the Main class for version history. + +### [4.12.13] 2020-11-19 + +* Tweak - Allow deletion of non persistent keys from Tribe__Cache handling. [ET-917] +* Fix - Prevent items without children to be marked as groups in SelectWoo UI. [CE-106] +* Fix - Update the MomentJS version to 2.19.3 for the `tribe-moment` asset. [TEC-3676] +* Language - 0 new strings added, 3 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.12.1] 2020-11-19 + +* Tweak - Update version of Freemius to the latest version 2.4.1 [TEC-3668] +* Tweak - Include a new Notice style for Banners [TCMN-90] + +### [4.12.12] 2020-10-22 + +* Tweak - Add the `tribe_suspending_filter` function to run a callback detaching and reattaching a filter. [TEC-3587] +* Fix - Correctly register and handle Block Editor translations. [ECP-458] +* Fix - Update our use of Monolog logger to avoid issues when the plugins are used together with the WooCommerce Bookings plugin. [TEC-3638] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.11] 2020-10-19 + +* Fix - Dropdown AJAX search for taxonomy terms properly using SelectWoo search formatting, used in Community Events tags and Event categories. [CE-96] +* Language - 0 new strings added, 7 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.10] 2020-09-28 + +* Tweak - Adjust SelectWoo dropdown container attachment to include search and minimum results for search. [FBAR-139] +* Tweak - Move border style button styles to border-small and add various border button styles that match the solid button style. [FBAR-143] +* Tweak - Add the common views folder to the `Tribe__Template` lookup folders, the folder will be searched for matching template files only if no plugin-provided template was found. [FBAR-148] +* Tweak - Add the `tribe_template_common_path` filter to allow controlling the path of the template file provided by common. [FBAR-148] +* Tweak - Add the `tribe_without_filters` function to run a callback or closure suspending a set of filters and actions. [TEC-3579] +* Tweak - Added hover and focus colors, update default colors to make them accessible. [FBAR-165] +* Fix - Prevent `register_rest_route` from throwing notices related to `permission_callback` (props @hanswitteprins) +* Language - 0 new strings added, 2 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.9] 2020-09-21 + +* Tweak - Added Support for overriding individual arguments while registering group assets using `tribe_assets`. [TCMN-88] +* Tweak - Introduce the `tribe_doing_shortcode()` template tag to check if one of our shortcodes is being done. [ET-904] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.8] 2020-08-26 + +* Fix - Added IE11 compatibility for the toggles styles using `tribe-common-form-control-toggle` CSS class. [ET-865] +* Tweak - Improve regular expressions used to parse UTC timezones by removing non-required grouping and characters. [TCMN-68] +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.7] 2020-08-24 + +* Tweak - Allow SelectWoo dropdown to be attached to the container via the `data-attach-container` attribute. [FBAR-129] +* Tweak - Adjust the border radius of the form checkbox styles. [FBAR-126] +* Tweak - Adjust the layout styles for tribe common checkboxes and radios. [FBAR-126] [FBAR-127] +* Fix - Correctly handle array format query arguments while generating clean, or canonical, URLs; this solves some issues with Filter Bar and Views v2 where filters would be dropped when changing Views, paginating or using the datepicker. [FBAR-74, FBAR-85, FBAR-86] +* Language - 3 new strings added, 30 updated, 3 fuzzied, and 1 obsoleted + +### [4.12.6.1] 2020-08-17 + +* Fix - Pass extra props down to Modal component to allow addition of extra properties. [GTRIA-275] + +### [4.12.6] 2020-07-27 + +* Feature - Added the `tribe_normalize_orderby` function to parse and build WP_Query `orderby` in a normalized format. [TEC-3548] +* Feature - Added the `pluck`, `pluck_field`, `pluck_taxonomy` and `pluck_combine` methods to the `Tribe__Utils__Post_Collection` class to allow more flexible result handling when dealing with ORM result sets. [TEC-3548] +* Tweak - Adjust verbosity level to report connection issues with Promoter [PRMTR-404] +* Tweak - Modify default parameters on `tribe_register_rest_route` for `permission_callback` to prevent notices on WordPress 5.5. +* Tweak - Add the `tribe_asset_print_group` function to allow printing scripts or styles managed by the `tribe_assets` function in the page HTML. [ECP-374, ECP-376] +* Tweak - Add the `Tribe__Customizer::get_styles_scripts` method to allow getting the Theme Customizer scripts or styles managed managed by the plugins. [ECP-374, ECP-376] +* Tweak - Adjust verbosity level to report connection issues with Promoter. [PRMTR-404] +* Tweak - Include Virtual Events on Help Page sidebar widget [TEC-3547] +* Tweak - Update process to generate Promoter keys. [TCMN-85] +* Tweak - Register Promoter key as part of the WP Settings API. [TCMN-85] +* Tweak - Adjust level of access (protected to public) in 'Tribe__Promoter__Connector' class for external use of connector calls. [TCMN-82] +* Fix - Correct issue with Body_Classes removing classes added by other plugins. [TEC-3537] +* Fix - Set proper timezone on block editor when creating a new event. [TEC-3543] +* Fix - Properly enqueue the customizer styles to allow overriding of theme styles. [TEC-3531] +* Fix - Allow customizer styles to be applied on shortcode events views via the use of the filter `tribe_customizer_shortcode_should_print`. [ECP-450] +* Language - 1 new strings added, 22 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.5] 2020-06-24 + +* Feature - Added the `Tribe\Traits\With_Db_Lock` trait to provide methods useful to acquire and release database locks. +* Feature - Added the `tribe_db_lock_use_msyql_functions` filter to control whether Database locks should be managed using MySQL functions (default, compatible with MySQL 5.6+) or SQL queries. +* Tweak - Added case for manual control of field in dependency JS. +* Tweak - Add filter `tribe_promoter_max_retries_on_failure` to set the maximum number of attempts to notify promoter of a change on the WordPress installation, default to 3. +* Tweak - Register logs when notifications to Promoter failed and retry to notify until the limit of `tribe_promoter_max_retries_on_failure` is reached per notification. +* Fix - Backwards compatibility for `tribe_upload_image` allow to use the function on version of WordPress before `5.2.x` +* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.4] 2020-06-22 + +* Feature - Added the `Tribe\Traits\With_Meta_Updates_Handling` trait to provide methods useful in handling with meta. +* Fix - Prevent `$legacy_hook_name` and `$hook_name` template Actions and Filters to be fired if they are the same, preventing duplicated hook calls. +* Language - 10 new strings added, 27 updated, 1 fuzzied, and 2 obsoleted + +### [4.12.3.1] 2020-06-09 + +* Security - Remove deprecated usage of escapeMarkup in Select2 (props to miha.jirov for reporting this). + +### [4.12.3] 2020-05-27 + +* Fix - When using Block Editor we ensure that `apply_filters` for `the_content` on `tribe_get_the_content`, the lack of that filter prevented blocks from rendering. [TEC-3456] +* Tweak - Added the `bulk_edit` and `inline_save` locations to the Context. [VE-8] +* Language - 99 new strings added, 14 updated, 1 fuzzied, and 17 obsoleted + +### [4.12.2] 2020-05-20 + +* Feature - Added array utility methods: `parse_associative_array_alias` to build an array with canonical keys while taking alias keys into account and `filter_to_flat_scalar_associative_array` to help do so. Useful for aliasing shortcode arguments, for example. +* Feature - Added `tribe_extension_is_disallowed` filter for The Events Calendar's core plugins to deactivate an extension whose functionality has become duplicative or conflicting. +* Language - 1 new strings added, 1 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.1] 2020-05-11 + +* Feature - Added a helper method `Tribe__Plugins::is_active( 'slug' )` to check if a given plugin is active. +* Feature - Add entry points through filters to be able to add content after the opening html tag or before the closing html tag. [TCMN-65] +* Tweak - Extended support for namespaced classes in the Autoloader. +* Tweak - Make Customizer stylesheet enqueue filterable via `tribe_customizer_inline_stylesheets`. [TEC-3401] +* Tweak - Normalize namespaced prefixes with trailing backslash when registering them in the Autoloader. [VE-14] +* Language - 1 new strings added, 15 updated, 1 fuzzied, and 0 obsoleted + +### [4.12.0] 2020-04-23 + +* Feature - Management of Shortcodes now are fully controlled by Common Manager classes [TCMN-56] +* Fix - Prevent Blocks editor from throwing browser alert when leaving the page without any changes applied to the edited post. +* Fix - Clear the views HTML cache on language settings changes to ensure we don't mix up translated strings. [TEC-3326] +* Fix - Blocks editor CSS compatibility with WordPress 5.4 with new module classes: `.block-editor-inner-blocks` +* Fix - Add style override for