From e4751ed34ca9786ec70a9e03b8fe2d2493e8a610 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Thu, 12 Sep 2024 21:03:02 +0200 Subject: [PATCH 01/38] Closes #6833: Refactor to comply with phpstan level 4 --- inc/Addon/Cloudflare/Subscriber.php | 3 +- inc/Addon/WebP/Subscriber.php | 12 +- inc/Dependencies/Database/Base.php | 2 +- inc/Engine/Admin/Beacon/Beacon.php | 6 +- inc/Engine/Admin/Database/Optimization.php | 2 +- .../Metaboxes/PostEditOptionsSubscriber.php | 16 +- inc/Engine/Admin/Settings/Page.php | 16 +- inc/Engine/Admin/Settings/Render.php | 5 - inc/Engine/Admin/Settings/Settings.php | 14 +- .../CDN/RocketCDN/DataManagerSubscriber.php | 30 +-- .../CDN/RocketCDN/NoticesSubscriber.php | 6 +- inc/Engine/Cache/Purge.php | 6 +- .../Cache/PurgeExpired/PurgeExpiredCache.php | 10 +- .../Common/Database/Queries/AbstractQuery.php | 2 +- .../APIHandler/AbstractSafeAPIClient.php | 5 +- inc/Engine/Common/JobManager/JobProcessor.php | 2 +- inc/Engine/Common/Queue/Cleaner.php | 2 +- inc/Engine/Common/Queue/RUCSSQueueRunner.php | 2 +- inc/Engine/CriticalPath/APIClient.php | 4 +- inc/Engine/CriticalPath/Admin/Admin.php | 4 +- inc/Engine/CriticalPath/Admin/Settings.php | 2 +- inc/Engine/CriticalPath/CriticalCSS.php | 1 + .../CriticalPath/CriticalCSSSubscriber.php | 8 +- inc/Engine/CriticalPath/ProcessorService.php | 23 +- inc/Engine/License/API/User.php | 2 +- inc/Engine/License/Renewal.php | 22 +- inc/Engine/License/Upgrade.php | 6 +- .../Media/AboveTheFold/AJAX/Controller.php | 20 +- .../Media/AboveTheFold/Context/Context.php | 10 +- .../AboveTheFold/Frontend/Controller.php | 18 +- inc/Engine/Media/Emojis/EmojisSubscriber.php | 8 +- .../Media/Lazyload/CSS/Front/Extractor.php | 6 +- .../Lazyload/CSS/Front/MappingFormatter.php | 12 +- inc/Engine/Media/Lazyload/CSS/Subscriber.php | 25 +- inc/Engine/Media/Lazyload/Subscriber.php | 10 +- inc/Engine/Optimization/AssetsLocalCache.php | 4 - inc/Engine/Optimization/DeferJS/DeferJS.php | 3 + .../Optimization/DelayJS/Subscriber.php | 11 +- .../Optimization/DynamicLists/Subscriber.php | 35 +-- .../GoogleFonts/AbstractGFOptimization.php | 8 +- .../GoogleFonts/Admin/Settings.php | 2 +- .../Optimization/IEConditionalSubscriber.php | 2 +- .../Minify/CSS/AdminSubscriber.php | 12 +- .../Optimization/RUCSS/Admin/Subscriber.php | 2 +- .../Optimization/RUCSS/Controller/UsedCSS.php | 5 +- .../RUCSS/Database/Queries/UsedCSS.php | 1 + .../Optimization/RUCSS/Jobs/Manager.php | 7 +- .../Plugin/UpdaterApiCommonSubscriber.php | 12 +- inc/Engine/Plugin/UpdaterSubscriber.php | 9 +- .../Preload/Controller/CheckExcludedTrait.php | 2 +- .../Preload/Controller/LoadInitialSitemap.php | 4 - inc/Engine/Preload/Controller/PreloadUrl.php | 10 +- inc/Engine/Preload/Fonts.php | 6 +- inc/Engine/Preload/Links/Subscriber.php | 8 +- inc/Engine/Preload/Subscriber.php | 2 + inc/Engine/Saas/Admin/Notices.php | 2 +- inc/ThirdParty/Hostings/Cloudways.php | 5 +- inc/ThirdParty/Hostings/Godaddy.php | 2 +- inc/ThirdParty/Hostings/Pressidium.php | 2 +- inc/ThirdParty/Hostings/WPEngine.php | 4 +- inc/ThirdParty/Hostings/WPXCloud.php | 14 +- .../Plugins/CDN/CloudflareFacade.php | 4 +- .../Ecommerce/WooCommerceSubscriber.php | 8 +- .../Plugins/I18n/TranslatePress.php | 16 +- inc/ThirdParty/Plugins/I18n/WPML.php | 16 +- inc/ThirdParty/Plugins/Optimization/AMP.php | 2 +- .../Plugins/Optimization/Hummingbird.php | 16 +- inc/ThirdParty/Plugins/RevolutionSlider.php | 2 +- inc/ThirdParty/Plugins/SEO/Yoast.php | 8 +- inc/ThirdParty/Plugins/Smush.php | 2 +- inc/ThirdParty/Plugins/ThirstyAffiliates.php | 4 +- inc/ThirdParty/Themes/Avada.php | 2 +- inc/ThirdParty/Themes/ThemeResolver.php | 4 +- .../Images/Webp/class-imagify-subscriber.php | 4 +- inc/functions/admin.php | 2 +- inc/functions/posts.php | 2 +- phpstan.neon.dist | 2 +- .../switchToRucssNotice.php | 10 +- .../preserveAuthorizationToken.php | 1 - .../Cache/AdvancedCache/noticePermissions.php | 6 +- .../AdvancedCache/updateAdvancedCache.php | 16 +- .../WPCache/noticeWpConfigPermissions.php | 6 +- .../Engine/Cache/WPCache/updateWPCache.php | 10 +- .../CriticalCSS/processHandler.php | 6 - .../generateCriticalCssOnActivation.php | 2 +- .../ProcessorService/processGenerate.php | 2 +- .../CriticalPath/RESTWPPost/generate.php | 223 +++++++++--------- .../Subscriber/displayGoogleFontsEnabler.php | 26 -- .../Subscriber/registerSupportRoute.php | 2 - .../Hostings/Godaddy/cleanDomain.php | 6 +- .../ThirdParty/Hostings/Godaddy/cleanFile.php | 6 +- .../ThirdParty/Hostings/Godaddy/cleanHome.php | 6 +- .../Hostings/Pressidium/cleanPost.php | 14 +- .../Hostings/Pressidium/purgeUrl.php | 6 +- .../ThirdParty/Themes/Avada/cleanDomain.php | 5 +- .../Themes/Divi/handleSaveTemplate.php | 3 + .../inc/admin/rocketAfterSaveOptions.php | 3 +- .../Subscriber/saveCloudflareOptions.php | 2 +- .../maybeCleanCacheDomainChange.php | 2 +- .../AdvancedCache/updateAdvancedCache.php | 20 +- .../maybeGenerateCpcssMobile.php | 1 - .../Engine/CriticalPath/RESTWPPost/delete.php | 2 +- .../Frontend/Controller/addExclusions.php | 2 - .../Admin/Subscriber/maybeAddErrorNotice.php | 2 +- .../RUCSS/Admin/Database/deleteOldUsedCss.php | 4 +- .../Admin/Database/dropResourcesTable.php | 4 +- .../Database/dropRucssDatabaseTables.php | 4 +- .../Admin/Database/truncateUsedCssTable.php | 4 +- .../LoadInitialSitemap/loadInitialSitemap.php | 3 - .../CDN/Cloudflare/updateAddonField.php | 4 - .../Optimization/AMP/disableOptionsOnAmp.php | 2 +- .../Themes/Themify/disablingConcatOnRucss.php | 2 +- .../Images/Webp/EWWW_Subscriber/loadHooks.php | 3 +- .../rocketCleanPostCacheOnStatusChange.php | 2 +- 114 files changed, 401 insertions(+), 611 deletions(-) diff --git a/inc/Addon/Cloudflare/Subscriber.php b/inc/Addon/Cloudflare/Subscriber.php index 099d90c306..2ae8ba8f40 100644 --- a/inc/Addon/Cloudflare/Subscriber.php +++ b/inc/Addon/Cloudflare/Subscriber.php @@ -415,7 +415,8 @@ private function save_cloudflare_auto_settings( $auto_settings, $old_settings ) $result = []; // Set Cache Level to Aggressive. - $cf_cache_level = isset( $cf_old_settings[0] ) && 0 === $auto_settings ? $cf_old_settings[0] : 'aggressive'; + $cf_cache_level = 0 === $auto_settings ? $cf_old_settings[0] : 'aggressive'; + $result[] = $this->save_cache_level( $cf_cache_level ); $result[] = $this->save_cache_level( $cf_cache_level ); // Deactivate Rocket Loader to prevent conflicts. diff --git a/inc/Addon/WebP/Subscriber.php b/inc/Addon/WebP/Subscriber.php index 6fed28f9e4..2ac64b4cf8 100644 --- a/inc/Addon/WebP/Subscriber.php +++ b/inc/Addon/WebP/Subscriber.php @@ -58,11 +58,11 @@ public function __construct( Options_Data $options_data, Options $options_api, C $this->options_data = $options_data; $this->options_api = $options_api; - if ( ! isset( $server ) && ! empty( $_SERVER ) && is_array( $_SERVER ) ) { + if ( ! isset( $server ) && ! empty( $_SERVER ) ) { $server = $_SERVER; } - $this->server = $server && is_array( $server ) ? $server : []; + $this->server = $server ?: []; } /** @@ -118,7 +118,7 @@ public function convert_to_webp( $html ) { return $html . ''; } - if ( ! isset( $this->filesystem ) ) { + if ( ! isset( $this->filesystem ) ) { // @phpstan-ignore-line $this->filesystem = \rocket_direct_filesystem(); } @@ -202,8 +202,8 @@ public function sync_webp_cache_with_third_party_plugins() { * @param array $requests Requests to make. * @return array */ - public function add_accept_header( $requests ) { - if ( ! is_array( $requests ) || ! $this->options_data->get( 'cache_webp', 0 ) ) { + public function add_accept_header( array $requests ) { + if ( ! $this->options_data->get( 'cache_webp', 0 ) ) { return $requests; } @@ -214,7 +214,7 @@ function ( $request ) { return $request; }, $requests - ); + ); } /** diff --git a/inc/Dependencies/Database/Base.php b/inc/Dependencies/Database/Base.php index 20fcdb52d9..27e1f176bf 100644 --- a/inc/Dependencies/Database/Base.php +++ b/inc/Dependencies/Database/Base.php @@ -281,7 +281,7 @@ protected function set_vars( $args = array() ) { * * @since 1.0.0 * - * @return \wpdb Database interface, or False if not set + * @return \wpdb|bool Database interface, or False if not set */ protected function get_db() { diff --git a/inc/Engine/Admin/Beacon/Beacon.php b/inc/Engine/Admin/Beacon/Beacon.php index 858c03620f..84104d1b99 100644 --- a/inc/Engine/Admin/Beacon/Beacon.php +++ b/inc/Engine/Admin/Beacon/Beacon.php @@ -111,7 +111,7 @@ public function insert_script() { * @return string */ private function get_user_locale() { - if ( ! isset( $this->locale ) ) { + if ( empty( $this->locale ) ) { $this->locale = current( array_slice( explode( '_', get_user_locale() ), 0, 1 ) ); } @@ -121,8 +121,10 @@ private function get_user_locale() { * @since 3.6 * * @param string $locale The locale ID. + * + * @return string */ - return apply_filters( 'rocket_beacon_locale', $this->locale ); + return wpm_apply_filters_typed( 'string', 'rocket_beacon_locale', $this->locale ); } /** diff --git a/inc/Engine/Admin/Database/Optimization.php b/inc/Engine/Admin/Database/Optimization.php index 367ad7c7e6..f3bc436a51 100644 --- a/inc/Engine/Admin/Database/Optimization.php +++ b/inc/Engine/Admin/Database/Optimization.php @@ -56,7 +56,7 @@ public function get_options() { * @param array $options WP Rocket Database options. */ public function process_handler( $options ) { - if ( method_exists( $this->process, 'cancel_process' ) ) { + if ( method_exists( $this->process, 'cancel_process' ) ) { // @phpstan-ignore-line $this->process->cancel_process(); } diff --git a/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php b/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php index ab096d8ba7..2cb5bcc128 100644 --- a/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php +++ b/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php @@ -103,12 +103,10 @@ public function display_metabox() { * WP Rocket Metabox fields on post edit page. * * @param string[] $original_fields Metaboxes fields. + * + * @return array */ - $fields = apply_filters( 'rocket_meta_boxes_fields', $original_fields ); - - if ( ! is_array( $fields ) ) { - $fields = $original_fields; - } + $fields = wpm_apply_filters_typed( 'array', 'rocket_meta_boxes_fields', $original_fields ); $fields_attributes = []; @@ -178,12 +176,10 @@ public function save_metabox_options() { * Metaboxes fields. * * @param string[] $original_fields Metaboxes fields. + * + * @return array */ - $fields = apply_filters( 'rocket_meta_boxes_fields', $original_fields ); - - if ( ! is_array( $fields ) ) { - $fields = $original_fields; - } + $fields = wpm_apply_filters_typed( 'array', 'rocket_meta_boxes_fields', $original_fields ); $fields = array_keys( $fields ); diff --git a/inc/Engine/Admin/Settings/Page.php b/inc/Engine/Admin/Settings/Page.php index cefbed86c9..2e863c86e3 100644 --- a/inc/Engine/Admin/Settings/Page.php +++ b/inc/Engine/Admin/Settings/Page.php @@ -1172,7 +1172,7 @@ private function advanced_cache_section() { $ecommerce_plugin = _x( 'iThemes Exchange', 'plugin name', 'rocket' ); } elseif ( defined( 'JIGOSHOP_VERSION' ) && function_exists( 'jigoshop_get_page_id' ) ) { $ecommerce_plugin = _x( 'Jigoshop', 'plugin name', 'rocket' ); - } elseif ( defined( 'WPSHOP_VERSION' ) && class_exists( 'wpshop_tools' ) && method_exists( 'wpshop_tools', 'get_page_id' ) ) { + } elseif ( defined( 'WPSHOP_VERSION' ) && class_exists( 'wpshop_tools' ) && method_exists( 'wpshop_tools', 'get_page_id' ) ) { // @phpstan-ignore-line $ecommerce_plugin = _x( 'WP-Shop', 'plugin name', 'rocket' ); } @@ -1518,12 +1518,10 @@ private function cdn_section() { * Filters the addons names requiring the helper message. * * @param array $addons Array of addons. + * + * @return array */ - $addons = apply_filters( 'rocket_cdn_helper_addons', [] ); - - if ( ! is_array( $addons ) ) { - $addons = []; - } + $addons = wpm_apply_filters_typed( 'array', 'rocket_cdn_helper_addons', [] ); $addons = array_unique( $addons ); @@ -2107,8 +2105,8 @@ private function hidden_fields() { * @param string $tag_name Name of the HTML tag that will wrap each element of the list. * @return array */ - private function sanitize_and_format_list( $list, $tag_name = 'strong' ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.listFound - if ( ! is_array( $list ) || empty( $list ) ) { + private function sanitize_and_format_list( array $list, $tag_name = 'strong' ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.listFound + if ( empty( $list ) ) { return []; } @@ -2180,7 +2178,7 @@ public function enable_mobile_cache(): void { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line } $this->options->set( 'cache_mobile', 1 ); diff --git a/inc/Engine/Admin/Settings/Render.php b/inc/Engine/Admin/Settings/Render.php index 79c33a3eeb..04d927b15b 100644 --- a/inc/Engine/Admin/Settings/Render.php +++ b/inc/Engine/Admin/Settings/Render.php @@ -106,10 +106,6 @@ function ( array $item ) use ( $default ) { * @since 3.0 */ public function render_form_sections() { - if ( ! isset( $this->settings ) ) { - return; - } - foreach ( $this->settings as $id => $args ) { $default = [ 'title' => '', @@ -131,7 +127,6 @@ public function render_form_sections() { */ public function render_imagify_section() { - // @phpstan-ignore-next-line require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $plugin_data = get_transient( 'rocket_imagify_plugin_data' ); diff --git a/inc/Engine/Admin/Settings/Settings.php b/inc/Engine/Admin/Settings/Settings.php index 225411bd97..012a2eb641 100644 --- a/inc/Engine/Admin/Settings/Settings.php +++ b/inc/Engine/Admin/Settings/Settings.php @@ -333,7 +333,9 @@ public function sanitize_callback( $input ) { $input['automatic_cleanup_frequency'] = isset( $input['automatic_cleanup_frequency'], $cleanup_frequencies[ $input['automatic_cleanup_frequency'] ] ) ? $input['automatic_cleanup_frequency'] : $this->options->get( 'automatic_cleanup_frequency' ); - if ( 1 !== $input['schedule_automatic_cleanup'] && ( 'daily' !== $input['automatic_cleanup_frequency'] || 'weekly' !== $input['automatic_cleanup_frequency'] || 'monthly' !== $input['automatic_cleanup_frequency'] ) ) { + $allowed_frequencies = [ 'daily', 'weekly', 'monthly' ]; + + if ( 1 !== $input['schedule_automatic_cleanup'] && ! in_array( $input['automatic_cleanup_frequency'], $allowed_frequencies, true ) ) { $input['automatic_cleanup_frequency'] = $this->options->get( 'automatic_cleanup_frequency' ); } @@ -554,11 +556,7 @@ private function sanitize_fonts( $files ) { * @param string $file URL or path to a font file. * @return string|bool */ - private function sanitize_font( $file ) { - if ( ! is_string( $file ) ) { - return false; - } - + private function sanitize_font( string $file ) { $file = trim( $file ); if ( empty( $file ) ) { @@ -604,10 +602,6 @@ private function sanitize_font( $file ) { * @return array */ private function get_hosts() { - if ( isset( $this->hosts ) ) { - return $this->hosts; - } - $urls = (array) $this->options->get( 'cdn_cnames', [] ); $urls[] = home_url(); $urls = array_map( 'rocket_add_url_protocol', $urls ); diff --git a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php index df0239178a..cb97178903 100644 --- a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php +++ b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php @@ -64,7 +64,7 @@ public function update_user_token() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'unauthorized_user' ); - return; + return; // @phpstan-ignore-line } if ( empty( $_POST['value'] ) ) { @@ -72,13 +72,13 @@ public function update_user_token() { wp_send_json_success( 'user_token_deleted' ); - return; + return; // @phpstan-ignore-line } if ( ! is_string( $_POST['value'] ) ) { wp_send_json_error( 'invalid_token' ); - return; + return; // @phpstan-ignore-line } $token = sanitize_key( $_POST['value'] ); @@ -86,7 +86,7 @@ public function update_user_token() { if ( 40 !== strlen( $token ) ) { wp_send_json_error( 'invalid_token_length' ); - return; + return; // @phpstan-ignore-line } update_option( 'rocketcdn_user_token', $token ); @@ -113,7 +113,7 @@ public function enable() { wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } if ( empty( $_POST['cdn_url'] ) ) { @@ -121,7 +121,7 @@ public function enable() { wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } $cdn_url = filter_var( wp_unslash( $_POST['cdn_url'] ), FILTER_VALIDATE_URL ); @@ -131,7 +131,7 @@ public function enable() { wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } $this->cdn_options->enable( esc_url_raw( $cdn_url ) ); @@ -165,7 +165,7 @@ public function disable() { wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } $this->cdn_options->disable(); @@ -235,13 +235,13 @@ public function get_process_status() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line } if ( get_option( 'rocketcdn_process' ) ) { wp_send_json_success(); - return; + return; // @phpstan-ignore-line } wp_send_json_error(); @@ -285,13 +285,13 @@ public function validate_token_cname() { if ( ! current_user_can( 'rocket_manage_options' ) ) { $data['message'] = 'unauthorized_user'; wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } if ( empty( $_POST['cdn_url'] ) || empty( $_POST['cdn_token'] ) ) { $data['message'] = 'cdn_values_empty'; wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } $token = sanitize_key( $_POST['cdn_token'] ); @@ -300,13 +300,13 @@ public function validate_token_cname() { if ( ! $cdn_url ) { $data['message'] = 'cdn_url_invalid_format'; wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } if ( 40 !== strlen( $token ) ) { $data['message'] = 'invalid_token_length'; wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } $current_token = get_option( 'rocketcdn_user_token' ); @@ -315,7 +315,7 @@ public function validate_token_cname() { if ( ! empty( $current_token ) ) { $data['message'] = 'token_already_set'; wp_send_json_error( $data ); - return; + return; // @phpstan-ignore-line } update_option( 'rocketcdn_user_token', $token ); diff --git a/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php b/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php index 6dd6231853..f56df57a99 100644 --- a/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php +++ b/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php @@ -168,7 +168,7 @@ public function dismiss_notice() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'no permissions' ); - return; + return; // @phpstan-ignore-line } update_user_meta( get_current_user_id(), 'rocketcdn_dismiss_notice', true ); @@ -285,13 +285,13 @@ public function toggle_cta() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'no permissions' ); - return; + return; // @phpstan-ignore-line } if ( ! isset( $_POST['status'] ) ) { wp_send_json_error( 'missing status' ); - return; + return; // @phpstan-ignore-line } if ( 'big' === $_POST['status'] ) { diff --git a/inc/Engine/Cache/Purge.php b/inc/Engine/Cache/Purge.php index 3ca1d89c2b..cdd91dbee6 100644 --- a/inc/Engine/Cache/Purge.php +++ b/inc/Engine/Cache/Purge.php @@ -57,11 +57,7 @@ public function purge_dates_archives( $post ) { * @param boolean $pagination Purge also pagination. * @return void */ - public function purge_url( $url, $pagination = false ) { - if ( ! is_string( $url ) ) { - return; - } - + public function purge_url( string $url, $pagination = false ) { global $wp_rewrite; $parsed_url = $this->parse_url( $url ); diff --git a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php index 620b8494d8..758afaca9c 100644 --- a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php +++ b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php @@ -59,8 +59,10 @@ public function purge_expired_files( $lifespan ) { * * @param array $urls URLs that will be searched for old cache files. * @param int $file_age_limit Timestamp of the maximum age files must have. + * + * @return array */ - $urls = apply_filters( 'rocket_automatic_cache_purge_urls', $urls, $file_age_limit ); + $urls = wpm_apply_filters_typed( 'array', 'rocket_automatic_cache_purge_urls', $urls, $file_age_limit ); if ( ! is_array( $urls ) ) { // I saw what you did ಠ_ಠ. @@ -76,7 +78,7 @@ public function purge_expired_files( $lifespan ) { $urls = array_unique( $urls ); - if ( empty( $this->filesystem ) ) { + if ( empty( $this->filesystem ) ) { // @phpstan-ignore-line $this->filesystem = rocket_direct_filesystem(); } @@ -380,8 +382,8 @@ private function is_dir_empty( $dir_path ) { * * @since 3.8 * - * @param int $old_lifespan Old value in minutes. - * @param int $old_lifespan_unit Old value of unit. + * @param int $old_lifespan Old value in minutes. + * @param string $old_lifespan_unit Old value of unit. * * @return void */ diff --git a/inc/Engine/Common/Database/Queries/AbstractQuery.php b/inc/Engine/Common/Database/Queries/AbstractQuery.php index ec652ea0da..a0ef247be2 100644 --- a/inc/Engine/Common/Database/Queries/AbstractQuery.php +++ b/inc/Engine/Common/Database/Queries/AbstractQuery.php @@ -45,7 +45,7 @@ public function get_row( string $url, bool $is_mobile = false ) { * * @param int $row_id DB Row ID. * - * @return array|false + * @return array|bool|object false if no row found, array if row found. */ public function get_row_by_id( int $row_id ) { if ( ! self::$table_exists && ! $this->table_exists() ) { diff --git a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php index 38ea96f087..48306c2b5d 100644 --- a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php +++ b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php @@ -72,6 +72,9 @@ private function send_request( $method, $params = [], $safe = false ) { $params['method'] = strtoupper( $method ); + /** + * @var WP_Error|array $response + */ $response = $this->send_remote_request( $api_url, $method, $params, $safe ); if ( is_wp_error( $response ) ) { @@ -80,7 +83,7 @@ private function send_request( $method, $params = [], $safe = false ) { } $body = wp_remote_retrieve_body( $response ); - if ( empty( $body ) || ( is_array( $response ) && ! empty( $response['response']['code'] ) && 200 !== $response['response']['code'] ) ) { + if ( empty( $body ) || ( ! empty( $response['response']['code'] ) && 200 !== $response['response']['code'] ) ) { $this->set_timeout_transients( $previous_expiration ); return new WP_Error( 500, __( 'Not valid response.', 'rocket' ) ); } diff --git a/inc/Engine/Common/JobManager/JobProcessor.php b/inc/Engine/Common/JobManager/JobProcessor.php index a6e4a8fa7f..87fc294103 100644 --- a/inc/Engine/Common/JobManager/JobProcessor.php +++ b/inc/Engine/Common/JobManager/JobProcessor.php @@ -524,7 +524,7 @@ private function get_common_jobs( array $rows ): array { list($occurrences, $duplicates) = [ [], [] ]; foreach ( $rows as $row ) { - $key = $row->url . '|' . ( (bool) $row->is_mobile ?? 'null' ); + $key = $row->url . '|' . ( isset( $row->is_mobile ) ? (bool) $row->is_mobile : 'null' ); if ( ! isset( $occurrences[ $key ] ) ) { $occurrences[ $key ] = 1; diff --git a/inc/Engine/Common/Queue/Cleaner.php b/inc/Engine/Common/Queue/Cleaner.php index dde6dcc586..124257c9ca 100644 --- a/inc/Engine/Common/Queue/Cleaner.php +++ b/inc/Engine/Common/Queue/Cleaner.php @@ -113,7 +113,7 @@ public function delete_old_actions() { */ public function clean_actions( array $statuses_to_purge, \DateTime $cutoff_date, $batch_size = null, $context = 'old' ) { $batch_size = null !== $batch_size ? $batch_size : $this->batch_size; - $cutoff = null !== $cutoff_date ? $cutoff_date : as_get_datetime_object( $this->hour_in_seconds . ' seconds ago' ); + $cutoff = $cutoff_date; $lifespan = time() - $cutoff->getTimestamp(); if ( empty( $statuses_to_purge ) ) { diff --git a/inc/Engine/Common/Queue/RUCSSQueueRunner.php b/inc/Engine/Common/Queue/RUCSSQueueRunner.php index 1a23764c33..c07c5142f0 100644 --- a/inc/Engine/Common/Queue/RUCSSQueueRunner.php +++ b/inc/Engine/Common/Queue/RUCSSQueueRunner.php @@ -46,7 +46,7 @@ class RUCSSQueueRunner extends ActionScheduler_Abstract_QueueRunner { * @return RUCSSQueueRunner Instance. */ public static function instance() { - if ( empty( self::$runner ) ) { + if ( empty( self::$runner ) ) { // @phpstan-ignore-line self::$runner = new RUCSSQueueRunner(); } return self::$runner; diff --git a/inc/Engine/CriticalPath/APIClient.php b/inc/Engine/CriticalPath/APIClient.php index 29d781e019..055f17e7d0 100644 --- a/inc/Engine/CriticalPath/APIClient.php +++ b/inc/Engine/CriticalPath/APIClient.php @@ -104,13 +104,11 @@ private function prepare_response( $response, $url, $is_mobile = false, $item_ty * * @return bool success or failed. */ - private function get_response_success( $response_code, $response_data ) { + private function get_response_success( int $response_code, $response_data ) { return ( 200 === $response_code && ( - $response_data instanceof stdClass - && ! empty( (array) $response_data ) ) && diff --git a/inc/Engine/CriticalPath/Admin/Admin.php b/inc/Engine/CriticalPath/Admin/Admin.php index 214a13458d..6cb30f3b29 100644 --- a/inc/Engine/CriticalPath/Admin/Admin.php +++ b/inc/Engine/CriticalPath/Admin/Admin.php @@ -52,7 +52,7 @@ public function cpcss_heartbeat() { ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } $cpcss_pending = get_transient( 'rocket_cpcss_generation_pending' ); @@ -69,7 +69,7 @@ public function cpcss_heartbeat() { $this->generation_complete(); wp_send_json_success( [ 'status' => 'cpcss_complete' ] ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } set_transient( 'rocket_cpcss_generation_pending', $cpcss_pending, HOUR_IN_SECONDS ); diff --git a/inc/Engine/CriticalPath/Admin/Settings.php b/inc/Engine/CriticalPath/Admin/Settings.php index 2e33b9db81..48342624c3 100644 --- a/inc/Engine/CriticalPath/Admin/Settings.php +++ b/inc/Engine/CriticalPath/Admin/Settings.php @@ -92,7 +92,7 @@ public function enable_mobile_cpcss() { if ( ! current_user_can( 'rocket_manage_options' ) || ! current_user_can( 'rocket_regenerate_critical_css' ) ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line } $this->options->set( 'async_css_mobile', 1 ); diff --git a/inc/Engine/CriticalPath/CriticalCSS.php b/inc/Engine/CriticalPath/CriticalCSS.php index 17c4fb2737..0175998ee2 100644 --- a/inc/Engine/CriticalPath/CriticalCSS.php +++ b/inc/Engine/CriticalPath/CriticalCSS.php @@ -133,6 +133,7 @@ public function process_handler( $version = 'default', $clean_version = '' ) { * @since 3.3 */ public function stop_generation() { + // @phpstan-ignore-next-line if ( method_exists( $this->process, 'cancel_process' ) ) { $this->process->cancel_process(); } diff --git a/inc/Engine/CriticalPath/CriticalCSSSubscriber.php b/inc/Engine/CriticalPath/CriticalCSSSubscriber.php index a7b0b48d27..65636e2105 100644 --- a/inc/Engine/CriticalPath/CriticalCSSSubscriber.php +++ b/inc/Engine/CriticalPath/CriticalCSSSubscriber.php @@ -818,8 +818,11 @@ public function switch_to_rucss_notice() { * Filters the status of the RUCSS option. * * @param array $should_disable will return array with disable status and text. + * + * @return array */ - $rucss_status = apply_filters( + $rucss_status = wpm_apply_filters_typed( + 'array', 'rocket_disable_rucss_setting', [ 'disable' => false, @@ -827,7 +830,7 @@ public function switch_to_rucss_notice() { ] ); - if ( is_array( $rucss_status ) && key_exists( 'disable', $rucss_status ) && $rucss_status['disable'] ) { + if ( key_exists( 'disable', $rucss_status ) && $rucss_status['disable'] ) { return; } @@ -859,6 +862,7 @@ public function switch_to_rucss() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_safe_redirect( wp_get_referer() ); rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; + // @phpstan-ignore-next-line return; // phpcs:ignore Squiz.PHP.NonExecutableCode.Unreachable } diff --git a/inc/Engine/CriticalPath/ProcessorService.php b/inc/Engine/CriticalPath/ProcessorService.php index 71fcea37b2..879e7aab64 100644 --- a/inc/Engine/CriticalPath/ProcessorService.php +++ b/inc/Engine/CriticalPath/ProcessorService.php @@ -99,27 +99,6 @@ private function send_generation_request( $item_url, $item_path, $is_mobile = fa return $this->check_cpcss_job_status( $generated_job->data->id, $item_path, $item_url, $is_mobile, $item_type ); } - /** - * Get job details by job_id. - * - * @since 3.6 - * - * @param string $job_id ID for the job to get details. - * @param string $item_url URL for item to be used in error messages. - * @param string $item_type Optional. Type for this item if it's custom or specific type. Default: custom. - * - * @return array|mixed|WP_Error - */ - private function get_cpcss_job_details( $job_id, $item_url, $item_type = 'custom' ) { - $job_details = $this->api_client->get_job_details( $job_id, $item_url, $item_type ); - - if ( is_wp_error( $job_details ) ) { - return $job_details; - } - - return $job_details; - } - /** * Check status and process the output for a job. * @@ -159,7 +138,7 @@ private function check_cpcss_job_status( $job_id, $item_path, $item_url, $is_mob if ( isset( $job_state, $job_details->data->critical_path ) && - 'complete' === $job_state + 'complete' === $job_state // @phpstan-ignore-line ) { return $this->on_job_success( $item_path, $item_url, $job_details->data->critical_path, $is_mobile, $item_type ); } diff --git a/inc/Engine/License/API/User.php b/inc/Engine/License/API/User.php index 21ef304fbe..289ec37c90 100644 --- a/inc/Engine/License/API/User.php +++ b/inc/Engine/License/API/User.php @@ -13,7 +13,7 @@ class User { /** * Instantiate the class * - * @param object $user The user object. + * @param object|bool $user The user object. */ public function __construct( $user ) { $this->user = is_object( $user ) ? $user : new \stdClass(); diff --git a/inc/Engine/License/Renewal.php b/inc/Engine/License/Renewal.php index 5b203bb3a5..02fdb8207a 100644 --- a/inc/Engine/License/Renewal.php +++ b/inc/Engine/License/Renewal.php @@ -271,11 +271,7 @@ public function dismiss_renewal_expired_banner() { * @param array $data Localize script data. * @return array */ - public function add_localize_script_data( $data ) { - if ( ! is_array( $data ) ) { - $data = (array) $data; - } - + public function add_localize_script_data( array $data ) { if ( $this->user->is_license_expired() ) { return $data; } @@ -318,7 +314,7 @@ private function get_discount_percent() { $renewals = $this->get_user_renewal_status(); - if ( false === $renewals || ! isset( $prices->prices, $prices->prices->renewal ) ) { + if ( ! isset( $prices->prices, $prices->prices->renewal ) ) { return 0; } @@ -339,10 +335,6 @@ private function get_discount_percent() { private function is_grandfather(): bool { $renewals = $this->get_user_renewal_status(); - if ( ! is_array( $renewals ) ) { - return false; - } - return key_exists( 'is_grandfather', $renewals ) && $renewals['is_grandfather']; } /** @@ -353,10 +345,6 @@ private function is_grandfather(): bool { private function has_grandmother(): bool { $renewals = $this->get_user_renewal_status(); - if ( ! is_array( $renewals ) ) { - return false; - } - return key_exists( 'is_grandmother', $renewals ) && $renewals['is_grandmother']; } @@ -370,10 +358,6 @@ private function has_grandmother(): bool { private function get_price() { $renewals = $this->get_user_renewal_status(); - if ( false === $renewals ) { - return 0; - } - $license = $this->get_license_pricing_data(); if ( @@ -399,7 +383,7 @@ private function get_price() { * * @return array */ - private function get_user_renewal_status() { + private function get_user_renewal_status(): array { $renewals = $this->pricing->get_renewals_data(); if ( ! isset( $renewals->extra_days, $renewals->grandfather_date, $renewals->discount_percent, $renewals->grandmother_date ) ) { diff --git a/inc/Engine/License/Upgrade.php b/inc/Engine/License/Upgrade.php index 4d811f5c54..b90db308ac 100644 --- a/inc/Engine/License/Upgrade.php +++ b/inc/Engine/License/Upgrade.php @@ -166,11 +166,7 @@ public function dismiss_promo_banner() { * @param array $data Localize script data. * @return array */ - public function add_localize_script_data( $data ) { - if ( ! is_array( $data ) ) { - $data = (array) $data; - } - + public function add_localize_script_data( array $data ) { if ( ! $this->can_use_promo() ) { return $data; } diff --git a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php index 0f9f5b283f..87f08ed2b6 100644 --- a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php +++ b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php @@ -56,7 +56,7 @@ public function add_data(): void { if ( ! $this->context->is_allowed() ) { wp_send_json_error( 'not allowed' ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; @@ -107,7 +107,7 @@ public function add_data(): void { if ( ! empty( $row ) ) { wp_send_json_error( 'item already in the database' ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } $status = isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : ''; @@ -118,7 +118,7 @@ public function add_data(): void { 'is_mobile' => $is_mobile, 'status' => $status_code, 'error_message' => $status_message, - 'lcp' => ( is_array( $lcp ) || is_object( $lcp ) ) ? wp_json_encode( $lcp ) : $lcp, + 'lcp' => ( is_array( $lcp ) || is_object( $lcp ) ) ? wp_json_encode( $lcp ) : $lcp, // @phpstan-ignore-line 'viewport' => wp_json_encode( $viewport ), 'last_accessed' => current_time( 'mysql', true ), ]; @@ -127,7 +127,7 @@ public function add_data(): void { if ( ! $result ) { wp_send_json_error( 'error when adding the entry to the database' ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } wp_send_json_success( $item ); @@ -273,7 +273,7 @@ public function check_data(): void { if ( ! $this->context->is_allowed() ) { wp_send_json_error( false ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; @@ -283,7 +283,7 @@ public function check_data(): void { if ( ! empty( $row ) ) { wp_send_json_success( 'data already exists' ); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } wp_send_json_error( 'data does not exist' ); @@ -323,12 +323,10 @@ private function validate_image_src( string $image_src ): bool { * Filters the supported schemes of LCP/ATF images. * * @param array $invalid_schemes Array of invalid schemes. + * + * @return array */ - $invalid_schemes = apply_filters( 'rocket_atf_invalid_schemes', $this->invalid_schemes ); - - if ( ! is_array( $invalid_schemes ) ) { - $invalid_schemes = $this->invalid_schemes; - } + $invalid_schemes = wpm_apply_filters_typed( 'array', 'rocket_atf_invalid_schemes', $this->invalid_schemes ); $invalid_schemes = implode( '|', $invalid_schemes ); diff --git a/inc/Engine/Media/AboveTheFold/Context/Context.php b/inc/Engine/Media/AboveTheFold/Context/Context.php index edb3a385d4..cd5154eff6 100644 --- a/inc/Engine/Media/AboveTheFold/Context/Context.php +++ b/inc/Engine/Media/AboveTheFold/Context/Context.php @@ -22,13 +22,9 @@ public function is_allowed( array $data = [] ): bool { * Filters to manage above the fold optimization * * @param bool $allow True to allow, false otherwise. + * + * @return bool */ - $is_atf_enabled = apply_filters( 'rocket_above_the_fold_optimization', true ); - - if ( ! is_bool( $is_atf_enabled ) ) { - return true; - } - - return $is_atf_enabled; + return wpm_apply_filters_typed( 'boolean', 'rocket_above_the_fold_optimization', true ); } } diff --git a/inc/Engine/Media/AboveTheFold/Frontend/Controller.php b/inc/Engine/Media/AboveTheFold/Frontend/Controller.php index 14e58f811c..203bbc42fa 100644 --- a/inc/Engine/Media/AboveTheFold/Frontend/Controller.php +++ b/inc/Engine/Media/AboveTheFold/Frontend/Controller.php @@ -237,16 +237,12 @@ function ( $exclusion ) { * @param object $lcp LCP Object. * @return array */ - private function generate_lcp_link_tag_with_sources( $lcp ): array { + private function generate_lcp_link_tag_with_sources( object $lcp ): array { $pairs = [ 'tags' => '', 'sources' => [], ]; - if ( ! $lcp && ! is_object( $lcp ) ) { - return $pairs; - } - $tag = ''; $start_tag = 'can_disable_emoji() ) { return $plugins; } - if ( is_array( $plugins ) ) { - return array_diff( $plugins, [ 'wpemoji' ] ); - } - - return []; + return array_diff( $plugins, [ 'wpemoji' ] ); } /** diff --git a/inc/Engine/Media/Lazyload/CSS/Front/Extractor.php b/inc/Engine/Media/Lazyload/CSS/Front/Extractor.php index 15c1ae8d8b..9a0300e251 100644 --- a/inc/Engine/Media/Lazyload/CSS/Front/Extractor.php +++ b/inc/Engine/Media/Lazyload/CSS/Front/Extractor.php @@ -132,8 +132,10 @@ function ( $matches ) { $block = trim( $block_matches[ $default_index ][ $block_index ] ); } - foreach ( $this->comments_mapping as $id => $comment ) { - $block = str_replace( $id, $comment, $block ); + if ( ! empty( $this->comments_mapping ) ) { + foreach ( $this->comments_mapping as $id => $comment ) { + $block = str_replace( $id, $comment, $block ); + } } foreach ( $urls as $url ) { diff --git a/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php b/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php index 127eb8a32d..72059c5520 100644 --- a/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php +++ b/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php @@ -57,12 +57,10 @@ private function get_pseudo_elements_to_remove() { * Pseudo elements to remove from lazyload CSS selector. * * @param string[] $original_pseudo_elements Pseudo elements to remove. + * + * @return array */ - $pseudo_elements_to_remove = apply_filters( 'rocket_lazyload_css_ignored_pseudo_elements', $original_pseudo_elements ); - - if ( ! is_array( $original_pseudo_elements ) ) { - $pseudo_elements_to_remove = $original_pseudo_elements; - } + $pseudo_elements_to_remove = wpm_apply_filters_typed( 'array', 'rocket_lazyload_css_ignored_pseudo_elements', $original_pseudo_elements ); usort( $pseudo_elements_to_remove, @@ -117,10 +115,6 @@ protected function remove_pseudo_classes( string $selector ): string { $selector = implode( ',', $selectors ); - if ( ! $selector ) { - return 'body'; - } - return (string) $selector; } } diff --git a/inc/Engine/Media/Lazyload/CSS/Subscriber.php b/inc/Engine/Media/Lazyload/CSS/Subscriber.php index 0075f0d941..b66434c808 100644 --- a/inc/Engine/Media/Lazyload/CSS/Subscriber.php +++ b/inc/Engine/Media/Lazyload/CSS/Subscriber.php @@ -175,15 +175,18 @@ public function maybe_replace_css_images( string $html ): string { * Generate lazyload CSS for the page. * * @param array $data Data passed to generate the lazyload CSS. + * + * @return array */ - $output = apply_filters( + $output = wpm_apply_filters_typed( + 'array', 'rocket_generate_lazyloaded_css', [ 'html' => $html, ] - ); + ); - if ( ! is_array( $output ) || ! key_exists( 'html', $output ) ) { + if ( ! key_exists( 'html', $output ) ) { $this->logger::debug( 'Lazyload bailed out', $this->generate_log_context( @@ -536,12 +539,10 @@ protected function is_excluded( string $string ) { // phpcs:ignore Universal.Nam * Filters the src used to prevent lazy load from being applied. * * @param array $excluded_src An array of excluded src. + * + * @return array */ - $excluded_values = apply_filters( 'rocket_lazyload_excluded_src', [] ); - - if ( ! is_array( $excluded_values ) ) { - $excluded_values = (array) $excluded_values; - } + $excluded_values = wpm_apply_filters_typed( 'array', 'rocket_lazyload_excluded_src', [] ); $excluded_values = array_filter( $excluded_values ); @@ -582,12 +583,10 @@ public function exclude_rocket_lazyload_excluded_src( $excluded, $urls ) { * Filters the src used to prevent lazy load from being applied. * * @param array $excluded_src An array of excluded src. + * + * @return array */ - $excluded_values = apply_filters( 'rocket_lazyload_excluded_src', [] ); - - if ( ! is_array( $excluded_values ) ) { - $excluded_values = (array) $excluded_values; - } + $excluded_values = wpm_apply_filters_typed( 'array', 'rocket_lazyload_excluded_src', [] ); $excluded_values = array_filter( $excluded_values ); diff --git a/inc/Engine/Media/Lazyload/Subscriber.php b/inc/Engine/Media/Lazyload/Subscriber.php index 50ddd59197..2b35cfe5bc 100644 --- a/inc/Engine/Media/Lazyload/Subscriber.php +++ b/inc/Engine/Media/Lazyload/Subscriber.php @@ -245,9 +245,9 @@ public function insert_youtube_thumbnail_script() { * @param string $extension extension from the thumbnail from Youtube video. * @returns string */ - $extension = apply_filters( 'rocket_lazyload_youtube_thumbnail_extension', 'jpg' ); + $extension = wpm_apply_filters_typed( 'string', 'rocket_lazyload_youtube_thumbnail_extension', 'jpg' ); - if ( ! is_string( $extension ) || ! in_array( $extension, [ 'jpg', 'webp' ], true ) ) { + if ( ! in_array( $extension, [ 'jpg', 'webp' ], true ) ) { $extension = 'jpg'; } @@ -456,11 +456,7 @@ public function maybe_disable_core_lazyload( $value, $tag_name ) { * @param array $exclusions Array of excluded patterns. * @return array */ - public function add_exclusions( $exclusions ): array { - if ( ! is_array( $exclusions ) ) { - $exclusions = []; - } - + public function add_exclusions( array $exclusions = [] ): array { $exclude_lazyload = $this->options->get( 'exclude_lazyload', [] ); if ( empty( $exclude_lazyload ) ) { diff --git a/inc/Engine/Optimization/AssetsLocalCache.php b/inc/Engine/Optimization/AssetsLocalCache.php index 7cc1701319..f41531345d 100644 --- a/inc/Engine/Optimization/AssetsLocalCache.php +++ b/inc/Engine/Optimization/AssetsLocalCache.php @@ -149,10 +149,6 @@ private function has_integrity( $asset ) { return false; } - if ( ! isset( $integrity_matches['integrityhashmethod'], $integrity_matches['integrityhash'] ) ) { - return false; - } - return $integrity_matches; } diff --git a/inc/Engine/Optimization/DeferJS/DeferJS.php b/inc/Engine/Optimization/DeferJS/DeferJS.php index d9cd542a08..251237c659 100644 --- a/inc/Engine/Optimization/DeferJS/DeferJS.php +++ b/inc/Engine/Optimization/DeferJS/DeferJS.php @@ -271,12 +271,15 @@ private function get_inline_exclusions_list_pattern() { * @since 3.8 * * @param array $inline_exclusions_list Array of inline JS that should not be deferred. + * + * @return mixed Array or string of inline JS that should not be deferred. */ $additional_inline_exclusions_list = apply_filters( 'rocket_defer_inline_exclusions', [] ); $inline_exclusions = ''; // Check if filter return is string so convert it to array for backward compatibility. + // @phpstan-ignore-next-line if ( is_string( $additional_inline_exclusions_list ) ) { $additional_inline_exclusions_list = explode( '|', $additional_inline_exclusions_list ); } diff --git a/inc/Engine/Optimization/DelayJS/Subscriber.php b/inc/Engine/Optimization/DelayJS/Subscriber.php index d48f80bd5b..c0a053e253 100644 --- a/inc/Engine/Optimization/DelayJS/Subscriber.php +++ b/inc/Engine/Optimization/DelayJS/Subscriber.php @@ -30,17 +30,10 @@ class Subscriber implements Subscriber_Interface { * Options Data instance * * @var Options_Data - */ - private $options; - - /** - * Script enqueued status. * - * @since 3.7 - * - * @var bool + * @phpstan-ignore-next-line */ - private $is_enqueued = false; + private $options; /** * Subscriber constructor. diff --git a/inc/Engine/Optimization/DynamicLists/Subscriber.php b/inc/Engine/Optimization/DynamicLists/Subscriber.php index afb9425a1e..33f088d98f 100644 --- a/inc/Engine/Optimization/DynamicLists/Subscriber.php +++ b/inc/Engine/Optimization/DynamicLists/Subscriber.php @@ -109,11 +109,7 @@ public function display_update_lists_section() { * * @return array */ - public function add_cache_ignored_parameters( $params = [] ): array { - if ( ! is_array( $params ) ) { - $params = (array) $params; - } - + public function add_cache_ignored_parameters( array $params = [] ): array { return array_merge( $params, $this->dynamic_lists->get_cache_ignored_parameters() ); } @@ -124,11 +120,7 @@ public function add_cache_ignored_parameters( $params = [] ): array { * * @return array */ - public function add_minify_excluded_external_js( $excluded = [] ): array { - if ( ! is_array( $excluded ) ) { - $excluded = (array) $excluded; - } - + public function add_minify_excluded_external_js( array $excluded = [] ): array { return array_merge( $excluded, $this->dynamic_lists->get_js_minify_excluded_external() ); } @@ -139,11 +131,7 @@ public function add_minify_excluded_external_js( $excluded = [] ): array { * * @return array */ - public function add_move_after_combine_js( $excluded = [] ): array { - if ( ! is_array( $excluded ) ) { - $excluded = (array) $excluded; - } - + public function add_move_after_combine_js( array $excluded = [] ): array { return array_merge( $excluded, $this->dynamic_lists->get_js_move_after_combine() ); } @@ -154,10 +142,7 @@ public function add_move_after_combine_js( $excluded = [] ): array { * * @return array */ - public function add_combine_js_excluded_inline( $excluded = [] ): array { - if ( ! is_array( $excluded ) ) { - $excluded = (array) $excluded; - } + public function add_combine_js_excluded_inline( array $excluded = [] ): array { return array_merge( $excluded, $this->dynamic_lists->get_combine_js_excluded_inline() ); } @@ -169,11 +154,7 @@ public function add_combine_js_excluded_inline( $excluded = [] ): array { * * @return array */ - public function add_preload_exclusions( $excluded = [] ): array { - if ( ! is_array( $excluded ) ) { - $excluded = (array) $excluded; - } - + public function add_preload_exclusions( array $excluded = [] ): array { return array_merge( $excluded, $this->dynamic_lists->get_preload_exclusions() ); } @@ -184,11 +165,7 @@ public function add_preload_exclusions( $excluded = [] ): array { * * @return array */ - public function add_js_exclude_files( $js_files = [] ): array { - if ( ! is_array( $js_files ) ) { - $js_files = (array) $js_files; - } - + public function add_js_exclude_files( array $js_files = [] ): array { return array_merge( $js_files, $this->dynamic_lists->get_js_exclude_files() ); } diff --git a/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php b/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php index 519355ff45..e1bf7224cf 100644 --- a/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php +++ b/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php @@ -95,12 +95,10 @@ protected function get_font_display_value(): string { * @since 3.3.5 * * @param string $display Display value. Can be either auto, block, swap, fallback or optional. + * + * @return string */ - $display = apply_filters( 'rocket_combined_google_fonts_display', 'swap' ); - - if ( ! is_string( $display ) ) { - return 'swap'; - } + $display = wpm_apply_filters_typed( 'string', 'rocket_combined_google_fonts_display', 'swap' ); return isset( $this->display_values[ $display ] ) ? $display : 'swap'; } diff --git a/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php b/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php index 2d765a8f0c..b8ea9a274d 100644 --- a/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php +++ b/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php @@ -74,7 +74,7 @@ public function enable_google_fonts() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line } $this->options->set( 'minify_google_fonts', 1 ); diff --git a/inc/Engine/Optimization/IEConditionalSubscriber.php b/inc/Engine/Optimization/IEConditionalSubscriber.php index 55f2bf7b96..d7a0b0ee6c 100644 --- a/inc/Engine/Optimization/IEConditionalSubscriber.php +++ b/inc/Engine/Optimization/IEConditionalSubscriber.php @@ -67,7 +67,7 @@ public static function get_subscribed_events() { public function extract_ie_conditionals( $html ) { preg_match_all( self::IE_PATTERN, $html, $conditionals_match ); - if ( ! $conditionals_match ) { + if ( count( $conditionals_match[0] ) === 0 ) { return $html; } diff --git a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php index 8cfdb64be3..64658cfa3c 100755 --- a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php +++ b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php @@ -34,11 +34,7 @@ public static function get_subscribed_events() { * * @return void */ - public function clean_minify( $old, $new ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound - if ( ! is_array( $old ) || ! is_array( $new ) ) { - return; - } - + public function clean_minify( array $old, array $new ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound if ( ! $this->maybe_minify_regenerate( $new, $old ) ) { return; } @@ -56,11 +52,7 @@ public function clean_minify( $old, $new ) { // phpcs:ignore Universal.NamingCon * * @return array Updates 'minify_css_key' setting when regenerated; else, original submitted settings. */ - public function regenerate_minify_css_key( $new, $old ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound - if ( ! is_array( $old ) || ! is_array( $new ) ) { - return $new; - } - + public function regenerate_minify_css_key( array $new, array $old ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound if ( ! $this->maybe_minify_regenerate( $new, $old ) ) { return $new; } diff --git a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php index f610af3876..e2bdc02c98 100644 --- a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php +++ b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php @@ -441,7 +441,7 @@ public function spawn_cron() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; + return; // @phpstan-ignore-line - Needed to prevent further execution. } spawn_cron(); diff --git a/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php index 9fbf26d9e0..8cbb154ffd 100644 --- a/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php @@ -475,10 +475,7 @@ private function add_used_fonts_preload( string $html, string $used_css ): strin * * @param array $excluded_fonts_preload List of fonts to exclude from preload */ - $exclude_fonts_preload = apply_filters( 'rocket_exclude_rucss_fonts_preload', [] ); - if ( ! is_array( $exclude_fonts_preload ) ) { - $exclude_fonts_preload = []; - } + $exclude_fonts_preload = wpm_apply_filters_typed( 'array', 'rocket_exclude_rucss_fonts_preload', [] ); $urls = []; diff --git a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php index 99e8a5087c..8648563cd4 100644 --- a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php @@ -84,6 +84,7 @@ public function make_status_completed( string $url, bool $is_mobile, string $has } // Get the database interface. + /** @var \wpdb|bool $db */ $db = $this->get_db(); // Bail if no database interface is available. diff --git a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php index f17d9e8823..0cfcee8745 100644 --- a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php +++ b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php @@ -120,10 +120,7 @@ public function validate_and_fail( array $job_details, $row_details, string $opt * * @param int $min_rucss_size min size. */ - $min_rucss_size = apply_filters( 'rocket_min_rucss_size', 150 ); - if ( ! is_numeric( $min_rucss_size ) ) { - $min_rucss_size = 150; - } + $min_rucss_size = wpm_apply_filters_typed( 'int', 'rocket_min_rucss_size', 150 ); if ( isset( $job_details['contents']['shakedCSS_size'] ) && intval( $job_details['contents']['shakedCSS_size'] ) < $min_rucss_size ) { $message = 'RUCSS: shakedCSS size is less than ' . $min_rucss_size; @@ -192,7 +189,7 @@ public function set_request_param(): array { * * @since 3.14 * - * @param array $skipped_attr Array of safelist values. + * @param array|object $skipped_attr Array of safelist values. */ $skipped_attr = apply_filters( 'rocket_rucss_skip_styles_with_attr', [] ); $skipped_attr = ( is_array( $skipped_attr ) ) ? $skipped_attr : []; diff --git a/inc/Engine/Plugin/UpdaterApiCommonSubscriber.php b/inc/Engine/Plugin/UpdaterApiCommonSubscriber.php index 461a80e70b..7b32d418ef 100644 --- a/inc/Engine/Plugin/UpdaterApiCommonSubscriber.php +++ b/inc/Engine/Plugin/UpdaterApiCommonSubscriber.php @@ -81,11 +81,7 @@ public static function get_subscribed_events() { * @param string $url Requested URL. * @return array An array of requested arguments */ - public function maybe_set_rocket_user_agent( $request, $url ) { - if ( ! is_string( $url ) ) { - return $request; - } - + public function maybe_set_rocket_user_agent( $request, string $url ) { if ( strpos( $url, self::API_HOST ) !== false ) { $request['user-agent'] = sprintf( '%s;%s', $request['user-agent'], $this->get_rocket_user_agent() ); } @@ -116,16 +112,12 @@ protected function get_current_option( $field_name ) { if ( current_user_can( 'rocket_manage_options' ) && wp_verify_nonce( filter_input( INPUT_POST, '_wpnonce' ), $this->settings_nonce_key . '-options' ) ) { $posted = filter_input( INPUT_POST, $this->settings_slug, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); - if ( ! empty( $posted[ $field_name ] ) && is_string( $posted[ $field_name ] ) ) { + if ( ! empty( $posted[ $field_name ] ) ) { // The value has been posted through the settings page. return sanitize_text_field( $posted[ $field_name ] ); } } - if ( ! $this->plugin_options ) { - return ''; - } - $option_value = $this->plugin_options->get( $field_name ); if ( $option_value && is_string( $option_value ) ) { diff --git a/inc/Engine/Plugin/UpdaterSubscriber.php b/inc/Engine/Plugin/UpdaterSubscriber.php index 2cb844ec03..e92bc20598 100644 --- a/inc/Engine/Plugin/UpdaterSubscriber.php +++ b/inc/Engine/Plugin/UpdaterSubscriber.php @@ -132,11 +132,7 @@ public static function get_subscribed_events() { * @param string $url The request URL. * @return array Updated array of HTTP request arguments. */ - public function exclude_rocket_from_wp_updates( $request, $url ) { - if ( ! is_string( $url ) ) { - return $request; - } - + public function exclude_rocket_from_wp_updates( $request, string $url ) { if ( ! preg_match( '@^https?://api.wordpress.org/plugins/update-check(/|\?|$)@', $url ) || empty( $request['body']['plugins'] ) ) { // Not a plugin update request. Stop immediately. return $request; @@ -204,7 +200,7 @@ public function exclude_rocket_from_wp_updates( $request, $url ) { /** * Add WPR update data to the "WP update" transient. * - * @param \stdClass $transient_value New value of site transient. + * @param \stdClass|array $transient_value New value of site transient. * @return \stdClass */ public function maybe_add_rocket_update_data( $transient_value ) { @@ -470,7 +466,6 @@ public function rollback() { set_site_transient( 'update_plugins', $plugin_transient ); - // @phpstan-ignore-next-line require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // translators: %s is the plugin name. diff --git a/inc/Engine/Preload/Controller/CheckExcludedTrait.php b/inc/Engine/Preload/Controller/CheckExcludedTrait.php index 6cffb45d85..59f4b6161d 100644 --- a/inc/Engine/Preload/Controller/CheckExcludedTrait.php +++ b/inc/Engine/Preload/Controller/CheckExcludedTrait.php @@ -67,7 +67,7 @@ protected function is_excluded_by_filter( string $url ): bool { $regexes = array_unique( $regexes ); foreach ( $regexes as $regex ) { - if ( ! is_string( $regex ) ) { + if ( ! is_string( $regex ) ) { // @phpstan-ignore-line continue; } diff --git a/inc/Engine/Preload/Controller/LoadInitialSitemap.php b/inc/Engine/Preload/Controller/LoadInitialSitemap.php index 9d116c13c7..f244f68e3f 100755 --- a/inc/Engine/Preload/Controller/LoadInitialSitemap.php +++ b/inc/Engine/Preload/Controller/LoadInitialSitemap.php @@ -150,10 +150,6 @@ protected function load_wordpress_sitemap() { $sitemaps = wp_sitemaps_get_server(); - if ( ! $sitemaps ) { - return false; - } - return $sitemaps->index->get_index_url(); } diff --git a/inc/Engine/Preload/Controller/PreloadUrl.php b/inc/Engine/Preload/Controller/PreloadUrl.php index 909bc00131..167f5f573e 100755 --- a/inc/Engine/Preload/Controller/PreloadUrl.php +++ b/inc/Engine/Preload/Controller/PreloadUrl.php @@ -101,11 +101,7 @@ public function preload_url( string $url ) { * * @param array $requests Requests that will be done. */ - $requests = apply_filters( 'rocket_preload_before_preload_url', $requests ); - - if ( ! is_array( $requests ) ) { - return; - } + $requests = wpm_apply_filters_typed( 'array', 'rocket_preload_before_preload_url', $requests ); $requests = array_filter( $requests ); @@ -140,7 +136,7 @@ public function preload_url( string $url ) { $headers ); - if ( ! is_array( $headers ) ) { + if ( ! is_array( $headers ) ) { // @phpstan-ignore-line return; } @@ -205,7 +201,7 @@ protected function get_mobile_user_agent_prefix() { */ $new_prefix = apply_filters( 'rocket_mobile_preload_user_agent_prefix', $prefix ); - if ( empty( $new_prefix ) || ! is_string( $new_prefix ) ) { + if ( empty( $new_prefix ) || ! is_string( $new_prefix ) ) { // @phpstan-ignore-line return $prefix; } diff --git a/inc/Engine/Preload/Fonts.php b/inc/Engine/Preload/Fonts.php index 9a20f12275..891d9a958e 100644 --- a/inc/Engine/Preload/Fonts.php +++ b/inc/Engine/Preload/Fonts.php @@ -125,11 +125,7 @@ public function preload_fonts( $html ): string { * @param string $file Filepath to sanitize. * @return string|bool Sanitized filepath. False if not a font file. */ - private function sanitize_font( $file ) { - if ( ! is_string( $file ) ) { - return false; - } - + private function sanitize_font( string $file ) { $file = trim( $file ); if ( empty( $file ) ) { diff --git a/inc/Engine/Preload/Links/Subscriber.php b/inc/Engine/Preload/Links/Subscriber.php index 63e3bd1462..f820a8dcdf 100644 --- a/inc/Engine/Preload/Links/Subscriber.php +++ b/inc/Engine/Preload/Links/Subscriber.php @@ -154,11 +154,7 @@ private function get_preload_links_config() { * * @param array $config Preload Links script configuration parameters. */ - $filtered_config = apply_filters( 'rocket_preload_links_config', $config ); - - if ( ! is_array( $filtered_config ) ) { - return $config; - } + $filtered_config = wpm_apply_filters_typed( 'array', 'rocket_preload_links_config', $config ); return array_merge( $config, $filtered_config ); } @@ -191,7 +187,7 @@ private function get_uris_to_exclude( $use_trailing_slash ) { * * @since 3.10.8 * - * @param string[] $excluded Array of excluded patterns. + * @param object|string[] $excluded Array of excluded patterns. * @param string[] $default Array of default excluded patterns. */ $excluded = apply_filters( 'rocket_preload_links_exclusions', $excluded, $default ); diff --git a/inc/Engine/Preload/Subscriber.php b/inc/Engine/Preload/Subscriber.php index 59cfd02404..79f246c605 100644 --- a/inc/Engine/Preload/Subscriber.php +++ b/inc/Engine/Preload/Subscriber.php @@ -506,6 +506,8 @@ public function remove_private_post( string $new_status, string $old_status, $po * Get all private urls for public post types. * * @return array + * + * @phpstan-ignore-next-line */ private function get_all_private_urls() { static $private_urls; diff --git a/inc/Engine/Saas/Admin/Notices.php b/inc/Engine/Saas/Admin/Notices.php index 284b9bb9e8..bfcdc937e9 100644 --- a/inc/Engine/Saas/Admin/Notices.php +++ b/inc/Engine/Saas/Admin/Notices.php @@ -198,7 +198,7 @@ public function display_success_notice() { * * @since 3.11 * - * @param array $data Localize script data. + * @param object|array $data Localize script data. * * @return array */ diff --git a/inc/ThirdParty/Hostings/Cloudways.php b/inc/ThirdParty/Hostings/Cloudways.php index 6831531210..e0bd20ddc6 100644 --- a/inc/ThirdParty/Hostings/Cloudways.php +++ b/inc/ThirdParty/Hostings/Cloudways.php @@ -102,13 +102,10 @@ public function varnish_addon_title( array $settings ) { * @param array $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( $varnish_ip ) { + public function varnish_ip( array $varnish_ip ) { if ( ! self::is_varnish_running() ) { return $varnish_ip; } - if ( ! is_array( $varnish_ip ) ) { - $varnish_ip = (array) $varnish_ip; - } $varnish_ip[] = '127.0.0.1:8080'; diff --git a/inc/ThirdParty/Hostings/Godaddy.php b/inc/ThirdParty/Hostings/Godaddy.php index e4601b57b3..dc5cb932b3 100644 --- a/inc/ThirdParty/Hostings/Godaddy.php +++ b/inc/ThirdParty/Hostings/Godaddy.php @@ -22,7 +22,7 @@ class Godaddy implements Subscriber_Interface { * @param string $vip_url Godaddy vip url. */ public function __construct( $vip_url = '' ) { - $this->vip_url = method_exists( '\WPaas\Plugin', 'vip' ) ? \WPaas\Plugin::vip() : $vip_url; + $this->vip_url = method_exists( '\WPaas\Plugin', 'vip' ) ? \WPaas\Plugin::vip() : $vip_url; // @phpstan-ignore-line } /** diff --git a/inc/ThirdParty/Hostings/Pressidium.php b/inc/ThirdParty/Hostings/Pressidium.php index b7587050ba..c5b0e8a738 100644 --- a/inc/ThirdParty/Hostings/Pressidium.php +++ b/inc/ThirdParty/Hostings/Pressidium.php @@ -82,7 +82,7 @@ public function clean_pressidium() { * Returns the path of URLs. * * @param array|string $urls Urls we want to get paths. - * @return array|void the path. + * @return array the path. */ private function get_paths( $urls ) { if ( ! is_array( $urls ) ) { diff --git a/inc/ThirdParty/Hostings/WPEngine.php b/inc/ThirdParty/Hostings/WPEngine.php index fd195f46f5..f5e156206d 100644 --- a/inc/ThirdParty/Hostings/WPEngine.php +++ b/inc/ThirdParty/Hostings/WPEngine.php @@ -56,11 +56,11 @@ public function varnish_addon_title( $settings ) { * @since 3.6.1 */ public function clean_wpengine() { - if ( method_exists( 'WpeCommon', 'purge_memcached' ) ) { + if ( method_exists( 'WpeCommon', 'purge_memcached' ) ) { // @phpstan-ignore-line WpeCommon::purge_memcached(); } - if ( method_exists( 'WpeCommon', 'purge_varnish_cache' ) ) { + if ( method_exists( 'WpeCommon', 'purge_varnish_cache' ) ) { // @phpstan-ignore-line WpeCommon::purge_varnish_cache(); } } diff --git a/inc/ThirdParty/Hostings/WPXCloud.php b/inc/ThirdParty/Hostings/WPXCloud.php index 0b6b431b8d..a17b983e43 100644 --- a/inc/ThirdParty/Hostings/WPXCloud.php +++ b/inc/ThirdParty/Hostings/WPXCloud.php @@ -13,7 +13,7 @@ class WPXCloud extends AbstractNoCacheHost { * * @return array */ - public static function get_subscribed_events() { + public static function get_subscribed_events(): array { return [ 'rocket_varnish_ip' => 'varnish_ip', 'rocket_display_input_varnish_auto_purge' => 'return_false', @@ -29,11 +29,7 @@ public static function get_subscribed_events() { * @param array $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( $varnish_ip ) { - if ( ! is_array( $varnish_ip ) ) { - $varnish_ip = (array) $varnish_ip; - } - + public function varnish_ip( array $varnish_ip ): array { $varnish_ip[] = '127.0.0.1:6081'; return $varnish_ip; @@ -45,7 +41,7 @@ public function varnish_ip( $varnish_ip ) { * @param array $settings Array of settings for Varnish. * @return array */ - public function varnish_addon_title( array $settings ) { + public function varnish_addon_title( array $settings ): array { $settings['varnish_auto_purge']['title'] = sprintf( // Translators: %s = Hosting name. __( 'Your site is hosted on %s, we have enabled Varnish auto-purge for compatibility.', 'rocket' ), @@ -73,7 +69,7 @@ public function append_cache_control_header(): string { * * @return void */ - public function activate() { + public function activate(): void { parent::activate(); add_action( 'rocket_activation', [ $this, 'append_cache_control_header_on_activation' ] ); @@ -84,7 +80,7 @@ public function activate() { * * @return void */ - public function append_cache_control_header_on_activation() { + public function append_cache_control_header_on_activation(): void { add_filter( 'after_rocket_htaccess_rules', [ $this, 'append_cache_control_header' ] ); } } diff --git a/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php b/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php index 517fb634c1..0a7844f21e 100644 --- a/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php +++ b/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php @@ -28,7 +28,7 @@ private function set_hooks() { * @return void */ public function purge_everything() { - if ( is_null( $this->hooks ) ) { + if ( is_null( $this->hooks ) ) { // @phpstan-ignore-line $this->set_hooks(); } @@ -43,7 +43,7 @@ public function purge_everything() { * @return void */ public function purge_urls( $post_ids ) { - if ( is_null( $this->hooks ) ) { + if ( is_null( $this->hooks ) ) { // @phpstan-ignore-line $this->set_hooks(); } diff --git a/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php b/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php index ec7a6d3b5f..19e10fe01a 100644 --- a/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php +++ b/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php @@ -388,7 +388,7 @@ public function cache_empty_cart() { * @since 3.1 * @author Remy Perona * - * @return string + * @return mixed|string */ private function get_cache_empty_cart() { $lang = rocket_get_current_language(); @@ -549,13 +549,9 @@ public function show_empty_product_gallery_with_delayJS() { * * @return array */ - public function show_notempty_product_gallery_with_delayJS( $exclusions = [] ): array { + public function show_notempty_product_gallery_with_delayJS( array $exclusions = [] ): array { global $wp_version; - if ( ! is_array( $exclusions ) ) { - $exclusions = (array) $exclusions; - } - if ( ! $this->delayjs_html->is_allowed() ) { return $exclusions; } diff --git a/inc/ThirdParty/Plugins/I18n/TranslatePress.php b/inc/ThirdParty/Plugins/I18n/TranslatePress.php index e55cc3b52a..2876d5d572 100644 --- a/inc/ThirdParty/Plugins/I18n/TranslatePress.php +++ b/inc/ThirdParty/Plugins/I18n/TranslatePress.php @@ -121,11 +121,7 @@ public function set_current_language( $current_language ) { * * @return array */ - public function get_active_languages_uri( $urls ) { - if ( ! is_array( $urls ) ) { - $urls = (array) $urls; - } - + public function get_active_languages_uri( array $urls ): array { $home_url = home_url(); $translatepress = TRP_Translate_Press::get_trp_instance(); @@ -148,7 +144,7 @@ public function get_active_languages_uri( $urls ) { /** * Gets the active languages slugs * - * @param Array $codes Array of languages codes. + * @param object|array $codes Array of languages codes. * * @return array */ @@ -212,10 +208,10 @@ public function get_home_url_for_lang( $home_url, $lang ) { /** * Gets all translations URLs for a post * - * @param array $urls Array of translated URLs. - * @param string $url URL to use. - * @param string $post_type Post type. - * @param string $regex Pattern to include at the end. + * @param object|array $urls Array of translated URLs. + * @param string $url URL to use. + * @param string $post_type Post type. + * @param string $regex Pattern to include at the end. * * @return array */ diff --git a/inc/ThirdParty/Plugins/I18n/WPML.php b/inc/ThirdParty/Plugins/I18n/WPML.php index e54150a457..7a82910e92 100644 --- a/inc/ThirdParty/Plugins/I18n/WPML.php +++ b/inc/ThirdParty/Plugins/I18n/WPML.php @@ -87,7 +87,7 @@ public function is_secondary_home( string $home_url, string $url ): string { * @param string $condition condition used to clean URLS in the database. * @return string */ - public function clean_only_right_domain( $condition ) { + public function clean_only_right_domain( $condition ): string { global $sitepress; $lang = isset( $_GET['lang'] ) && 'all' !== $_GET['lang'] ? sanitize_key( $_GET['lang'] ) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended @@ -106,7 +106,7 @@ public function clean_only_right_domain( $condition ) { * @param array $sitemaps list of sitemaps to be fetched. * @return array */ - public function add_languages_sitemaps( $sitemaps ) { + public function add_languages_sitemaps( $sitemaps ): array { global $sitepress; $new_sitemaps = []; @@ -130,13 +130,13 @@ public function add_languages_sitemaps( $sitemaps ) { * * @return void */ - public function remove_root_cached_files() { + public function remove_root_cached_files(): void { $site_url = home_url(); $host_name = wp_parse_url( $site_url, PHP_URL_HOST ); $cache_folder_path = _rocket_get_wp_rocket_cache_path() . $host_name . '/'; $cache_folder_directory = $this->filesystem->dirlist( $cache_folder_path ); - if ( ! is_array( $cache_folder_directory ) || ! is_array( array_keys( $cache_folder_directory ) ) ) { + if ( ! is_array( $cache_folder_directory ) ) { return; } @@ -156,11 +156,7 @@ public function remove_root_cached_files() { * * @return array */ - public function on_change_directory_for_default_language_clean_cache( $new, $old ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound - if ( ! is_array( $old ) || ! is_array( $new ) ) { - return $new; - } - + public function on_change_directory_for_default_language_clean_cache( array $new, array $old ): array { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound if ( ! key_exists( 'urls', $old ) || ! key_exists( 'directory_for_default_language', $old['urls'] ) || ! key_exists( 'urls', $new ) || ! key_exists( 'directory_for_default_language', $new['urls'] ) || $new['urls']['directory_for_default_language'] === $old['urls']['directory_for_default_language'] ) { return $new; } @@ -179,7 +175,7 @@ public function on_change_directory_for_default_language_clean_cache( $new, $old * * @return void */ - public function maybe_clear_on_disable() { + public function maybe_clear_on_disable(): void { $option = get_option( 'icl_sitepress_settings' ); if ( ! $option || ! is_array( $option ) || ! key_exists( 'urls', $option ) || ! key_exists( 'directory_for_default_language', $option['urls'] ) || false === $option['urls']['directory_for_default_language'] ) { return; diff --git a/inc/ThirdParty/Plugins/Optimization/AMP.php b/inc/ThirdParty/Plugins/Optimization/AMP.php index 2a27e9ae3f..0a8103f8ec 100644 --- a/inc/ThirdParty/Plugins/Optimization/AMP.php +++ b/inc/ThirdParty/Plugins/Optimization/AMP.php @@ -26,7 +26,7 @@ class AMP implements Subscriber_Interface { * * @var Options_Data */ - private $options; + private $options; // @phpstan-ignore-line - Options is written but not read. /** * Constructor diff --git a/inc/ThirdParty/Plugins/Optimization/Hummingbird.php b/inc/ThirdParty/Plugins/Optimization/Hummingbird.php index a412b5d9e9..92bdfc284a 100644 --- a/inc/ThirdParty/Plugins/Optimization/Hummingbird.php +++ b/inc/ThirdParty/Plugins/Optimization/Hummingbird.php @@ -106,7 +106,7 @@ private function is_utils_available() { return false; } - if ( ! method_exists( 'WP_Hummingbird_Utils', 'get_module' ) ) { + if ( ! method_exists( 'WP_Hummingbird_Utils', 'get_module' ) ) { // @phpstan-ignore-line return false; } @@ -126,7 +126,7 @@ private function is_settings_available() { return false; } - if ( ! method_exists( 'WP_Hummingbird_Settings', 'get_setting' ) ) { + if ( ! method_exists( 'WP_Hummingbird_Settings', 'get_setting' ) ) { // @phpstan-ignore-line return false; } @@ -179,11 +179,11 @@ private function check_gzip() { return false; } - if ( ! method_exists( $gzip, 'is_htaccess_written' ) ) { + if ( ! method_exists( $gzip, 'is_htaccess_written' ) ) { // @phpstan-ignore-line return false; } - if ( ! method_exists( $gzip, 'get_server_type' ) ) { + if ( ! method_exists( $gzip, 'get_server_type' ) ) { // @phpstan-ignore-line return false; } @@ -215,11 +215,11 @@ private function check_browser_caching() { return false; } - if ( ! method_exists( $caching, 'is_htaccess_written' ) ) { + if ( ! method_exists( $caching, 'is_htaccess_written' ) ) { // @phpstan-ignore-line return false; } - if ( ! method_exists( $caching, 'get_server_type' ) ) { + if ( ! method_exists( $caching, 'get_server_type' ) ) { // @phpstan-ignore-line return false; } @@ -251,7 +251,7 @@ private function check_cache() { return false; } - if ( ! method_exists( $cache, 'is_active' ) ) { + if ( ! method_exists( $cache, 'is_active' ) ) { // @phpstan-ignore-line return false; } @@ -285,7 +285,7 @@ private function check_assets() { return false; } - if ( ! method_exists( $minify, 'is_active' ) ) { + if ( ! method_exists( $minify, 'is_active' ) ) { // @phpstan-ignore-line return false; } diff --git a/inc/ThirdParty/Plugins/RevolutionSlider.php b/inc/ThirdParty/Plugins/RevolutionSlider.php index 9a2117f45c..c95015df62 100644 --- a/inc/ThirdParty/Plugins/RevolutionSlider.php +++ b/inc/ThirdParty/Plugins/RevolutionSlider.php @@ -22,7 +22,7 @@ class RevolutionSlider implements Subscriber_Interface { * @inheritDoc */ public static function get_subscribed_events() { - if ( ! defined( 'RS_REVISION' ) || version_compare( RS_REVISION, '6.5.5', '<' ) ) { + if ( ! defined( 'RS_REVISION' ) || version_compare( RS_REVISION, '6.5.5', '<' ) ) { // @phpstan-ignore-line return []; } diff --git a/inc/ThirdParty/Plugins/SEO/Yoast.php b/inc/ThirdParty/Plugins/SEO/Yoast.php index 71dc65949b..31767ae6e4 100644 --- a/inc/ThirdParty/Plugins/SEO/Yoast.php +++ b/inc/ThirdParty/Plugins/SEO/Yoast.php @@ -12,7 +12,7 @@ class Yoast implements Subscriber_Interface { * * @var Options_Data */ - private $options; + private $options; // @phpstan-ignore-line - Properties not used in here. /** * Constructor @@ -43,11 +43,7 @@ public static function get_subscribed_events() { * * @return array */ - public function add_sitemap( $sitemaps ): array { - if ( ! is_array( $sitemaps ) ) { - $sitemaps = (array) $sitemaps; - } - + public function add_sitemap( array $sitemaps ): array { if ( ! $this->is_sitemap_enabled() ) { return $sitemaps; } diff --git a/inc/ThirdParty/Plugins/Smush.php b/inc/ThirdParty/Plugins/Smush.php index 1652d4c662..d3c3e77a47 100644 --- a/inc/ThirdParty/Plugins/Smush.php +++ b/inc/ThirdParty/Plugins/Smush.php @@ -149,7 +149,7 @@ private function is_smush_lazyload_enabled() { return $enabled; } - if ( ! method_exists( '\Smush\Core\Settings', 'get_instance' ) ) { + if ( ! method_exists( '\Smush\Core\Settings', 'get_instance' ) ) { // @phpstan-ignore-line return $enabled; } diff --git a/inc/ThirdParty/Plugins/ThirstyAffiliates.php b/inc/ThirdParty/Plugins/ThirstyAffiliates.php index 032b1e9cd4..f1c86d7c2d 100644 --- a/inc/ThirdParty/Plugins/ThirstyAffiliates.php +++ b/inc/ThirdParty/Plugins/ThirstyAffiliates.php @@ -22,8 +22,8 @@ public static function get_subscribed_events() { * * @since 3.10.8 * - * @param string[] $excluded Array of excluded patterns. - * @param string[] $default Array of default excluded patterns. + * @param string[]|object $excluded Array of excluded patterns. + * @param string[] $default Array of default excluded patterns. * * @return array */ diff --git a/inc/ThirdParty/Themes/Avada.php b/inc/ThirdParty/Themes/Avada.php index 20cf2c45c7..a140e1c246 100644 --- a/inc/ThirdParty/Themes/Avada.php +++ b/inc/ThirdParty/Themes/Avada.php @@ -100,7 +100,7 @@ public function maybe_disable_lazyload( $disable_images_lazyload ) { return $disable_images_lazyload; } - if ( ! empty( $avada_options['lazy_load'] && 'avada' !== $avada_options['lazy_load'] ) ) { + if ( 'avada' !== $avada_options['lazy_load'] ) { return $disable_images_lazyload; } diff --git a/inc/ThirdParty/Themes/ThemeResolver.php b/inc/ThirdParty/Themes/ThemeResolver.php index 2ae28b867e..4a8762c77b 100644 --- a/inc/ThirdParty/Themes/ThemeResolver.php +++ b/inc/ThirdParty/Themes/ThemeResolver.php @@ -9,7 +9,7 @@ class ThemeResolver { * * @var string */ - private static $theme_name = ''; + private static $theme_name = ''; // @phpstan-ignore-line /** * Array of themes names with compatibility classes @@ -37,7 +37,7 @@ class ThemeResolver { */ public static function get_current_theme(): string { $theme = wp_get_theme(); - $template = $theme->get_template() ?? ''; + $template = $theme->get_template(); if ( empty( $template ) ) { return ''; diff --git a/inc/classes/subscriber/third-party/plugins/Images/Webp/class-imagify-subscriber.php b/inc/classes/subscriber/third-party/plugins/Images/Webp/class-imagify-subscriber.php index f79d590284..b232de0a83 100644 --- a/inc/classes/subscriber/third-party/plugins/Images/Webp/class-imagify-subscriber.php +++ b/inc/classes/subscriber/third-party/plugins/Images/Webp/class-imagify-subscriber.php @@ -373,9 +373,9 @@ public function is_serving_webp_compatible_with_cdn() { * @access public * @author Grégory Viguier * - * @return bool + * @return string */ - public function get_basename() { + public function get_basename(): string { if ( empty( $this->plugin_basename ) ) { $this->plugin_basename = rocket_has_constant( 'IMAGIFY_FILE' ) ? plugin_basename( rocket_get_constant( 'IMAGIFY_FILE' ) ) diff --git a/inc/functions/admin.php b/inc/functions/admin.php index 975e8f7ee8..2971129ffd 100755 --- a/inc/functions/admin.php +++ b/inc/functions/admin.php @@ -270,7 +270,7 @@ function rocket_after_update_array_options( $old_value, $value ) { * @since 2.10 * @author Remy Perona * - * @return true if a mobile plugin in the list is active, false otherwise. + * @return bool true if a mobile plugin in the list is active, false otherwise. **/ function rocket_is_mobile_plugin_active() { return \WP_Rocket\Subscriber\Third_Party\Plugins\Mobile_Subscriber::is_mobile_plugin_active(); diff --git a/inc/functions/posts.php b/inc/functions/posts.php index e3c7a6f4e2..5f058b3532 100755 --- a/inc/functions/posts.php +++ b/inc/functions/posts.php @@ -12,7 +12,7 @@ * @param int $id The post ID. * @param string $title The post title. * @param string $name The post name. - * @return string The permalink + * @return array|string[] The permalink */ function get_rocket_sample_permalink( $id, $title = null, $name = null ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals $post = get_post( $id ); diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 612faecfcd..02e47b7399 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,7 +1,7 @@ includes: - phar://phpstan.phar/conf/bleedingEdge.neon parameters: - level: 3 + level: 4 inferPrivatePropertyTypeFromConstructor: true paths: # Test only the new architecture for now. diff --git a/tests/Fixtures/inc/Engine/CriticalPath/CriticalCSSSubscriber/switchToRucssNotice.php b/tests/Fixtures/inc/Engine/CriticalPath/CriticalCSSSubscriber/switchToRucssNotice.php index 48cc5ee884..1a70c65743 100644 --- a/tests/Fixtures/inc/Engine/CriticalPath/CriticalCSSSubscriber/switchToRucssNotice.php +++ b/tests/Fixtures/inc/Engine/CriticalPath/CriticalCSSSubscriber/switchToRucssNotice.php @@ -29,7 +29,7 @@ 'licence_expiration' => strtotime( 'next year' ), 'date_created' => strtotime( 'last year' ), ] ) ), - 'rucss_status' => false, + 'rucss_status' => [], ], 'expected' => [ 'contains' => true, @@ -67,7 +67,7 @@ 'expected' => [ 'contains' => false, 'content' => $notice, - 'rucss_status' => false, + 'rucss_status' => [], 'user_id' => 42, 'notice' => [ 'status' => 'wpr-warning', @@ -101,7 +101,7 @@ 'expected' => [ 'contains' => false, 'content' => $notice, - 'rucss_status' => false, + 'rucss_status' => [], 'user_id' => 42, 'notice' => [ 'status' => 'wpr-warning', @@ -131,7 +131,7 @@ 'licence_expiration' => strtotime( 'last year' ), 'date_created' => strtotime( 'last year' ), ] ) ), - 'rucss_status' => false, + 'rucss_status' => [], ], 'expected' => [ 'contains' => false, @@ -169,7 +169,7 @@ 'expected' => [ 'contains' => false, 'content' => $notice, - 'rucss_status' => false, + 'rucss_status' => [], 'user_id' => 42, 'notice' => [ 'status' => 'wpr-warning', diff --git a/tests/Integration/inc/Engine/CDN/RocketCDN/AdminPageSubscriber/preserveAuthorizationToken.php b/tests/Integration/inc/Engine/CDN/RocketCDN/AdminPageSubscriber/preserveAuthorizationToken.php index 198b228661..99c0454279 100644 --- a/tests/Integration/inc/Engine/CDN/RocketCDN/AdminPageSubscriber/preserveAuthorizationToken.php +++ b/tests/Integration/inc/Engine/CDN/RocketCDN/AdminPageSubscriber/preserveAuthorizationToken.php @@ -17,7 +17,6 @@ class Test_PreserveAuthorizationToken extends TestCase { use ApiTrait; - private $client; protected static $api_credentials_config_file = 'rocketcdn.php'; public static function set_up_before_class() { diff --git a/tests/Integration/inc/Engine/Cache/AdvancedCache/noticePermissions.php b/tests/Integration/inc/Engine/Cache/AdvancedCache/noticePermissions.php index df383042e7..b692865f70 100644 --- a/tests/Integration/inc/Engine/Cache/AdvancedCache/noticePermissions.php +++ b/tests/Integration/inc/Engine/Cache/AdvancedCache/noticePermissions.php @@ -71,9 +71,9 @@ public function testShouldEchoNotice( $config, $expected ) { if ( empty( $expected ) ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $advanced_cache->notice_permissions(); - - return; +// $advanced_cache->notice_permissions(); +// +// return; } ob_start(); diff --git a/tests/Integration/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php b/tests/Integration/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php index 7a9f20fd31..35830ee254 100644 --- a/tests/Integration/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php +++ b/tests/Integration/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php @@ -44,14 +44,14 @@ public function testUpdateAdvancedCache( $set_filter, $expected ) { public function testShouldNotUpdateWhenMultisiteAndSitesNotZero() { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $advanced_cache = new AdvancedCache( - $this->filesystem->getUrl( $this->config['vfs_dir'] ), - $this->filesystem - ); - - Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); - - $advanced_cache->update_advanced_cache( 1 ); +// $advanced_cache = new AdvancedCache( +// $this->filesystem->getUrl( $this->config['vfs_dir'] ), +// $this->filesystem +// ); +// +// Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); +// +// $advanced_cache->update_advanced_cache( 1 ); } /** diff --git a/tests/Integration/inc/Engine/Cache/WPCache/noticeWpConfigPermissions.php b/tests/Integration/inc/Engine/Cache/WPCache/noticeWpConfigPermissions.php index 0d44b98579..b550a43dd1 100644 --- a/tests/Integration/inc/Engine/Cache/WPCache/noticeWpConfigPermissions.php +++ b/tests/Integration/inc/Engine/Cache/WPCache/noticeWpConfigPermissions.php @@ -84,9 +84,9 @@ public function testShouldEchoNotice( $config, $expected ) { if ( empty( $expected ) ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $wp_cache->notice_wp_config_permissions(); - - return; +// $wp_cache->notice_wp_config_permissions(); +// +// return; } ob_start(); diff --git a/tests/Integration/inc/Engine/Cache/WPCache/updateWPCache.php b/tests/Integration/inc/Engine/Cache/WPCache/updateWPCache.php index 2d3daf6148..66f83e62bc 100644 --- a/tests/Integration/inc/Engine/Cache/WPCache/updateWPCache.php +++ b/tests/Integration/inc/Engine/Cache/WPCache/updateWPCache.php @@ -38,10 +38,10 @@ public function testShouldCallSetCacheConstant() { public function testShouldNotUpdateWhenMultisiteAndSitesNotZero() { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $wp_cache = new WPCache( null ); - - Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); - - $wp_cache->update_wp_cache( 1 ); +// $wp_cache = new WPCache( null ); +// +// Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); +// +// $wp_cache->update_wp_cache( 1 ); } } diff --git a/tests/Integration/inc/Engine/CriticalPath/CriticalCSS/processHandler.php b/tests/Integration/inc/Engine/CriticalPath/CriticalCSS/processHandler.php index 29a47cf748..f597b81812 100644 --- a/tests/Integration/inc/Engine/CriticalPath/CriticalCSS/processHandler.php +++ b/tests/Integration/inc/Engine/CriticalPath/CriticalCSS/processHandler.php @@ -122,8 +122,6 @@ public function testShouldHandleProcess( $config, $expected ) { ); if ( $expected['generated'] ) { - $this->assertStopGeneration( $process ); - $this->prepareSetItems( $config ); } @@ -150,10 +148,6 @@ private function addFilters( $filters ) { } } - private function assertStopGeneration( $process ) { - //$process->shouldReceive( 'cancel_process' )->once()->andReturn( null ); - } - private function prepareSetItems( $config ) { $this->prepareFrontPage( $config ); diff --git a/tests/Integration/inc/Engine/CriticalPath/CriticalCSSSubscriber/generateCriticalCssOnActivation.php b/tests/Integration/inc/Engine/CriticalPath/CriticalCSSSubscriber/generateCriticalCssOnActivation.php index 4cff2996bb..565162070b 100644 --- a/tests/Integration/inc/Engine/CriticalPath/CriticalCSSSubscriber/generateCriticalCssOnActivation.php +++ b/tests/Integration/inc/Engine/CriticalPath/CriticalCSSSubscriber/generateCriticalCssOnActivation.php @@ -114,7 +114,7 @@ public function testShouldProcessMultisite( $values, $site_id, $should_generate if ( $should_generate ) { $this->assertEquals( 1, $this->did_filter['do_rocket_critical_css_generation'] ); $value = get_transient( 'rocket_critical_css_generation_process_running' ); - $this->assertSame( [ 'total', 'items' ], array_keys( $value ) ); + $this->assertSame( [ 'total', 'items' ], array_keys( $value ) ); // @phpstan-ignore-line } else { $this->assertEquals( 0, $this->did_filter['do_rocket_critical_css_generation'] ); $this->assertFalse( get_transient( 'rocket_critical_css_generation_process_running' ) ); diff --git a/tests/Integration/inc/Engine/CriticalPath/ProcessorService/processGenerate.php b/tests/Integration/inc/Engine/CriticalPath/ProcessorService/processGenerate.php index 862b0f61d1..c2353714b9 100644 --- a/tests/Integration/inc/Engine/CriticalPath/ProcessorService/processGenerate.php +++ b/tests/Integration/inc/Engine/CriticalPath/ProcessorService/processGenerate.php @@ -17,7 +17,7 @@ class Test_ProcessGenerate extends FilesystemTestCase { protected $path_to_test_data = '/inc/Engine/CriticalPath/ProcessorService/processGenerate.php'; private static $container; - private static $user_id; + private static $user_id; // @phpstan-ignore-line private $api_client; private $processor; diff --git a/tests/Integration/inc/Engine/CriticalPath/RESTWPPost/generate.php b/tests/Integration/inc/Engine/CriticalPath/RESTWPPost/generate.php index 1f568ad1cf..fa3d00bbf8 100644 --- a/tests/Integration/inc/Engine/CriticalPath/RESTWPPost/generate.php +++ b/tests/Integration/inc/Engine/CriticalPath/RESTWPPost/generate.php @@ -13,9 +13,14 @@ */ class Test_Generate extends RESTVfsTestCase { protected $path_to_test_data = '/inc/Engine/CriticalPath/RESTWPPost/generate.php'; + + // @phpstan-ignore-next-line private static $post_id; + // @phpstan-ignore-next-line private $async_css_mobile; + + // @phpstan-ignore-next-line private $do_caching_mobile_files; public static function wpSetUpBeforeClass( $factory ) { @@ -35,115 +40,115 @@ public function tear_down() { protected function doTest( $site_id, $config, $expected ) { $this->markTestSkipped(); - $orig_post_id = isset( $config['post_data']['ID'] ) - ? $config['post_data']['ID'] - : 0; - - if ( isset( $config['post_data'] ) ) { - $config['post_data']['ID'] = self::$post_id; - - $post_id = wp_update_post( $config['post_data'], true ); - } else { - $post_id = 0; - } - - $post_type = isset( $config['post_data']['post_type'] ) - ? $config['post_data']['post_type'] - : 'post'; - - $post_title = isset( $config['post_data']['post_title'] ) - ? $config['post_data']['post_title'] - : ''; - - $post_request_response_code = ! isset( $config['generate_post_request_data']['code'] ) - ? 200 - : $config['generate_post_request_data']['code']; - $post_request_response_body = ! isset( $config['generate_post_request_data']['body'] ) - ? '' - : $config['generate_post_request_data']['body']; - $get_request_response_body = ! isset( $config['generate_get_request_data']['body'] ) - ? '' - : $config['generate_get_request_data']['body']; - $request_timeout = isset( $config['request_timeout'] ) - ? $config['request_timeout'] - : false; - $is_mobile = isset( $config['mobile'] ) - ? $config['mobile'] - : false; - $no_fontface = isset( $config['no_fontface'] ) - ? $config['no_fontface'] - : false; - $async_css_mobile = isset( $config['async_css_mobile'] ) - ? $config['async_css_mobile'] - : 0; - $do_caching_mobile_files = isset( $config['do_caching_mobile_files'] ) - ? $config['do_caching_mobile_files'] - : 0; - - Functions\expect( 'wp_remote_post' ) - ->atMost() - ->times( 1 ) - ->with( - 'https://cpcss.wp-rocket.me/api/job/', - [ - 'body' => [ - 'url' => "http://example.org/?p={$post_id}", - 'mobile' => (int) $is_mobile, - 'nofontface' => $no_fontface, - ], - ] - ) - ->andReturn( 'postRequest' ); - - Functions\expect( 'wp_remote_get' ) - ->atMost() - ->times( 1 ) - ->andReturn( 'getRequest' ); - - Functions\expect( 'wp_remote_retrieve_response_code' ) - ->atMost() - ->times( 1 ) - ->andReturn( $post_request_response_code ); - - Functions\expect( 'wp_remote_retrieve_body' ) - ->ordered() - ->atMost() - ->times( 1 ) - ->with( 'postRequest' ) - ->andReturn( $post_request_response_body ) - ->andAlsoExpectIt() - ->atMost() - ->times( 1 ) - ->with( 'getRequest' ) - ->andReturn( $get_request_response_body ); - - $this->async_css_mobile = $async_css_mobile; - add_filter( 'pre_get_rocket_option_async_css_mobile', [ $this, 'setAsyncCssMobileOption' ] ); - - $this->do_caching_mobile_files = $do_caching_mobile_files; - add_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'setDoCachingMobileFilesOption' ] ); - - $file = $this->config['vfs_dir'] . "cache/critical-css/{$site_id}/posts/{$post_type}-{$post_id}" . ( $is_mobile ? '-mobile' : '' ). ".css"; - - $body_param = []; - $body_param['is_mobile'] = $is_mobile; - if ( $request_timeout ) { - $body_param['timeout'] = true; - } - - $expected['message'] = str_replace( $orig_post_id, $post_id, $expected['message'] ); - - $cache_file_path = $this->filesystem->getUrl( "{$this->config['vfs_dir']}cache/wp-rocket/example.org/{$post_title}/index.html" ); - if ( $expected['success'] ) { - $this->assertTrue( $this->filesystem->exists( $cache_file_path ) ); - } - - $this->assertSame( $expected, $this->doRestRequest( 'POST', "/wp-rocket/v1/cpcss/post/{$post_id}", $body_param ) ); - $this->assertSame( $config['cpcss_exists_after'], $this->filesystem->exists( $file ) ); - - if ( $expected['success'] ) { - $this->assertFalse( $this->filesystem->exists( $cache_file_path ) ); - } +// $orig_post_id = isset( $config['post_data']['ID'] ) +// ? $config['post_data']['ID'] +// : 0; +// +// if ( isset( $config['post_data'] ) ) { +// $config['post_data']['ID'] = self::$post_id; +// +// $post_id = wp_update_post( $config['post_data'], true ); +// } else { +// $post_id = 0; +// } +// +// $post_type = isset( $config['post_data']['post_type'] ) +// ? $config['post_data']['post_type'] +// : 'post'; +// +// $post_title = isset( $config['post_data']['post_title'] ) +// ? $config['post_data']['post_title'] +// : ''; +// +// $post_request_response_code = ! isset( $config['generate_post_request_data']['code'] ) +// ? 200 +// : $config['generate_post_request_data']['code']; +// $post_request_response_body = ! isset( $config['generate_post_request_data']['body'] ) +// ? '' +// : $config['generate_post_request_data']['body']; +// $get_request_response_body = ! isset( $config['generate_get_request_data']['body'] ) +// ? '' +// : $config['generate_get_request_data']['body']; +// $request_timeout = isset( $config['request_timeout'] ) +// ? $config['request_timeout'] +// : false; +// $is_mobile = isset( $config['mobile'] ) +// ? $config['mobile'] +// : false; +// $no_fontface = isset( $config['no_fontface'] ) +// ? $config['no_fontface'] +// : false; +// $async_css_mobile = isset( $config['async_css_mobile'] ) +// ? $config['async_css_mobile'] +// : 0; +// $do_caching_mobile_files = isset( $config['do_caching_mobile_files'] ) +// ? $config['do_caching_mobile_files'] +// : 0; +// +// Functions\expect( 'wp_remote_post' ) +// ->atMost() +// ->times( 1 ) +// ->with( +// 'https://cpcss.wp-rocket.me/api/job/', +// [ +// 'body' => [ +// 'url' => "http://example.org/?p={$post_id}", +// 'mobile' => (int) $is_mobile, +// 'nofontface' => $no_fontface, +// ], +// ] +// ) +// ->andReturn( 'postRequest' ); +// +// Functions\expect( 'wp_remote_get' ) +// ->atMost() +// ->times( 1 ) +// ->andReturn( 'getRequest' ); +// +// Functions\expect( 'wp_remote_retrieve_response_code' ) +// ->atMost() +// ->times( 1 ) +// ->andReturn( $post_request_response_code ); +// +// Functions\expect( 'wp_remote_retrieve_body' ) +// ->ordered() +// ->atMost() +// ->times( 1 ) +// ->with( 'postRequest' ) +// ->andReturn( $post_request_response_body ) +// ->andAlsoExpectIt() +// ->atMost() +// ->times( 1 ) +// ->with( 'getRequest' ) +// ->andReturn( $get_request_response_body ); +// +// $this->async_css_mobile = $async_css_mobile; +// add_filter( 'pre_get_rocket_option_async_css_mobile', [ $this, 'setAsyncCssMobileOption' ] ); +// +// $this->do_caching_mobile_files = $do_caching_mobile_files; +// add_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'setDoCachingMobileFilesOption' ] ); +// +// $file = $this->config['vfs_dir'] . "cache/critical-css/{$site_id}/posts/{$post_type}-{$post_id}" . ( $is_mobile ? '-mobile' : '' ). ".css"; +// +// $body_param = []; +// $body_param['is_mobile'] = $is_mobile; +// if ( $request_timeout ) { +// $body_param['timeout'] = true; +// } +// +// $expected['message'] = str_replace( $orig_post_id, $post_id, $expected['message'] ); +// +// $cache_file_path = $this->filesystem->getUrl( "{$this->config['vfs_dir']}cache/wp-rocket/example.org/{$post_title}/index.html" ); +// if ( $expected['success'] ) { +// $this->assertTrue( $this->filesystem->exists( $cache_file_path ) ); +// } +// +// $this->assertSame( $expected, $this->doRestRequest( 'POST', "/wp-rocket/v1/cpcss/post/{$post_id}", $body_param ) ); +// $this->assertSame( $config['cpcss_exists_after'], $this->filesystem->exists( $file ) ); +// +// if ( $expected['success'] ) { +// $this->assertFalse( $this->filesystem->exists( $cache_file_path ) ); +// } } /** diff --git a/tests/Integration/inc/Engine/Optimization/GoogleFonts/Admin/Subscriber/displayGoogleFontsEnabler.php b/tests/Integration/inc/Engine/Optimization/GoogleFonts/Admin/Subscriber/displayGoogleFontsEnabler.php index 9992d6c551..6ccea76c75 100644 --- a/tests/Integration/inc/Engine/Optimization/GoogleFonts/Admin/Subscriber/displayGoogleFontsEnabler.php +++ b/tests/Integration/inc/Engine/Optimization/GoogleFonts/Admin/Subscriber/displayGoogleFontsEnabler.php @@ -53,32 +53,6 @@ public function providerTestData() { return $this->getTestData( __DIR__, 'displayGoogleFontsEnabler' ); } - private function getExpectedHtml() { - $html = << -
-
-Enable Google Font Optimization
-
-Improves font performance and combines multiple font requests to reduce the number of HTTP requests.
-
-This is a one-time action and this button will be removed afterwards. -More info -
-
-Google Fonts Optimization is now enabled for your site. -More info -
-
-
- -
- -HTML; - - return $this->format_the_html( $html ); - } private function getActualHtml() { ob_start(); diff --git a/tests/Integration/inc/Engine/Support/Subscriber/registerSupportRoute.php b/tests/Integration/inc/Engine/Support/Subscriber/registerSupportRoute.php index aa8ce70f8b..bb65ed6782 100644 --- a/tests/Integration/inc/Engine/Support/Subscriber/registerSupportRoute.php +++ b/tests/Integration/inc/Engine/Support/Subscriber/registerSupportRoute.php @@ -17,8 +17,6 @@ class Test_RegisterSupportRoute extends WPMediaRESTfulTestCase { protected static $api_credentials_config_file = 'license.php'; protected $config; - private $consumer_key; - private $consumer_email; private $wp_version; public static function set_up_before_class() { diff --git a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanDomain.php b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanDomain.php index e97c9230ba..00ff018ce6 100644 --- a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanDomain.php +++ b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanDomain.php @@ -14,9 +14,9 @@ class Test_cleanDomain extends GodaddyTestCase { public function testShouldDoBanRequest( ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); - - do_action( 'before_rocket_clean_domain', '', '', home_url() ); +// Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); +// +// do_action( 'before_rocket_clean_domain', '', '', home_url() ); } } diff --git a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanFile.php b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanFile.php index 8f0838870e..77859a4088 100644 --- a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanFile.php +++ b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanFile.php @@ -14,9 +14,9 @@ class Test_cleanFile extends GodaddyTestCase { public function testShouldPurgeFile( ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); - - do_action( 'before_rocket_clean_file', home_url() ); +// Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); +// +// do_action( 'before_rocket_clean_file', home_url() ); } } diff --git a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanHome.php b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanHome.php index 66caace24d..92a48ef977 100644 --- a/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanHome.php +++ b/tests/Integration/inc/ThirdParty/Hostings/Godaddy/cleanHome.php @@ -14,9 +14,9 @@ class Test_cleanHome extends GodaddyTestCase { public function testShouldPurgeHome( ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); - - do_action( 'before_rocket_clean_home', 'wp-rocket/cache', '' ); +// Filters\expectApplied( 'pre_http_request' )->andReturn( 'response' ); +// +// do_action( 'before_rocket_clean_home', 'wp-rocket/cache', '' ); } } diff --git a/tests/Integration/inc/ThirdParty/Hostings/Pressidium/cleanPost.php b/tests/Integration/inc/ThirdParty/Hostings/Pressidium/cleanPost.php index 2f5fa4a61b..9bb501d569 100644 --- a/tests/Integration/inc/ThirdParty/Hostings/Pressidium/cleanPost.php +++ b/tests/Integration/inc/ThirdParty/Hostings/Pressidium/cleanPost.php @@ -29,12 +29,12 @@ public function tear_down() { */ public function testShouldReturnExpected( $config, $expected ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - - $post = $this->factory()->post->create_and_get( $config['post'] ); - - $this->ninukis_caching->shouldReceive( 'purge_url' ) - ->with( $config['url'] ); - - do_action( 'after_rocket_clean_post', $post, $config['url'], '' ); +// +// $post = $this->factory()->post->create_and_get( $config['post'] ); +// +// $this->ninukis_caching->shouldReceive( 'purge_url' ) +// ->with( $config['url'] ); +// +// do_action( 'after_rocket_clean_post', $post, $config['url'], '' ); } } diff --git a/tests/Integration/inc/ThirdParty/Hostings/Pressidium/purgeUrl.php b/tests/Integration/inc/ThirdParty/Hostings/Pressidium/purgeUrl.php index 020d7b18b9..7e525196b5 100644 --- a/tests/Integration/inc/ThirdParty/Hostings/Pressidium/purgeUrl.php +++ b/tests/Integration/inc/ThirdParty/Hostings/Pressidium/purgeUrl.php @@ -26,8 +26,8 @@ public function set_up() { public function testShouldReturnExpected( $config ) { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $this->ninukis_caching->shouldReceive( 'purge_url' ); - - do_action( 'after_rocket_clean_file' ); +// $this->ninukis_caching->shouldReceive( 'purge_url' ); +// +// do_action( 'after_rocket_clean_file' ); } } diff --git a/tests/Integration/inc/ThirdParty/Themes/Avada/cleanDomain.php b/tests/Integration/inc/ThirdParty/Themes/Avada/cleanDomain.php index b4f56183a9..1c9cd0d6a2 100644 --- a/tests/Integration/inc/ThirdParty/Themes/Avada/cleanDomain.php +++ b/tests/Integration/inc/ThirdParty/Themes/Avada/cleanDomain.php @@ -20,11 +20,14 @@ public function testShouldCleanCacheWhenAvadaCacheIsCleaned() { $cache_exists = false; + // @phpstan-ignore-next-line $this->assertSame( ! $cache_exists, $this->filesystem->exists( 'wp-content/cache/wp-rocket/example.org/index.html' ) ); + // @phpstan-ignore-next-line $this->assertSame( ! $cache_exists, $this->filesystem->exists( 'wp-content/cache/wp-rocket/example.org/index.html_gzip' ) ); + // @phpstan-ignore-next-line $this->assertSame( ! $cache_exists, $this->filesystem->exists( 'wp-content/cache/wp-rocket/example.org-wpmedia-594d03f6ae698691165999/about/index.html' ) ); + // @phpstan-ignore-next-line $this->assertSame( ! $cache_exists, $this->filesystem->exists( 'wp-content/cache/wp-rocket/example.org-wpmedia-594d03f6ae698691165999/about/index.html_gzip' ) ); - apply_filters( 'avada_clear_dynamic_css_cache', [], [] ); $this->assertSame( $cache_exists, $this->filesystem->exists( 'wp-content/cache/wp-rocket/example.org/index.html' ) ); diff --git a/tests/Integration/inc/ThirdParty/Themes/Divi/handleSaveTemplate.php b/tests/Integration/inc/ThirdParty/Themes/Divi/handleSaveTemplate.php index 4d6e5c69ae..62cad7279d 100644 --- a/tests/Integration/inc/ThirdParty/Themes/Divi/handleSaveTemplate.php +++ b/tests/Integration/inc/ThirdParty/Themes/Divi/handleSaveTemplate.php @@ -19,7 +19,10 @@ class Test_handleSaveTemplate extends WPThemeTestcase { protected $path_to_test_data = '/inc/ThirdParty/Themes/Divi/handleSaveTemplate.php'; + // @phpstan-ignore-next-line private static $user_without_permission; + + // @phpstan-ignore-next-line private static $user_with_permission; public static function set_up_before_class() { diff --git a/tests/Integration/inc/admin/rocketAfterSaveOptions.php b/tests/Integration/inc/admin/rocketAfterSaveOptions.php index a937a50e3f..b437cefc31 100644 --- a/tests/Integration/inc/admin/rocketAfterSaveOptions.php +++ b/tests/Integration/inc/admin/rocketAfterSaveOptions.php @@ -31,7 +31,6 @@ class Test_RocketAfterSaveOptions extends FilesystemTestCase { ]; private $is_apache; - private $hooks = []; private $expected; private $rocketCleanDomainEntriesBefore; private $rocketCleanMinifyEntriesBefore; @@ -84,7 +83,7 @@ public function tear_down() { public function testShouldTriggerCleaningsWhenOptionsChange( $settings, $expected ) { // Skip the "not an array" test as it fails in other hooked callbacks that are not checking for array. if ( ! is_array( $settings ) ) { - $this->assertTrue( true ); + $this->assertTrue( true ); // @phpstan-ignore-line return; } diff --git a/tests/Unit/inc/Addon/Cloudflare/Subscriber/saveCloudflareOptions.php b/tests/Unit/inc/Addon/Cloudflare/Subscriber/saveCloudflareOptions.php index e1dd2e5fe0..0b762e24cc 100644 --- a/tests/Unit/inc/Addon/Cloudflare/Subscriber/saveCloudflareOptions.php +++ b/tests/Unit/inc/Addon/Cloudflare/Subscriber/saveCloudflareOptions.php @@ -64,7 +64,7 @@ public function testShouldReturnExpected( $config, $expected ) { $this->cloudflare->shouldReceive( 'set_cache_level' ) ->with( 'aggressive' ) ->atMost() - ->once() + ->twice() ->andReturn( 'aggressive' ); $this->cloudflare->shouldReceive( 'set_rocket_loader' ) diff --git a/tests/Unit/inc/Engine/Admin/DomainChange/Subscriber/maybeCleanCacheDomainChange.php b/tests/Unit/inc/Engine/Admin/DomainChange/Subscriber/maybeCleanCacheDomainChange.php index 36895152bf..9f49fa8a66 100644 --- a/tests/Unit/inc/Engine/Admin/DomainChange/Subscriber/maybeCleanCacheDomainChange.php +++ b/tests/Unit/inc/Engine/Admin/DomainChange/Subscriber/maybeCleanCacheDomainChange.php @@ -58,6 +58,6 @@ public function testShouldDoAsExpected( $config ) } $this->subscriber->maybe_clean_cache_domain_change(); - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line } } diff --git a/tests/Unit/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php b/tests/Unit/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php index 5f9c711021..10faa7c587 100644 --- a/tests/Unit/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php +++ b/tests/Unit/inc/Engine/Cache/AdvancedCache/updateAdvancedCache.php @@ -47,16 +47,16 @@ public function testUpdateAdvancedCache( $set_filter, $expected ) { public function testShouldNotUpdateWhenMultisiteAndSitesNotZero() { $this->markTestSkipped( 'Test doest not perform assertion, need to revisit' ); - $advanced_cache = new AdvancedCache( - $this->filesystem->getUrl( $this->config['vfs_dir'] ), - $this->filesystem - ); - - Functions\when( 'is_rocket_generate_caching_mobile_files' )->justReturn( false ); - Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); - Functions\when( 'is_multisite' )->justReturn( true ); - - $advanced_cache->update_advanced_cache( 1 ); +// $advanced_cache = new AdvancedCache( +// $this->filesystem->getUrl( $this->config['vfs_dir'] ), +// $this->filesystem +// ); +// +// Functions\when( 'is_rocket_generate_caching_mobile_files' )->justReturn( false ); +// Functions\when( 'current_filter' )->justReturn( 'rocket_deactivation' ); +// Functions\when( 'is_multisite' )->justReturn( true ); +// +// $advanced_cache->update_advanced_cache( 1 ); } /** diff --git a/tests/Unit/inc/Engine/CriticalPath/CriticalCSSSubscriber/maybeGenerateCpcssMobile.php b/tests/Unit/inc/Engine/CriticalPath/CriticalCSSSubscriber/maybeGenerateCpcssMobile.php index c5bba524d2..41249023ac 100644 --- a/tests/Unit/inc/Engine/CriticalPath/CriticalCSSSubscriber/maybeGenerateCpcssMobile.php +++ b/tests/Unit/inc/Engine/CriticalPath/CriticalCSSSubscriber/maybeGenerateCpcssMobile.php @@ -23,7 +23,6 @@ class Test_MaybeGenerateCpcssMobile extends TestCase { private $subscriber; private $critical_css; - private $processor_service; protected $user; protected $options_api; diff --git a/tests/Unit/inc/Engine/CriticalPath/RESTWPPost/delete.php b/tests/Unit/inc/Engine/CriticalPath/RESTWPPost/delete.php index f92999ead1..efa8549f44 100644 --- a/tests/Unit/inc/Engine/CriticalPath/RESTWPPost/delete.php +++ b/tests/Unit/inc/Engine/CriticalPath/RESTWPPost/delete.php @@ -56,7 +56,7 @@ public function testShouldDoExpected( $config, $expected ) { switch ( $expected['code'] ) { case 'rest_forbidden': // Skip as it's not valid for the unit test. - $this->assertTrue( true ); + $this->assertTrue( true ); // @phpstan-ignore-line return; diff --git a/tests/Unit/inc/Engine/Media/AboveTheFold/Frontend/Controller/addExclusions.php b/tests/Unit/inc/Engine/Media/AboveTheFold/Frontend/Controller/addExclusions.php index b313b41179..5fb5a71692 100644 --- a/tests/Unit/inc/Engine/Media/AboveTheFold/Frontend/Controller/addExclusions.php +++ b/tests/Unit/inc/Engine/Media/AboveTheFold/Frontend/Controller/addExclusions.php @@ -8,7 +8,6 @@ use WP_Rocket\Engine\Media\AboveTheFold\Context\Context; use WP_Rocket\Engine\Media\AboveTheFold\Database\Queries\AboveTheFold; use WP_Rocket\Engine\Media\AboveTheFold\Frontend\Controller; -use WP_Filesystem_Direct; use WP_Rocket\Tests\Unit\TestCase; use WP_Rocket\Tests\Fixtures\inc\Engine\Common\JobManager\Manager; @@ -23,7 +22,6 @@ class Test_addExclusions extends TestCase { private $query; private $controller; private $context; - private $filesystem; protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/inc/Engine/Media/Lazyload/CSS/Admin/Subscriber/maybeAddErrorNotice.php b/tests/Unit/inc/Engine/Media/Lazyload/CSS/Admin/Subscriber/maybeAddErrorNotice.php index a99f2f5bbe..00b7e24432 100644 --- a/tests/Unit/inc/Engine/Media/Lazyload/CSS/Admin/Subscriber/maybeAddErrorNotice.php +++ b/tests/Unit/inc/Engine/Media/Lazyload/CSS/Admin/Subscriber/maybeAddErrorNotice.php @@ -36,7 +36,7 @@ public function testShouldDoAsExpected( $config, $expected ) { $this->subscriber->maybe_add_error_notice(); - $this->assertTrue( true ); + $this->assertTrue( true ); // @phpstan-ignore-line } protected function configureIsAccessible( $config, $expected ) { diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php index aaf3d3794c..7486d1e658 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php @@ -34,7 +34,7 @@ public function setUp() : void { */ public function testShouldDoExpected( $input ){ if ( $this->isPHP8() ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return; } @@ -58,7 +58,7 @@ public function testShouldDoExpected( $input ){ public function isPHP8() { $version = explode('.', PHP_VERSION); if ( $version[0] >= 8 ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return true; } diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php index 3e82c62031..05fbf1d36a 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php @@ -47,7 +47,7 @@ protected function tearDown(): void { public function testShouldDeleteTableAndOption() { if ( $this->isPHP8() ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return; } @@ -67,7 +67,7 @@ public function testShouldDeleteTableAndOption() { public function isPHP8() { $version = explode('.', PHP_VERSION); if ( $version[0] >= 8 ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return true; } diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php index 6d70b8cc0c..7c47d4f893 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php @@ -34,7 +34,7 @@ public function setUp() : void { */ public function testShouldDoExpected( $input ){ if ( $this->isPHP8() ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return; } @@ -58,7 +58,7 @@ public function testShouldDoExpected( $input ){ public function isPHP8() { $version = explode('.', PHP_VERSION); if ( $version[0] >= 8 ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return true; } diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php index d136bbeb06..5ee9108d69 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php @@ -34,7 +34,7 @@ public function setUp() : void { */ public function testShouldDoExpected( $input ){ if ( $this->isPHP8() ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return; } @@ -59,7 +59,7 @@ public function testShouldDoExpected( $input ){ public function isPHP8() { $version = explode('.', PHP_VERSION); if ( $version[0] >= 8 ) { - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line return true; } diff --git a/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php index 924a54084d..5b5a21feb0 100755 --- a/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php +++ b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php @@ -56,9 +56,6 @@ public function testShouldDoAsExpected($config, $expected) { protected function configureWordPressSitemap($config) { if(count($config['filter_sitemaps']) > 0) { return ; - $this->query->expects(self::once())->method('create_or_nothing')->with([ - 'url' => $config['home_url'] - ]); } Functions\expect('get_option')->with('blog_public')->andReturn($config['is_sitemap_activated']); diff --git a/tests/Unit/inc/ThirdParty/Plugins/CDN/Cloudflare/updateAddonField.php b/tests/Unit/inc/ThirdParty/Plugins/CDN/Cloudflare/updateAddonField.php index aff7a0e44e..18664bcabe 100644 --- a/tests/Unit/inc/ThirdParty/Plugins/CDN/Cloudflare/updateAddonField.php +++ b/tests/Unit/inc/ThirdParty/Plugins/CDN/Cloudflare/updateAddonField.php @@ -69,10 +69,6 @@ public function testShouldReturnAsExpected( $config, $expected ) return $config['cloudflare_cached_domain_name']; } - if('cloudflare_cached_domain_name' === $name) { - return $config['cloudflare_cached_domain_name']; - } - return null; }); $this->assertSame($expected, $this->cloudflare->update_addon_field($config['settings'])); diff --git a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php index 411690687a..3d5d53dc82 100644 --- a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php +++ b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php @@ -102,7 +102,7 @@ public function testShouldDoExpected( $config, $expected ) { 10, has_filter( 'do_rocket_protocol_rewrite', '__return_false' ) ); - $this->assertEmpty( $wp_filter ); + $this->assertEmpty( $wp_filter ); // @phpstan-ignore-line if ( in_array( $config[ 'amp_options' ][ 'theme_support' ], [ 'transitional', 'reader' ], true ) ) { $this->assertSame( diff --git a/tests/Unit/inc/ThirdParty/Themes/Themify/disablingConcatOnRucss.php b/tests/Unit/inc/ThirdParty/Themes/Themify/disablingConcatOnRucss.php index fa7c1c99e1..49165f2789 100644 --- a/tests/Unit/inc/ThirdParty/Themes/Themify/disablingConcatOnRucss.php +++ b/tests/Unit/inc/ThirdParty/Themes/Themify/disablingConcatOnRucss.php @@ -46,6 +46,6 @@ public function testShouldDoAsExpected( $config, $expected ) $this->themify->disabling_concat_on_rucss( $config['old_configurations'], $config['new_configurations'] ); - $this->assertTrue(true); + $this->assertTrue(true); // @phpstan-ignore-line } } diff --git a/tests/Unit/inc/classes/third-party/plugins/Images/Webp/EWWW_Subscriber/loadHooks.php b/tests/Unit/inc/classes/third-party/plugins/Images/Webp/EWWW_Subscriber/loadHooks.php index 23b8885778..b45fe3ec2d 100644 --- a/tests/Unit/inc/classes/third-party/plugins/Images/Webp/EWWW_Subscriber/loadHooks.php +++ b/tests/Unit/inc/classes/third-party/plugins/Images/Webp/EWWW_Subscriber/loadHooks.php @@ -50,7 +50,8 @@ public function testShouldRegisterHooksWhenPluginNotAvailable() { $subscriber->load_hooks(); - $this->assertTrue( true ); // Prevent "risky" warning. + // Prevent "risky" warning. + $this->assertTrue( true ); // @phpstan-ignore-line } public function testShouldCallCallbacksWhenDidAction() { diff --git a/tests/Unit/inc/common/rocketCleanPostCacheOnStatusChange.php b/tests/Unit/inc/common/rocketCleanPostCacheOnStatusChange.php index 831499d137..f3ab1cdc70 100644 --- a/tests/Unit/inc/common/rocketCleanPostCacheOnStatusChange.php +++ b/tests/Unit/inc/common/rocketCleanPostCacheOnStatusChange.php @@ -30,7 +30,7 @@ public function setUp() : void { * @dataProvider configTestData */ public function testShouldReturnAsExpected( $config, $expected ) { - $post = (object) $config['post_data'] ?? []; + $post = (object) $config['post_data']; $post_id = $config['post_data']['ID'] ?? 0; $post_type_public = isset( $config['post_type_public'] ) ? (object) $config['post_type_public'] : null; //post_type_public From 146893943b8b9beb4e59f6e53b0df91fc11d50ac Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Thu, 12 Sep 2024 21:29:12 +0200 Subject: [PATCH 02/38] Comply phpcs --- .../Common/JobManager/APIHandler/AbstractSafeAPIClient.php | 2 +- inc/Engine/Optimization/DeferJS/DeferJS.php | 2 +- inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php index 48306c2b5d..31586c3e8a 100644 --- a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php +++ b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php @@ -73,7 +73,7 @@ private function send_request( $method, $params = [], $safe = false ) { $params['method'] = strtoupper( $method ); /** - * @var WP_Error|array $response + * @var WP_Error|array $response response from the request. */ $response = $this->send_remote_request( $api_url, $method, $params, $safe ); diff --git a/inc/Engine/Optimization/DeferJS/DeferJS.php b/inc/Engine/Optimization/DeferJS/DeferJS.php index 251237c659..8a2edae170 100644 --- a/inc/Engine/Optimization/DeferJS/DeferJS.php +++ b/inc/Engine/Optimization/DeferJS/DeferJS.php @@ -279,7 +279,7 @@ private function get_inline_exclusions_list_pattern() { $inline_exclusions = ''; // Check if filter return is string so convert it to array for backward compatibility. - // @phpstan-ignore-next-line + // @phpstan-ignore-next-line - Ignoring the safeguard as the result could be mixed. if ( is_string( $additional_inline_exclusions_list ) ) { $additional_inline_exclusions_list = explode( '|', $additional_inline_exclusions_list ); } diff --git a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php index 8648563cd4..7857bd8fb8 100644 --- a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php @@ -84,7 +84,7 @@ public function make_status_completed( string $url, bool $is_mobile, string $has } // Get the database interface. - /** @var \wpdb|bool $db */ + /** @var \wpdb|bool $db db interface. */ $db = $this->get_db(); // Bail if no database interface is available. From 0a40daa2ddd02f6dcf063c3111496e6a461c3c76 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Thu, 12 Sep 2024 22:57:09 +0200 Subject: [PATCH 03/38] Fix tests --- inc/Engine/Optimization/RUCSS/Jobs/Manager.php | 2 +- inc/ThirdParty/Hostings/Cloudways.php | 8 ++++++-- inc/ThirdParty/Hostings/WPXCloud.php | 8 ++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php index 0cfcee8745..e128c0393a 100644 --- a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php +++ b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php @@ -120,7 +120,7 @@ public function validate_and_fail( array $job_details, $row_details, string $opt * * @param int $min_rucss_size min size. */ - $min_rucss_size = wpm_apply_filters_typed( 'int', 'rocket_min_rucss_size', 150 ); + $min_rucss_size = wpm_apply_filters_typed( 'integer', 'rocket_min_rucss_size', 150 ); if ( isset( $job_details['contents']['shakedCSS_size'] ) && intval( $job_details['contents']['shakedCSS_size'] ) < $min_rucss_size ) { $message = 'RUCSS: shakedCSS size is less than ' . $min_rucss_size; diff --git a/inc/ThirdParty/Hostings/Cloudways.php b/inc/ThirdParty/Hostings/Cloudways.php index e0bd20ddc6..d7f99d45f4 100644 --- a/inc/ThirdParty/Hostings/Cloudways.php +++ b/inc/ThirdParty/Hostings/Cloudways.php @@ -99,14 +99,18 @@ public function varnish_addon_title( array $settings ) { * * @since 3.5.5 * - * @param array $varnish_ip Varnish IP. + * @param mixed $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( array $varnish_ip ) { + public function varnish_ip( mixed $varnish_ip ) { if ( ! self::is_varnish_running() ) { return $varnish_ip; } + if ( ! is_array( $varnish_ip ) ) { + $varnish_ip = (array) $varnish_ip; + } + $varnish_ip[] = '127.0.0.1:8080'; return $varnish_ip; diff --git a/inc/ThirdParty/Hostings/WPXCloud.php b/inc/ThirdParty/Hostings/WPXCloud.php index a17b983e43..8f8bcb5f02 100644 --- a/inc/ThirdParty/Hostings/WPXCloud.php +++ b/inc/ThirdParty/Hostings/WPXCloud.php @@ -26,10 +26,14 @@ public static function get_subscribed_events(): array { /** * Adds WPX Cloud Varnish IP to varnish IPs array * - * @param array $varnish_ip Varnish IP. + * @param mixed $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( array $varnish_ip ): array { + public function varnish_ip( mixed $varnish_ip ): array { + if ( ! is_array( $varnish_ip ) ) { + $varnish_ip = (array) $varnish_ip; + } + $varnish_ip[] = '127.0.0.1:6081'; return $varnish_ip; From c950daddb98168fbd0a448973c079f0e486b3117 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Fri, 13 Sep 2024 02:13:24 +0200 Subject: [PATCH 04/38] Fix tests --- .../Common/JobManager/APIHandler/AbstractSafeAPIClient.php | 4 +--- inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php | 5 +++-- inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php | 2 +- inc/ThirdParty/Hostings/Cloudways.php | 2 +- inc/ThirdParty/Hostings/WPXCloud.php | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php index 31586c3e8a..79ca54d580 100644 --- a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php +++ b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php @@ -72,9 +72,7 @@ private function send_request( $method, $params = [], $safe = false ) { $params['method'] = strtoupper( $method ); - /** - * @var WP_Error|array $response response from the request. - */ + /** @var WP_Error|array $response response from the request. */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $response = $this->send_remote_request( $api_url, $method, $params, $safe ); if ( is_wp_error( $response ) ) { diff --git a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php index 64658cfa3c..d4e29e6485 100755 --- a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php +++ b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php @@ -48,11 +48,12 @@ public function clean_minify( array $old, array $new ) { // phpcs:ignore Univers * @since 3.5.4 * * @param array $new An array of submitted settings. - * @param array $old An array of previous settings. + * @param mixed $old An array of previous settings or false. * * @return array Updates 'minify_css_key' setting when regenerated; else, original submitted settings. */ - public function regenerate_minify_css_key( array $new, array $old ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound + public function regenerate_minify_css_key( array $new, $old ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.newFound + $old = is_array( $old ) ? $old : []; if ( ! $this->maybe_minify_regenerate( $new, $old ) ) { return $new; } diff --git a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php index 7857bd8fb8..a661cbd03e 100644 --- a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php @@ -84,7 +84,7 @@ public function make_status_completed( string $url, bool $is_mobile, string $has } // Get the database interface. - /** @var \wpdb|bool $db db interface. */ + /** @var \wpdb|bool $db Database interface instance or boolean. */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $db = $this->get_db(); // Bail if no database interface is available. diff --git a/inc/ThirdParty/Hostings/Cloudways.php b/inc/ThirdParty/Hostings/Cloudways.php index d7f99d45f4..e896c2fea0 100644 --- a/inc/ThirdParty/Hostings/Cloudways.php +++ b/inc/ThirdParty/Hostings/Cloudways.php @@ -102,7 +102,7 @@ public function varnish_addon_title( array $settings ) { * @param mixed $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( mixed $varnish_ip ) { + public function varnish_ip( $varnish_ip ) { if ( ! self::is_varnish_running() ) { return $varnish_ip; } diff --git a/inc/ThirdParty/Hostings/WPXCloud.php b/inc/ThirdParty/Hostings/WPXCloud.php index 8f8bcb5f02..e963cfd69d 100644 --- a/inc/ThirdParty/Hostings/WPXCloud.php +++ b/inc/ThirdParty/Hostings/WPXCloud.php @@ -29,7 +29,7 @@ public static function get_subscribed_events(): array { * @param mixed $varnish_ip Varnish IP. * @return array */ - public function varnish_ip( mixed $varnish_ip ): array { + public function varnish_ip( $varnish_ip ): array { if ( ! is_array( $varnish_ip ) ) { $varnish_ip = (array) $varnish_ip; } From 33523cd2177c5c7572129a6b2f6679127ff45de7 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Fri, 13 Sep 2024 15:37:35 +0200 Subject: [PATCH 05/38] Fix phpstan ci --- inc/Engine/Admin/Settings/Render.php | 1 + inc/Engine/Plugin/UpdaterSubscriber.php | 1 + 2 files changed, 2 insertions(+) diff --git a/inc/Engine/Admin/Settings/Render.php b/inc/Engine/Admin/Settings/Render.php index 04d927b15b..7650b99ac0 100644 --- a/inc/Engine/Admin/Settings/Render.php +++ b/inc/Engine/Admin/Settings/Render.php @@ -127,6 +127,7 @@ public function render_form_sections() { */ public function render_imagify_section() { + // @phpstan-ignore-next-line require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $plugin_data = get_transient( 'rocket_imagify_plugin_data' ); diff --git a/inc/Engine/Plugin/UpdaterSubscriber.php b/inc/Engine/Plugin/UpdaterSubscriber.php index e92bc20598..5e9c39da51 100644 --- a/inc/Engine/Plugin/UpdaterSubscriber.php +++ b/inc/Engine/Plugin/UpdaterSubscriber.php @@ -466,6 +466,7 @@ public function rollback() { set_site_transient( 'update_plugins', $plugin_transient ); + // @phpstan-ignore-next-line require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // translators: %s is the plugin name. From b846cea91187250ec5bd31b2eca6dd6c872594d8 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Sun, 15 Sep 2024 20:18:47 +0200 Subject: [PATCH 06/38] Delete wrongly duplicated line --- inc/Addon/Cloudflare/Subscriber.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Addon/Cloudflare/Subscriber.php b/inc/Addon/Cloudflare/Subscriber.php index 2ae8ba8f40..5ea9de2fc2 100644 --- a/inc/Addon/Cloudflare/Subscriber.php +++ b/inc/Addon/Cloudflare/Subscriber.php @@ -417,7 +417,6 @@ private function save_cloudflare_auto_settings( $auto_settings, $old_settings ) // Set Cache Level to Aggressive. $cf_cache_level = 0 === $auto_settings ? $cf_old_settings[0] : 'aggressive'; $result[] = $this->save_cache_level( $cf_cache_level ); - $result[] = $this->save_cache_level( $cf_cache_level ); // Deactivate Rocket Loader to prevent conflicts. $cf_rocket_loader = isset( $cf_old_settings[2] ) && 0 === $auto_settings ? $cf_old_settings[2] : 'off'; From 8653f6b348566741946086fad9faf0dcbd7232ef Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Sun, 15 Sep 2024 21:02:03 +0200 Subject: [PATCH 07/38] Comply feedbacks --- inc/Dependencies/Database/Base.php | 2 +- inc/Engine/Admin/Beacon/Beacon.php | 2 - .../Metaboxes/PostEditOptionsSubscriber.php | 4 -- inc/Engine/Admin/Settings/Page.php | 2 - .../Cache/PurgeExpired/PurgeExpiredCache.php | 2 - .../Common/Database/Queries/AbstractQuery.php | 2 +- .../CriticalPath/CriticalCSSSubscriber.php | 2 - inc/Engine/License/API/User.php | 2 +- .../Media/AboveTheFold/AJAX/Controller.php | 2 - .../Media/AboveTheFold/Context/Context.php | 2 - .../AboveTheFold/Frontend/Controller.php | 2 - .../Lazyload/CSS/Front/MappingFormatter.php | 2 - inc/Engine/Media/Lazyload/CSS/Subscriber.php | 6 --- inc/Engine/Optimization/DeferJS/DeferJS.php | 2 - .../Optimization/DelayJS/ServiceProvider.php | 1 - .../Optimization/DelayJS/Subscriber.php | 13 +----- .../GoogleFonts/AbstractGFOptimization.php | 2 - .../Optimization/RUCSS/Jobs/Manager.php | 5 +-- inc/Engine/Preload/Controller/PreloadUrl.php | 11 ++--- inc/Engine/Preload/Links/Subscriber.php | 8 +--- inc/Engine/Preload/Subscriber.php | 45 ------------------- .../Ecommerce/WooCommerceSubscriber.php | 2 +- inc/ThirdParty/Plugins/Optimization/AMP.php | 11 +---- inc/ThirdParty/Plugins/SEO/Yoast.php | 15 ------- inc/ThirdParty/ServiceProvider.php | 3 +- .../Optimization/AMP/disableOptionsOnAmp.php | 5 +-- .../AMP/excludeScriptFromDelayJs.php | 4 +- .../AMP/isAmpCompatibleCallback.php | 4 +- 28 files changed, 18 insertions(+), 145 deletions(-) diff --git a/inc/Dependencies/Database/Base.php b/inc/Dependencies/Database/Base.php index 27e1f176bf..1e28f2323c 100644 --- a/inc/Dependencies/Database/Base.php +++ b/inc/Dependencies/Database/Base.php @@ -281,7 +281,7 @@ protected function set_vars( $args = array() ) { * * @since 1.0.0 * - * @return \wpdb|bool Database interface, or False if not set + * @return \wpdb|false Database interface, or False if not set */ protected function get_db() { diff --git a/inc/Engine/Admin/Beacon/Beacon.php b/inc/Engine/Admin/Beacon/Beacon.php index 84104d1b99..9e7092f5be 100644 --- a/inc/Engine/Admin/Beacon/Beacon.php +++ b/inc/Engine/Admin/Beacon/Beacon.php @@ -121,8 +121,6 @@ private function get_user_locale() { * @since 3.6 * * @param string $locale The locale ID. - * - * @return string */ return wpm_apply_filters_typed( 'string', 'rocket_beacon_locale', $this->locale ); } diff --git a/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php b/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php index 2cb5bcc128..1924c171d2 100644 --- a/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php +++ b/inc/Engine/Admin/Metaboxes/PostEditOptionsSubscriber.php @@ -103,8 +103,6 @@ public function display_metabox() { * WP Rocket Metabox fields on post edit page. * * @param string[] $original_fields Metaboxes fields. - * - * @return array */ $fields = wpm_apply_filters_typed( 'array', 'rocket_meta_boxes_fields', $original_fields ); @@ -176,8 +174,6 @@ public function save_metabox_options() { * Metaboxes fields. * * @param string[] $original_fields Metaboxes fields. - * - * @return array */ $fields = wpm_apply_filters_typed( 'array', 'rocket_meta_boxes_fields', $original_fields ); diff --git a/inc/Engine/Admin/Settings/Page.php b/inc/Engine/Admin/Settings/Page.php index 2e863c86e3..d92403007a 100644 --- a/inc/Engine/Admin/Settings/Page.php +++ b/inc/Engine/Admin/Settings/Page.php @@ -1518,8 +1518,6 @@ private function cdn_section() { * Filters the addons names requiring the helper message. * * @param array $addons Array of addons. - * - * @return array */ $addons = wpm_apply_filters_typed( 'array', 'rocket_cdn_helper_addons', [] ); diff --git a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php index 758afaca9c..b1e95a1693 100644 --- a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php +++ b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php @@ -59,8 +59,6 @@ public function purge_expired_files( $lifespan ) { * * @param array $urls URLs that will be searched for old cache files. * @param int $file_age_limit Timestamp of the maximum age files must have. - * - * @return array */ $urls = wpm_apply_filters_typed( 'array', 'rocket_automatic_cache_purge_urls', $urls, $file_age_limit ); diff --git a/inc/Engine/Common/Database/Queries/AbstractQuery.php b/inc/Engine/Common/Database/Queries/AbstractQuery.php index a0ef247be2..312ed218b3 100644 --- a/inc/Engine/Common/Database/Queries/AbstractQuery.php +++ b/inc/Engine/Common/Database/Queries/AbstractQuery.php @@ -45,7 +45,7 @@ public function get_row( string $url, bool $is_mobile = false ) { * * @param int $row_id DB Row ID. * - * @return array|bool|object false if no row found, array if row found. + * @return array|bool false if no row found, array if row found. */ public function get_row_by_id( int $row_id ) { if ( ! self::$table_exists && ! $this->table_exists() ) { diff --git a/inc/Engine/CriticalPath/CriticalCSSSubscriber.php b/inc/Engine/CriticalPath/CriticalCSSSubscriber.php index 65636e2105..ffba529501 100644 --- a/inc/Engine/CriticalPath/CriticalCSSSubscriber.php +++ b/inc/Engine/CriticalPath/CriticalCSSSubscriber.php @@ -818,8 +818,6 @@ public function switch_to_rucss_notice() { * Filters the status of the RUCSS option. * * @param array $should_disable will return array with disable status and text. - * - * @return array */ $rucss_status = wpm_apply_filters_typed( 'array', diff --git a/inc/Engine/License/API/User.php b/inc/Engine/License/API/User.php index 289ec37c90..14b5094100 100644 --- a/inc/Engine/License/API/User.php +++ b/inc/Engine/License/API/User.php @@ -13,7 +13,7 @@ class User { /** * Instantiate the class * - * @param object|bool $user The user object. + * @param object|false $user The user object. */ public function __construct( $user ) { $this->user = is_object( $user ) ? $user : new \stdClass(); diff --git a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php index 87f08ed2b6..7d245910bb 100644 --- a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php +++ b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php @@ -323,8 +323,6 @@ private function validate_image_src( string $image_src ): bool { * Filters the supported schemes of LCP/ATF images. * * @param array $invalid_schemes Array of invalid schemes. - * - * @return array */ $invalid_schemes = wpm_apply_filters_typed( 'array', 'rocket_atf_invalid_schemes', $this->invalid_schemes ); diff --git a/inc/Engine/Media/AboveTheFold/Context/Context.php b/inc/Engine/Media/AboveTheFold/Context/Context.php index cd5154eff6..0090b7ccfe 100644 --- a/inc/Engine/Media/AboveTheFold/Context/Context.php +++ b/inc/Engine/Media/AboveTheFold/Context/Context.php @@ -22,8 +22,6 @@ public function is_allowed( array $data = [] ): bool { * Filters to manage above the fold optimization * * @param bool $allow True to allow, false otherwise. - * - * @return bool */ return wpm_apply_filters_typed( 'boolean', 'rocket_above_the_fold_optimization', true ); } diff --git a/inc/Engine/Media/AboveTheFold/Frontend/Controller.php b/inc/Engine/Media/AboveTheFold/Frontend/Controller.php index 203bbc42fa..e34481d969 100644 --- a/inc/Engine/Media/AboveTheFold/Frontend/Controller.php +++ b/inc/Engine/Media/AboveTheFold/Frontend/Controller.php @@ -432,8 +432,6 @@ public function add_custom_data( array $data ): array { * @since 3.16 * * @param array $formats Array of elements - * - * @return array */ $elements = wpm_apply_filters_typed( 'array', 'rocket_atf_elements', $default_elements ); diff --git a/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php b/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php index 72059c5520..61f73d9c55 100644 --- a/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php +++ b/inc/Engine/Media/Lazyload/CSS/Front/MappingFormatter.php @@ -57,8 +57,6 @@ private function get_pseudo_elements_to_remove() { * Pseudo elements to remove from lazyload CSS selector. * * @param string[] $original_pseudo_elements Pseudo elements to remove. - * - * @return array */ $pseudo_elements_to_remove = wpm_apply_filters_typed( 'array', 'rocket_lazyload_css_ignored_pseudo_elements', $original_pseudo_elements ); diff --git a/inc/Engine/Media/Lazyload/CSS/Subscriber.php b/inc/Engine/Media/Lazyload/CSS/Subscriber.php index b66434c808..0a33ec5350 100644 --- a/inc/Engine/Media/Lazyload/CSS/Subscriber.php +++ b/inc/Engine/Media/Lazyload/CSS/Subscriber.php @@ -175,8 +175,6 @@ public function maybe_replace_css_images( string $html ): string { * Generate lazyload CSS for the page. * * @param array $data Data passed to generate the lazyload CSS. - * - * @return array */ $output = wpm_apply_filters_typed( 'array', @@ -539,8 +537,6 @@ protected function is_excluded( string $string ) { // phpcs:ignore Universal.Nam * Filters the src used to prevent lazy load from being applied. * * @param array $excluded_src An array of excluded src. - * - * @return array */ $excluded_values = wpm_apply_filters_typed( 'array', 'rocket_lazyload_excluded_src', [] ); @@ -583,8 +579,6 @@ public function exclude_rocket_lazyload_excluded_src( $excluded, $urls ) { * Filters the src used to prevent lazy load from being applied. * * @param array $excluded_src An array of excluded src. - * - * @return array */ $excluded_values = wpm_apply_filters_typed( 'array', 'rocket_lazyload_excluded_src', [] ); diff --git a/inc/Engine/Optimization/DeferJS/DeferJS.php b/inc/Engine/Optimization/DeferJS/DeferJS.php index 8a2edae170..70f27fe0cc 100644 --- a/inc/Engine/Optimization/DeferJS/DeferJS.php +++ b/inc/Engine/Optimization/DeferJS/DeferJS.php @@ -271,8 +271,6 @@ private function get_inline_exclusions_list_pattern() { * @since 3.8 * * @param array $inline_exclusions_list Array of inline JS that should not be deferred. - * - * @return mixed Array or string of inline JS that should not be deferred. */ $additional_inline_exclusions_list = apply_filters( 'rocket_defer_inline_exclusions', [] ); diff --git a/inc/Engine/Optimization/DelayJS/ServiceProvider.php b/inc/Engine/Optimization/DelayJS/ServiceProvider.php index 7310faf8ae..9b59735b1f 100644 --- a/inc/Engine/Optimization/DelayJS/ServiceProvider.php +++ b/inc/Engine/Optimization/DelayJS/ServiceProvider.php @@ -60,7 +60,6 @@ public function register(): void { $this->getContainer()->addShared( 'delay_js_subscriber', Subscriber::class ) ->addArgument( $this->getContainer()->get( 'delay_js_html' ) ) ->addArgument( rocket_direct_filesystem() ) - ->addArgument( $this->getContainer()->get( 'options' ) ) ->addTag( 'front_subscriber' ); } } diff --git a/inc/Engine/Optimization/DelayJS/Subscriber.php b/inc/Engine/Optimization/DelayJS/Subscriber.php index c0a053e253..2f6d68a52d 100644 --- a/inc/Engine/Optimization/DelayJS/Subscriber.php +++ b/inc/Engine/Optimization/DelayJS/Subscriber.php @@ -26,26 +26,15 @@ class Subscriber implements Subscriber_Interface { */ private $filesystem; - /** - * Options Data instance - * - * @var Options_Data - * - * @phpstan-ignore-next-line - */ - private $options; - /** * Subscriber constructor. * * @param HTML $html HTML Instance. * @param \WP_Filesystem_Direct $filesystem The Filesystem object. - * @param Options_Data $options Options data instance. */ - public function __construct( HTML $html, $filesystem, Options_Data $options ) { + public function __construct( HTML $html, $filesystem ) { $this->html = $html; $this->filesystem = $filesystem; - $this->options = $options; } /** diff --git a/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php b/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php index e1bf7224cf..e3b112402b 100644 --- a/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php +++ b/inc/Engine/Optimization/GoogleFonts/AbstractGFOptimization.php @@ -95,8 +95,6 @@ protected function get_font_display_value(): string { * @since 3.3.5 * * @param string $display Display value. Can be either auto, block, swap, fallback or optional. - * - * @return string */ $display = wpm_apply_filters_typed( 'string', 'rocket_combined_google_fonts_display', 'swap' ); diff --git a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php index e128c0393a..a0dd746965 100644 --- a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php +++ b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php @@ -189,10 +189,9 @@ public function set_request_param(): array { * * @since 3.14 * - * @param array|object $skipped_attr Array of safelist values. + * @param array $skipped_attr Array of safelist values. */ - $skipped_attr = apply_filters( 'rocket_rucss_skip_styles_with_attr', [] ); - $skipped_attr = ( is_array( $skipped_attr ) ) ? $skipped_attr : []; + $skipped_attr = wpm_apply_filters_typed('array', 'rocket_rucss_skip_styles_with_attr', [] ); return [ 'rucss_safelist' => $safelist, diff --git a/inc/Engine/Preload/Controller/PreloadUrl.php b/inc/Engine/Preload/Controller/PreloadUrl.php index 167f5f573e..a5a6d41b57 100755 --- a/inc/Engine/Preload/Controller/PreloadUrl.php +++ b/inc/Engine/Preload/Controller/PreloadUrl.php @@ -131,15 +131,12 @@ public function preload_url( string $url ) { * * @param array $headers Request arguments. */ - $headers = apply_filters( + $headers = wpm_apply_filters_typed( + 'array', 'rocket_preload_url_request_args', $headers ); - if ( ! is_array( $headers ) ) { // @phpstan-ignore-line - return; - } - if ( $check_duration ) { $start = microtime( true ); } @@ -199,9 +196,9 @@ protected function get_mobile_user_agent_prefix() { * * @param string $prefix The prefix. */ - $new_prefix = apply_filters( 'rocket_mobile_preload_user_agent_prefix', $prefix ); + $new_prefix = wpm_apply_filters_typed('string', 'rocket_mobile_preload_user_agent_prefix', $prefix ); - if ( empty( $new_prefix ) || ! is_string( $new_prefix ) ) { // @phpstan-ignore-line + if ( empty( $new_prefix ) ) { return $prefix; } diff --git a/inc/Engine/Preload/Links/Subscriber.php b/inc/Engine/Preload/Links/Subscriber.php index f820a8dcdf..82de1b627c 100644 --- a/inc/Engine/Preload/Links/Subscriber.php +++ b/inc/Engine/Preload/Links/Subscriber.php @@ -187,14 +187,10 @@ private function get_uris_to_exclude( $use_trailing_slash ) { * * @since 3.10.8 * - * @param object|string[] $excluded Array of excluded patterns. + * @param string[] $excluded Array of excluded patterns. * @param string[] $default Array of default excluded patterns. */ - $excluded = apply_filters( 'rocket_preload_links_exclusions', $excluded, $default ); - - if ( ! is_array( $excluded ) ) { - $excluded = (array) $excluded; - } + $excluded = wpm_apply_filters_typed('array', 'rocket_preload_links_exclusions', $excluded, $default ); $excluded = array_filter( $excluded ); diff --git a/inc/Engine/Preload/Subscriber.php b/inc/Engine/Preload/Subscriber.php index 79f246c605..2c70cecac4 100644 --- a/inc/Engine/Preload/Subscriber.php +++ b/inc/Engine/Preload/Subscriber.php @@ -502,51 +502,6 @@ public function remove_private_post( string $new_status, string $old_status, $po $this->delete_post_preload_cache( $post->ID ); } - /** - * Get all private urls for public post types. - * - * @return array - * - * @phpstan-ignore-next-line - */ - private function get_all_private_urls() { - static $private_urls; - - if ( rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ) { - $private_urls = null; - } - - if ( isset( $private_urls ) ) { - return $private_urls; - } - - $private_urls = []; - - $public_post_types = get_post_types( [ 'public' => true ] ); - unset( $public_post_types['attachment'] ); - - $arg = [ - 'post_type' => $public_post_types, - 'post_status' => 'private', - 'posts_per_page' => -1, - ]; - $query = new \WP_Query( $arg ); - - if ( ! $query->have_posts() ) { - return []; - } - - foreach ( $query->posts as $post ) { - // Temporarily cast publish status to get pretty url. - $post->post_status = 'publish'; - $private_post_url = get_permalink( $post ); - - $private_urls[ md5( $private_post_url ) ] = $private_post_url; - } - - return $private_urls; - } - /** * Exclude private urls. * diff --git a/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php b/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php index 19e10fe01a..b94f294928 100644 --- a/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php +++ b/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber.php @@ -388,7 +388,7 @@ public function cache_empty_cart() { * @since 3.1 * @author Remy Perona * - * @return mixed|string + * @return mixed */ private function get_cache_empty_cart() { $lang = rocket_get_current_language(); diff --git a/inc/ThirdParty/Plugins/Optimization/AMP.php b/inc/ThirdParty/Plugins/Optimization/AMP.php index 0a8103f8ec..c64ffb32cc 100644 --- a/inc/ThirdParty/Plugins/Optimization/AMP.php +++ b/inc/ThirdParty/Plugins/Optimization/AMP.php @@ -21,21 +21,12 @@ class AMP implements Subscriber_Interface { */ private $cdn_subscriber; - /** - * WP Rocket Options instance - * - * @var Options_Data - */ - private $options; // @phpstan-ignore-line - Options is written but not read. - /** * Constructor * - * @param Options_Data $options WP Rocket Options instance. * @param Subscriber_Interface $cdn_subscriber WP Rocket CDN Subscriber. */ - public function __construct( Options_Data $options, Subscriber_Interface $cdn_subscriber ) { - $this->options = $options; + public function __construct( Subscriber_Interface $cdn_subscriber ) { $this->cdn_subscriber = $cdn_subscriber; } diff --git a/inc/ThirdParty/Plugins/SEO/Yoast.php b/inc/ThirdParty/Plugins/SEO/Yoast.php index 31767ae6e4..b401a488d4 100644 --- a/inc/ThirdParty/Plugins/SEO/Yoast.php +++ b/inc/ThirdParty/Plugins/SEO/Yoast.php @@ -7,21 +7,6 @@ use WP_Rocket\Event_Management\Subscriber_Interface; class Yoast implements Subscriber_Interface { - /** - * Options Data instance - * - * @var Options_Data - */ - private $options; // @phpstan-ignore-line - Properties not used in here. - - /** - * Constructor - * - * @param Options_Data $options Options_Data instance. - */ - public function __construct( Options_Data $options ) { - $this->options = $options; - } /** * Array of events this subscriber listens to diff --git a/inc/ThirdParty/ServiceProvider.php b/inc/ThirdParty/ServiceProvider.php index 50fbc95569..d19820a577 100644 --- a/inc/ThirdParty/ServiceProvider.php +++ b/inc/ThirdParty/ServiceProvider.php @@ -168,7 +168,7 @@ public function register(): void { ->addTag( 'common_subscriber' ); $this->getContainer() ->addShared( 'amp_subscriber', AMP::class ) - ->addArgument( $options )->addArgument( $this->getContainer()->get( 'cdn_subscriber' ) ) + ->addArgument( $this->getContainer()->get( 'cdn_subscriber' ) ) ->addTag( 'common_subscriber' ); $this->getContainer() ->addShared( 'simple_custom_css', SimpleCustomCss::class ) @@ -207,7 +207,6 @@ public function register(): void { ->addTag( 'common_subscriber' ); $this->getContainer() ->addShared( 'yoast_seo', Yoast::class ) - ->addArgument( $options ) ->addTag( 'common_subscriber' ); $this->getContainer() ->addShared( 'convertplug', ConvertPlug::class ) diff --git a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php index 3d5d53dc82..56ae8ae6b0 100644 --- a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php +++ b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/disableOptionsOnAmp.php @@ -17,15 +17,13 @@ */ class Test_DisableOptionsOnAmp extends TestCase { private $amp; - private $options; private $cdn_subscriber; public function setUp() : void { parent::setUp(); - $this->options = Mockery::mock( Options_Data::class ); $this->cdn_subscriber = Mockery::mock( Subscriber::class ); - $this->amp = new AMP( $this->options, $this->cdn_subscriber ); + $this->amp = new AMP( $this->cdn_subscriber ); } /** @@ -48,7 +46,6 @@ public function testShouldDoExpected( $config, $expected ) { if ( $expected[ 'bailout' ] ) { Functions\expect( 'remove_filter' )->never(); - $this->options->shouldReceive( 'get' )->never(); } else { global $wp_filter; add_filter( 'wp_resource_hints', 'rocket_dns_prefetch', 10, 2 ); diff --git a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php index cf4be63745..99688ed64a 100644 --- a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php +++ b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php @@ -17,15 +17,13 @@ class Test_ExcludeScriptFromDelayJs extends TestCase { private $amp; - private $options; private $cdn_subscriber; public function setUp() : void { parent::setUp(); - $this->options = Mockery::mock( Options_Data::class ); $this->cdn_subscriber = Mockery::mock( Subscriber::class ); - $this->amp = new AMP( $this->options, $this->cdn_subscriber ); + $this->amp = new AMP( $this->cdn_subscriber ); } /** diff --git a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/isAmpCompatibleCallback.php b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/isAmpCompatibleCallback.php index 3a81bc1bcb..aba193dff0 100644 --- a/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/isAmpCompatibleCallback.php +++ b/tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/isAmpCompatibleCallback.php @@ -16,15 +16,13 @@ */ class Test_IsAmpCompatibleCallback extends TestCase { private $amp; - private $options; private $cdn_subscriber; public function setUp() : void { parent::setUp(); - $this->options = Mockery::mock( Options_Data::class ); $this->cdn_subscriber = Mockery::mock( Subscriber::class ); - $this->amp = new AMP( $this->options, $this->cdn_subscriber ); + $this->amp = new AMP( $this->cdn_subscriber ); } /** From b6c8fd2817fd674f92d837994911b8f71fceef16 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Sun, 15 Sep 2024 21:06:57 +0200 Subject: [PATCH 08/38] Linter --- inc/Engine/Optimization/RUCSS/Jobs/Manager.php | 2 +- inc/Engine/Preload/Controller/PreloadUrl.php | 2 +- inc/Engine/Preload/Links/Subscriber.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php index a0dd746965..f0c9cd382e 100644 --- a/inc/Engine/Optimization/RUCSS/Jobs/Manager.php +++ b/inc/Engine/Optimization/RUCSS/Jobs/Manager.php @@ -191,7 +191,7 @@ public function set_request_param(): array { * * @param array $skipped_attr Array of safelist values. */ - $skipped_attr = wpm_apply_filters_typed('array', 'rocket_rucss_skip_styles_with_attr', [] ); + $skipped_attr = wpm_apply_filters_typed( 'array', 'rocket_rucss_skip_styles_with_attr', [] ); return [ 'rucss_safelist' => $safelist, diff --git a/inc/Engine/Preload/Controller/PreloadUrl.php b/inc/Engine/Preload/Controller/PreloadUrl.php index a5a6d41b57..4a8905e103 100755 --- a/inc/Engine/Preload/Controller/PreloadUrl.php +++ b/inc/Engine/Preload/Controller/PreloadUrl.php @@ -196,7 +196,7 @@ protected function get_mobile_user_agent_prefix() { * * @param string $prefix The prefix. */ - $new_prefix = wpm_apply_filters_typed('string', 'rocket_mobile_preload_user_agent_prefix', $prefix ); + $new_prefix = wpm_apply_filters_typed( 'string', 'rocket_mobile_preload_user_agent_prefix', $prefix ); if ( empty( $new_prefix ) ) { return $prefix; diff --git a/inc/Engine/Preload/Links/Subscriber.php b/inc/Engine/Preload/Links/Subscriber.php index 82de1b627c..c93001f624 100644 --- a/inc/Engine/Preload/Links/Subscriber.php +++ b/inc/Engine/Preload/Links/Subscriber.php @@ -190,7 +190,7 @@ private function get_uris_to_exclude( $use_trailing_slash ) { * @param string[] $excluded Array of excluded patterns. * @param string[] $default Array of default excluded patterns. */ - $excluded = wpm_apply_filters_typed('array', 'rocket_preload_links_exclusions', $excluded, $default ); + $excluded = wpm_apply_filters_typed( 'array', 'rocket_preload_links_exclusions', $excluded, $default ); $excluded = array_filter( $excluded ); From 6f3b9a1d4fcccec200a83613b06422a32f3acac2 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Mon, 16 Sep 2024 14:23:37 +0200 Subject: [PATCH 09/38] Fix --- inc/Engine/Common/Database/Queries/AbstractQuery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Engine/Common/Database/Queries/AbstractQuery.php b/inc/Engine/Common/Database/Queries/AbstractQuery.php index 312ed218b3..4e66794281 100644 --- a/inc/Engine/Common/Database/Queries/AbstractQuery.php +++ b/inc/Engine/Common/Database/Queries/AbstractQuery.php @@ -45,7 +45,7 @@ public function get_row( string $url, bool $is_mobile = false ) { * * @param int $row_id DB Row ID. * - * @return array|bool false if no row found, array if row found. + * @return object|array|bool false if no row found, array or object if row found. */ public function get_row_by_id( int $row_id ) { if ( ! self::$table_exists && ! $this->table_exists() ) { From 3f80a90a377a0fbc192877b6cd079108d2fad9da Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Mon, 16 Sep 2024 15:19:37 +0200 Subject: [PATCH 10/38] merge --- assets/css/wpr-admin.css | 4 +- assets/css/wpr-admin.min.css | 2 +- assets/js/wpr-beacon.js | 153 ++- assets/js/wpr-beacon.min.js | 2 +- assets/js/wpr-beacon.min.js.map | 6 +- composer.json | 5 +- dynamic-lists-delayjs.json | 2 +- dynamic-lists-incompatible-plugins.json | 2 +- dynamic-lists.json | 2 +- inc/Addon/Varnish/Subscriber.php | 11 +- inc/Engine/Admin/Beacon/Beacon.php | 10 + .../Admin/Settings/AdminBarMenuTrait.php | 132 +++ .../Admin/Settings/DataClearingTrait.php | 46 + inc/Engine/Admin/Settings/Page.php | 16 +- inc/Engine/Cache/PurgeActionsSubscriber.php | 25 +- .../AJAX/AJAXControllerTrait.php | 31 + .../AJAX/ControllerInterface.php | 8 +- .../PerformanceHints/AJAX/Processor.php | 60 + .../PerformanceHints/AJAX/Subscriber.php | 21 +- .../Activation/ServiceProvider.php | 19 + .../PerformanceHints/Admin/AdminBar.php | 106 ++ .../Common/PerformanceHints/Admin/Clean.php | 55 + .../PerformanceHints/Admin/Controller.php | 45 +- .../Common/PerformanceHints/Admin/Notices.php | 51 + .../PerformanceHints/Admin/Subscriber.php | 122 +- .../PerformanceHints/Frontend/Processor.php | 19 +- .../PerformanceHints/Frontend/Subscriber.php | 59 +- .../PerformanceHints/ServiceProvider.php | 70 +- .../PerformanceHints/WarmUp/Controller.php | 25 +- .../PerformanceHints/WarmUp/Subscriber.php | 2 +- .../Media/AboveTheFold/AJAX/Controller.php | 69 +- .../Media/ImageDimensions/Subscriber.php | 46 +- .../LazyRenderContent/AJAX/Controller.php | 140 +++ .../Activation/ActivationFactory.php | 35 + .../LazyRenderContent/Context/Context.php | 27 + .../Database/Queries/LazyRenderContent.php | 101 ++ .../Database/Rows/LazyRenderContent.php | 112 ++ .../Database/Schema/LazyRenderContent.php | 110 ++ .../Database/Table/LazyRenderContent.php | 57 + .../LazyRenderContent/Factory.php | 112 ++ .../LazyRenderContent/Frontend/Controller.php | 173 +++ .../Frontend/Processor/Dom.php | 138 +++ .../Frontend/Processor/HelperTrait.php | 73 ++ .../Frontend/Processor/Processor.php | 45 + .../Frontend/Processor/ProcessorInterface.php | 15 + .../Frontend/Processor/Regex.php | 93 ++ .../Frontend/Processor/SimpleHtmlDom.php | 98 ++ .../LazyRenderContent/Frontend/Subscriber.php | 58 + .../LazyRenderContent/ServiceProvider.php | 89 ++ inc/Engine/Saas/Admin/AdminBar.php | 150 +-- inc/Engine/Saas/Admin/Clean.php | 31 +- inc/Engine/Saas/Admin/Notices.php | 31 +- inc/Engine/Saas/ServiceProvider.php | 4 +- inc/Engine/WPRocketUninstall.php | 22 +- inc/Plugin.php | 3 + inc/classes/class-abstract-render.php | 1 + inc/common/admin-bar.php | 4 +- languages/rocket-fa_IR.po | 1036 ++++++++-------- languages/rocket-fr_FR.po | 1047 +++++++++-------- languages/rocket-pt_BR.po | 78 +- languages/rocket-pt_PT.po | 1045 ++++++++-------- languages/rocket-tr_TR.po | 1046 ++++++++-------- languages/rocket.pot | 978 +++++++-------- package.json | 2 +- src/scss/components/_button.scss | 3 + .../Addon/Varnish/Subscriber/cleanFile.php | 18 + .../Settings/Page/displayUpdateNotice.php | 6 +- .../Settings/Settings/addMenuToAdminBar.php | 40 + .../Settings/addURLMenuItemToAdminBar.php | 55 + .../Settings/displayDashboardButton.php | 59 + .../AJAX/Subscriber/addData.php | 1 + .../AJAX/Subscriber/checkData.php | 2 +- .../AdminBar/addCleanPerformanceHintsItem.php | 68 ++ .../addPerformanceHintsClearUrlMenuItem.php | 75 ++ ...splayCleanPerformanceHintsResultNotice.php | 42 + .../HTML/input_with_only_lrc_opt.html | 12 + .../Subscriber/HTML/output_w_beacon.html | 2 +- .../HTML/output_with_beacon_and_atf_opt.html | 8 + .../output_with_beacon_and_only_lrc_opt.html | 12 + .../Subscriber/maybe_apply_optimizations.php | 630 ++++++---- .../start_performance_hints_buffer.php | 25 + .../WarmUp/Controller/fetchLinks.php | 15 - .../WarmUp/Subscriber/warmUp.php | 17 + .../WarmUp/Subscriber/warmUpHome.php | 53 + .../AboveTheFold/AJAX/Controller/addData.php | 32 +- .../Subscriber/imageDimensionsQueryString.php | 18 + .../AJAX/Controller/addData.php | 291 +++++ .../AJAX/Controller/checkData.php | 53 + .../Context/Context/isAllowed.php | 25 + .../Frontend/Controller/addCustomData.php | 28 + .../Controller/expected-single-line.html | 14 + .../Frontend/Controller/expected.html | 25 + .../Frontend/Controller/hashed.html | 24 + .../Frontend/Controller/optimize.php | 57 + .../Controller/single-line-hashed.html | 13 + .../Frontend/Processor/Dom/addHashes.php | 23 + .../Processor/Processor/getProcessor.php | 16 + .../Frontend/Processor/Regex/addHashes.php | 23 + .../Processor/SimpleHtmlDom/addHashes.php | 23 + .../Frontend/Processor/expected.html | 24 + .../Frontend/Processor/expectedRegex.html | 24 + .../Frontend/Processor/original.html | 24 + .../Frontend/Subscriber/add_hashes.php | 60 + .../Subscriber/add_hashes_when_allowed.php | 50 + .../Frontend/Subscriber/html/expected.php | 67 ++ .../html/long_expected_150_hashes.php | 375 ++++++ .../html/long_expected_200_hashes.php | 375 ++++++ .../Subscriber/html/long_original.php | 375 ++++++ .../Frontend/Subscriber/html/original.php | 67 ++ .../Admin/AdminBar/addCleanSaasMenuItem.php | 14 - .../Admin/AdminBar/addCleanUrlMenuItem.php | 17 - tests/Integration/DBTrait.php | 60 +- tests/Integration/bootstrap.php | 24 +- .../AJAX/Subscriber/addData.php | 7 +- .../AJAX/Subscriber/checkData.php | 2 +- .../Admin/Controller/truncateFromAdmin.php | 12 +- .../Cron/Subscriber/cleanup.php | 2 + .../Subscriber/maybe_apply_optimizations.php | 16 +- .../start_performance_hints_buffer.php | 73 ++ .../WarmUp/Subscriber/warmUp.php | 7 +- .../WarmUp/Subscriber/warmUpHome.php | 57 + .../Filter/lrcProcessedTagsFilter.php | 36 + .../Frontend/Subscriber/add_hashes.php | 66 ++ .../Subscriber/add_hashes_when_allowed.php | 62 + .../Engine/WPRocketUninstall/uninstall.php | 3 +- .../Settings/Settings/addMenuToAdminBar.php | 74 ++ .../Settings/addURLMenuItemToAdminBar.php | 81 ++ .../Settings/displayDashboardButton.php | 75 ++ .../AdminBar/addCleanPerformanceHintsItem.php | 91 ++ .../addPerformanceHintsClearUrlMenuItem.php | 97 ++ .../Admin/Controller/truncateOnUpdate.php | 10 +- ...splayCleanPerformanceHintsResultNotice.php | 57 + .../WarmUp/Controller/fetchLinks.php | 3 - .../AboveTheFold/AJAX/Controller/addData.php | 12 +- .../Subscriber/imageDimensionsQueryString.php | 52 + .../AJAX/Controller/addData.php | 107 ++ .../AJAX/Controller/checkData.php | 83 ++ .../ActivationFactory/getContext.php | 24 + .../Context/Context/isAllowed.php | 35 + .../Frontend/Controller/addCustomData.php | 40 + .../Frontend/Controller/optimize.php | 44 + .../Frontend/Processor/Dom/addHashes.php | 30 + .../Processor/Processor/getProcessor.php | 34 + .../Frontend/Processor/Regex/addHashes.php | 30 + .../Processor/SimpleHtmlDom/addHashes.php | 30 + .../Admin/AdminBar/addCleanSaasMenuItem.php | 6 +- .../Admin/AdminBar/addCleanUrlMenuItem.php | 2 +- .../Admin/Notices/addLocalizeScriptData.php | 2 +- .../Admin/Notices/displayProcessingNotice.php | 2 +- .../Admin/Notices/displaySaasErrorNotice.php | 4 +- .../Admin/Notices/displaySuccessNotice.php | 2 +- uninstall.php | 5 +- views/settings/page-sections/dashboard.php | 8 +- views/settings/sections/clean-section.php | 5 +- wp-rocket.php | 6 +- 155 files changed, 9660 insertions(+), 3278 deletions(-) create mode 100644 inc/Engine/Admin/Settings/AdminBarMenuTrait.php create mode 100644 inc/Engine/Admin/Settings/DataClearingTrait.php create mode 100644 inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php create mode 100644 inc/Engine/Common/PerformanceHints/AJAX/Processor.php create mode 100644 inc/Engine/Common/PerformanceHints/Admin/AdminBar.php create mode 100644 inc/Engine/Common/PerformanceHints/Admin/Clean.php create mode 100644 inc/Engine/Common/PerformanceHints/Admin/Notices.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Context/Context.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Database/Queries/LazyRenderContent.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Database/Rows/LazyRenderContent.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Database/Schema/LazyRenderContent.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Database/Table/LazyRenderContent.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Factory.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Controller.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/HelperTrait.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/ProcessorInterface.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber.php create mode 100644 inc/Engine/Optimization/LazyRenderContent/ServiceProvider.php create mode 100644 tests/Fixtures/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php create mode 100644 tests/Fixtures/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php create mode 100644 tests/Fixtures/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/input_with_only_lrc_opt.html create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_atf_opt.html create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_only_lrc_opt.html create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php create mode 100644 tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php create mode 100644 tests/Fixtures/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected-single-line.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/hashed.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/single-line-hashed.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expected.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expectedRegex.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/original.html create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_150_hashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_200_hashes.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php create mode 100644 tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php create mode 100644 tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php create mode 100644 tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php create mode 100644 tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Filter/lrcProcessedTagsFilter.php create mode 100644 tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php create mode 100644 tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php create mode 100644 tests/Unit/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php create mode 100644 tests/Unit/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php create mode 100644 tests/Unit/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php create mode 100644 tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php create mode 100644 tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php create mode 100644 tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php create mode 100644 tests/Unit/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php create mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php diff --git a/assets/css/wpr-admin.css b/assets/css/wpr-admin.css index b0f9dd0be6..2fd876baee 100755 --- a/assets/css/wpr-admin.css +++ b/assets/css/wpr-admin.css @@ -1624,6 +1624,9 @@ div.wpr-upgrade-websites { font-size: 0.6875rem; line-height: 1.8181818182; } +.wpr-button--no-min-width { + min-width: auto !important; +} .wpr-button--icon { min-width: 160px; padding-left: 8px; @@ -2015,7 +2018,6 @@ div.wpr-upgrade-websites { .wpr-radio-buttons { padding-left: 24px; } - .wpr-fieldWarning.wpr-radio-warning { margin-left: -24px; padding-left: 30px; diff --git a/assets/css/wpr-admin.min.css b/assets/css/wpr-admin.min.css index 174b9bf9ed..fc33a00bde 100755 --- a/assets/css/wpr-admin.min.css +++ b/assets/css/wpr-admin.min.css @@ -1 +1 @@ -h1,h2,h3,h4{color:currentColor;margin:0;font-weight:normal}button{padding:0;border:none;background:none;cursor:pointer}a{color:currentColor;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}a:hover{color:currentColor}input[type=submit]{cursor:pointer;border:none}a:active,button:active{outline:none}a:focus,button:focus{color:currentColor;box-shadow:none}.wpr-wrap{padding:16px;margin:0 0 0 -20px}@media(max-width: 783px){.wpr-wrap{padding:0;margin:0 0 0 -10px}}.wpr-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeQuality;text-rendering:optimizeLegibility;display:flex;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-body *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media(max-width: 783px){#hs-beacon{display:none !important}}.wpr-u-flex{display:flex;align-items:center;justify-content:center}.wpr-mt-2{margin-top:20px}.wpr-fs-sm{font-size:.9em}.wpr-fs-md{font-size:1em}@font-face{font-family:"wpr-icomoon";src:url("../fonts/icomoon.eot");src:url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"),url("../fonts/icomoon.woff") format("woff"),url("../fonts/icomoon.ttf") format("truetype"),url("../fonts/icomoon.svg#icomoon") format("svg");font-weight:normal;font-style:normal}[class^=wpr-icon-]:before,[class*=" wpr-icon-"]:after,[class^=wpr-icon-]:after,[class*=" wpr-icon-"]:before,[id^=wpr-nav-]:before,[id*=" wpr-nav-"]:after,[id^=wpr-nav-]:after,[id*=" wpr-nav-"]:before{font-family:"wpr-icomoon";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class^=wpr-icon-] span.hidden,[class*=" wpr-icon-"] span.hidden{display:inline-block;height:0;width:0;overflow:hidden}.wpr-icon-chevron-right:before{content:""}.wpr-icon-chevron-left:before{content:"";transform:rotate(180deg)}.wpr-icon-chevron-down:before{content:"";transform:scale(0.6)}.wpr-icon-chevron-up:before{content:"";top:50%;transform:translateY(-50%) scale(0.6)}.wpr-icon-rollback:before{content:""}.wpr-icon-addon:before,.wpr-addonSubMenuItem:before{content:""}.wpr-icon-addons:before,#wpr-nav-addons:before{content:""}.wpr-icon-book:before{content:""}.wpr-icon-cdn:before,#wpr-nav-page_cdn:before{content:""}.wpr-icon-database:before,#wpr-nav-database:before{content:""}.wpr-icon-export:before{content:""}.wpr-icon-files:before,#wpr-nav-cache:before{content:""}.wpr-icon-help:before{content:""}.wpr-icon-home:before,#wpr-nav-dashboard:before{content:""}.wpr-icon-import:before{content:""}.wpr-icon-important:before{content:""}.wpr-icon-information:before{content:""}.wpr-icon-information2:before{content:""}.wpr-icon-interrogation:before{content:""}.wpr-icon-media:before,#wpr-nav-media:before{content:""}.wpr-icon-plus:before{content:""}.wpr-icon-refresh:before,#wpr-nav-preload:before{content:""}.wpr-icon-rules:before,#wpr-nav-advanced_cache:before{content:""}.wpr-icon-stack:before,#wpr-nav-file_optimization:before{content:""}.wpr-icon-tools:before,#wpr-nav-tools:before{content:""}.wpr-icon-trash:before{content:""}.wpr-icon-user:before{content:""}.wpr-icon-check:before{content:""}.wpr-icon-check2:before{content:""}.wpr-icon-close:before{content:""}.wpr-icon-heartbeat:before,#wpr-nav-heartbeat:before{content:url("../img/heartbeat.svg")}.wpr-icon-heartbeat-hover:before,#wpr-nav-heartbeat.isActive:before,#wpr-nav-heartbeat:hover:before{content:url("../img/heartbeat-hover.svg")}.wpr-icon-imagify:before,#wpr-nav-imagify:before{content:url("../img/imagify.svg")}.wpr-icon-imagify-hover:before,#wpr-nav-imagify.isActive:before,#wpr-nav-imagify:hover:before{content:url("../img/imagify-hover.svg")}.wpr-icon-tutorial:before,#wpr-nav-tutorials:before{content:url("../img/play.svg")}.wpr-icon-tutorial-hover:before,#wpr-nav-tutorials.isActive:before,#wpr-nav-tutorials:hover:before{content:url("../img/play-hover.svg")}.wpr-icon-tutorial-alt:before{content:url("../img/play-alt.svg")}.wpr-imagify-info:before{content:url("../img/imagify-info.svg")}.wpr-imagify-install:before{content:url("../img/imagify-install.svg")}.wpr-title1{font-size:1.625rem;line-height:1;font-weight:600;letter-spacing:.01em}.wpr-title2{font-size:1rem;line-height:1.5;font-weight:bold;letter-spacing:-0.02em}.wpr-title3,.wpr-select label,.wpr-select select,.wpr-field--radio label{font-size:0.875rem;line-height:1.7142857143;font-weight:bold;letter-spacing:-0.011em}.wpr-Header{display:flex;flex-direction:column;flex:0 0 225px}@media(max-width: 783px){.wpr-Header{flex:0 0 50px}}.wpr-Header-logo{padding:32px 0 24px;text-align:center}@media(max-width: 783px){.wpr-Header-logo{padding:16px 0 8px}}@media(max-width: 783px){.wpr-Header-logo-desktop{display:none}}.wpr-Header-logo-mobile{display:none}@media(max-width: 783px){.wpr-Header-logo-mobile{display:inline-block}}.wpr-Header-footer{margin-top:auto;padding:48px 20px 0;font-size:0.6875rem;line-height:4.3636363636;color:#666;opacity:.6;font-weight:bold}@media(max-width: 783px){.wpr-Header-footer{display:none}}.wpr-Sidebar{position:relative;display:none;flex:0 0 290px;padding:24px 16px}@media(max-width: 1239px){.wpr-Sidebar{flex:0 0 260px}}@media(max-width: 1083px){.wpr-Sidebar{display:none !important}}.wpr-Sidebar-title{margin-bottom:32px}.wpr-Sidebar-notice{padding:8px 16px;margin-bottom:16px;background:#fff;border:1px solid #e8ebee;border-left:2px solid #1eadbf;border-radius:0 3px 3px 0;color:#666}.wpr-Sidebar-notice p{margin:0}.wpr-Sidebar-notice-link{display:inline-block;margin-top:8px;font-size:0.6875rem;line-height:1.8181818182;color:#02707f;letter-spacing:-0.05em;text-transform:uppercase;text-decoration:none;font-weight:bold}.wpr-Sidebar-notice-link:hover,.wpr-Sidebar-notice-link:focus{color:#40bacb}.wpr-Sidebar-info{padding:16px;background:#ebfaf5;margin-bottom:16px;border-radius:3px}.wpr-Sidebar-info h4{padding-left:48px;font-weight:500}.wpr-Sidebar-info p{margin:8px 0 0;font-size:0.6875rem;line-height:1.4545454545;color:#666}.wpr-Sidebar-info i{position:absolute;display:block;margin-top:-1px;width:40px;height:40px;color:#00a66b;font-size:1.0625rem;line-height:2.3529411765;background:#c6f0de;border-radius:3px;text-align:center}.wpr-Content{position:relative;background:#fff;padding:32px 24px;flex:1 1 auto;max-width:1230px}@media(max-width: 783px){.wpr-Content{padding:24px 16px}}.wpr-Content form>input:last-child{margin-top:24px;color:#fff !important}.wpr-Content.isNotFull{max-width:960px}.wpr-Content-tips{position:absolute;top:48px;right:24px;font-weight:bold;color:#666}@media(max-width: 1083px){.wpr-Content-tips{display:none !important}}.wpr-Page{margin-bottom:32px}.wpr-Page-row{display:flex;flex-direction:row}@media(max-width: 1239px){.wpr-Page-row{flex-direction:column}}.wpr-Page-col{flex:1 1 auto}.wpr-Page-col--fixed{margin-left:24px;flex:0 0 325px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-left:0}}.wpr-Page#dashboard #wpr-action-refresh_account:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isHidden:before{opacity:0}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isShown:before{opacity:1}@keyframes loading{from{transform:rotate(0)}to{transform:rotate(360deg)}}.wpr-Page#dashboard .wpr-documentation{margin-top:98px;padding:43px 16px}@media(max-width: 1239px){.wpr-Page#dashboard .wpr-documentation{margin-top:40px}}.wpr-Page#dashboard .wpr-documentation .wpr-button{margin-top:8px}.wpr-Page#dashboard .wpr-documentation i{font-size:3.375rem;line-height:1}.wpr-Page#dashboard .wpr-radio{padding-left:72px}.wpr-Page#dashboard .wpr-field--radio{padding:16px 8px}.wpr-Page#dashboard .wpr-field--radio:first-child{padding-top:0}.wpr-Page#dashboard .wpr-field--radio:last-child{padding-bottom:0}.wpr-Page#dashboard .wpr-field--radio .wpr-field-description{font-style:normal;color:#666;margin-left:72px}.wpr-Page#dashboard .wpr-field-account{padding-bottom:0}.wpr-Page#dashboard .wpr-infoAccount{font-weight:bold;margin-left:8px;color:#444}.wpr-Page#dashboard .wpr-infoAccount:before{content:"";position:relative;display:inline-block;width:13px;height:13px;background:#e0e4e9;border-radius:50%;color:#fff;margin-right:6px;text-align:center;top:2px;font-size:0.5rem;line-height:1.625}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid{color:#00a66b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid:before{content:"";font-family:"wpr-icomoon";speak:none;background:#3ece9d;top:-1px}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid{color:#d60e5b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid:before{content:"!";font-weight:bold;font-size:0.625rem;line-height:1.3;speak:none;background:#d33f49;top:-1px}.wpr-Page#dashboard #wpr-account-data:before{content:none}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Popin{display:none;position:fixed;width:772px;height:auto;top:50%;left:50%;background:#fff;border-radius:3px;transform:translateX(-50%) translateY(-50%);z-index:100000}.wpr-Popin-overlay{display:none;position:fixed;opacity:0;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.8);z-index:99999}.wpr-Popin-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 32px;background:#2d1656;color:#fff;font-weight:600}.wpr-Popin-close{color:#665090;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-Popin-close:hover,.wpr-Popin-close:focus{color:#fff;outline:none}.wpr-Popin-content{padding:8px 32px;color:#666}.wpr-Popin-flex{display:flex;flex-direction:row;align-items:center}.wpr-Popin-flex div{margin-left:32px}.wpr-Popin p{margin:16px 0}.wpr-Popin .wp-rocket-data-table{padding:12px 24px;background:#f2f3f6 !important;border:none}.wpr-Popin .wp-rocket-data-table td{width:50%;color:#121116;padding:8px 0;padding-left:4px;border-bottom:1px solid #c2cad4}.wpr-Popin .wp-rocket-data-table td:not(.column-primary){font-family:"Monaco";font-size:0.75rem;line-height:1.6666666667;color:#666;letter-spacing:-0.01em}.wpr-Popin .wp-rocket-data-table tr{background:#f2f3f6;border-bottom:1px solid #e0e4e9}.wpr-Popin .wp-rocket-data-table tr:last-child td{border-bottom:none}.wpr-Popin .wp-rocket-data-table strong{font-weight:500}.wpr-Popin .wp-rocket-data-table em{font-style:normal}.wpr-Popin .wp-rocket-data-table code{padding:0;margin:0;background:transparent}.wpr-rocketcdn-cta-small{border-radius:5px;margin:24px 0;padding:16px}.wpr-rocketcdn-cta-small.wpr-isHidden{display:none}.wpr-rocketcdn-cta-small .notice-title{font-weight:700}.wpr-rocketcdn-cta-small .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta-small .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta{margin:10px 0;position:relative}.wpr-rocketcdn-cta.wpr-isHidden{display:none}.wpr-rocketcdn-cta-close{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(255,255,255,.5)}.wpr-rocketcdn-cta-close--no-promo{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(0,0,0,.5)}.wpr-rocketcdn-cta-close--no-promo:before{content:"✕";font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta-close:before{content:"✕";color:#121116;font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo{background:#ffd147;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px 48px 16px 16px}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-title{font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-date{margin:0;font-weight:500;font-size:1rem;line-height:1.5}.wpr-rocketcdn-cta-subtitle{color:#444;margin-top:0;font-size:0.875rem;line-height:1.7142857143}.wpr-rocketcdn-cta-content{background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta-content--no-promo{border-top-left-radius:2px;border-top-right-radius:2px;background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta .wpr-rocketcdn-features{margin:0;padding-right:16px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-features{border-right:none}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{background-color:#fff;align-items:center;display:flex;flex-direction:column;padding:16px;padding-bottom:32px;width:33.3333333333%;max-width:219px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{width:auto}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing-regular{color:#72777c;margin-bottom:8px}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-billing-detail{margin-bottom:16px;font-size:1rem;line-height:1.375}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-major{font-weight:700;font-size:3rem;line-height:1.1666666667}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-minor{font-weight:700;vertical-align:top;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-feature{margin:24px 0;min-height:30px;padding-left:62px;position:relative}.wpr-rocketcdn-cta .wpr-rocketcdn-feature:before{position:absolute;top:50%;left:5px;transform:translateY(-50%)}.wpr-rocketcdn-cta .wpr-rocketcdn-bandwidth:before{content:url(../img/bandwidth.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-configuration:before{content:url(../img/configuration.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-automatic:before{content:url(../img/automatic.svg)}.wpr-rocketcdn-cta-footer{color:#121116;font-weight:600;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-cta-footer a{position:relative;padding-left:22px}.wpr-rocketcdn-cta-footer a:before{content:"";position:absolute;width:14px;height:15px;background:url("../img/icon-i-circle.svg") no-repeat center center;top:3px;left:0}.wpr-rocketcdn-cta-promo-footer{color:#121116;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-subscription{text-align:end}.wpr-rocketcdn-subscription .wpr-rocketcdn-open{color:#666;text-decoration:underline}.wpr-rocket-analytics-cta.wpr-isHidden{display:none}.wpr-license-upgrade-button{font-weight:bold;text-decoration:underline}.wpr-license-upgrade-button:hover{text-decoration:none}.wpr-field.wpr-field-account .wpr-flex{align-items:flex-start}.wpr-infoAccount-License{flex:1 0 60%;margin-right:16px}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div{width:100%}}.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:left}}.wpr-Popin-Upgrade .wpr-Popin-content{padding-bottom:32px}.wpr-Popin-Upgrade .wpr-Popin-flex{justify-content:space-between}.wpr-Popin-Upgrade .wpr-Popin-flex>div{align-items:center;border:1px solid #dadada;border-radius:24px;display:flex;flex-direction:column;margin:0 16px 0 0;padding:24px;text-align:center;width:50%}.wpr-Popin-Upgrade .wpr-Popin-flex>div:last-child{margin-right:0}@media(max-width: 783px){.wpr-Popin-Upgrade .wpr-Popin-flex>div{margin:0;width:100%}}.wpr-Upgrade-Plus .wpr-upgrade-title::before{content:url(../img/plus.svg);display:block;width:117px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}.wpr-Upgrade-Infinite .wpr-upgrade-title::before{content:url(../img/infinite.svg);display:block;width:48px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}div.wpr-upgrade-saving{background:#ffd147;border-radius:44px;color:#121116;font-weight:bold;margin:0 0 24px 0;padding:8px 16px;text-align:center}.wpr-upgrade-title{color:#f56f46;font-size:1.875rem;line-height:1.2;margin-bottom:16px;padding-top:55px;position:relative}div.wpr-upgrade-prices{color:#121116;font-size:3rem;line-height:1;font-weight:bold;margin:0 0 16px 0}.wpr-upgrade-price-symbol{font-size:1.875rem;line-height:1;vertical-align:super}.wpr-upgrade-price-regular{color:#72777c;font-size:1rem;line-height:1;vertical-align:top}div.wpr-upgrade-websites{color:#121116;font-size:0.875rem;line-height:1;font-weight:bold;margin:0 0 24px 0}.wpr-upgrade-link{background:#fff;border:1px solid #f56f46;border-radius:800px;color:#f56f46;display:block;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.wpr-upgrade-link:hover{background:#f56f46;color:#fff}.wpr-upgrade-link::after{content:"→";font-weight:normal;margin-left:8px}.rocket-promo-banner{background:#ffd147;display:flex;justify-content:space-around;margin-top:16px;padding:24px;position:relative}@media(max-width: 783px){.rocket-promo-banner{flex-flow:column}}.rocket-promo-banner>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-promo-banner>div{width:100%}}.rocket-promo-title{font-weight:bold;margin-bottom:24px}.rocket-promo-discount{background:#fff;border-radius:44px;display:inline-block;margin-right:8px;padding:8px 16px;text-transform:uppercase}.rocket-promo-message,.rocket-promo-deal{font-size:1rem;line-height:1.5;margin-bottom:0}.rocket-promo-deal{margin-top:8px}.rocket-promo-cta-block{align-items:center;margin-right:24px}.rocket-promo-countdown{display:flex;flex-flow:row wrap;width:66%}.rocket-promo-countdown>.rocket-countdown-item{background:#fff;border-radius:8px;flex:1;margin-right:8px;padding:8px;text-align:center}.rocket-promo-countdown>.rocket-countdown-item>.rocket-countdown-value{display:block;font-size:1.5rem;line-height:1;font-weight:bold}.rocket-promo-cta{background:#172153;border-radius:44px;color:#fff;font-weight:bold;padding:16px 32px}.rocket-renewal-banner{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-evenly;margin-top:16px;padding:8px}.rocket-renewal-expired-banner{background:#ffd147;margin-top:16px;padding:24px;position:relative}.rocket-renewal-expired-banner-container{display:flex;justify-content:space-around}@media(max-width: 783px){.rocket-renewal-expired-banner-container{flex-flow:column}}.rocket-renewal-expired-banner-container>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-renewal-expired-banner-container>div{width:100%}}.rocket-renew-message{margin:0 16px}.rocket-renew-message>p{font-size:0.875rem;line-height:1.5}.rocket-expired-message>p{font-size:0.875rem;line-height:1.5;padding-left:80px}.rocket-expired-title{font-size:1.375rem;line-height:1.5;font-weight:bold}.rocket-expired-title::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle}.rocket-expired-cta-container{justify-content:center;align-items:center}.rocket-renew-cta{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.rocket-renew-cta:hover,.rocket-renew-cta:active,.rocket-renew-cta:focus{color:#fff}.rocket-renew-cta::after{content:"→";font-weight:normal;margin-left:8px}.wpr-menuItem{position:relative;display:block;padding:16px 44px 18px 20px;text-decoration:none;color:#121116;border-top:1px solid #e0e4e9;border-left:2px solid transparent;overflow:hidden;transition:all 100ms ease-out;-webkit-transition:all 100ms ease-out}@media(max-width: 783px){.wpr-menuItem{width:57px;height:50px;padding:0}}.wpr-menuItem:before{position:absolute;top:calc(50% - 12px);right:18px;text-align:center;font-size:1.4375rem;line-height:1;color:#121116;opacity:.4;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-menuItem:hover,.wpr-menuItem.isActive{color:#121116;background:#fff;border-left:2px solid #f56640}.wpr-menuItem:hover .wpr-menuItem-title,.wpr-menuItem.isActive .wpr-menuItem-title{color:#f56640}.wpr-menuItem:hover:before,.wpr-menuItem.isActive:before{color:#f56640;opacity:1}.wpr-menuItem:focus{color:#121116}.wpr-menuItem:focus:before{color:#121116}.wpr-menuItem-title{font-size:0.8125rem;line-height:1.4615384615;font-weight:bold;letter-spacing:-0.08px;text-transform:uppercase;color:#121116}@media(max-width: 783px){.wpr-menuItem-title{display:none !important}}.wpr-menuItem-description{margin-top:2px;color:#72777c;font-size:0.8125rem;line-height:1.2307692308;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}@media(max-width: 783px){.wpr-menuItem-description{display:none}}.wpr-menuItem.wpr-subMenuItem{display:none;padding:10px 20px 8px 25px}@media(max-width: 783px){.wpr-menuItem.wpr-subMenuItem{padding:8px 20px 8px 23px;height:35px}}.wpr-menuItem.wpr-subMenuItem .wpr-menuItem-title{display:inline-block;font-size:0.8125rem;line-height:1.8461538462;text-transform:inherit;font-weight:600}.wpr-menuItem.wpr-subMenuItem:before{position:relative;display:inline-block;top:2px;right:2px;margin-right:8px;font-size:1rem;line-height:1}#wpr-nav-cache:before{right:20px}#wpr-nav-tools:before{right:20px}.wpr-sectionHeader{position:relative;border-bottom:1px solid #e0e4e9;padding-bottom:24px}.wpr-sectionHeader:before{content:"";position:absolute;display:block;width:48px;height:2px;bottom:-1px;left:0;background:#f56640}.wpr-sectionHeader .wpr-title1{line-height:48px}.wpr-sectionHeader .wpr-title1:before{display:inline-block;width:48px;height:48px;margin-right:24px;background:#fde0d9;color:#f56640;text-align:center;border-radius:3px}.wpr-sectionHeader-title{margin-top:8px;padding-left:72px}.wpr-sectionHeader-description{color:#666;margin-top:8px;padding-left:72px}.wpr-sectionHeader-logo{vertical-align:top;margin-right:24px}.wpr-optionHeader{position:relative;display:flex;justify-content:space-between;margin-top:48px;padding-bottom:9px;border-bottom:1px solid #e0e4e9}.wpr-optionHeader .wpr-title2{line-height:24px;color:#f56640;padding-right:40px}.wpr-optionHeader .wpr-infoAction{margin-right:8px}.wpr-optionHeader.wpr-isHidden{display:none}.wpr-fieldsContainer{margin-top:8px}.wpr-fieldsContainer-description{color:#666}.wpr-fieldsContainer-description a:hover,.wpr-fieldsContainer-description a:focus{color:#1eadbf}.wpr-fieldsContainer-fieldset{margin-top:16px;background:#f9fafb;padding:16px;border:1px solid #e8ebee;border-radius:2px}.wpr-fieldsContainer-fieldset--split{display:flex}.wpr-fieldsContainer-fieldset--split .wpr-field+.wpr-field{border:none}.wpr-fieldsContainer-fieldset--split .wpr-field{flex:0 0 50%;padding:0}.wpr-fieldsContainer-fieldset--split .wpr-field:first-child{padding-right:15px}.wpr-fieldsContainer-fieldset--split .wpr-field:last-child{padding-left:15px}.wpr-fieldsContainer-helper{margin-top:16px;color:#d60e5b;font-weight:500}.wpr-fieldsContainer-helper:before{position:relative;top:3px;font-size:1.125rem;line-height:1;margin-right:4px}.wpr-fieldsContainer.wpr-isHidden{display:none}.wpr-infoAction{position:relative;height:24px;font-size:0.8125rem;line-height:1.8461538462;vertical-align:middle;letter-spacing:-0.03em;font-weight:500;color:#666;white-space:nowrap;text-decoration:none;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out}.wpr-infoAction:before{position:absolute;margin-left:-26px;font-size:1.125rem;line-height:1.3333333333;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-infoAction--help{text-transform:uppercase;color:#02707f;font-weight:bold;font-size:0.75rem;line-height:2;letter-spacing:0}@media(max-width: 783px){.wpr-infoAction--help{display:none}}.wpr-infoAction--help:before{color:#1eadbf}.wpr-infoAction:hover,.wpr-infoAction:focus{color:#f56640;outline:none}.wpr-infoAction:hover:before,.wpr-infoAction:focus:before{color:#ffa58b}.wpr-button{position:relative;display:inline-block;width:auto;padding:8px 24px;text-align:center;background:#f56640;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08);text-transform:uppercase;text-decoration:none;letter-spacing:-0.08px;font-weight:bold;border-radius:4px;color:#fff !important;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out;font-size:0.8125rem;line-height:1.5384615385}.wpr-button:hover,.wpr-button:focus{color:#fff !important;transform:translateY(-2px);box-shadow:0 7px 14px rgba(50,50,93,.25),0 3px 6px rgba(0,0,0,.2)}.wpr-button--small{padding:5px 0;letter-spacing:-0.08px;font-size:0.6875rem;line-height:1.8181818182}.wpr-button--icon{min-width:160px;padding-left:8px;padding-right:40px;text-align:left}.wpr-button--icon:before{position:absolute;right:8px;font-size:0.9375rem;line-height:1.3333333333}.wpr-button--fixed{position:fixed;display:flex;padding:8px 16px;right:24px;bottom:32px;border-radius:16px}.wpr-button--fixed:before{font-size:1.125rem;line-height:1;margin-right:8px}.wpr-button--purple{background:#2d1656}.wpr-button--blue{min-width:inherit;background:#1eadbf}.wpr-button--lightBlue{min-width:inherit;background:#40bacb}.wpr-button--red{background:#d33f49}.wpr-button--gray{background:#e0e4e9;color:#121116 !important}.wpr-button--gray:hover,.wpr-button--gray:active,.wpr-button--gray:focus{color:#121116 !important}.wpr-button--gray.radio-active{background:#2d1656 !important;color:#fff !important}.wpr-button--gray.radio-active:hover,.wpr-button--gray.radio-active:active,.wpr-button--gray.radio-active:focus{color:#fff !important}.wpr-button--blueDark{background:#02707f}.wpr-button:focus{outline:none;color:#fff !important}.wpr-field{padding:16px 0;transition:opacity 150ms ease-out;-webkit-transition:opacity 150ms ease-out}.wpr-field+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9}.wpr-field:first-child{padding-top:0}.wpr-field:last-child{padding-bottom:0}.wpr-field-description{margin-top:4px;color:#666;font-size:0.8125rem;line-height:1.5384615385}.wpr-field-description .wpr-js-popin{color:#444;text-decoration:underline}.wpr-field-description .wpr-js-popin:hover,.wpr-field-description .wpr-js-popin:focus{color:#1eadbf}.wpr-field-description a:hover,.wpr-field-description a:focus{color:#1eadbf}.wpr-field-description-helper{color:#00a66b}.wpr-field-description-label{font-size:0.875rem;line-height:1.4285714286;font-weight:500;color:#666}.wpr-field-list{margin:0;color:#666;font-weight:500}.wpr-field-list li+li{margin-top:16px}.wpr-field-list li:before{position:relative;top:3px;margin-right:8px;color:#02707f;font-size:1.125rem;line-height:1.1111111111}.wpr-field-list a{text-decoration:none}.wpr-field-list a:hover,.wpr-field-list a:focus{color:#1eadbf}.wpr-field-betweenText{margin:0 16px;font-weight:bold}.wpr-field .wpr-button{margin:8px 0}.wpr-field .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-field .wpr-flex{text-align:left;flex-direction:column}}.wpr-field .wpr-flex--egal>div{flex:0 0 50%}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div{width:100%}}.wpr-field .wpr-flex--egal>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div:last-child{text-align:left}}.wpr-field .wpr-flex--egal>div .wpr-field-description{font-style:normal;color:#666}.wpr-field p{margin-bottom:0}.wpr-field label{font-weight:500}.wpr-field h4{font-size:0.875rem;line-height:1.7142857143}.wpr-field.wpr-isDisabled{opacity:.55}.wpr-field.wpr-isParent{padding-bottom:0;margin-bottom:16px}.wpr-field.wpr-Delayjs{margin-top:16px}.wpr-field.wpr-RemoveUnUsedCss{margin-bottom:0}.wpr-field.wpr-NoPaddingBottom{padding-bottom:0}.wpr-field.wpr-isLastElem{margin-top:16px}.wpr-field.wpr-isHidden{display:none}.wpr-field .wpr-isHidden{display:none}.wpr-field--children{display:none;padding-left:32px}.wpr-field--children.wpr-isOpen{display:block}.wpr-field--children.wpr-field--textarea{padding-right:80px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-right:32px}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-right:0}}.wpr-field--children.no-space{padding-left:0}.wpr-field--checkbox .wpr-field-description{margin-left:32px}.wpr-field--radio{padding:24px 16px}.wpr-field--radio:first-child{padding-top:8px}.wpr-field--radio:last-child{padding-bottom:8px}.wpr-field--radio .wpr-field-description{margin-left:88px}.wpr-field--radio .wpr-field-description button{color:#666}.wpr-field--split{display:inline-block;width:50%;padding-right:16px;padding-bottom:0}.wpr-field--split+.wpr-field--split{padding-left:16px;padding-right:0}.wpr-field--split+.wpr-field--split:nth-child(2){padding-top:0;border-top:none}.wpr-field--cache .wpr-field--number,.wpr-field--cache .wpr-field--select{display:inline-block;padding-top:0;width:auto;padding-bottom:0;font-weight:bold}.wpr-field--cache .wpr-field--select{position:relative;padding-left:8px;top:-2px;border-top:none}.wpr-field--cache .wpr-field--number .wpr-text input[type=number]{background:#f2f3f6;height:35px;border:1px solid #e0e4e9;font-family:inherit;font-size:1em}.wpr-field--cache .wpr-field-description{margin:8px 0;color:#00a66b}.wpr-field--cache .wpr-field-description-label{color:#121116}.wpr-field--textarea .wpr-field-description pre{background:rgba(0,0,0,.07);padding:1em;margin:1em 0 0;white-space:normal}.wpr-field--textarea .wpr-field-description pre code{background:transparent;-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;color:#121116}.wpr-fieldWarning{display:none;position:relative;padding:16px 16px 24px 56px;background:#19073b;margin:8px 0 0;color:#fff}.wpr-fieldWarning.wpr-isOpen{display:block}.wpr-fieldWarning:after{content:"";position:absolute;display:block;top:-8px;left:20px;width:0;height:0;border-style:solid;border-width:0 12px 8px 12px;border-color:transparent transparent #19073b transparent}.wpr-fieldWarning:before{content:"";position:absolute;display:block;width:calc(100% + 32px);height:100%;top:0;left:-16px;background:#19073b}.wpr-fieldWarning-title{position:relative;color:#f56640;font-size:0.875rem;line-height:1.4285714286;font-weight:bold}.wpr-fieldWarning-title:before{position:absolute;left:-36px;font-size:1.5rem;line-height:.8333333333}.wpr-fieldWarning-description{position:relative;margin-top:8px}.wpr-fieldWarning .wpr-button{margin-top:16px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:40px}.wpr-warningContainer+.wpr-warningContainer,.wpr-warningContainer+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9;padding-top:16px}.wpr-warningContainer+.wpr-warningContainer,.wpr-field+.wpr-warningContainer{padding-bottom:16px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-24px;padding-left:30px;padding-right:0}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:24px}}.wpr-documentation{padding:24px 16px;border-radius:4px;color:#fff;text-align:center;background:#40bacb}.wpr-documentation p{margin:8px 0 16px;font-weight:500}.wpr-documentation i{display:block;font-size:2.25rem;line-height:1;margin-bottom:8px}.wpr-documentation .wpr-button{padding-left:16px;padding-right:16px}.wpr-addon{padding:24px 0}.wpr-addon .wpr-flex{align-items:flex-start}@media(max-width: 783px){.wpr-addon .wpr-flex{align-items:center}}.wpr-addon .wpr-flex>div{text-align:left}.wpr-addon .wpr-addon-title{margin-bottom:16px;font-weight:500}.wpr-addon .wpr-field-description{font-style:normal}.wpr-addon .wpr-field-helper{font-size:0.8125rem;line-height:1.5384615385;color:#666;background-color:#e0e4e9;padding:8px;margin:8px 0}.wpr-addon .wpr-field-helper span.wpr-helper-title{font-weight:600}.wpr-addon .wpr-field-helper span.wpr-helper-title::after{content:"\a";white-space:pre}.wpr-addon .wpr-addon-logo{text-align:center;flex:0 0 160px}@media(max-width: 1239px){.wpr-addon .wpr-addon-logo{max-width:100px}.wpr-addon .wpr-addon-logo img{width:100%;height:auto}}@media(max-width: 1083px){.wpr-addon .wpr-addon-logo{max-width:160px}}@media(max-width: 783px){.wpr-addon .wpr-addon-logo{flex:0 0 auto;margin-bottom:16px}}.wpr-addon .wpr-addon-text{margin-left:32px;flex:1 1 auto}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-left:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-left:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-left:0}}.wpr-addon .wpr-addon-text a{display:inline-block;margin-top:24px}.wpr-addon .wpr-addon-text .button{margin-top:24px}.wpr-addon .wpr-addon-text .wpr-add-on-helper{font-weight:normal;color:#1eadbf}.wpr-addon .wpr-addon-text .wpr-add-on-helper a{margin-top:0}.wpr-webp-addon .wpr-addon .wpr-addon-text a{margin-top:0px}.notice-wpr-warning{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;margin-top:16px;padding:8px 32px;border:0}.notice-wpr-warning p:first-child{font-size:1rem;line-height:1.125;margin-left:80px}.notice-wpr-warning p:first-child::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle;margin-left:-80px}@media(max-width: 1239px){.notice-wpr-warning p:first-child::before{margin-bottom:-30px}}.notice-wpr-warning p:last-child{margin-left:63px;flex-basis:100%;align-items:center;justify-content:flex-start;display:flex}@media(max-width: 783px){.notice-wpr-warning p:last-child{align-content:center;flex-direction:column;margin-left:0}}.notice-wpr-warning p:last-child a{margin:0 16px}@media(max-width: 783px){.notice-wpr-warning p:last-child a{margin:8px 16px}}.notice-wpr-warning p:last-child a:first-child{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.notice-wpr-warning p:last-child a:first-child:hover,.notice-wpr-warning p:last-child a:first-child:active,.notice-wpr-warning p:last-child a:first-child:focus{color:#fff}.notice-wpr-warning p:last-child a:first-child::after{content:"→";font-weight:normal;margin-left:8px}.wpr-notice{position:relative;color:#444;background:#ebfaf5 url("../img/bg-activated.svg") no-repeat 90% bottom;background-size:350px;margin-top:24px;border-radius:4px;overflow:hidden}.wpr-notice-container{padding:24px 25% 24px 40px}.wpr-notice-supTitle{font-size:1rem;line-height:1.375;font-weight:bold}.wpr-notice-title{font-size:1.5rem;line-height:1.3333333333;color:#3ece9d;margin-top:16px;font-weight:bold}.wpr-notice-description{font-size:0.875rem;line-height:1.5714285714;margin:16px 0 24px}.wpr-notice-continue{color:#666}.wpr-notice-close{position:absolute;top:24px;right:24px;color:#666;text-decoration:none;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-notice-close:hover{color:#444}.wpr-notice-close:focus{outline:none}.wpr-tools{position:relative;display:flex;flex-direction:row;padding:32px 0}@media(max-width: 1239px){.wpr-tools{flex-direction:column}}@media(max-width: 1083px){.wpr-tools{flex-direction:row}}@media(max-width: 783px){.wpr-tools{flex-direction:column}}.wpr-tools:nth-child(2){margin-top:16px}.wpr-tools+.wpr-tools{border-top:1px solid #e0e4e9}.wpr-tools-label{display:block}.wpr-tools-label:before{position:absolute;left:0;margin-top:5px;font-size:2.25rem;line-height:1;color:#f56640}@media(max-width: 783px){.wpr-tools-label:before{display:block;position:initial}}.wpr-tools-col{flex:1 1 auto}.wpr-tools-col:first-child{padding-left:72px;padding-right:24px;min-width:340px}@media(max-width: 783px){.wpr-tools-col:first-child{padding-left:0;padding-right:0;min-width:auto}}.wpr-tools-col:last-child{text-align:right}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:left}}.wpr-tools .wpr-button{margin-top:24px;white-space:normal}.wpr-tools .wpr-field-description{font-style:normal;color:#666}.wpr-tools #wpr-update-exclusion-msg{min-height:20px}.wpr-imagify{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:30px}.wpr-imagify-description{width:40%;padding-right:60px}@media(max-width: 1239px){.wpr-imagify-description{width:auto;padding-right:0}}.wpr-imagify-screenshot{width:60%}@media(max-width: 1239px){.wpr-imagify-screenshot{margin-top:60px;width:auto}}.wpr-imagify-screenshot img{max-width:100%;height:auto}.wpr-imagify-more,.wpr-imagify-name{color:#00a8dc;font-weight:700;margin-bottom:0}.wpr-imagify-more::before{content:"✓";color:#000;font-size:2rem;margin-right:5px}.wpr-imagify p{font-size:1rem}.wpr-imagify p:first-child{margin-top:0}.wpr-imagify ul{margin-top:40px}.wpr-imagify li{display:flex;align-items:flex-start;margin-bottom:35px}.wpr-imagify li:before{width:24px;height:24px;margin-right:10px;flex-shrink:0}.wpr-imagify li .text{flex-grow:1;display:inline-block}.wpr-imagify a{text-decoration:none}.wpr-imagify a:hover{color:#00a8dc}.wpr-imagify .button-primary{background:#2abb9b;border:1px solid #bebebe;box-shadow:none;font-size:1rem;font-weight:700;height:auto;line-height:1;margin-top:60px;padding:20px 45px;text-shadow:none;text-transform:uppercase}.wpr-imagify-plugin-tile{display:flex;align-items:center;width:100%;padding:20px;background-color:#f9fafb;margin-top:20px;border:1px solid #ebe9e9}.wpr-imagify-plugin-tile-info{margin-left:20px}.wpr-imagify-plugin-tile-info .wpr-star-rating{display:flex;align-items:center}.wpr-imagify-plugin-tile-info .star-rating .star{font-size:16px;width:16px;height:13px}.wpr-imagify-plugin-tile-info .num-ratings{font-size:13px;margin-left:10px}.wpr-imagify-plugin-tile-title{margin-bottom:5px}.wpr-imagify-plugin-tile .wpr-button{margin-left:auto}.wpr-imagify-plugin-tile .wpr-button:before{margin-right:5px}.wpr-tutorials-section{display:flex;flex-flow:row wrap}div.wpr-tutorial-item{width:32%;margin-bottom:10px;margin-right:1%}.wpr-tutorial-link{cursor:pointer;transition:color 200ms ease-out}.wpr-tutorial-link:hover{color:#1eadbf}@media(max-width: 1083px){div.wpr-tutorial-item{width:48%}}@media(max-width: 783px){div.wpr-tutorial-item{width:100%}}.wpr-rocketcdn-modal{display:none}.wpr-rocketcdn-modal.is-open{display:block}.wpr-rocketcdn-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center}.wpr-rocketcdn-modal__container{max-width:674px;max-height:100vh;overflow-y:auto;box-sizing:border-box}.wpr-rocketcdn-modal iframe{max-width:100%}.wpr-checkbox{position:relative;padding-left:32px}.wpr-checkbox label{user-select:none}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border:2px solid #444;border-radius:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{content:"";position:absolute;top:5px;left:2px;color:#fff;font-family:"wpr-icomoon";speak:none;font-size:0.875rem;line-height:1.2857142857;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after{opacity:0;transform:scale(2)}.wpr-checkbox [type=checkbox]:checked+label:after{opacity:1;transform:scale(1)}.wpr-checkbox [type=checkbox]:checked+label:before{background:#19073b;border-color:#19073b}.wpr-checkbox [type=checkbox]:checked:focus+label:before{background:#665090;border:2px dotted #665090}.wpr-checkbox [type=checkbox]:focus+label:before{border:2px dotted #444}.wpr-checkbox-warning{color:#d33f49;margin-left:16px}.wpr-checkbox-warning::before{margin-right:8px}.wpr-radio{position:relative;padding-left:88px}.wpr-radio label{user-select:none;font-weight:bold}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before,.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{content:"";position:absolute}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:0;width:52px;height:22px;background:#fff;border-radius:12px;border:1px solid #444;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{width:18px;height:18px;border-radius:100%;background:#444;top:3px;left:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:disabled+label:after,.wpr-radio [type=checkbox]:disabled+label:after{background:#e0e4e9}.wpr-radio [type=checkbox]:disabled+label:before,.wpr-radio [type=checkbox]:disabled+label:before{border:1px solid #e0e4e9}.wpr-radio [type=checkbox]:checked+label:before{border-color:#1eadbf}.wpr-radio [type=checkbox]:checked+label:after{background:#1eadbf;left:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{position:absolute;left:4px;width:52px;text-transform:uppercase;letter-spacing:-0.01em;font-weight:bold;font-size:0.6875rem;line-height:2.1818181818;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{content:attr(data-l10n-inactive);left:27px;color:#666}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{content:attr(data-l10n-active);color:#02707f}.wpr-radio--reverse{padding-right:72px;padding-left:0}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:-2px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:-25px;left:inherit}.wpr-radio [type=checkbox]:not(:checked):focus+label:before{border:1px dashed #444}.wpr-radio [type=checkbox]:checked:focus+label:before{border:1px dashed #1eadbf}.wpr-radio--tips [type=checkbox]:checked+label:before{border-color:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label:after{background:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label .wpr-radio-ui:after{color:#00a66b}.wpr-radio--tips [type=checkbox]:checked:focus+label:before{border:1px dashed #3ece9d}.wpr-select{position:relative}.wpr-select select{margin:0;padding:0 8px;height:36px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;box-shadow:none;border-radius:0;letter-spacing:.011em}.wpr-select select:focus{outline:none;border-color:#444;box-shadow:none}.wpr-select select:disabled{background-image:none}.wpr-select label{font-weight:bold;margin-left:8px}.wpr-textarea{margin-top:8px}.wpr-textarea textarea{padding:8px;width:100%;height:100px;font-family:Monaco;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-size:0.8125rem;line-height:1.2307692308;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-textarea textarea:focus{outline:none;border-color:#444;box-shadow:none}.wpr-textarea+.wpr-field-description{color:#00a66b}.wpr-text label{color:#666}.wpr-text input[type=text],.wpr-text input[type=number]{margin-top:8px;padding:0 8px;width:100%;height:32px;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-family:Monaco;font-size:0.75rem;line-height:1.3333333333;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-text input[type=text]:focus,.wpr-text input[type=number]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-text input[type=text].wpr-isError,.wpr-text input[type=number].wpr-isError{border-color:#d33f49}.wpr-text input[type=number]{width:80px}.wpr-text--number label{margin-right:8px}.wpr-upload input[type=file]{display:block;width:252px;margin:8px 8px 8px 0;padding:8px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;font-size:0.6875rem;line-height:1.4545454545}.wpr-upload input[type=file]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-multiple{display:flex;align-items:center;flex-wrap:wrap}@media(max-width: 783px){.wpr-multiple{align-items:center;flex-direction:column}}.wpr-multiple .wpr-text{flex:1 1 auto;position:relative;top:-2px}@media(max-width: 783px){.wpr-multiple .wpr-text{width:100%}}.wpr-multiple .wpr-button{margin-left:16px;width:auto;min-width:inherit;padding-right:30px}@media(max-width: 783px){.wpr-multiple .wpr-button{margin-left:0}}.wpr-multiple input[type=text]{flex-grow:2}.wpr-multiple select{height:30px}.wpr-multiple-default{margin-right:20px}.wpr-multiple-list{display:none;padding:8px 0;margin:16px 0 0;background:#f2f3f6;border-radius:2px}.wpr-multiple-list li{margin-bottom:0;padding:4px 16px;font-size:0.8125rem;line-height:1.2307692308;font-family:Monaco}.wpr-multiple-list li span{display:inline-block;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-multiple-close{position:relative;top:3px;font-size:1rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-multiple-close:focus{outline:none}.wpr-multiple-close:hover,.wpr-multiple-close:focus{color:#d33f49}.wpr-multiple-close:hover+span,.wpr-multiple-close:focus+span{color:#d33f49}.wpr-multiple-select .wpr-list{border:2px solid #c2cad4;background-color:#fff;border-radius:5px;padding:10px;margin:8px 0}.wpr-multiple-select .wpr-list .wpr-list-header{display:flex;justify-content:space-between}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_ads:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_plugins:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_themes:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-list-header-arrow{width:15px;cursor:pointer;display:flex;transform:rotate(180deg)}.wpr-multiple-select .wpr-list .wpr-list-header h3{font-weight:500;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-multiple-select .wpr-list .wpr-list-body{display:none}.wpr-multiple-select .wpr-list .wpr-list-body li{padding-left:30px}.wpr-multiple-select .wpr-list .wpr-list-body li .wpr-checkbox img{width:15px}.wpr-multiple-select .wpr-list.open .wpr-list-body{display:block}.wpr-multiple-select .wpr-list.open .wpr-list-body .wpr-checkbox label{color:#72777c}.wpr-multiple-select .wpr-list.open .wpr-list-body .wpr-checkbox input[checked=checked]+label{color:#121116}.wpr-multiple-select .wpr-list.open .wpr-list-header{border-bottom:1px solid #c2cad4;margin-bottom:10px;padding-bottom:5px}.wpr-multiple-select .wpr-list.open .wpr-list-header-arrow{transform:rotate(0deg)}.wpr-field--categorizedmultiselect .wpr-list{padding-right:15px;padding-left:15px}.wpr-field--categorizedmultiselect .wpr-list.open .wpr-list-header{padding-bottom:9px;margin-bottom:10px}.wpr-field--categorizedmultiselect .wpr-list.open .wpr-list-header{max-height:32px}.wpr-field--categorizedmultiselect .wpr-list .wpr-list-header{max-height:32px}.wpr-field--categorizedmultiselect .wpr-list [type=checkbox]+label:before{top:4px}.wpr-field--categorizedmultiselect .wpr-list [type=checkbox]:checked+label:after{top:4px}.wpr-field--categorizedmultiselect .wpr-list-header .wpr-checkbox{padding-left:29px}.wpr-field--categorizedmultiselect .wpr-list-body{display:block;max-height:250px;overflow-y:auto}.wpr-field--categorizedmultiselect .wpr-list-body ul{margin:0}.wpr-field--categorizedmultiselect .wpr-list-body ul li{margin-bottom:10px}.wpr-field--categorizedmultiselect .wpr-list-body ul li .wpr-checkbox{padding-left:25px}.wpr-field--categorizedmultiselect .wpr-list-body ul li .wpr-checkbox label{color:#121116 !important;font-weight:normal}.wpr-field--categorizedmultiselect .dashicons{color:#72777c}.wpr-field--categorizedmultiselect .wpr-multiple-select-title{font-weight:bold;margin-left:5px}@media only screen and (min-width: 782px){.wpr-field--categorizedmultiselect{padding-right:80px}} \ No newline at end of file +h1,h2,h3,h4{color:currentColor;margin:0;font-weight:normal}button{padding:0;border:none;background:none;cursor:pointer}a{color:currentColor;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}a:hover{color:currentColor}input[type=submit]{cursor:pointer;border:none}a:active,button:active{outline:none}a:focus,button:focus{color:currentColor;box-shadow:none}.wpr-wrap{padding:16px;margin:0 0 0 -20px}@media(max-width: 783px){.wpr-wrap{padding:0;margin:0 0 0 -10px}}.wpr-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeQuality;text-rendering:optimizeLegibility;display:flex;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-body *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media(max-width: 783px){#hs-beacon{display:none !important}}.wpr-u-flex{display:flex;align-items:center;justify-content:center}.wpr-mt-2{margin-top:20px}.wpr-fs-sm{font-size:.9em}.wpr-fs-md{font-size:1em}@font-face{font-family:"wpr-icomoon";src:url("../fonts/icomoon.eot");src:url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"),url("../fonts/icomoon.woff") format("woff"),url("../fonts/icomoon.ttf") format("truetype"),url("../fonts/icomoon.svg#icomoon") format("svg");font-weight:normal;font-style:normal}[class^=wpr-icon-]:before,[class*=" wpr-icon-"]:after,[class^=wpr-icon-]:after,[class*=" wpr-icon-"]:before,[id^=wpr-nav-]:before,[id*=" wpr-nav-"]:after,[id^=wpr-nav-]:after,[id*=" wpr-nav-"]:before{font-family:"wpr-icomoon";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class^=wpr-icon-] span.hidden,[class*=" wpr-icon-"] span.hidden{display:inline-block;height:0;width:0;overflow:hidden}.wpr-icon-chevron-right:before{content:""}.wpr-icon-chevron-left:before{content:"";transform:rotate(180deg)}.wpr-icon-chevron-down:before{content:"";transform:scale(0.6)}.wpr-icon-chevron-up:before{content:"";top:50%;transform:translateY(-50%) scale(0.6)}.wpr-icon-rollback:before{content:""}.wpr-icon-addon:before,.wpr-addonSubMenuItem:before{content:""}.wpr-icon-addons:before,#wpr-nav-addons:before{content:""}.wpr-icon-book:before{content:""}.wpr-icon-cdn:before,#wpr-nav-page_cdn:before{content:""}.wpr-icon-database:before,#wpr-nav-database:before{content:""}.wpr-icon-export:before{content:""}.wpr-icon-files:before,#wpr-nav-cache:before{content:""}.wpr-icon-help:before{content:""}.wpr-icon-home:before,#wpr-nav-dashboard:before{content:""}.wpr-icon-import:before{content:""}.wpr-icon-important:before{content:""}.wpr-icon-information:before{content:""}.wpr-icon-information2:before{content:""}.wpr-icon-interrogation:before{content:""}.wpr-icon-media:before,#wpr-nav-media:before{content:""}.wpr-icon-plus:before{content:""}.wpr-icon-refresh:before,#wpr-nav-preload:before{content:""}.wpr-icon-rules:before,#wpr-nav-advanced_cache:before{content:""}.wpr-icon-stack:before,#wpr-nav-file_optimization:before{content:""}.wpr-icon-tools:before,#wpr-nav-tools:before{content:""}.wpr-icon-trash:before{content:""}.wpr-icon-user:before{content:""}.wpr-icon-check:before{content:""}.wpr-icon-check2:before{content:""}.wpr-icon-close:before{content:""}.wpr-icon-heartbeat:before,#wpr-nav-heartbeat:before{content:url("../img/heartbeat.svg")}.wpr-icon-heartbeat-hover:before,#wpr-nav-heartbeat.isActive:before,#wpr-nav-heartbeat:hover:before{content:url("../img/heartbeat-hover.svg")}.wpr-icon-imagify:before,#wpr-nav-imagify:before{content:url("../img/imagify.svg")}.wpr-icon-imagify-hover:before,#wpr-nav-imagify.isActive:before,#wpr-nav-imagify:hover:before{content:url("../img/imagify-hover.svg")}.wpr-icon-tutorial:before,#wpr-nav-tutorials:before{content:url("../img/play.svg")}.wpr-icon-tutorial-hover:before,#wpr-nav-tutorials.isActive:before,#wpr-nav-tutorials:hover:before{content:url("../img/play-hover.svg")}.wpr-icon-tutorial-alt:before{content:url("../img/play-alt.svg")}.wpr-imagify-info:before{content:url("../img/imagify-info.svg")}.wpr-imagify-install:before{content:url("../img/imagify-install.svg")}.wpr-title1{font-size:1.625rem;line-height:1;font-weight:600;letter-spacing:.01em}.wpr-title2{font-size:1rem;line-height:1.5;font-weight:bold;letter-spacing:-0.02em}.wpr-title3,.wpr-select label,.wpr-select select,.wpr-field--radio label{font-size:0.875rem;line-height:1.7142857143;font-weight:bold;letter-spacing:-0.011em}.wpr-Header{display:flex;flex-direction:column;flex:0 0 225px}@media(max-width: 783px){.wpr-Header{flex:0 0 50px}}.wpr-Header-logo{padding:32px 0 24px;text-align:center}@media(max-width: 783px){.wpr-Header-logo{padding:16px 0 8px}}@media(max-width: 783px){.wpr-Header-logo-desktop{display:none}}.wpr-Header-logo-mobile{display:none}@media(max-width: 783px){.wpr-Header-logo-mobile{display:inline-block}}.wpr-Header-footer{margin-top:auto;padding:48px 20px 0;font-size:0.6875rem;line-height:4.3636363636;color:#666;opacity:.6;font-weight:bold}@media(max-width: 783px){.wpr-Header-footer{display:none}}.wpr-Sidebar{position:relative;display:none;flex:0 0 290px;padding:24px 16px}@media(max-width: 1239px){.wpr-Sidebar{flex:0 0 260px}}@media(max-width: 1083px){.wpr-Sidebar{display:none !important}}.wpr-Sidebar-title{margin-bottom:32px}.wpr-Sidebar-notice{padding:8px 16px;margin-bottom:16px;background:#fff;border:1px solid #e8ebee;border-left:2px solid #1eadbf;border-radius:0 3px 3px 0;color:#666}.wpr-Sidebar-notice p{margin:0}.wpr-Sidebar-notice-link{display:inline-block;margin-top:8px;font-size:0.6875rem;line-height:1.8181818182;color:#02707f;letter-spacing:-0.05em;text-transform:uppercase;text-decoration:none;font-weight:bold}.wpr-Sidebar-notice-link:hover,.wpr-Sidebar-notice-link:focus{color:#40bacb}.wpr-Sidebar-info{padding:16px;background:#ebfaf5;margin-bottom:16px;border-radius:3px}.wpr-Sidebar-info h4{padding-left:48px;font-weight:500}.wpr-Sidebar-info p{margin:8px 0 0;font-size:0.6875rem;line-height:1.4545454545;color:#666}.wpr-Sidebar-info i{position:absolute;display:block;margin-top:-1px;width:40px;height:40px;color:#00a66b;font-size:1.0625rem;line-height:2.3529411765;background:#c6f0de;border-radius:3px;text-align:center}.wpr-Content{position:relative;background:#fff;padding:32px 24px;flex:1 1 auto;max-width:1230px}@media(max-width: 783px){.wpr-Content{padding:24px 16px}}.wpr-Content form>input:last-child{margin-top:24px;color:#fff !important}.wpr-Content.isNotFull{max-width:960px}.wpr-Content-tips{position:absolute;top:48px;right:24px;font-weight:bold;color:#666}@media(max-width: 1083px){.wpr-Content-tips{display:none !important}}.wpr-Page{margin-bottom:32px}.wpr-Page-row{display:flex;flex-direction:row}@media(max-width: 1239px){.wpr-Page-row{flex-direction:column}}.wpr-Page-col{flex:1 1 auto}.wpr-Page-col--fixed{margin-left:24px;flex:0 0 325px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-left:0}}.wpr-Page#dashboard #wpr-action-refresh_account:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isHidden:before{opacity:0}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isShown:before{opacity:1}@keyframes loading{from{transform:rotate(0)}to{transform:rotate(360deg)}}.wpr-Page#dashboard .wpr-documentation{margin-top:98px;padding:43px 16px}@media(max-width: 1239px){.wpr-Page#dashboard .wpr-documentation{margin-top:40px}}.wpr-Page#dashboard .wpr-documentation .wpr-button{margin-top:8px}.wpr-Page#dashboard .wpr-documentation i{font-size:3.375rem;line-height:1}.wpr-Page#dashboard .wpr-radio{padding-left:72px}.wpr-Page#dashboard .wpr-field--radio{padding:16px 8px}.wpr-Page#dashboard .wpr-field--radio:first-child{padding-top:0}.wpr-Page#dashboard .wpr-field--radio:last-child{padding-bottom:0}.wpr-Page#dashboard .wpr-field--radio .wpr-field-description{font-style:normal;color:#666;margin-left:72px}.wpr-Page#dashboard .wpr-field-account{padding-bottom:0}.wpr-Page#dashboard .wpr-infoAccount{font-weight:bold;margin-left:8px;color:#444}.wpr-Page#dashboard .wpr-infoAccount:before{content:"";position:relative;display:inline-block;width:13px;height:13px;background:#e0e4e9;border-radius:50%;color:#fff;margin-right:6px;text-align:center;top:2px;font-size:0.5rem;line-height:1.625}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid{color:#00a66b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid:before{content:"";font-family:"wpr-icomoon";speak:none;background:#3ece9d;top:-1px}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid{color:#d60e5b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid:before{content:"!";font-weight:bold;font-size:0.625rem;line-height:1.3;speak:none;background:#d33f49;top:-1px}.wpr-Page#dashboard #wpr-account-data:before{content:none}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Popin{display:none;position:fixed;width:772px;height:auto;top:50%;left:50%;background:#fff;border-radius:3px;transform:translateX(-50%) translateY(-50%);z-index:100000}.wpr-Popin-overlay{display:none;position:fixed;opacity:0;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.8);z-index:99999}.wpr-Popin-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 32px;background:#2d1656;color:#fff;font-weight:600}.wpr-Popin-close{color:#665090;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-Popin-close:hover,.wpr-Popin-close:focus{color:#fff;outline:none}.wpr-Popin-content{padding:8px 32px;color:#666}.wpr-Popin-flex{display:flex;flex-direction:row;align-items:center}.wpr-Popin-flex div{margin-left:32px}.wpr-Popin p{margin:16px 0}.wpr-Popin .wp-rocket-data-table{padding:12px 24px;background:#f2f3f6 !important;border:none}.wpr-Popin .wp-rocket-data-table td{width:50%;color:#121116;padding:8px 0;padding-left:4px;border-bottom:1px solid #c2cad4}.wpr-Popin .wp-rocket-data-table td:not(.column-primary){font-family:"Monaco";font-size:0.75rem;line-height:1.6666666667;color:#666;letter-spacing:-0.01em}.wpr-Popin .wp-rocket-data-table tr{background:#f2f3f6;border-bottom:1px solid #e0e4e9}.wpr-Popin .wp-rocket-data-table tr:last-child td{border-bottom:none}.wpr-Popin .wp-rocket-data-table strong{font-weight:500}.wpr-Popin .wp-rocket-data-table em{font-style:normal}.wpr-Popin .wp-rocket-data-table code{padding:0;margin:0;background:rgba(0,0,0,0)}.wpr-rocketcdn-cta-small{border-radius:5px;margin:24px 0;padding:16px}.wpr-rocketcdn-cta-small.wpr-isHidden{display:none}.wpr-rocketcdn-cta-small .notice-title{font-weight:700}.wpr-rocketcdn-cta-small .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta-small .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta{margin:10px 0;position:relative}.wpr-rocketcdn-cta.wpr-isHidden{display:none}.wpr-rocketcdn-cta-close{position:absolute;top:16px;right:16px;background:rgba(0,0,0,0);border:0;color:rgba(255,255,255,.5)}.wpr-rocketcdn-cta-close--no-promo{position:absolute;top:16px;right:16px;background:rgba(0,0,0,0);border:0;color:rgba(0,0,0,.5)}.wpr-rocketcdn-cta-close--no-promo:before{content:"✕";font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta-close:before{content:"✕";color:#121116;font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo{background:#ffd147;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px 48px 16px 16px}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-title{font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-date{margin:0;font-weight:500;font-size:1rem;line-height:1.5}.wpr-rocketcdn-cta-subtitle{color:#444;margin-top:0;font-size:0.875rem;line-height:1.7142857143}.wpr-rocketcdn-cta-content{background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta-content--no-promo{border-top-left-radius:2px;border-top-right-radius:2px;background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta .wpr-rocketcdn-features{margin:0;padding-right:16px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-features{border-right:none}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{background-color:#fff;align-items:center;display:flex;flex-direction:column;padding:16px;padding-bottom:32px;width:33.3333333333%;max-width:219px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{width:auto}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing-regular{color:#72777c;margin-bottom:8px}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-billing-detail{margin-bottom:16px;font-size:1rem;line-height:1.375}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-major{font-weight:700;font-size:3rem;line-height:1.1666666667}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-minor{font-weight:700;vertical-align:top;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-feature{margin:24px 0;min-height:30px;padding-left:62px;position:relative}.wpr-rocketcdn-cta .wpr-rocketcdn-feature:before{position:absolute;top:50%;left:5px;transform:translateY(-50%)}.wpr-rocketcdn-cta .wpr-rocketcdn-bandwidth:before{content:url(../img/bandwidth.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-configuration:before{content:url(../img/configuration.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-automatic:before{content:url(../img/automatic.svg)}.wpr-rocketcdn-cta-footer{color:#121116;font-weight:600;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-cta-footer a{position:relative;padding-left:22px}.wpr-rocketcdn-cta-footer a:before{content:"";position:absolute;width:14px;height:15px;background:url("../img/icon-i-circle.svg") no-repeat center center;top:3px;left:0}.wpr-rocketcdn-cta-promo-footer{color:#121116;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-subscription{text-align:end}.wpr-rocketcdn-subscription .wpr-rocketcdn-open{color:#666;text-decoration:underline}.wpr-rocket-analytics-cta.wpr-isHidden{display:none}.wpr-license-upgrade-button{font-weight:bold;text-decoration:underline}.wpr-license-upgrade-button:hover{text-decoration:none}.wpr-field.wpr-field-account .wpr-flex{align-items:flex-start}.wpr-infoAccount-License{flex:1 0 60%;margin-right:16px}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div{width:100%}}.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:left}}.wpr-Popin-Upgrade .wpr-Popin-content{padding-bottom:32px}.wpr-Popin-Upgrade .wpr-Popin-flex{justify-content:space-between}.wpr-Popin-Upgrade .wpr-Popin-flex>div{align-items:center;border:1px solid #dadada;border-radius:24px;display:flex;flex-direction:column;margin:0 16px 0 0;padding:24px;text-align:center;width:50%}.wpr-Popin-Upgrade .wpr-Popin-flex>div:last-child{margin-right:0}@media(max-width: 783px){.wpr-Popin-Upgrade .wpr-Popin-flex>div{margin:0;width:100%}}.wpr-Upgrade-Plus .wpr-upgrade-title::before{content:url(../img/plus.svg);display:block;width:117px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}.wpr-Upgrade-Infinite .wpr-upgrade-title::before{content:url(../img/infinite.svg);display:block;width:48px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}div.wpr-upgrade-saving{background:#ffd147;border-radius:44px;color:#121116;font-weight:bold;margin:0 0 24px 0;padding:8px 16px;text-align:center}.wpr-upgrade-title{color:#f56f46;font-size:1.875rem;line-height:1.2;margin-bottom:16px;padding-top:55px;position:relative}div.wpr-upgrade-prices{color:#121116;font-size:3rem;line-height:1;font-weight:bold;margin:0 0 16px 0}.wpr-upgrade-price-symbol{font-size:1.875rem;line-height:1;vertical-align:super}.wpr-upgrade-price-regular{color:#72777c;font-size:1rem;line-height:1;vertical-align:top}div.wpr-upgrade-websites{color:#121116;font-size:0.875rem;line-height:1;font-weight:bold;margin:0 0 24px 0}.wpr-upgrade-link{background:#fff;border:1px solid #f56f46;border-radius:800px;color:#f56f46;display:block;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.wpr-upgrade-link:hover{background:#f56f46;color:#fff}.wpr-upgrade-link::after{content:"→";font-weight:normal;margin-left:8px}.rocket-promo-banner{background:#ffd147;display:flex;justify-content:space-around;margin-top:16px;padding:24px;position:relative}@media(max-width: 783px){.rocket-promo-banner{flex-flow:column}}.rocket-promo-banner>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-promo-banner>div{width:100%}}.rocket-promo-title{font-weight:bold;margin-bottom:24px}.rocket-promo-discount{background:#fff;border-radius:44px;display:inline-block;margin-right:8px;padding:8px 16px;text-transform:uppercase}.rocket-promo-message,.rocket-promo-deal{font-size:1rem;line-height:1.5;margin-bottom:0}.rocket-promo-deal{margin-top:8px}.rocket-promo-cta-block{align-items:center;margin-right:24px}.rocket-promo-countdown{display:flex;flex-flow:row wrap;width:66%}.rocket-promo-countdown>.rocket-countdown-item{background:#fff;border-radius:8px;flex:1;margin-right:8px;padding:8px;text-align:center}.rocket-promo-countdown>.rocket-countdown-item>.rocket-countdown-value{display:block;font-size:1.5rem;line-height:1;font-weight:bold}.rocket-promo-cta{background:#172153;border-radius:44px;color:#fff;font-weight:bold;padding:16px 32px}.rocket-renewal-banner{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-evenly;margin-top:16px;padding:8px}.rocket-renewal-expired-banner{background:#ffd147;margin-top:16px;padding:24px;position:relative}.rocket-renewal-expired-banner-container{display:flex;justify-content:space-around}@media(max-width: 783px){.rocket-renewal-expired-banner-container{flex-flow:column}}.rocket-renewal-expired-banner-container>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-renewal-expired-banner-container>div{width:100%}}.rocket-renew-message{margin:0 16px}.rocket-renew-message>p{font-size:0.875rem;line-height:1.5}.rocket-expired-message>p{font-size:0.875rem;line-height:1.5;padding-left:80px}.rocket-expired-title{font-size:1.375rem;line-height:1.5;font-weight:bold}.rocket-expired-title::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle}.rocket-expired-cta-container{justify-content:center;align-items:center}.rocket-renew-cta{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.rocket-renew-cta:hover,.rocket-renew-cta:active,.rocket-renew-cta:focus{color:#fff}.rocket-renew-cta::after{content:"→";font-weight:normal;margin-left:8px}.wpr-menuItem{position:relative;display:block;padding:16px 44px 18px 20px;text-decoration:none;color:#121116;border-top:1px solid #e0e4e9;border-left:2px solid rgba(0,0,0,0);overflow:hidden;transition:all 100ms ease-out;-webkit-transition:all 100ms ease-out}@media(max-width: 783px){.wpr-menuItem{width:57px;height:50px;padding:0}}.wpr-menuItem:before{position:absolute;top:calc(50% - 12px);right:18px;text-align:center;font-size:1.4375rem;line-height:1;color:#121116;opacity:.4;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-menuItem:hover,.wpr-menuItem.isActive{color:#121116;background:#fff;border-left:2px solid #f56640}.wpr-menuItem:hover .wpr-menuItem-title,.wpr-menuItem.isActive .wpr-menuItem-title{color:#f56640}.wpr-menuItem:hover:before,.wpr-menuItem.isActive:before{color:#f56640;opacity:1}.wpr-menuItem:focus{color:#121116}.wpr-menuItem:focus:before{color:#121116}.wpr-menuItem-title{font-size:0.8125rem;line-height:1.4615384615;font-weight:bold;letter-spacing:-0.08px;text-transform:uppercase;color:#121116}@media(max-width: 783px){.wpr-menuItem-title{display:none !important}}.wpr-menuItem-description{margin-top:2px;color:#72777c;font-size:0.8125rem;line-height:1.2307692308;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}@media(max-width: 783px){.wpr-menuItem-description{display:none}}.wpr-menuItem.wpr-subMenuItem{display:none;padding:10px 20px 8px 25px}@media(max-width: 783px){.wpr-menuItem.wpr-subMenuItem{padding:8px 20px 8px 23px;height:35px}}.wpr-menuItem.wpr-subMenuItem .wpr-menuItem-title{display:inline-block;font-size:0.8125rem;line-height:1.8461538462;text-transform:inherit;font-weight:600}.wpr-menuItem.wpr-subMenuItem:before{position:relative;display:inline-block;top:2px;right:2px;margin-right:8px;font-size:1rem;line-height:1}#wpr-nav-cache:before{right:20px}#wpr-nav-tools:before{right:20px}.wpr-sectionHeader{position:relative;border-bottom:1px solid #e0e4e9;padding-bottom:24px}.wpr-sectionHeader:before{content:"";position:absolute;display:block;width:48px;height:2px;bottom:-1px;left:0;background:#f56640}.wpr-sectionHeader .wpr-title1{line-height:48px}.wpr-sectionHeader .wpr-title1:before{display:inline-block;width:48px;height:48px;margin-right:24px;background:#fde0d9;color:#f56640;text-align:center;border-radius:3px}.wpr-sectionHeader-title{margin-top:8px;padding-left:72px}.wpr-sectionHeader-description{color:#666;margin-top:8px;padding-left:72px}.wpr-sectionHeader-logo{vertical-align:top;margin-right:24px}.wpr-optionHeader{position:relative;display:flex;justify-content:space-between;margin-top:48px;padding-bottom:9px;border-bottom:1px solid #e0e4e9}.wpr-optionHeader .wpr-title2{line-height:24px;color:#f56640;padding-right:40px}.wpr-optionHeader .wpr-infoAction{margin-right:8px}.wpr-optionHeader.wpr-isHidden{display:none}.wpr-fieldsContainer{margin-top:8px}.wpr-fieldsContainer-description{color:#666}.wpr-fieldsContainer-description a:hover,.wpr-fieldsContainer-description a:focus{color:#1eadbf}.wpr-fieldsContainer-fieldset{margin-top:16px;background:#f9fafb;padding:16px;border:1px solid #e8ebee;border-radius:2px}.wpr-fieldsContainer-fieldset--split{display:flex}.wpr-fieldsContainer-fieldset--split .wpr-field+.wpr-field{border:none}.wpr-fieldsContainer-fieldset--split .wpr-field{flex:0 0 50%;padding:0}.wpr-fieldsContainer-fieldset--split .wpr-field:first-child{padding-right:15px}.wpr-fieldsContainer-fieldset--split .wpr-field:last-child{padding-left:15px}.wpr-fieldsContainer-helper{margin-top:16px;color:#d60e5b;font-weight:500}.wpr-fieldsContainer-helper:before{position:relative;top:3px;font-size:1.125rem;line-height:1;margin-right:4px}.wpr-fieldsContainer.wpr-isHidden{display:none}.wpr-infoAction{position:relative;height:24px;font-size:0.8125rem;line-height:1.8461538462;vertical-align:middle;letter-spacing:-0.03em;font-weight:500;color:#666;white-space:nowrap;text-decoration:none;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out}.wpr-infoAction:before{position:absolute;margin-left:-26px;font-size:1.125rem;line-height:1.3333333333;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-infoAction--help{text-transform:uppercase;color:#02707f;font-weight:bold;font-size:0.75rem;line-height:2;letter-spacing:0}@media(max-width: 783px){.wpr-infoAction--help{display:none}}.wpr-infoAction--help:before{color:#1eadbf}.wpr-infoAction:hover,.wpr-infoAction:focus{color:#f56640;outline:none}.wpr-infoAction:hover:before,.wpr-infoAction:focus:before{color:#ffa58b}.wpr-button{position:relative;display:inline-block;width:auto;padding:8px 24px;text-align:center;background:#f56640;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08);text-transform:uppercase;text-decoration:none;letter-spacing:-0.08px;font-weight:bold;border-radius:4px;color:#fff !important;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out;font-size:0.8125rem;line-height:1.5384615385}.wpr-button:hover,.wpr-button:focus{color:#fff !important;transform:translateY(-2px);box-shadow:0 7px 14px rgba(50,50,93,.25),0 3px 6px rgba(0,0,0,.2)}.wpr-button--small{padding:5px 0;letter-spacing:-0.08px;font-size:0.6875rem;line-height:1.8181818182}.wpr-button--no-min-width{min-width:auto !important}.wpr-button--icon{min-width:160px;padding-left:8px;padding-right:40px;text-align:left}.wpr-button--icon:before{position:absolute;right:8px;font-size:0.9375rem;line-height:1.3333333333}.wpr-button--fixed{position:fixed;display:flex;padding:8px 16px;right:24px;bottom:32px;border-radius:16px}.wpr-button--fixed:before{font-size:1.125rem;line-height:1;margin-right:8px}.wpr-button--purple{background:#2d1656}.wpr-button--blue{min-width:inherit;background:#1eadbf}.wpr-button--lightBlue{min-width:inherit;background:#40bacb}.wpr-button--red{background:#d33f49}.wpr-button--gray{background:#e0e4e9;color:#121116 !important}.wpr-button--gray:hover,.wpr-button--gray:active,.wpr-button--gray:focus{color:#121116 !important}.wpr-button--gray.radio-active{background:#2d1656 !important;color:#fff !important}.wpr-button--gray.radio-active:hover,.wpr-button--gray.radio-active:active,.wpr-button--gray.radio-active:focus{color:#fff !important}.wpr-button--blueDark{background:#02707f}.wpr-button:focus{outline:none;color:#fff !important}.wpr-field{padding:16px 0;transition:opacity 150ms ease-out;-webkit-transition:opacity 150ms ease-out}.wpr-field+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9}.wpr-field:first-child{padding-top:0}.wpr-field:last-child{padding-bottom:0}.wpr-field-description{margin-top:4px;color:#666;font-size:0.8125rem;line-height:1.5384615385}.wpr-field-description .wpr-js-popin{color:#444;text-decoration:underline}.wpr-field-description .wpr-js-popin:hover,.wpr-field-description .wpr-js-popin:focus{color:#1eadbf}.wpr-field-description a:hover,.wpr-field-description a:focus{color:#1eadbf}.wpr-field-description-helper{color:#00a66b}.wpr-field-description-label{font-size:0.875rem;line-height:1.4285714286;font-weight:500;color:#666}.wpr-field-list{margin:0;color:#666;font-weight:500}.wpr-field-list li+li{margin-top:16px}.wpr-field-list li:before{position:relative;top:3px;margin-right:8px;color:#02707f;font-size:1.125rem;line-height:1.1111111111}.wpr-field-list a{text-decoration:none}.wpr-field-list a:hover,.wpr-field-list a:focus{color:#1eadbf}.wpr-field-betweenText{margin:0 16px;font-weight:bold}.wpr-field .wpr-button{margin:8px 0}.wpr-field .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-field .wpr-flex{text-align:left;flex-direction:column}}.wpr-field .wpr-flex--egal>div{flex:0 0 50%}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div{width:100%}}.wpr-field .wpr-flex--egal>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div:last-child{text-align:left}}.wpr-field .wpr-flex--egal>div .wpr-field-description{font-style:normal;color:#666}.wpr-field p{margin-bottom:0}.wpr-field label{font-weight:500}.wpr-field h4{font-size:0.875rem;line-height:1.7142857143}.wpr-field.wpr-isDisabled{opacity:.55}.wpr-field.wpr-isParent{padding-bottom:0;margin-bottom:16px}.wpr-field.wpr-Delayjs{margin-top:16px}.wpr-field.wpr-RemoveUnUsedCss{margin-bottom:0}.wpr-field.wpr-NoPaddingBottom{padding-bottom:0}.wpr-field.wpr-isLastElem{margin-top:16px}.wpr-field.wpr-isHidden{display:none}.wpr-field .wpr-isHidden{display:none}.wpr-field--children{display:none;padding-left:32px}.wpr-field--children.wpr-isOpen{display:block}.wpr-field--children.wpr-field--textarea{padding-right:80px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-right:32px}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-right:0}}.wpr-field--children.no-space{padding-left:0}.wpr-field--checkbox .wpr-field-description{margin-left:32px}.wpr-field--radio{padding:24px 16px}.wpr-field--radio:first-child{padding-top:8px}.wpr-field--radio:last-child{padding-bottom:8px}.wpr-field--radio .wpr-field-description{margin-left:88px}.wpr-field--radio .wpr-field-description button{color:#666}.wpr-field--split{display:inline-block;width:50%;padding-right:16px;padding-bottom:0}.wpr-field--split+.wpr-field--split{padding-left:16px;padding-right:0}.wpr-field--split+.wpr-field--split:nth-child(2){padding-top:0;border-top:none}.wpr-field--cache .wpr-field--number,.wpr-field--cache .wpr-field--select{display:inline-block;padding-top:0;width:auto;padding-bottom:0;font-weight:bold}.wpr-field--cache .wpr-field--select{position:relative;padding-left:8px;top:-2px;border-top:none}.wpr-field--cache .wpr-field--number .wpr-text input[type=number]{background:#f2f3f6;height:35px;border:1px solid #e0e4e9;font-family:inherit;font-size:1em}.wpr-field--cache .wpr-field-description{margin:8px 0;color:#00a66b}.wpr-field--cache .wpr-field-description-label{color:#121116}.wpr-field--textarea .wpr-field-description pre{background:rgba(0,0,0,.07);padding:1em;margin:1em 0 0;white-space:normal}.wpr-field--textarea .wpr-field-description pre code{background:rgba(0,0,0,0);-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;color:#121116}.wpr-fieldWarning{display:none;position:relative;padding:16px 16px 24px 56px;background:#19073b;margin:8px 0 0;color:#fff}.wpr-fieldWarning.wpr-isOpen{display:block}.wpr-fieldWarning:after{content:"";position:absolute;display:block;top:-8px;left:20px;width:0;height:0;border-style:solid;border-width:0 12px 8px 12px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #19073b rgba(0,0,0,0)}.wpr-fieldWarning:before{content:"";position:absolute;display:block;width:calc(100% + 32px);height:100%;top:0;left:-16px;background:#19073b}.wpr-fieldWarning-title{position:relative;color:#f56640;font-size:0.875rem;line-height:1.4285714286;font-weight:bold}.wpr-fieldWarning-title:before{position:absolute;left:-36px;font-size:1.5rem;line-height:.8333333333}.wpr-fieldWarning-description{position:relative;margin-top:8px}.wpr-fieldWarning .wpr-button{margin-top:16px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:40px}.wpr-warningContainer+.wpr-warningContainer,.wpr-warningContainer+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9;padding-top:16px}.wpr-warningContainer+.wpr-warningContainer,.wpr-field+.wpr-warningContainer{padding-bottom:16px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-24px;padding-left:30px;padding-right:0}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:24px}}.wpr-documentation{padding:24px 16px;border-radius:4px;color:#fff;text-align:center;background:#40bacb}.wpr-documentation p{margin:8px 0 16px;font-weight:500}.wpr-documentation i{display:block;font-size:2.25rem;line-height:1;margin-bottom:8px}.wpr-documentation .wpr-button{padding-left:16px;padding-right:16px}.wpr-addon{padding:24px 0}.wpr-addon .wpr-flex{align-items:flex-start}@media(max-width: 783px){.wpr-addon .wpr-flex{align-items:center}}.wpr-addon .wpr-flex>div{text-align:left}.wpr-addon .wpr-addon-title{margin-bottom:16px;font-weight:500}.wpr-addon .wpr-field-description{font-style:normal}.wpr-addon .wpr-field-helper{font-size:0.8125rem;line-height:1.5384615385;color:#666;background-color:#e0e4e9;padding:8px;margin:8px 0}.wpr-addon .wpr-field-helper span.wpr-helper-title{font-weight:600}.wpr-addon .wpr-field-helper span.wpr-helper-title::after{content:"\a";white-space:pre}.wpr-addon .wpr-addon-logo{text-align:center;flex:0 0 160px}@media(max-width: 1239px){.wpr-addon .wpr-addon-logo{max-width:100px}.wpr-addon .wpr-addon-logo img{width:100%;height:auto}}@media(max-width: 1083px){.wpr-addon .wpr-addon-logo{max-width:160px}}@media(max-width: 783px){.wpr-addon .wpr-addon-logo{flex:0 0 auto;margin-bottom:16px}}.wpr-addon .wpr-addon-text{margin-left:32px;flex:1 1 auto}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-left:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-left:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-left:0}}.wpr-addon .wpr-addon-text a{display:inline-block;margin-top:24px}.wpr-addon .wpr-addon-text .button{margin-top:24px}.wpr-addon .wpr-addon-text .wpr-add-on-helper{font-weight:normal;color:#1eadbf}.wpr-addon .wpr-addon-text .wpr-add-on-helper a{margin-top:0}.wpr-webp-addon .wpr-addon .wpr-addon-text a{margin-top:0px}.notice-wpr-warning{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;margin-top:16px;padding:8px 32px;border:0}.notice-wpr-warning p:first-child{font-size:1rem;line-height:1.125;margin-left:80px}.notice-wpr-warning p:first-child::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle;margin-left:-80px}@media(max-width: 1239px){.notice-wpr-warning p:first-child::before{margin-bottom:-30px}}.notice-wpr-warning p:last-child{margin-left:63px;flex-basis:100%;align-items:center;justify-content:flex-start;display:flex}@media(max-width: 783px){.notice-wpr-warning p:last-child{align-content:center;flex-direction:column;margin-left:0}}.notice-wpr-warning p:last-child a{margin:0 16px}@media(max-width: 783px){.notice-wpr-warning p:last-child a{margin:8px 16px}}.notice-wpr-warning p:last-child a:first-child{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.notice-wpr-warning p:last-child a:first-child:hover,.notice-wpr-warning p:last-child a:first-child:active,.notice-wpr-warning p:last-child a:first-child:focus{color:#fff}.notice-wpr-warning p:last-child a:first-child::after{content:"→";font-weight:normal;margin-left:8px}.wpr-notice{position:relative;color:#444;background:#ebfaf5 url("../img/bg-activated.svg") no-repeat 90% bottom;background-size:350px;margin-top:24px;border-radius:4px;overflow:hidden}.wpr-notice-container{padding:24px 25% 24px 40px}.wpr-notice-supTitle{font-size:1rem;line-height:1.375;font-weight:bold}.wpr-notice-title{font-size:1.5rem;line-height:1.3333333333;color:#3ece9d;margin-top:16px;font-weight:bold}.wpr-notice-description{font-size:0.875rem;line-height:1.5714285714;margin:16px 0 24px}.wpr-notice-continue{color:#666}.wpr-notice-close{position:absolute;top:24px;right:24px;color:#666;text-decoration:none;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-notice-close:hover{color:#444}.wpr-notice-close:focus{outline:none}.wpr-tools{position:relative;display:flex;flex-direction:row;padding:32px 0}@media(max-width: 1239px){.wpr-tools{flex-direction:column}}@media(max-width: 1083px){.wpr-tools{flex-direction:row}}@media(max-width: 783px){.wpr-tools{flex-direction:column}}.wpr-tools:nth-child(2){margin-top:16px}.wpr-tools+.wpr-tools{border-top:1px solid #e0e4e9}.wpr-tools-label{display:block}.wpr-tools-label:before{position:absolute;left:0;margin-top:5px;font-size:2.25rem;line-height:1;color:#f56640}@media(max-width: 783px){.wpr-tools-label:before{display:block;position:initial}}.wpr-tools-col{flex:1 1 auto}.wpr-tools-col:first-child{padding-left:72px;padding-right:24px;min-width:340px}@media(max-width: 783px){.wpr-tools-col:first-child{padding-left:0;padding-right:0;min-width:auto}}.wpr-tools-col:last-child{text-align:right}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:left}}.wpr-tools .wpr-button{margin-top:24px;white-space:normal}.wpr-tools .wpr-field-description{font-style:normal;color:#666}.wpr-tools #wpr-update-exclusion-msg{min-height:20px}.wpr-imagify{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:30px}.wpr-imagify-description{width:40%;padding-right:60px}@media(max-width: 1239px){.wpr-imagify-description{width:auto;padding-right:0}}.wpr-imagify-screenshot{width:60%}@media(max-width: 1239px){.wpr-imagify-screenshot{margin-top:60px;width:auto}}.wpr-imagify-screenshot img{max-width:100%;height:auto}.wpr-imagify-more,.wpr-imagify-name{color:#00a8dc;font-weight:700;margin-bottom:0}.wpr-imagify-more::before{content:"✓";color:#000;font-size:2rem;margin-right:5px}.wpr-imagify p{font-size:1rem}.wpr-imagify p:first-child{margin-top:0}.wpr-imagify ul{margin-top:40px}.wpr-imagify li{display:flex;align-items:flex-start;margin-bottom:35px}.wpr-imagify li:before{width:24px;height:24px;margin-right:10px;flex-shrink:0}.wpr-imagify li .text{flex-grow:1;display:inline-block}.wpr-imagify a{text-decoration:none}.wpr-imagify a:hover{color:#00a8dc}.wpr-imagify .button-primary{background:#2abb9b;border:1px solid #bebebe;box-shadow:none;font-size:1rem;font-weight:700;height:auto;line-height:1;margin-top:60px;padding:20px 45px;text-shadow:none;text-transform:uppercase}.wpr-imagify-plugin-tile{display:flex;align-items:center;width:100%;padding:20px;background-color:#f9fafb;margin-top:20px;border:1px solid #ebe9e9}.wpr-imagify-plugin-tile-info{margin-left:20px}.wpr-imagify-plugin-tile-info .wpr-star-rating{display:flex;align-items:center}.wpr-imagify-plugin-tile-info .star-rating .star{font-size:16px;width:16px;height:13px}.wpr-imagify-plugin-tile-info .num-ratings{font-size:13px;margin-left:10px}.wpr-imagify-plugin-tile-title{margin-bottom:5px}.wpr-imagify-plugin-tile .wpr-button{margin-left:auto}.wpr-imagify-plugin-tile .wpr-button:before{margin-right:5px}.wpr-tutorials-section{display:flex;flex-flow:row wrap}div.wpr-tutorial-item{width:32%;margin-bottom:10px;margin-right:1%}.wpr-tutorial-link{cursor:pointer;transition:color 200ms ease-out}.wpr-tutorial-link:hover{color:#1eadbf}@media(max-width: 1083px){div.wpr-tutorial-item{width:48%}}@media(max-width: 783px){div.wpr-tutorial-item{width:100%}}.wpr-rocketcdn-modal{display:none}.wpr-rocketcdn-modal.is-open{display:block}.wpr-rocketcdn-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center}.wpr-rocketcdn-modal__container{max-width:674px;max-height:100vh;overflow-y:auto;box-sizing:border-box}.wpr-rocketcdn-modal iframe{max-width:100%}.wpr-checkbox{position:relative;padding-left:32px}.wpr-checkbox label{user-select:none}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border:2px solid #444;border-radius:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{content:"";position:absolute;top:5px;left:2px;color:#fff;font-family:"wpr-icomoon";speak:none;font-size:0.875rem;line-height:1.2857142857;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after{opacity:0;transform:scale(2)}.wpr-checkbox [type=checkbox]:checked+label:after{opacity:1;transform:scale(1)}.wpr-checkbox [type=checkbox]:checked+label:before{background:#19073b;border-color:#19073b}.wpr-checkbox [type=checkbox]:checked:focus+label:before{background:#665090;border:2px dotted #665090}.wpr-checkbox [type=checkbox]:focus+label:before{border:2px dotted #444}.wpr-checkbox-warning{color:#d33f49;margin-left:16px}.wpr-checkbox-warning::before{margin-right:8px}.wpr-radio{position:relative;padding-left:88px}.wpr-radio label{user-select:none;font-weight:bold}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before,.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{content:"";position:absolute}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:0;width:52px;height:22px;background:#fff;border-radius:12px;border:1px solid #444;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{width:18px;height:18px;border-radius:100%;background:#444;top:3px;left:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:disabled+label:after,.wpr-radio [type=checkbox]:disabled+label:after{background:#e0e4e9}.wpr-radio [type=checkbox]:disabled+label:before,.wpr-radio [type=checkbox]:disabled+label:before{border:1px solid #e0e4e9}.wpr-radio [type=checkbox]:checked+label:before{border-color:#1eadbf}.wpr-radio [type=checkbox]:checked+label:after{background:#1eadbf;left:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{position:absolute;left:4px;width:52px;text-transform:uppercase;letter-spacing:-0.01em;font-weight:bold;font-size:0.6875rem;line-height:2.1818181818;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{content:attr(data-l10n-inactive);left:27px;color:#666}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{content:attr(data-l10n-active);color:#02707f}.wpr-radio--reverse{padding-right:72px;padding-left:0}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:-2px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:-25px;left:inherit}.wpr-radio [type=checkbox]:not(:checked):focus+label:before{border:1px dashed #444}.wpr-radio [type=checkbox]:checked:focus+label:before{border:1px dashed #1eadbf}.wpr-radio--tips [type=checkbox]:checked+label:before{border-color:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label:after{background:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label .wpr-radio-ui:after{color:#00a66b}.wpr-radio--tips [type=checkbox]:checked:focus+label:before{border:1px dashed #3ece9d}.wpr-select{position:relative}.wpr-select select{margin:0;padding:0 8px;height:36px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;box-shadow:none;border-radius:0;letter-spacing:.011em}.wpr-select select:focus{outline:none;border-color:#444;box-shadow:none}.wpr-select select:disabled{background-image:none}.wpr-select label{font-weight:bold;margin-left:8px}.wpr-textarea{margin-top:8px}.wpr-textarea textarea{padding:8px;width:100%;height:100px;font-family:Monaco;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-size:0.8125rem;line-height:1.2307692308;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-textarea textarea:focus{outline:none;border-color:#444;box-shadow:none}.wpr-textarea+.wpr-field-description{color:#00a66b}.wpr-text label{color:#666}.wpr-text input[type=text],.wpr-text input[type=number]{margin-top:8px;padding:0 8px;width:100%;height:32px;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-family:Monaco;font-size:0.75rem;line-height:1.3333333333;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-text input[type=text]:focus,.wpr-text input[type=number]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-text input[type=text].wpr-isError,.wpr-text input[type=number].wpr-isError{border-color:#d33f49}.wpr-text input[type=number]{width:80px}.wpr-text--number label{margin-right:8px}.wpr-upload input[type=file]{display:block;width:252px;margin:8px 8px 8px 0;padding:8px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;font-size:0.6875rem;line-height:1.4545454545}.wpr-upload input[type=file]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-multiple{display:flex;align-items:center;flex-wrap:wrap}@media(max-width: 783px){.wpr-multiple{align-items:center;flex-direction:column}}.wpr-multiple .wpr-text{flex:1 1 auto;position:relative;top:-2px}@media(max-width: 783px){.wpr-multiple .wpr-text{width:100%}}.wpr-multiple .wpr-button{margin-left:16px;width:auto;min-width:inherit;padding-right:30px}@media(max-width: 783px){.wpr-multiple .wpr-button{margin-left:0}}.wpr-multiple input[type=text]{flex-grow:2}.wpr-multiple select{height:30px}.wpr-multiple-default{margin-right:20px}.wpr-multiple-list{display:none;padding:8px 0;margin:16px 0 0;background:#f2f3f6;border-radius:2px}.wpr-multiple-list li{margin-bottom:0;padding:4px 16px;font-size:0.8125rem;line-height:1.2307692308;font-family:Monaco}.wpr-multiple-list li span{display:inline-block;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-multiple-close{position:relative;top:3px;font-size:1rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-multiple-close:focus{outline:none}.wpr-multiple-close:hover,.wpr-multiple-close:focus{color:#d33f49}.wpr-multiple-close:hover+span,.wpr-multiple-close:focus+span{color:#d33f49}.wpr-multiple-select .wpr-list{border:2px solid #c2cad4;background-color:#fff;border-radius:5px;padding:10px;margin:8px 0}.wpr-multiple-select .wpr-list .wpr-list-header{display:flex;justify-content:space-between}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_ads:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_plugins:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-multiple-select-exclude_js_themes:before{font-family:"wpr-icomoon";content:"";padding-right:8px}.wpr-multiple-select .wpr-list .wpr-list-header .wpr-list-header-arrow{width:15px;cursor:pointer;display:flex;transform:rotate(180deg)}.wpr-multiple-select .wpr-list .wpr-list-header h3{font-weight:500;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-multiple-select .wpr-list .wpr-list-body{display:none}.wpr-multiple-select .wpr-list .wpr-list-body li{padding-left:30px}.wpr-multiple-select .wpr-list .wpr-list-body li .wpr-checkbox img{width:15px}.wpr-multiple-select .wpr-list.open .wpr-list-body{display:block}.wpr-multiple-select .wpr-list.open .wpr-list-body .wpr-checkbox label{color:#72777c}.wpr-multiple-select .wpr-list.open .wpr-list-body .wpr-checkbox input[checked=checked]+label{color:#121116}.wpr-multiple-select .wpr-list.open .wpr-list-header{border-bottom:1px solid #c2cad4;margin-bottom:10px;padding-bottom:5px}.wpr-multiple-select .wpr-list.open .wpr-list-header-arrow{transform:rotate(0deg)}.wpr-field--categorizedmultiselect .wpr-list{padding-right:15px;padding-left:15px}.wpr-field--categorizedmultiselect .wpr-list.open .wpr-list-header{padding-bottom:9px;margin-bottom:10px}.wpr-field--categorizedmultiselect .wpr-list.open .wpr-list-header{max-height:32px}.wpr-field--categorizedmultiselect .wpr-list .wpr-list-header{max-height:32px}.wpr-field--categorizedmultiselect .wpr-list [type=checkbox]+label:before{top:4px}.wpr-field--categorizedmultiselect .wpr-list [type=checkbox]:checked+label:after{top:4px}.wpr-field--categorizedmultiselect .wpr-list-header .wpr-checkbox{padding-left:29px}.wpr-field--categorizedmultiselect .wpr-list-body{display:block;max-height:250px;overflow-y:auto}.wpr-field--categorizedmultiselect .wpr-list-body ul{margin:0}.wpr-field--categorizedmultiselect .wpr-list-body ul li{margin-bottom:10px}.wpr-field--categorizedmultiselect .wpr-list-body ul li .wpr-checkbox{padding-left:25px}.wpr-field--categorizedmultiselect .wpr-list-body ul li .wpr-checkbox label{color:#121116 !important;font-weight:normal}.wpr-field--categorizedmultiselect .dashicons{color:#72777c}.wpr-field--categorizedmultiselect .wpr-multiple-select-title{font-weight:bold;margin-left:5px}@media only screen and (min-width: 782px){.wpr-field--categorizedmultiselect{padding-right:80px}} \ No newline at end of file diff --git a/assets/js/wpr-beacon.js b/assets/js/wpr-beacon.js index d9342bb258..7c51e2e917 100644 --- a/assets/js/wpr-beacon.js +++ b/assets/js/wpr-beacon.js @@ -1,9 +1,15 @@ (() => { // src/Utils.js var BeaconUtils = class { + static getScreenWidth() { + return window.innerWidth || document.documentElement.clientWidth; + } + static getScreenHeight() { + return window.innerHeight || document.documentElement.clientHeight; + } static isNotValidScreensize(is_mobile, threshold) { - const screenWidth = window.innerWidth || document.documentElement.clientWidth; - const screenHeight = window.innerHeight || document.documentElement.clientHeight; + const screenWidth = this.getScreenWidth(); + const screenHeight = this.getScreenHeight(); const isNotValidForMobile = is_mobile && (screenWidth > threshold.width || screenHeight > threshold.height); const isNotValidForDesktop = !is_mobile && (screenWidth < threshold.width || screenHeight < threshold.height); return isNotValidForMobile || isNotValidForDesktop; @@ -190,6 +196,119 @@ }; var BeaconLcp_default = BeaconLcp; + // src/BeaconLrc.js + var BeaconLrc = class { + constructor(config, logger) { + this.config = config; + this.logger = logger; + this.lazyRenderElements = []; + } + async run() { + try { + const elementsInView = this._getLazyRenderElements(); + if (elementsInView) { + this._processElements(elementsInView); + } + } catch (err) { + this.errorCode = "script_error"; + this.logger.logMessage("Script Error: " + err); + } + } + _getLazyRenderElements() { + const elements = document.querySelectorAll("[data-rocket-location-hash]"); + if (elements.length <= 0) { + return []; + } + const validElements = Array.from(elements).filter((element) => !this._skipElement(element)); + return validElements.map((element) => ({ + element, + depth: this._getElementDepth(element), + distance: this._getElementDistance(element), + hash: this._getLocationHash(element) + })); + } + _getElementDepth(element) { + let depth = 0; + let parent = element.parentElement; + while (parent) { + depth++; + parent = parent.parentElement; + } + return depth; + } + _getElementDistance(element) { + const rect = element.getBoundingClientRect(); + const scrollTop = window.pageYOffset || document.documentElement.scrollTop; + return Math.max(0, rect.top + scrollTop - Utils_default.getScreenHeight()); + } + _skipElement(element) { + const skipStrings = this.config.skipStrings || ["memex"]; + if (!element || !element.id) return false; + return skipStrings.some((str) => element.id.toLowerCase().includes(str.toLowerCase())); + } + _shouldSkipElement(element, exclusions) { + if (!element) return false; + for (let i = 0; i < exclusions.length; i++) { + const [attribute, pattern] = exclusions[i]; + const attributeValue = element.getAttribute(attribute); + if (attributeValue && new RegExp(pattern, "i").test(attributeValue)) { + return true; + } + } + return false; + } + _processElements(elements) { + elements.forEach(({ element, depth, distance, hash }) => { + if (this._shouldSkipElement(element, this.config.exclusions || [])) { + return; + } + if ("No hash detected" === hash) { + return; + } + const can_push_hash = element.parentElement && this._getElementDistance(element.parentElement) < this.config.lrc_threshold && distance >= this.config.lrc_threshold; + const color = can_push_hash ? "green" : distance === 0 ? "red" : ""; + this.logger.logColoredMessage(`${" ".repeat(depth)}${element.tagName} (Depth: ${depth}, Distance from viewport bottom: ${distance}px)`, color); + this.logger.logColoredMessage(`${" ".repeat(depth)}Location hash: ${hash}`, color); + this.logger.logColoredMessage(`${" ".repeat(depth)}Dimensions Client Height: ${element.clientHeight}`, color); + if (can_push_hash) { + this.lazyRenderElements.push(hash); + this.logger.logMessage(`Element pushed with hash: ${hash}`); + } + }); + } + _getXPath(element) { + if (element && element.id !== "") { + return `//*[@id="${element.id}"]`; + } + return this._getElementXPath(element); + } + _getElementXPath(element) { + if (element === document.body) { + return "/html/body"; + } + const position = this._getElementPosition(element); + return `${this._getElementXPath(element.parentNode)}/${element.nodeName.toLowerCase()}[${position}]`; + } + _getElementPosition(element) { + let pos = 1; + let sibling = element.previousElementSibling; + while (sibling) { + if (sibling.nodeName === element.nodeName) { + pos++; + } + sibling = sibling.previousElementSibling; + } + return pos; + } + _getLocationHash(element) { + return element.hasAttribute("data-rocket-location-hash") ? element.getAttribute("data-rocket-location-hash") : "No hash detected"; + } + getResults() { + return this.lazyRenderElements; + } + }; + var BeaconLrc_default = BeaconLrc; + // src/Logger.js var Logger = class { constructor(enabled) { @@ -201,6 +320,12 @@ } console.log(msg); } + logColoredMessage(msg, color = "green") { + if (!this.enabled) { + return; + } + console.log(`%c${msg}`, `color: ${color};`); + } }; var Logger_default = Logger; @@ -209,6 +334,7 @@ constructor(config) { this.config = config; this.lcpBeacon = null; + this.lrcBeacon = null; this.infiniteLoopId = null; this.errorCode = ""; this.logger = new Logger_default(this.config.debug); @@ -223,16 +349,21 @@ this._handleInfiniteLoop(); }, 1e4); const isGeneratedBefore = await this._getGeneratedBefore(); - let shouldSaveResultsIntoDB = false; - const shouldGenerateLcp = this.config.status.atf && isGeneratedBefore === false; + const shouldGenerateLcp = this.config.status.atf && (isGeneratedBefore === false || isGeneratedBefore.lcp === false); + const shouldGeneratelrc = this.config.status.lrc && (isGeneratedBefore === false || isGeneratedBefore.lrc === false); if (shouldGenerateLcp) { this.lcpBeacon = new BeaconLcp_default(this.config, this.logger); await this.lcpBeacon.run(); - shouldSaveResultsIntoDB = true; } else { - this.logger.logMessage("Not running BeaconLcp because data is already available"); + this.logger.logMessage("Not running BeaconLcp because data is already available or feature is disabled"); + } + if (shouldGeneratelrc) { + this.lrcBeacon = new BeaconLrc_default(this.config, this.logger); + await this.lrcBeacon.run(); + } else { + this.logger.logMessage("Not running BeaconLrc because data is already available or feature is disabled"); } - if (shouldSaveResultsIntoDB) { + if (shouldGenerateLcp || shouldGeneratelrc) { this._saveFinalResultIntoDB(); } else { this.logger.logMessage("Not saving results into DB as no beacon features ran."); @@ -264,11 +395,12 @@ credentials: "same-origin", body: data_check }).then((data) => data.json()); - return beacon_data_response.success; + return beacon_data_response.data; } _saveFinalResultIntoDB() { const results = { - lcp: this.lcpBeacon ? this.lcpBeacon.getResults() : null + lcp: this.lcpBeacon ? this.lcpBeacon.getResults() : null, + lrc: this.lrcBeacon ? this.lrcBeacon.getResults() : null }; const data = new FormData(); data.append("action", "rocket_beacon"); @@ -285,7 +417,7 @@ "wpr-saas-no-intercept": true } }).then((response) => response.json()).then((data2) => { - this.logger.logMessage(data2); + this.logger.logMessage(data2.data.lcp); }).catch((error) => { this.logger.logMessage(error); }).finally(() => { @@ -331,4 +463,5 @@ }, rocket_beacon_data.delay); }); })(window.rocket_beacon_data); + var BeaconEntryPoint_default = BeaconManager_default; })(); diff --git a/assets/js/wpr-beacon.min.js b/assets/js/wpr-beacon.min.js index 3610da1bd0..530812fe44 100644 --- a/assets/js/wpr-beacon.min.js +++ b/assets/js/wpr-beacon.min.js @@ -1,2 +1,2 @@ -(()=>{var g=class{static isNotValidScreensize(e,i){const t=window.innerWidth||document.documentElement.clientWidth,c=window.innerHeight||document.documentElement.clientHeight,n=e&&(t>i.width||c>i.height),s=!e&&(t=0&&e.right>=0&&e.top<=(window.innerHeight||document.documentElement.clientHeight)&&e.left<=(window.innerWidth||document.documentElement.clientWidth)}},a=g,u=class{constructor(e,i){this.config=e,this.performanceImages=[],this.logger=i}async run(){try{const e=this._generateLcpCandidates(1/0);e&&(this._initWithFirstElementWithInfo(e),this._fillATFWithoutDuplications(e))}catch(e){this.errorCode="script_error",this.logger.logMessage("Script Error: "+e)}}_generateLcpCandidates(e){const i=document.querySelectorAll(this.config.elements);return i.length<=0?[]:Array.from(i).map(n=>{if(n.nodeName.toLowerCase()==="img"&&n.parentElement.nodeName.toLowerCase()==="picture")return null;let s;if(n.nodeName.toLowerCase()==="picture"){const o=n.querySelector("img");if(o)s=o.getBoundingClientRect();else return null}else s=n.getBoundingClientRect();return{element:n,rect:s}}).filter(n=>n!==null).filter(n=>n.rect.width>0&&n.rect.height>0&&a.isIntersecting(n.rect)).map(n=>({item:n,area:this._getElementArea(n.rect),elementInfo:this._getElementInfo(n.element)})).sort((n,s)=>s.area-n.area).slice(0,e).map(n=>({element:n.item.element,elementInfo:n.elementInfo}))}_getElementArea(e){const i=Math.min(e.width,(window.innerWidth||document.documentElement.clientWidth)-e.left),t=Math.min(e.height,(window.innerHeight||document.documentElement.clientHeight)-e.top);return i*t}_getElementInfo(e){const i=e.nodeName.toLowerCase(),t={type:"",src:"",srcset:"",sizes:"",sources:[],bg_set:[],current_src:""},c=/url\(\s*?['"]?\s*?(.+?)\s*?["']?\s*?\)/ig;if(i==="img"&&e.srcset)t.type="img-srcset",t.src=e.src,t.srcset=e.srcset,t.sizes=e.sizes,t.current_src=e.currentSrc;else if(i==="img")t.type="img",t.src=e.src,t.current_src=e.currentSrc;else if(i==="video"){t.type="img";const n=e.querySelector("source");t.src=e.poster||(n?n.src:""),t.current_src=t.src}else if(i==="svg"){const n=e.querySelector("image");n&&(t.type="img",t.src=n.getAttribute("href")||"",t.current_src=t.src)}else if(i==="picture"){t.type="picture";const n=e.querySelector("img");t.src=n?n.src:"",t.sources=Array.from(e.querySelectorAll("source")).map(s=>({srcset:s.srcset||"",media:s.media||"",type:s.type||"",sizes:s.sizes||""}))}else{const s=[window.getComputedStyle(e,null).getPropertyValue("background-image"),getComputedStyle(e,":after").getPropertyValue("background-image"),getComputedStyle(e,":before").getPropertyValue("background-image")].filter(r=>r!=="none");if(s.length===0)return null;const o=s[0];if(t.type="bg-img",o.includes("image-set(")&&(t.type="bg-img-set"),!o||o===""||o.includes("data:image"))return null;const l=[...o.matchAll(c)];t.bg_set=l.map(r=>r[1]?{src:r[1].trim()+(r[2]?" "+r[2].trim():"")}:{}),t.bg_set.every(r=>r.src==="")&&(t.bg_set=l.map(r=>r[1]?{src:r[1].trim()}:{})),t.bg_set.length>0&&(t.src=t.bg_set[0].src,t.type==="bg-img-set"&&(t.src=t.bg_set))}return t}_initWithFirstElementWithInfo(e){const i=e.find(t=>t.elementInfo!==null);if(!i){this.logger.logMessage("No LCP candidate found."),this.performanceImages=[];return}this.performanceImages=[{...i.elementInfo,label:"lcp"}]}_fillATFWithoutDuplications(e){e.forEach(({element:i,elementInfo:t})=>{this._isDuplicateImage(i)||!t||this.performanceImages.push({...t,label:"above-the-fold"})})}_isDuplicateImage(e){const i=this._getElementInfo(e);if(i===null)return!1;const t=i.type==="img"||i.type==="img-srcset"||i.type==="video",c=i.type==="bg-img"||i.type==="bg-img-set"||i.type==="picture";return(t||c)&&this.performanceImages.some(n=>n.src===i.src)}getResults(){return this.performanceImages}},d=u,h=class{constructor(e){this.enabled=e}logMessage(e){this.enabled&&console.log(e)}},m=h,p=class{constructor(e){this.config=e,this.lcpBeacon=null,this.infiniteLoopId=null,this.errorCode="",this.logger=new m(this.config.debug)}async init(){if(this.scriptTimer=new Date,!await this._isValidPreconditions()){this._finalize();return}this.infiniteLoopId=setTimeout(()=>{this._handleInfiniteLoop()},1e4);const e=await this._getGeneratedBefore();let i=!1;this.config.status.atf&&e===!1?(this.lcpBeacon=new d(this.config,this.logger),await this.lcpBeacon.run(),i=!0):this.logger.logMessage("Not running BeaconLcp because data is already available"),i?this._saveFinalResultIntoDB():(this.logger.logMessage("Not saving results into DB as no beacon features ran."),this._finalize())}async _isValidPreconditions(){const e={width:this.config.width_threshold,height:this.config.height_threshold};return a.isNotValidScreensize(this.config.is_mobile,e)?(this.logger.logMessage("Bailing out because screen size is not acceptable"),!1):!0}async _getGeneratedBefore(){if(!a.isPageCached())return!1;let e=new FormData;return e.append("action","rocket_check_beacon"),e.append("rocket_beacon_nonce",this.config.nonce),e.append("url",this.config.url),e.append("is_mobile",this.config.is_mobile),(await fetch(this.config.ajax_url,{method:"POST",credentials:"same-origin",body:e}).then(t=>t.json())).success}_saveFinalResultIntoDB(){const e={lcp:this.lcpBeacon?this.lcpBeacon.getResults():null},i=new FormData;i.append("action","rocket_beacon"),i.append("rocket_beacon_nonce",this.config.nonce),i.append("url",this.config.url),i.append("is_mobile",this.config.is_mobile),i.append("status",this._getFinalStatus()),i.append("results",JSON.stringify(e)),fetch(this.config.ajax_url,{method:"POST",credentials:"same-origin",body:i,headers:{"wpr-saas-no-intercept":!0}}).then(t=>t.json()).then(t=>{this.logger.logMessage(t)}).catch(t=>{this.logger.logMessage(t)}).finally(()=>{this._finalize()})}_getFinalStatus(){return this.errorCode!==""?this.errorCode:10<=(new Date-this.scriptTimer)/1e3?"timeout":"success"}_handleInfiniteLoop(){this._saveFinalResultIntoDB()}_finalize(){document.querySelector('[data-name="wpr-wpr-beacon"]').setAttribute("beacon-completed","true"),clearTimeout(this.infiniteLoopId)}},f=p;(e=>{if(!e)return;const i=new f(e);if(document.readyState!=="loading"){setTimeout(()=>{i.init()},e.delay);return}document.addEventListener("DOMContentLoaded",()=>{setTimeout(()=>{i.init()},e.delay)})})(window.rocket_beacon_data)})(); +(()=>{var h=class{static getScreenWidth(){return window.innerWidth||document.documentElement.clientWidth}static getScreenHeight(){return window.innerHeight||document.documentElement.clientHeight}static isNotValidScreensize(e,i){const t=this.getScreenWidth(),r=this.getScreenHeight(),s=e&&(t>i.width||r>i.height),n=!e&&(t=0&&e.right>=0&&e.top<=(window.innerHeight||document.documentElement.clientHeight)&&e.left<=(window.innerWidth||document.documentElement.clientWidth)}},c=h,u=class{constructor(e,i){this.config=e,this.performanceImages=[],this.logger=i}async run(){try{const e=this._generateLcpCandidates(1/0);e&&(this._initWithFirstElementWithInfo(e),this._fillATFWithoutDuplications(e))}catch(e){this.errorCode="script_error",this.logger.logMessage("Script Error: "+e)}}_generateLcpCandidates(e){const i=document.querySelectorAll(this.config.elements);return i.length<=0?[]:Array.from(i).map(s=>{if(s.nodeName.toLowerCase()==="img"&&s.parentElement.nodeName.toLowerCase()==="picture")return null;let n;if(s.nodeName.toLowerCase()==="picture"){const o=s.querySelector("img");if(o)n=o.getBoundingClientRect();else return null}else n=s.getBoundingClientRect();return{element:s,rect:n}}).filter(s=>s!==null).filter(s=>s.rect.width>0&&s.rect.height>0&&c.isIntersecting(s.rect)).map(s=>({item:s,area:this._getElementArea(s.rect),elementInfo:this._getElementInfo(s.element)})).sort((s,n)=>n.area-s.area).slice(0,e).map(s=>({element:s.item.element,elementInfo:s.elementInfo}))}_getElementArea(e){const i=Math.min(e.width,(window.innerWidth||document.documentElement.clientWidth)-e.left),t=Math.min(e.height,(window.innerHeight||document.documentElement.clientHeight)-e.top);return i*t}_getElementInfo(e){const i=e.nodeName.toLowerCase(),t={type:"",src:"",srcset:"",sizes:"",sources:[],bg_set:[],current_src:""},r=/url\(\s*?['"]?\s*?(.+?)\s*?["']?\s*?\)/ig;if(i==="img"&&e.srcset)t.type="img-srcset",t.src=e.src,t.srcset=e.srcset,t.sizes=e.sizes,t.current_src=e.currentSrc;else if(i==="img")t.type="img",t.src=e.src,t.current_src=e.currentSrc;else if(i==="video"){t.type="img";const s=e.querySelector("source");t.src=e.poster||(s?s.src:""),t.current_src=t.src}else if(i==="svg"){const s=e.querySelector("image");s&&(t.type="img",t.src=s.getAttribute("href")||"",t.current_src=t.src)}else if(i==="picture"){t.type="picture";const s=e.querySelector("img");t.src=s?s.src:"",t.sources=Array.from(e.querySelectorAll("source")).map(n=>({srcset:n.srcset||"",media:n.media||"",type:n.type||"",sizes:n.sizes||""}))}else{const n=[window.getComputedStyle(e,null).getPropertyValue("background-image"),getComputedStyle(e,":after").getPropertyValue("background-image"),getComputedStyle(e,":before").getPropertyValue("background-image")].filter(a=>a!=="none");if(n.length===0)return null;const o=n[0];if(t.type="bg-img",o.includes("image-set(")&&(t.type="bg-img-set"),!o||o===""||o.includes("data:image"))return null;const g=[...o.matchAll(r)];t.bg_set=g.map(a=>a[1]?{src:a[1].trim()+(a[2]?" "+a[2].trim():"")}:{}),t.bg_set.every(a=>a.src==="")&&(t.bg_set=g.map(a=>a[1]?{src:a[1].trim()}:{})),t.bg_set.length>0&&(t.src=t.bg_set[0].src,t.type==="bg-img-set"&&(t.src=t.bg_set))}return t}_initWithFirstElementWithInfo(e){const i=e.find(t=>t.elementInfo!==null);if(!i){this.logger.logMessage("No LCP candidate found."),this.performanceImages=[];return}this.performanceImages=[{...i.elementInfo,label:"lcp"}]}_fillATFWithoutDuplications(e){e.forEach(({element:i,elementInfo:t})=>{this._isDuplicateImage(i)||!t||this.performanceImages.push({...t,label:"above-the-fold"})})}_isDuplicateImage(e){const i=this._getElementInfo(e);if(i===null)return!1;const t=i.type==="img"||i.type==="img-srcset"||i.type==="video",r=i.type==="bg-img"||i.type==="bg-img-set"||i.type==="picture";return(t||r)&&this.performanceImages.some(s=>s.src===i.src)}getResults(){return this.performanceImages}},d=u,p=class{constructor(e,i){this.config=e,this.logger=i,this.lazyRenderElements=[]}async run(){try{const e=this._getLazyRenderElements();e&&this._processElements(e)}catch(e){this.errorCode="script_error",this.logger.logMessage("Script Error: "+e)}}_getLazyRenderElements(){const e=document.querySelectorAll("[data-rocket-location-hash]");return e.length<=0?[]:Array.from(e).filter(t=>!this._skipElement(t)).map(t=>({element:t,depth:this._getElementDepth(t),distance:this._getElementDistance(t),hash:this._getLocationHash(t)}))}_getElementDepth(e){let i=0,t=e.parentElement;for(;t;)i++,t=t.parentElement;return i}_getElementDistance(e){const i=e.getBoundingClientRect(),t=window.pageYOffset||document.documentElement.scrollTop;return Math.max(0,i.top+t-c.getScreenHeight())}_skipElement(e){const i=this.config.skipStrings||["memex"];return!e||!e.id?!1:i.some(t=>e.id.toLowerCase().includes(t.toLowerCase()))}_shouldSkipElement(e,i){if(!e)return!1;for(let t=0;t{if(this._shouldSkipElement(i,this.config.exclusions||[])||s==="No hash detected")return;const n=i.parentElement&&this._getElementDistance(i.parentElement)=this.config.lrc_threshold,o=n?"green":r===0?"red":"";this.logger.logColoredMessage(`${" ".repeat(t)}${i.tagName} (Depth: ${t}, Distance from viewport bottom: ${r}px)`,o),this.logger.logColoredMessage(`${" ".repeat(t)}Location hash: ${s}`,o),this.logger.logColoredMessage(`${" ".repeat(t)}Dimensions Client Height: ${i.clientHeight}`,o),n&&(this.lazyRenderElements.push(s),this.logger.logMessage(`Element pushed with hash: ${s}`))})}_getXPath(e){return e&&e.id!==""?`//*[@id="${e.id}"]`:this._getElementXPath(e)}_getElementXPath(e){if(e===document.body)return"/html/body";const i=this._getElementPosition(e);return`${this._getElementXPath(e.parentNode)}/${e.nodeName.toLowerCase()}[${i}]`}_getElementPosition(e){let i=1,t=e.previousElementSibling;for(;t;)t.nodeName===e.nodeName&&i++,t=t.previousElementSibling;return i}_getLocationHash(e){return e.hasAttribute("data-rocket-location-hash")?e.getAttribute("data-rocket-location-hash"):"No hash detected"}getResults(){return this.lazyRenderElements}},m=p,f=class{constructor(e){this.enabled=e}logMessage(e){this.enabled&&console.log(e)}logColoredMessage(e,i="green"){this.enabled&&console.log(`%c${e}`,`color: ${i};`)}},_=f,b=class{constructor(e){this.config=e,this.lcpBeacon=null,this.lrcBeacon=null,this.infiniteLoopId=null,this.errorCode="",this.logger=new _(this.config.debug)}async init(){if(this.scriptTimer=new Date,!await this._isValidPreconditions()){this._finalize();return}this.infiniteLoopId=setTimeout(()=>{this._handleInfiniteLoop()},1e4);const e=await this._getGeneratedBefore(),i=this.config.status.atf&&(e===!1||e.lcp===!1),t=this.config.status.lrc&&(e===!1||e.lrc===!1);i?(this.lcpBeacon=new d(this.config,this.logger),await this.lcpBeacon.run()):this.logger.logMessage("Not running BeaconLcp because data is already available or feature is disabled"),t?(this.lrcBeacon=new m(this.config,this.logger),await this.lrcBeacon.run()):this.logger.logMessage("Not running BeaconLrc because data is already available or feature is disabled"),i||t?this._saveFinalResultIntoDB():(this.logger.logMessage("Not saving results into DB as no beacon features ran."),this._finalize())}async _isValidPreconditions(){const e={width:this.config.width_threshold,height:this.config.height_threshold};return c.isNotValidScreensize(this.config.is_mobile,e)?(this.logger.logMessage("Bailing out because screen size is not acceptable"),!1):!0}async _getGeneratedBefore(){if(!c.isPageCached())return!1;let e=new FormData;return e.append("action","rocket_check_beacon"),e.append("rocket_beacon_nonce",this.config.nonce),e.append("url",this.config.url),e.append("is_mobile",this.config.is_mobile),(await fetch(this.config.ajax_url,{method:"POST",credentials:"same-origin",body:e}).then(t=>t.json())).data}_saveFinalResultIntoDB(){const e={lcp:this.lcpBeacon?this.lcpBeacon.getResults():null,lrc:this.lrcBeacon?this.lrcBeacon.getResults():null},i=new FormData;i.append("action","rocket_beacon"),i.append("rocket_beacon_nonce",this.config.nonce),i.append("url",this.config.url),i.append("is_mobile",this.config.is_mobile),i.append("status",this._getFinalStatus()),i.append("results",JSON.stringify(e)),fetch(this.config.ajax_url,{method:"POST",credentials:"same-origin",body:i,headers:{"wpr-saas-no-intercept":!0}}).then(t=>t.json()).then(t=>{this.logger.logMessage(t.data.lcp)}).catch(t=>{this.logger.logMessage(t)}).finally(()=>{this._finalize()})}_getFinalStatus(){return this.errorCode!==""?this.errorCode:10<=(new Date-this.scriptTimer)/1e3?"timeout":"success"}_handleInfiniteLoop(){this._saveFinalResultIntoDB()}_finalize(){document.querySelector('[data-name="wpr-wpr-beacon"]').setAttribute("beacon-completed","true"),clearTimeout(this.infiniteLoopId)}},l=b;(e=>{if(!e)return;const i=new l(e);if(document.readyState!=="loading"){setTimeout(()=>{i.init()},e.delay);return}document.addEventListener("DOMContentLoaded",()=>{setTimeout(()=>{i.init()},e.delay)})})(window.rocket_beacon_data);var y=l})(); //# sourceMappingURL=wpr-beacon.min.js.map diff --git a/assets/js/wpr-beacon.min.js.map b/assets/js/wpr-beacon.min.js.map index 19ec783186..332e18346c 100644 --- a/assets/js/wpr-beacon.min.js.map +++ b/assets/js/wpr-beacon.min.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["wpr-beacon.js"], - "sourcesContent": ["(() => {\n // src/Utils.js\n var BeaconUtils = class {\n static isNotValidScreensize(is_mobile, threshold) {\n const screenWidth = window.innerWidth || document.documentElement.clientWidth;\n const screenHeight = window.innerHeight || document.documentElement.clientHeight;\n const isNotValidForMobile = is_mobile && (screenWidth > threshold.width || screenHeight > threshold.height);\n const isNotValidForDesktop = !is_mobile && (screenWidth < threshold.width || screenHeight < threshold.height);\n return isNotValidForMobile || isNotValidForDesktop;\n }\n static isPageCached() {\n const signature = document.documentElement.nextSibling && document.documentElement.nextSibling.data ? document.documentElement.nextSibling.data : \"\";\n return signature && signature.includes(\"Debug: cached\");\n }\n static isIntersecting(rect) {\n return rect.bottom >= 0 && rect.right >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth);\n }\n };\n var Utils_default = BeaconUtils;\n\n // src/BeaconLcp.js\n var BeaconLcp = class {\n constructor(config, logger) {\n this.config = config;\n this.performanceImages = [];\n this.logger = logger;\n }\n async run() {\n try {\n const above_the_fold_images = this._generateLcpCandidates(Infinity);\n if (above_the_fold_images) {\n this._initWithFirstElementWithInfo(above_the_fold_images);\n this._fillATFWithoutDuplications(above_the_fold_images);\n }\n } catch (err) {\n this.errorCode = \"script_error\";\n this.logger.logMessage(\"Script Error: \" + err);\n }\n }\n _generateLcpCandidates(count) {\n const lcpElements = document.querySelectorAll(this.config.elements);\n if (lcpElements.length <= 0) {\n return [];\n }\n const potentialCandidates = Array.from(lcpElements);\n const topCandidates = potentialCandidates.map((element) => {\n if (\"img\" === element.nodeName.toLowerCase() && \"picture\" === element.parentElement.nodeName.toLowerCase()) {\n return null;\n }\n let rect;\n if (\"picture\" === element.nodeName.toLowerCase()) {\n const imgElement = element.querySelector(\"img\");\n if (imgElement) {\n rect = imgElement.getBoundingClientRect();\n } else {\n return null;\n }\n } else {\n rect = element.getBoundingClientRect();\n }\n return {\n element,\n rect\n };\n }).filter((item) => item !== null).filter((item) => {\n return item.rect.width > 0 && item.rect.height > 0 && Utils_default.isIntersecting(item.rect);\n }).map((item) => ({\n item,\n area: this._getElementArea(item.rect),\n elementInfo: this._getElementInfo(item.element)\n })).sort((a, b) => b.area - a.area).slice(0, count);\n return topCandidates.map((candidate) => ({\n element: candidate.item.element,\n elementInfo: candidate.elementInfo\n }));\n }\n _getElementArea(rect) {\n const visibleWidth = Math.min(rect.width, (window.innerWidth || document.documentElement.clientWidth) - rect.left);\n const visibleHeight = Math.min(rect.height, (window.innerHeight || document.documentElement.clientHeight) - rect.top);\n return visibleWidth * visibleHeight;\n }\n _getElementInfo(element) {\n const nodeName = element.nodeName.toLowerCase();\n const element_info = {\n type: \"\",\n src: \"\",\n srcset: \"\",\n sizes: \"\",\n sources: [],\n bg_set: [],\n current_src: \"\"\n };\n const css_bg_url_rgx = /url\\(\\s*?['\"]?\\s*?(.+?)\\s*?[\"']?\\s*?\\)/ig;\n if (nodeName === \"img\" && element.srcset) {\n element_info.type = \"img-srcset\";\n element_info.src = element.src;\n element_info.srcset = element.srcset;\n element_info.sizes = element.sizes;\n element_info.current_src = element.currentSrc;\n } else if (nodeName === \"img\") {\n element_info.type = \"img\";\n element_info.src = element.src;\n element_info.current_src = element.currentSrc;\n } else if (nodeName === \"video\") {\n element_info.type = \"img\";\n const source = element.querySelector(\"source\");\n element_info.src = element.poster || (source ? source.src : \"\");\n element_info.current_src = element_info.src;\n } else if (nodeName === \"svg\") {\n const imageElement = element.querySelector(\"image\");\n if (imageElement) {\n element_info.type = \"img\";\n element_info.src = imageElement.getAttribute(\"href\") || \"\";\n element_info.current_src = element_info.src;\n }\n } else if (nodeName === \"picture\") {\n element_info.type = \"picture\";\n const img = element.querySelector(\"img\");\n element_info.src = img ? img.src : \"\";\n element_info.sources = Array.from(element.querySelectorAll(\"source\")).map((source) => ({\n srcset: source.srcset || \"\",\n media: source.media || \"\",\n type: source.type || \"\",\n sizes: source.sizes || \"\"\n }));\n } else {\n const computed_style = window.getComputedStyle(element, null);\n const bg_props = [\n computed_style.getPropertyValue(\"background-image\"),\n getComputedStyle(element, \":after\").getPropertyValue(\"background-image\"),\n getComputedStyle(element, \":before\").getPropertyValue(\"background-image\")\n ].filter((prop) => prop !== \"none\");\n if (bg_props.length === 0) {\n return null;\n }\n const full_bg_prop = bg_props[0];\n element_info.type = \"bg-img\";\n if (full_bg_prop.includes(\"image-set(\")) {\n element_info.type = \"bg-img-set\";\n }\n if (!full_bg_prop || full_bg_prop === \"\" || full_bg_prop.includes(\"data:image\")) {\n return null;\n }\n const matches = [...full_bg_prop.matchAll(css_bg_url_rgx)];\n element_info.bg_set = matches.map((m) => m[1] ? { src: m[1].trim() + (m[2] ? \" \" + m[2].trim() : \"\") } : {});\n if (element_info.bg_set.every((item) => item.src === \"\")) {\n element_info.bg_set = matches.map((m) => m[1] ? { src: m[1].trim() } : {});\n }\n if (element_info.bg_set.length > 0) {\n element_info.src = element_info.bg_set[0].src;\n if (element_info.type === \"bg-img-set\") {\n element_info.src = element_info.bg_set;\n }\n }\n }\n return element_info;\n }\n _initWithFirstElementWithInfo(elements) {\n const firstElementWithInfo = elements.find((item) => item.elementInfo !== null);\n if (!firstElementWithInfo) {\n this.logger.logMessage(\"No LCP candidate found.\");\n this.performanceImages = [];\n return;\n }\n this.performanceImages = [{\n ...firstElementWithInfo.elementInfo,\n label: \"lcp\"\n }];\n }\n _fillATFWithoutDuplications(elements) {\n elements.forEach(({ element, elementInfo }) => {\n if (this._isDuplicateImage(element) || !elementInfo) {\n return;\n }\n this.performanceImages.push({ ...elementInfo, label: \"above-the-fold\" });\n });\n }\n _isDuplicateImage(image) {\n const elementInfo = this._getElementInfo(image);\n if (elementInfo === null) {\n return false;\n }\n const isImageOrVideo = elementInfo.type === \"img\" || elementInfo.type === \"img-srcset\" || elementInfo.type === \"video\";\n const isBgImageOrPicture = elementInfo.type === \"bg-img\" || elementInfo.type === \"bg-img-set\" || elementInfo.type === \"picture\";\n return (isImageOrVideo || isBgImageOrPicture) && this.performanceImages.some((item) => item.src === elementInfo.src);\n }\n getResults() {\n return this.performanceImages;\n }\n };\n var BeaconLcp_default = BeaconLcp;\n\n // src/Logger.js\n var Logger = class {\n constructor(enabled) {\n this.enabled = enabled;\n }\n logMessage(msg) {\n if (!this.enabled) {\n return;\n }\n console.log(msg);\n }\n };\n var Logger_default = Logger;\n\n // src/BeaconManager.js\n var BeaconManager = class {\n constructor(config) {\n this.config = config;\n this.lcpBeacon = null;\n this.infiniteLoopId = null;\n this.errorCode = \"\";\n this.logger = new Logger_default(this.config.debug);\n }\n async init() {\n this.scriptTimer = /* @__PURE__ */ new Date();\n if (!await this._isValidPreconditions()) {\n this._finalize();\n return;\n }\n this.infiniteLoopId = setTimeout(() => {\n this._handleInfiniteLoop();\n }, 1e4);\n const isGeneratedBefore = await this._getGeneratedBefore();\n let shouldSaveResultsIntoDB = false;\n const shouldGenerateLcp = this.config.status.atf && isGeneratedBefore === false;\n if (shouldGenerateLcp) {\n this.lcpBeacon = new BeaconLcp_default(this.config, this.logger);\n await this.lcpBeacon.run();\n shouldSaveResultsIntoDB = true;\n } else {\n this.logger.logMessage(\"Not running BeaconLcp because data is already available\");\n }\n if (shouldSaveResultsIntoDB) {\n this._saveFinalResultIntoDB();\n } else {\n this.logger.logMessage(\"Not saving results into DB as no beacon features ran.\");\n this._finalize();\n }\n }\n async _isValidPreconditions() {\n const threshold = {\n width: this.config.width_threshold,\n height: this.config.height_threshold\n };\n if (Utils_default.isNotValidScreensize(this.config.is_mobile, threshold)) {\n this.logger.logMessage(\"Bailing out because screen size is not acceptable\");\n return false;\n }\n return true;\n }\n async _getGeneratedBefore() {\n if (!Utils_default.isPageCached()) {\n return false;\n }\n let data_check = new FormData();\n data_check.append(\"action\", \"rocket_check_beacon\");\n data_check.append(\"rocket_beacon_nonce\", this.config.nonce);\n data_check.append(\"url\", this.config.url);\n data_check.append(\"is_mobile\", this.config.is_mobile);\n const beacon_data_response = await fetch(this.config.ajax_url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: data_check\n }).then((data) => data.json());\n return beacon_data_response.success;\n }\n _saveFinalResultIntoDB() {\n const results = {\n lcp: this.lcpBeacon ? this.lcpBeacon.getResults() : null\n };\n const data = new FormData();\n data.append(\"action\", \"rocket_beacon\");\n data.append(\"rocket_beacon_nonce\", this.config.nonce);\n data.append(\"url\", this.config.url);\n data.append(\"is_mobile\", this.config.is_mobile);\n data.append(\"status\", this._getFinalStatus());\n data.append(\"results\", JSON.stringify(results));\n fetch(this.config.ajax_url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: data,\n headers: {\n \"wpr-saas-no-intercept\": true\n }\n }).then((response) => response.json()).then((data2) => {\n this.logger.logMessage(data2);\n }).catch((error) => {\n this.logger.logMessage(error);\n }).finally(() => {\n this._finalize();\n });\n }\n _getFinalStatus() {\n if (\"\" !== this.errorCode) {\n return this.errorCode;\n }\n const scriptTime = (/* @__PURE__ */ new Date() - this.scriptTimer) / 1e3;\n if (10 <= scriptTime) {\n return \"timeout\";\n }\n return \"success\";\n }\n _handleInfiniteLoop() {\n this._saveFinalResultIntoDB();\n }\n _finalize() {\n const beaconscript = document.querySelector('[data-name=\"wpr-wpr-beacon\"]');\n beaconscript.setAttribute(\"beacon-completed\", \"true\");\n clearTimeout(this.infiniteLoopId);\n }\n };\n var BeaconManager_default = BeaconManager;\n\n // src/BeaconEntryPoint.js\n ((rocket_beacon_data) => {\n if (!rocket_beacon_data) {\n return;\n }\n const instance = new BeaconManager_default(rocket_beacon_data);\n if (document.readyState !== \"loading\") {\n setTimeout(() => {\n instance.init();\n }, rocket_beacon_data.delay);\n return;\n }\n document.addEventListener(\"DOMContentLoaded\", () => {\n setTimeout(() => {\n instance.init();\n }, rocket_beacon_data.delay);\n });\n })(window.rocket_beacon_data);\n})();\n"], - "mappings": "CAAC,IAAM,CAEL,IAAIA,EAAc,KAAM,CACtB,OAAO,qBAAqBC,EAAWC,EAAW,CAChD,MAAMC,EAAc,OAAO,YAAc,SAAS,gBAAgB,YAC5DC,EAAe,OAAO,aAAe,SAAS,gBAAgB,aAC9DC,EAAsBJ,IAAcE,EAAcD,EAAU,OAASE,EAAeF,EAAU,QAC9FI,EAAuB,CAACL,IAAcE,EAAcD,EAAU,OAASE,EAAeF,EAAU,QACtG,OAAOG,GAAuBC,CAChC,CACA,OAAO,cAAe,CACpB,MAAMC,EAAY,SAAS,gBAAgB,aAAe,SAAS,gBAAgB,YAAY,KAAO,SAAS,gBAAgB,YAAY,KAAO,GAClJ,OAAOA,GAAaA,EAAU,SAAS,eAAe,CACxD,CACA,OAAO,eAAeC,EAAM,CAC1B,OAAOA,EAAK,QAAU,GAAKA,EAAK,OAAS,GAAKA,EAAK,MAAQ,OAAO,aAAe,SAAS,gBAAgB,eAAiBA,EAAK,OAAS,OAAO,YAAc,SAAS,gBAAgB,YACzL,CACF,EACIC,EAAgBT,EAGhBU,EAAY,KAAM,CACpB,YAAYC,EAAQC,EAAQ,CAC1B,KAAK,OAASD,EACd,KAAK,kBAAoB,CAAC,EAC1B,KAAK,OAASC,CAChB,CACA,MAAM,KAAM,CACV,GAAI,CACF,MAAMC,EAAwB,KAAK,uBAAuB,GAAQ,EAC9DA,IACF,KAAK,8BAA8BA,CAAqB,EACxD,KAAK,4BAA4BA,CAAqB,EAE1D,OAASC,EAAK,CACZ,KAAK,UAAY,eACjB,KAAK,OAAO,WAAW,iBAAmBA,CAAG,CAC/C,CACF,CACA,uBAAuBC,EAAO,CAC5B,MAAMC,EAAc,SAAS,iBAAiB,KAAK,OAAO,QAAQ,EAClE,OAAIA,EAAY,QAAU,EACjB,CAAC,EAEkB,MAAM,KAAKA,CAAW,EACR,IAAKC,GAAY,CACzD,GAAcA,EAAQ,SAAS,YAAY,IAAvC,OAA0DA,EAAQ,cAAc,SAAS,YAAY,IAAzD,UAC9C,OAAO,KAET,IAAIT,EACJ,GAAkBS,EAAQ,SAAS,YAAY,IAA3C,UAA8C,CAChD,MAAMC,EAAaD,EAAQ,cAAc,KAAK,EAC9C,GAAIC,EACFV,EAAOU,EAAW,sBAAsB,MAExC,QAAO,IAEX,MACEV,EAAOS,EAAQ,sBAAsB,EAEvC,MAAO,CACL,QAAAA,EACA,KAAAT,CACF,CACF,CAAC,EAAE,OAAQW,GAASA,IAAS,IAAI,EAAE,OAAQA,GAClCA,EAAK,KAAK,MAAQ,GAAKA,EAAK,KAAK,OAAS,GAAKV,EAAc,eAAeU,EAAK,IAAI,CAC7F,EAAE,IAAKA,IAAU,CAChB,KAAAA,EACA,KAAM,KAAK,gBAAgBA,EAAK,IAAI,EACpC,YAAa,KAAK,gBAAgBA,EAAK,OAAO,CAChD,EAAE,EAAE,KAAK,CAACC,EAAGC,IAAMA,EAAE,KAAOD,EAAE,IAAI,EAAE,MAAM,EAAGL,CAAK,EAC7B,IAAKO,IAAe,CACvC,QAASA,EAAU,KAAK,QACxB,YAAaA,EAAU,WACzB,EAAE,CACJ,CACA,gBAAgBd,EAAM,CACpB,MAAMe,EAAe,KAAK,IAAIf,EAAK,OAAQ,OAAO,YAAc,SAAS,gBAAgB,aAAeA,EAAK,IAAI,EAC3GgB,EAAgB,KAAK,IAAIhB,EAAK,QAAS,OAAO,aAAe,SAAS,gBAAgB,cAAgBA,EAAK,GAAG,EACpH,OAAOe,EAAeC,CACxB,CACA,gBAAgBP,EAAS,CACvB,MAAMQ,EAAWR,EAAQ,SAAS,YAAY,EACxCS,EAAe,CACnB,KAAM,GACN,IAAK,GACL,OAAQ,GACR,MAAO,GACP,QAAS,CAAC,EACV,OAAQ,CAAC,EACT,YAAa,EACf,EACMC,EAAiB,2CACvB,GAAIF,IAAa,OAASR,EAAQ,OAChCS,EAAa,KAAO,aACpBA,EAAa,IAAMT,EAAQ,IAC3BS,EAAa,OAAST,EAAQ,OAC9BS,EAAa,MAAQT,EAAQ,MAC7BS,EAAa,YAAcT,EAAQ,mBAC1BQ,IAAa,MACtBC,EAAa,KAAO,MACpBA,EAAa,IAAMT,EAAQ,IAC3BS,EAAa,YAAcT,EAAQ,mBAC1BQ,IAAa,QAAS,CAC/BC,EAAa,KAAO,MACpB,MAAME,EAASX,EAAQ,cAAc,QAAQ,EAC7CS,EAAa,IAAMT,EAAQ,SAAWW,EAASA,EAAO,IAAM,IAC5DF,EAAa,YAAcA,EAAa,GAC1C,SAAWD,IAAa,MAAO,CAC7B,MAAMI,EAAeZ,EAAQ,cAAc,OAAO,EAC9CY,IACFH,EAAa,KAAO,MACpBA,EAAa,IAAMG,EAAa,aAAa,MAAM,GAAK,GACxDH,EAAa,YAAcA,EAAa,IAE5C,SAAWD,IAAa,UAAW,CACjCC,EAAa,KAAO,UACpB,MAAMI,EAAMb,EAAQ,cAAc,KAAK,EACvCS,EAAa,IAAMI,EAAMA,EAAI,IAAM,GACnCJ,EAAa,QAAU,MAAM,KAAKT,EAAQ,iBAAiB,QAAQ,CAAC,EAAE,IAAKW,IAAY,CACrF,OAAQA,EAAO,QAAU,GACzB,MAAOA,EAAO,OAAS,GACvB,KAAMA,EAAO,MAAQ,GACrB,MAAOA,EAAO,OAAS,EACzB,EAAE,CACJ,KAAO,CAEL,MAAMG,EAAW,CADM,OAAO,iBAAiBd,EAAS,IAAI,EAE3C,iBAAiB,kBAAkB,EAClD,iBAAiBA,EAAS,QAAQ,EAAE,iBAAiB,kBAAkB,EACvE,iBAAiBA,EAAS,SAAS,EAAE,iBAAiB,kBAAkB,CAC1E,EAAE,OAAQe,GAASA,IAAS,MAAM,EAClC,GAAID,EAAS,SAAW,EACtB,OAAO,KAET,MAAME,EAAeF,EAAS,CAAC,EAK/B,GAJAL,EAAa,KAAO,SAChBO,EAAa,SAAS,YAAY,IACpCP,EAAa,KAAO,cAElB,CAACO,GAAgBA,IAAiB,IAAMA,EAAa,SAAS,YAAY,EAC5E,OAAO,KAET,MAAMC,EAAU,CAAC,GAAGD,EAAa,SAASN,CAAc,CAAC,EACzDD,EAAa,OAASQ,EAAQ,IAAKC,GAAMA,EAAE,CAAC,EAAI,CAAE,IAAKA,EAAE,CAAC,EAAE,KAAK,GAAKA,EAAE,CAAC,EAAI,IAAMA,EAAE,CAAC,EAAE,KAAK,EAAI,GAAI,EAAI,CAAC,CAAC,EACvGT,EAAa,OAAO,MAAOP,GAASA,EAAK,MAAQ,EAAE,IACrDO,EAAa,OAASQ,EAAQ,IAAKC,GAAMA,EAAE,CAAC,EAAI,CAAE,IAAKA,EAAE,CAAC,EAAE,KAAK,CAAE,EAAI,CAAC,CAAC,GAEvET,EAAa,OAAO,OAAS,IAC/BA,EAAa,IAAMA,EAAa,OAAO,CAAC,EAAE,IACtCA,EAAa,OAAS,eACxBA,EAAa,IAAMA,EAAa,QAGtC,CACA,OAAOA,CACT,CACA,8BAA8BU,EAAU,CACtC,MAAMC,EAAuBD,EAAS,KAAMjB,GAASA,EAAK,cAAgB,IAAI,EAC9E,GAAI,CAACkB,EAAsB,CACzB,KAAK,OAAO,WAAW,yBAAyB,EAChD,KAAK,kBAAoB,CAAC,EAC1B,MACF,CACA,KAAK,kBAAoB,CAAC,CACxB,GAAGA,EAAqB,YACxB,MAAO,KACT,CAAC,CACH,CACA,4BAA4BD,EAAU,CACpCA,EAAS,QAAQ,CAAC,CAAE,QAAAnB,EAAS,YAAAqB,CAAY,IAAM,CACzC,KAAK,kBAAkBrB,CAAO,GAAK,CAACqB,GAGxC,KAAK,kBAAkB,KAAK,CAAE,GAAGA,EAAa,MAAO,gBAAiB,CAAC,CACzE,CAAC,CACH,CACA,kBAAkBC,EAAO,CACvB,MAAMD,EAAc,KAAK,gBAAgBC,CAAK,EAC9C,GAAID,IAAgB,KAClB,MAAO,GAET,MAAME,EAAiBF,EAAY,OAAS,OAASA,EAAY,OAAS,cAAgBA,EAAY,OAAS,QACzGG,EAAqBH,EAAY,OAAS,UAAYA,EAAY,OAAS,cAAgBA,EAAY,OAAS,UACtH,OAAQE,GAAkBC,IAAuB,KAAK,kBAAkB,KAAMtB,GAASA,EAAK,MAAQmB,EAAY,GAAG,CACrH,CACA,YAAa,CACX,OAAO,KAAK,iBACd,CACF,EACII,EAAoBhC,EAGpBiC,EAAS,KAAM,CACjB,YAAYC,EAAS,CACnB,KAAK,QAAUA,CACjB,CACA,WAAWC,EAAK,CACT,KAAK,SAGV,QAAQ,IAAIA,CAAG,CACjB,CACF,EACIC,EAAiBH,EAGjBI,EAAgB,KAAM,CACxB,YAAYpC,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,UAAY,KACjB,KAAK,eAAiB,KACtB,KAAK,UAAY,GACjB,KAAK,OAAS,IAAImC,EAAe,KAAK,OAAO,KAAK,CACpD,CACA,MAAM,MAAO,CAEX,GADA,KAAK,YAA8B,IAAI,KACnC,CAAC,MAAM,KAAK,sBAAsB,EAAG,CACvC,KAAK,UAAU,EACf,MACF,CACA,KAAK,eAAiB,WAAW,IAAM,CACrC,KAAK,oBAAoB,CAC3B,EAAG,GAAG,EACN,MAAME,EAAoB,MAAM,KAAK,oBAAoB,EACzD,IAAIC,EAA0B,GACJ,KAAK,OAAO,OAAO,KAAOD,IAAsB,IAExE,KAAK,UAAY,IAAIN,EAAkB,KAAK,OAAQ,KAAK,MAAM,EAC/D,MAAM,KAAK,UAAU,IAAI,EACzBO,EAA0B,IAE1B,KAAK,OAAO,WAAW,yDAAyD,EAE9EA,EACF,KAAK,uBAAuB,GAE5B,KAAK,OAAO,WAAW,uDAAuD,EAC9E,KAAK,UAAU,EAEnB,CACA,MAAM,uBAAwB,CAC5B,MAAM/C,EAAY,CAChB,MAAO,KAAK,OAAO,gBACnB,OAAQ,KAAK,OAAO,gBACtB,EACA,OAAIO,EAAc,qBAAqB,KAAK,OAAO,UAAWP,CAAS,GACrE,KAAK,OAAO,WAAW,mDAAmD,EACnE,IAEF,EACT,CACA,MAAM,qBAAsB,CAC1B,GAAI,CAACO,EAAc,aAAa,EAC9B,MAAO,GAET,IAAIyC,EAAa,IAAI,SACrB,OAAAA,EAAW,OAAO,SAAU,qBAAqB,EACjDA,EAAW,OAAO,sBAAuB,KAAK,OAAO,KAAK,EAC1DA,EAAW,OAAO,MAAO,KAAK,OAAO,GAAG,EACxCA,EAAW,OAAO,YAAa,KAAK,OAAO,SAAS,GACvB,MAAM,MAAM,KAAK,OAAO,SAAU,CAC7D,OAAQ,OACR,YAAa,cACb,KAAMA,CACR,CAAC,EAAE,KAAMC,GAASA,EAAK,KAAK,CAAC,GACD,OAC9B,CACA,wBAAyB,CACvB,MAAMC,EAAU,CACd,IAAK,KAAK,UAAY,KAAK,UAAU,WAAW,EAAI,IACtD,EACMD,EAAO,IAAI,SACjBA,EAAK,OAAO,SAAU,eAAe,EACrCA,EAAK,OAAO,sBAAuB,KAAK,OAAO,KAAK,EACpDA,EAAK,OAAO,MAAO,KAAK,OAAO,GAAG,EAClCA,EAAK,OAAO,YAAa,KAAK,OAAO,SAAS,EAC9CA,EAAK,OAAO,SAAU,KAAK,gBAAgB,CAAC,EAC5CA,EAAK,OAAO,UAAW,KAAK,UAAUC,CAAO,CAAC,EAC9C,MAAM,KAAK,OAAO,SAAU,CAC1B,OAAQ,OACR,YAAa,cACb,KAAMD,EACN,QAAS,CACP,wBAAyB,EAC3B,CACF,CAAC,EAAE,KAAME,GAAaA,EAAS,KAAK,CAAC,EAAE,KAAMC,GAAU,CACrD,KAAK,OAAO,WAAWA,CAAK,CAC9B,CAAC,EAAE,MAAOC,GAAU,CAClB,KAAK,OAAO,WAAWA,CAAK,CAC9B,CAAC,EAAE,QAAQ,IAAM,CACf,KAAK,UAAU,CACjB,CAAC,CACH,CACA,iBAAkB,CAChB,OAAW,KAAK,YAAZ,GACK,KAAK,UAGV,KADgC,IAAI,KAAS,KAAK,aAAe,IAE5D,UAEF,SACT,CACA,qBAAsB,CACpB,KAAK,uBAAuB,CAC9B,CACA,WAAY,CACW,SAAS,cAAc,8BAA8B,EAC7D,aAAa,mBAAoB,MAAM,EACpD,aAAa,KAAK,cAAc,CAClC,CACF,EACIC,EAAwBT,GAG1BU,GAAuB,CACvB,GAAI,CAACA,EACH,OAEF,MAAMC,EAAW,IAAIF,EAAsBC,CAAkB,EAC7D,GAAI,SAAS,aAAe,UAAW,CACrC,WAAW,IAAM,CACfC,EAAS,KAAK,CAChB,EAAGD,EAAmB,KAAK,EAC3B,MACF,CACA,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,WAAW,IAAM,CACfC,EAAS,KAAK,CAChB,EAAGD,EAAmB,KAAK,CAC7B,CAAC,CACH,GAAG,OAAO,kBAAkB,CAC9B,GAAG", - "names": ["BeaconUtils", "is_mobile", "threshold", "screenWidth", "screenHeight", "isNotValidForMobile", "isNotValidForDesktop", "signature", "rect", "Utils_default", "BeaconLcp", "config", "logger", "above_the_fold_images", "err", "count", "lcpElements", "element", "imgElement", "item", "a", "b", "candidate", "visibleWidth", "visibleHeight", "nodeName", "element_info", "css_bg_url_rgx", "source", "imageElement", "img", "bg_props", "prop", "full_bg_prop", "matches", "m", "elements", "firstElementWithInfo", "elementInfo", "image", "isImageOrVideo", "isBgImageOrPicture", "BeaconLcp_default", "Logger", "enabled", "msg", "Logger_default", "BeaconManager", "isGeneratedBefore", "shouldSaveResultsIntoDB", "data_check", "data", "results", "response", "data2", "error", "BeaconManager_default", "rocket_beacon_data", "instance"] + "sourcesContent": ["(() => {\n // src/Utils.js\n var BeaconUtils = class {\n static getScreenWidth() {\n return window.innerWidth || document.documentElement.clientWidth;\n }\n static getScreenHeight() {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n static isNotValidScreensize(is_mobile, threshold) {\n const screenWidth = this.getScreenWidth();\n const screenHeight = this.getScreenHeight();\n const isNotValidForMobile = is_mobile && (screenWidth > threshold.width || screenHeight > threshold.height);\n const isNotValidForDesktop = !is_mobile && (screenWidth < threshold.width || screenHeight < threshold.height);\n return isNotValidForMobile || isNotValidForDesktop;\n }\n static isPageCached() {\n const signature = document.documentElement.nextSibling && document.documentElement.nextSibling.data ? document.documentElement.nextSibling.data : \"\";\n return signature && signature.includes(\"Debug: cached\");\n }\n static isIntersecting(rect) {\n return rect.bottom >= 0 && rect.right >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth);\n }\n };\n var Utils_default = BeaconUtils;\n\n // src/BeaconLcp.js\n var BeaconLcp = class {\n constructor(config, logger) {\n this.config = config;\n this.performanceImages = [];\n this.logger = logger;\n }\n async run() {\n try {\n const above_the_fold_images = this._generateLcpCandidates(Infinity);\n if (above_the_fold_images) {\n this._initWithFirstElementWithInfo(above_the_fold_images);\n this._fillATFWithoutDuplications(above_the_fold_images);\n }\n } catch (err) {\n this.errorCode = \"script_error\";\n this.logger.logMessage(\"Script Error: \" + err);\n }\n }\n _generateLcpCandidates(count) {\n const lcpElements = document.querySelectorAll(this.config.elements);\n if (lcpElements.length <= 0) {\n return [];\n }\n const potentialCandidates = Array.from(lcpElements);\n const topCandidates = potentialCandidates.map((element) => {\n if (\"img\" === element.nodeName.toLowerCase() && \"picture\" === element.parentElement.nodeName.toLowerCase()) {\n return null;\n }\n let rect;\n if (\"picture\" === element.nodeName.toLowerCase()) {\n const imgElement = element.querySelector(\"img\");\n if (imgElement) {\n rect = imgElement.getBoundingClientRect();\n } else {\n return null;\n }\n } else {\n rect = element.getBoundingClientRect();\n }\n return {\n element,\n rect\n };\n }).filter((item) => item !== null).filter((item) => {\n return item.rect.width > 0 && item.rect.height > 0 && Utils_default.isIntersecting(item.rect);\n }).map((item) => ({\n item,\n area: this._getElementArea(item.rect),\n elementInfo: this._getElementInfo(item.element)\n })).sort((a, b) => b.area - a.area).slice(0, count);\n return topCandidates.map((candidate) => ({\n element: candidate.item.element,\n elementInfo: candidate.elementInfo\n }));\n }\n _getElementArea(rect) {\n const visibleWidth = Math.min(rect.width, (window.innerWidth || document.documentElement.clientWidth) - rect.left);\n const visibleHeight = Math.min(rect.height, (window.innerHeight || document.documentElement.clientHeight) - rect.top);\n return visibleWidth * visibleHeight;\n }\n _getElementInfo(element) {\n const nodeName = element.nodeName.toLowerCase();\n const element_info = {\n type: \"\",\n src: \"\",\n srcset: \"\",\n sizes: \"\",\n sources: [],\n bg_set: [],\n current_src: \"\"\n };\n const css_bg_url_rgx = /url\\(\\s*?['\"]?\\s*?(.+?)\\s*?[\"']?\\s*?\\)/ig;\n if (nodeName === \"img\" && element.srcset) {\n element_info.type = \"img-srcset\";\n element_info.src = element.src;\n element_info.srcset = element.srcset;\n element_info.sizes = element.sizes;\n element_info.current_src = element.currentSrc;\n } else if (nodeName === \"img\") {\n element_info.type = \"img\";\n element_info.src = element.src;\n element_info.current_src = element.currentSrc;\n } else if (nodeName === \"video\") {\n element_info.type = \"img\";\n const source = element.querySelector(\"source\");\n element_info.src = element.poster || (source ? source.src : \"\");\n element_info.current_src = element_info.src;\n } else if (nodeName === \"svg\") {\n const imageElement = element.querySelector(\"image\");\n if (imageElement) {\n element_info.type = \"img\";\n element_info.src = imageElement.getAttribute(\"href\") || \"\";\n element_info.current_src = element_info.src;\n }\n } else if (nodeName === \"picture\") {\n element_info.type = \"picture\";\n const img = element.querySelector(\"img\");\n element_info.src = img ? img.src : \"\";\n element_info.sources = Array.from(element.querySelectorAll(\"source\")).map((source) => ({\n srcset: source.srcset || \"\",\n media: source.media || \"\",\n type: source.type || \"\",\n sizes: source.sizes || \"\"\n }));\n } else {\n const computed_style = window.getComputedStyle(element, null);\n const bg_props = [\n computed_style.getPropertyValue(\"background-image\"),\n getComputedStyle(element, \":after\").getPropertyValue(\"background-image\"),\n getComputedStyle(element, \":before\").getPropertyValue(\"background-image\")\n ].filter((prop) => prop !== \"none\");\n if (bg_props.length === 0) {\n return null;\n }\n const full_bg_prop = bg_props[0];\n element_info.type = \"bg-img\";\n if (full_bg_prop.includes(\"image-set(\")) {\n element_info.type = \"bg-img-set\";\n }\n if (!full_bg_prop || full_bg_prop === \"\" || full_bg_prop.includes(\"data:image\")) {\n return null;\n }\n const matches = [...full_bg_prop.matchAll(css_bg_url_rgx)];\n element_info.bg_set = matches.map((m) => m[1] ? { src: m[1].trim() + (m[2] ? \" \" + m[2].trim() : \"\") } : {});\n if (element_info.bg_set.every((item) => item.src === \"\")) {\n element_info.bg_set = matches.map((m) => m[1] ? { src: m[1].trim() } : {});\n }\n if (element_info.bg_set.length > 0) {\n element_info.src = element_info.bg_set[0].src;\n if (element_info.type === \"bg-img-set\") {\n element_info.src = element_info.bg_set;\n }\n }\n }\n return element_info;\n }\n _initWithFirstElementWithInfo(elements) {\n const firstElementWithInfo = elements.find((item) => item.elementInfo !== null);\n if (!firstElementWithInfo) {\n this.logger.logMessage(\"No LCP candidate found.\");\n this.performanceImages = [];\n return;\n }\n this.performanceImages = [{\n ...firstElementWithInfo.elementInfo,\n label: \"lcp\"\n }];\n }\n _fillATFWithoutDuplications(elements) {\n elements.forEach(({ element, elementInfo }) => {\n if (this._isDuplicateImage(element) || !elementInfo) {\n return;\n }\n this.performanceImages.push({ ...elementInfo, label: \"above-the-fold\" });\n });\n }\n _isDuplicateImage(image) {\n const elementInfo = this._getElementInfo(image);\n if (elementInfo === null) {\n return false;\n }\n const isImageOrVideo = elementInfo.type === \"img\" || elementInfo.type === \"img-srcset\" || elementInfo.type === \"video\";\n const isBgImageOrPicture = elementInfo.type === \"bg-img\" || elementInfo.type === \"bg-img-set\" || elementInfo.type === \"picture\";\n return (isImageOrVideo || isBgImageOrPicture) && this.performanceImages.some((item) => item.src === elementInfo.src);\n }\n getResults() {\n return this.performanceImages;\n }\n };\n var BeaconLcp_default = BeaconLcp;\n\n // src/BeaconLrc.js\n var BeaconLrc = class {\n constructor(config, logger) {\n this.config = config;\n this.logger = logger;\n this.lazyRenderElements = [];\n }\n async run() {\n try {\n const elementsInView = this._getLazyRenderElements();\n if (elementsInView) {\n this._processElements(elementsInView);\n }\n } catch (err) {\n this.errorCode = \"script_error\";\n this.logger.logMessage(\"Script Error: \" + err);\n }\n }\n _getLazyRenderElements() {\n const elements = document.querySelectorAll(\"[data-rocket-location-hash]\");\n if (elements.length <= 0) {\n return [];\n }\n const validElements = Array.from(elements).filter((element) => !this._skipElement(element));\n return validElements.map((element) => ({\n element,\n depth: this._getElementDepth(element),\n distance: this._getElementDistance(element),\n hash: this._getLocationHash(element)\n }));\n }\n _getElementDepth(element) {\n let depth = 0;\n let parent = element.parentElement;\n while (parent) {\n depth++;\n parent = parent.parentElement;\n }\n return depth;\n }\n _getElementDistance(element) {\n const rect = element.getBoundingClientRect();\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return Math.max(0, rect.top + scrollTop - Utils_default.getScreenHeight());\n }\n _skipElement(element) {\n const skipStrings = this.config.skipStrings || [\"memex\"];\n if (!element || !element.id) return false;\n return skipStrings.some((str) => element.id.toLowerCase().includes(str.toLowerCase()));\n }\n _shouldSkipElement(element, exclusions) {\n if (!element) return false;\n for (let i = 0; i < exclusions.length; i++) {\n const [attribute, pattern] = exclusions[i];\n const attributeValue = element.getAttribute(attribute);\n if (attributeValue && new RegExp(pattern, \"i\").test(attributeValue)) {\n return true;\n }\n }\n return false;\n }\n _processElements(elements) {\n elements.forEach(({ element, depth, distance, hash }) => {\n if (this._shouldSkipElement(element, this.config.exclusions || [])) {\n return;\n }\n if (\"No hash detected\" === hash) {\n return;\n }\n const can_push_hash = element.parentElement && this._getElementDistance(element.parentElement) < this.config.lrc_threshold && distance >= this.config.lrc_threshold;\n const color = can_push_hash ? \"green\" : distance === 0 ? \"red\" : \"\";\n this.logger.logColoredMessage(`${\"\t\".repeat(depth)}${element.tagName} (Depth: ${depth}, Distance from viewport bottom: ${distance}px)`, color);\n this.logger.logColoredMessage(`${\"\t\".repeat(depth)}Location hash: ${hash}`, color);\n this.logger.logColoredMessage(`${\"\t\".repeat(depth)}Dimensions Client Height: ${element.clientHeight}`, color);\n if (can_push_hash) {\n this.lazyRenderElements.push(hash);\n this.logger.logMessage(`Element pushed with hash: ${hash}`);\n }\n });\n }\n _getXPath(element) {\n if (element && element.id !== \"\") {\n return `//*[@id=\"${element.id}\"]`;\n }\n return this._getElementXPath(element);\n }\n _getElementXPath(element) {\n if (element === document.body) {\n return \"/html/body\";\n }\n const position = this._getElementPosition(element);\n return `${this._getElementXPath(element.parentNode)}/${element.nodeName.toLowerCase()}[${position}]`;\n }\n _getElementPosition(element) {\n let pos = 1;\n let sibling = element.previousElementSibling;\n while (sibling) {\n if (sibling.nodeName === element.nodeName) {\n pos++;\n }\n sibling = sibling.previousElementSibling;\n }\n return pos;\n }\n _getLocationHash(element) {\n return element.hasAttribute(\"data-rocket-location-hash\") ? element.getAttribute(\"data-rocket-location-hash\") : \"No hash detected\";\n }\n getResults() {\n return this.lazyRenderElements;\n }\n };\n var BeaconLrc_default = BeaconLrc;\n\n // src/Logger.js\n var Logger = class {\n constructor(enabled) {\n this.enabled = enabled;\n }\n logMessage(msg) {\n if (!this.enabled) {\n return;\n }\n console.log(msg);\n }\n logColoredMessage(msg, color = \"green\") {\n if (!this.enabled) {\n return;\n }\n console.log(`%c${msg}`, `color: ${color};`);\n }\n };\n var Logger_default = Logger;\n\n // src/BeaconManager.js\n var BeaconManager = class {\n constructor(config) {\n this.config = config;\n this.lcpBeacon = null;\n this.lrcBeacon = null;\n this.infiniteLoopId = null;\n this.errorCode = \"\";\n this.logger = new Logger_default(this.config.debug);\n }\n async init() {\n this.scriptTimer = /* @__PURE__ */ new Date();\n if (!await this._isValidPreconditions()) {\n this._finalize();\n return;\n }\n this.infiniteLoopId = setTimeout(() => {\n this._handleInfiniteLoop();\n }, 1e4);\n const isGeneratedBefore = await this._getGeneratedBefore();\n const shouldGenerateLcp = this.config.status.atf && (isGeneratedBefore === false || isGeneratedBefore.lcp === false);\n const shouldGeneratelrc = this.config.status.lrc && (isGeneratedBefore === false || isGeneratedBefore.lrc === false);\n if (shouldGenerateLcp) {\n this.lcpBeacon = new BeaconLcp_default(this.config, this.logger);\n await this.lcpBeacon.run();\n } else {\n this.logger.logMessage(\"Not running BeaconLcp because data is already available or feature is disabled\");\n }\n if (shouldGeneratelrc) {\n this.lrcBeacon = new BeaconLrc_default(this.config, this.logger);\n await this.lrcBeacon.run();\n } else {\n this.logger.logMessage(\"Not running BeaconLrc because data is already available or feature is disabled\");\n }\n if (shouldGenerateLcp || shouldGeneratelrc) {\n this._saveFinalResultIntoDB();\n } else {\n this.logger.logMessage(\"Not saving results into DB as no beacon features ran.\");\n this._finalize();\n }\n }\n async _isValidPreconditions() {\n const threshold = {\n width: this.config.width_threshold,\n height: this.config.height_threshold\n };\n if (Utils_default.isNotValidScreensize(this.config.is_mobile, threshold)) {\n this.logger.logMessage(\"Bailing out because screen size is not acceptable\");\n return false;\n }\n return true;\n }\n async _getGeneratedBefore() {\n if (!Utils_default.isPageCached()) {\n return false;\n }\n let data_check = new FormData();\n data_check.append(\"action\", \"rocket_check_beacon\");\n data_check.append(\"rocket_beacon_nonce\", this.config.nonce);\n data_check.append(\"url\", this.config.url);\n data_check.append(\"is_mobile\", this.config.is_mobile);\n const beacon_data_response = await fetch(this.config.ajax_url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: data_check\n }).then((data) => data.json());\n return beacon_data_response.data;\n }\n _saveFinalResultIntoDB() {\n const results = {\n lcp: this.lcpBeacon ? this.lcpBeacon.getResults() : null,\n lrc: this.lrcBeacon ? this.lrcBeacon.getResults() : null\n };\n const data = new FormData();\n data.append(\"action\", \"rocket_beacon\");\n data.append(\"rocket_beacon_nonce\", this.config.nonce);\n data.append(\"url\", this.config.url);\n data.append(\"is_mobile\", this.config.is_mobile);\n data.append(\"status\", this._getFinalStatus());\n data.append(\"results\", JSON.stringify(results));\n fetch(this.config.ajax_url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: data,\n headers: {\n \"wpr-saas-no-intercept\": true\n }\n }).then((response) => response.json()).then((data2) => {\n this.logger.logMessage(data2.data.lcp);\n }).catch((error) => {\n this.logger.logMessage(error);\n }).finally(() => {\n this._finalize();\n });\n }\n _getFinalStatus() {\n if (\"\" !== this.errorCode) {\n return this.errorCode;\n }\n const scriptTime = (/* @__PURE__ */ new Date() - this.scriptTimer) / 1e3;\n if (10 <= scriptTime) {\n return \"timeout\";\n }\n return \"success\";\n }\n _handleInfiniteLoop() {\n this._saveFinalResultIntoDB();\n }\n _finalize() {\n const beaconscript = document.querySelector('[data-name=\"wpr-wpr-beacon\"]');\n beaconscript.setAttribute(\"beacon-completed\", \"true\");\n clearTimeout(this.infiniteLoopId);\n }\n };\n var BeaconManager_default = BeaconManager;\n\n // src/BeaconEntryPoint.js\n ((rocket_beacon_data) => {\n if (!rocket_beacon_data) {\n return;\n }\n const instance = new BeaconManager_default(rocket_beacon_data);\n if (document.readyState !== \"loading\") {\n setTimeout(() => {\n instance.init();\n }, rocket_beacon_data.delay);\n return;\n }\n document.addEventListener(\"DOMContentLoaded\", () => {\n setTimeout(() => {\n instance.init();\n }, rocket_beacon_data.delay);\n });\n })(window.rocket_beacon_data);\n var BeaconEntryPoint_default = BeaconManager_default;\n})();\n"], + "mappings": "CAAC,IAAM,CAEL,IAAIA,EAAc,KAAM,CACtB,OAAO,gBAAiB,CACtB,OAAO,OAAO,YAAc,SAAS,gBAAgB,WACvD,CACA,OAAO,iBAAkB,CACvB,OAAO,OAAO,aAAe,SAAS,gBAAgB,YACxD,CACA,OAAO,qBAAqBC,EAAWC,EAAW,CAChD,MAAMC,EAAc,KAAK,eAAe,EAClCC,EAAe,KAAK,gBAAgB,EACpCC,EAAsBJ,IAAcE,EAAcD,EAAU,OAASE,EAAeF,EAAU,QAC9FI,EAAuB,CAACL,IAAcE,EAAcD,EAAU,OAASE,EAAeF,EAAU,QACtG,OAAOG,GAAuBC,CAChC,CACA,OAAO,cAAe,CACpB,MAAMC,EAAY,SAAS,gBAAgB,aAAe,SAAS,gBAAgB,YAAY,KAAO,SAAS,gBAAgB,YAAY,KAAO,GAClJ,OAAOA,GAAaA,EAAU,SAAS,eAAe,CACxD,CACA,OAAO,eAAeC,EAAM,CAC1B,OAAOA,EAAK,QAAU,GAAKA,EAAK,OAAS,GAAKA,EAAK,MAAQ,OAAO,aAAe,SAAS,gBAAgB,eAAiBA,EAAK,OAAS,OAAO,YAAc,SAAS,gBAAgB,YACzL,CACF,EACIC,EAAgBT,EAGhBU,EAAY,KAAM,CACpB,YAAYC,EAAQC,EAAQ,CAC1B,KAAK,OAASD,EACd,KAAK,kBAAoB,CAAC,EAC1B,KAAK,OAASC,CAChB,CACA,MAAM,KAAM,CACV,GAAI,CACF,MAAMC,EAAwB,KAAK,uBAAuB,GAAQ,EAC9DA,IACF,KAAK,8BAA8BA,CAAqB,EACxD,KAAK,4BAA4BA,CAAqB,EAE1D,OAASC,EAAK,CACZ,KAAK,UAAY,eACjB,KAAK,OAAO,WAAW,iBAAmBA,CAAG,CAC/C,CACF,CACA,uBAAuBC,EAAO,CAC5B,MAAMC,EAAc,SAAS,iBAAiB,KAAK,OAAO,QAAQ,EAClE,OAAIA,EAAY,QAAU,EACjB,CAAC,EAEkB,MAAM,KAAKA,CAAW,EACR,IAAKC,GAAY,CACzD,GAAcA,EAAQ,SAAS,YAAY,IAAvC,OAA0DA,EAAQ,cAAc,SAAS,YAAY,IAAzD,UAC9C,OAAO,KAET,IAAIT,EACJ,GAAkBS,EAAQ,SAAS,YAAY,IAA3C,UAA8C,CAChD,MAAMC,EAAaD,EAAQ,cAAc,KAAK,EAC9C,GAAIC,EACFV,EAAOU,EAAW,sBAAsB,MAExC,QAAO,IAEX,MACEV,EAAOS,EAAQ,sBAAsB,EAEvC,MAAO,CACL,QAAAA,EACA,KAAAT,CACF,CACF,CAAC,EAAE,OAAQW,GAASA,IAAS,IAAI,EAAE,OAAQA,GAClCA,EAAK,KAAK,MAAQ,GAAKA,EAAK,KAAK,OAAS,GAAKV,EAAc,eAAeU,EAAK,IAAI,CAC7F,EAAE,IAAKA,IAAU,CAChB,KAAAA,EACA,KAAM,KAAK,gBAAgBA,EAAK,IAAI,EACpC,YAAa,KAAK,gBAAgBA,EAAK,OAAO,CAChD,EAAE,EAAE,KAAK,CAACC,EAAGC,IAAMA,EAAE,KAAOD,EAAE,IAAI,EAAE,MAAM,EAAGL,CAAK,EAC7B,IAAKO,IAAe,CACvC,QAASA,EAAU,KAAK,QACxB,YAAaA,EAAU,WACzB,EAAE,CACJ,CACA,gBAAgBd,EAAM,CACpB,MAAMe,EAAe,KAAK,IAAIf,EAAK,OAAQ,OAAO,YAAc,SAAS,gBAAgB,aAAeA,EAAK,IAAI,EAC3GgB,EAAgB,KAAK,IAAIhB,EAAK,QAAS,OAAO,aAAe,SAAS,gBAAgB,cAAgBA,EAAK,GAAG,EACpH,OAAOe,EAAeC,CACxB,CACA,gBAAgBP,EAAS,CACvB,MAAMQ,EAAWR,EAAQ,SAAS,YAAY,EACxCS,EAAe,CACnB,KAAM,GACN,IAAK,GACL,OAAQ,GACR,MAAO,GACP,QAAS,CAAC,EACV,OAAQ,CAAC,EACT,YAAa,EACf,EACMC,EAAiB,2CACvB,GAAIF,IAAa,OAASR,EAAQ,OAChCS,EAAa,KAAO,aACpBA,EAAa,IAAMT,EAAQ,IAC3BS,EAAa,OAAST,EAAQ,OAC9BS,EAAa,MAAQT,EAAQ,MAC7BS,EAAa,YAAcT,EAAQ,mBAC1BQ,IAAa,MACtBC,EAAa,KAAO,MACpBA,EAAa,IAAMT,EAAQ,IAC3BS,EAAa,YAAcT,EAAQ,mBAC1BQ,IAAa,QAAS,CAC/BC,EAAa,KAAO,MACpB,MAAME,EAASX,EAAQ,cAAc,QAAQ,EAC7CS,EAAa,IAAMT,EAAQ,SAAWW,EAASA,EAAO,IAAM,IAC5DF,EAAa,YAAcA,EAAa,GAC1C,SAAWD,IAAa,MAAO,CAC7B,MAAMI,EAAeZ,EAAQ,cAAc,OAAO,EAC9CY,IACFH,EAAa,KAAO,MACpBA,EAAa,IAAMG,EAAa,aAAa,MAAM,GAAK,GACxDH,EAAa,YAAcA,EAAa,IAE5C,SAAWD,IAAa,UAAW,CACjCC,EAAa,KAAO,UACpB,MAAMI,EAAMb,EAAQ,cAAc,KAAK,EACvCS,EAAa,IAAMI,EAAMA,EAAI,IAAM,GACnCJ,EAAa,QAAU,MAAM,KAAKT,EAAQ,iBAAiB,QAAQ,CAAC,EAAE,IAAKW,IAAY,CACrF,OAAQA,EAAO,QAAU,GACzB,MAAOA,EAAO,OAAS,GACvB,KAAMA,EAAO,MAAQ,GACrB,MAAOA,EAAO,OAAS,EACzB,EAAE,CACJ,KAAO,CAEL,MAAMG,EAAW,CADM,OAAO,iBAAiBd,EAAS,IAAI,EAE3C,iBAAiB,kBAAkB,EAClD,iBAAiBA,EAAS,QAAQ,EAAE,iBAAiB,kBAAkB,EACvE,iBAAiBA,EAAS,SAAS,EAAE,iBAAiB,kBAAkB,CAC1E,EAAE,OAAQe,GAASA,IAAS,MAAM,EAClC,GAAID,EAAS,SAAW,EACtB,OAAO,KAET,MAAME,EAAeF,EAAS,CAAC,EAK/B,GAJAL,EAAa,KAAO,SAChBO,EAAa,SAAS,YAAY,IACpCP,EAAa,KAAO,cAElB,CAACO,GAAgBA,IAAiB,IAAMA,EAAa,SAAS,YAAY,EAC5E,OAAO,KAET,MAAMC,EAAU,CAAC,GAAGD,EAAa,SAASN,CAAc,CAAC,EACzDD,EAAa,OAASQ,EAAQ,IAAKC,GAAMA,EAAE,CAAC,EAAI,CAAE,IAAKA,EAAE,CAAC,EAAE,KAAK,GAAKA,EAAE,CAAC,EAAI,IAAMA,EAAE,CAAC,EAAE,KAAK,EAAI,GAAI,EAAI,CAAC,CAAC,EACvGT,EAAa,OAAO,MAAOP,GAASA,EAAK,MAAQ,EAAE,IACrDO,EAAa,OAASQ,EAAQ,IAAKC,GAAMA,EAAE,CAAC,EAAI,CAAE,IAAKA,EAAE,CAAC,EAAE,KAAK,CAAE,EAAI,CAAC,CAAC,GAEvET,EAAa,OAAO,OAAS,IAC/BA,EAAa,IAAMA,EAAa,OAAO,CAAC,EAAE,IACtCA,EAAa,OAAS,eACxBA,EAAa,IAAMA,EAAa,QAGtC,CACA,OAAOA,CACT,CACA,8BAA8BU,EAAU,CACtC,MAAMC,EAAuBD,EAAS,KAAMjB,GAASA,EAAK,cAAgB,IAAI,EAC9E,GAAI,CAACkB,EAAsB,CACzB,KAAK,OAAO,WAAW,yBAAyB,EAChD,KAAK,kBAAoB,CAAC,EAC1B,MACF,CACA,KAAK,kBAAoB,CAAC,CACxB,GAAGA,EAAqB,YACxB,MAAO,KACT,CAAC,CACH,CACA,4BAA4BD,EAAU,CACpCA,EAAS,QAAQ,CAAC,CAAE,QAAAnB,EAAS,YAAAqB,CAAY,IAAM,CACzC,KAAK,kBAAkBrB,CAAO,GAAK,CAACqB,GAGxC,KAAK,kBAAkB,KAAK,CAAE,GAAGA,EAAa,MAAO,gBAAiB,CAAC,CACzE,CAAC,CACH,CACA,kBAAkBC,EAAO,CACvB,MAAMD,EAAc,KAAK,gBAAgBC,CAAK,EAC9C,GAAID,IAAgB,KAClB,MAAO,GAET,MAAME,EAAiBF,EAAY,OAAS,OAASA,EAAY,OAAS,cAAgBA,EAAY,OAAS,QACzGG,EAAqBH,EAAY,OAAS,UAAYA,EAAY,OAAS,cAAgBA,EAAY,OAAS,UACtH,OAAQE,GAAkBC,IAAuB,KAAK,kBAAkB,KAAMtB,GAASA,EAAK,MAAQmB,EAAY,GAAG,CACrH,CACA,YAAa,CACX,OAAO,KAAK,iBACd,CACF,EACII,EAAoBhC,EAGpBiC,EAAY,KAAM,CACpB,YAAYhC,EAAQC,EAAQ,CAC1B,KAAK,OAASD,EACd,KAAK,OAASC,EACd,KAAK,mBAAqB,CAAC,CAC7B,CACA,MAAM,KAAM,CACV,GAAI,CACF,MAAMgC,EAAiB,KAAK,uBAAuB,EAC/CA,GACF,KAAK,iBAAiBA,CAAc,CAExC,OAAS9B,EAAK,CACZ,KAAK,UAAY,eACjB,KAAK,OAAO,WAAW,iBAAmBA,CAAG,CAC/C,CACF,CACA,wBAAyB,CACvB,MAAMsB,EAAW,SAAS,iBAAiB,6BAA6B,EACxE,OAAIA,EAAS,QAAU,EACd,CAAC,EAEY,MAAM,KAAKA,CAAQ,EAAE,OAAQnB,GAAY,CAAC,KAAK,aAAaA,CAAO,CAAC,EACrE,IAAKA,IAAa,CACrC,QAAAA,EACA,MAAO,KAAK,iBAAiBA,CAAO,EACpC,SAAU,KAAK,oBAAoBA,CAAO,EAC1C,KAAM,KAAK,iBAAiBA,CAAO,CACrC,EAAE,CACJ,CACA,iBAAiBA,EAAS,CACxB,IAAI4B,EAAQ,EACRC,EAAS7B,EAAQ,cACrB,KAAO6B,GACLD,IACAC,EAASA,EAAO,cAElB,OAAOD,CACT,CACA,oBAAoB5B,EAAS,CAC3B,MAAMT,EAAOS,EAAQ,sBAAsB,EACrC8B,EAAY,OAAO,aAAe,SAAS,gBAAgB,UACjE,OAAO,KAAK,IAAI,EAAGvC,EAAK,IAAMuC,EAAYtC,EAAc,gBAAgB,CAAC,CAC3E,CACA,aAAaQ,EAAS,CACpB,MAAM+B,EAAc,KAAK,OAAO,aAAe,CAAC,OAAO,EACvD,MAAI,CAAC/B,GAAW,CAACA,EAAQ,GAAW,GAC7B+B,EAAY,KAAMC,GAAQhC,EAAQ,GAAG,YAAY,EAAE,SAASgC,EAAI,YAAY,CAAC,CAAC,CACvF,CACA,mBAAmBhC,EAASiC,EAAY,CACtC,GAAI,CAACjC,EAAS,MAAO,GACrB,QAASkC,EAAI,EAAGA,EAAID,EAAW,OAAQC,IAAK,CAC1C,KAAM,CAACC,EAAWC,CAAO,EAAIH,EAAWC,CAAC,EACnCG,EAAiBrC,EAAQ,aAAamC,CAAS,EACrD,GAAIE,GAAkB,IAAI,OAAOD,EAAS,GAAG,EAAE,KAAKC,CAAc,EAChE,MAAO,EAEX,CACA,MAAO,EACT,CACA,iBAAiBlB,EAAU,CACzBA,EAAS,QAAQ,CAAC,CAAE,QAAAnB,EAAS,MAAA4B,EAAO,SAAAU,EAAU,KAAAC,CAAK,IAAM,CAIvD,GAHI,KAAK,mBAAmBvC,EAAS,KAAK,OAAO,YAAc,CAAC,CAAC,GAGtCuC,IAAvB,mBACF,OAEF,MAAMC,EAAgBxC,EAAQ,eAAiB,KAAK,oBAAoBA,EAAQ,aAAa,EAAI,KAAK,OAAO,eAAiBsC,GAAY,KAAK,OAAO,cAChJG,EAAQD,EAAgB,QAAUF,IAAa,EAAI,MAAQ,GACjE,KAAK,OAAO,kBAAkB,GAAG,IAAI,OAAOV,CAAK,CAAC,GAAG5B,EAAQ,OAAO,YAAY4B,CAAK,oCAAoCU,CAAQ,MAAOG,CAAK,EAC7I,KAAK,OAAO,kBAAkB,GAAG,IAAI,OAAOb,CAAK,CAAC,kBAAkBW,CAAI,GAAIE,CAAK,EACjF,KAAK,OAAO,kBAAkB,GAAG,IAAI,OAAOb,CAAK,CAAC,6BAA6B5B,EAAQ,YAAY,GAAIyC,CAAK,EACxGD,IACF,KAAK,mBAAmB,KAAKD,CAAI,EACjC,KAAK,OAAO,WAAW,6BAA6BA,CAAI,EAAE,EAE9D,CAAC,CACH,CACA,UAAUvC,EAAS,CACjB,OAAIA,GAAWA,EAAQ,KAAO,GACrB,YAAYA,EAAQ,EAAE,KAExB,KAAK,iBAAiBA,CAAO,CACtC,CACA,iBAAiBA,EAAS,CACxB,GAAIA,IAAY,SAAS,KACvB,MAAO,aAET,MAAM0C,EAAW,KAAK,oBAAoB1C,CAAO,EACjD,MAAO,GAAG,KAAK,iBAAiBA,EAAQ,UAAU,CAAC,IAAIA,EAAQ,SAAS,YAAY,CAAC,IAAI0C,CAAQ,GACnG,CACA,oBAAoB1C,EAAS,CAC3B,IAAI2C,EAAM,EACNC,EAAU5C,EAAQ,uBACtB,KAAO4C,GACDA,EAAQ,WAAa5C,EAAQ,UAC/B2C,IAEFC,EAAUA,EAAQ,uBAEpB,OAAOD,CACT,CACA,iBAAiB3C,EAAS,CACxB,OAAOA,EAAQ,aAAa,2BAA2B,EAAIA,EAAQ,aAAa,2BAA2B,EAAI,kBACjH,CACA,YAAa,CACX,OAAO,KAAK,kBACd,CACF,EACI6C,EAAoBnB,EAGpBoB,EAAS,KAAM,CACjB,YAAYC,EAAS,CACnB,KAAK,QAAUA,CACjB,CACA,WAAWC,EAAK,CACT,KAAK,SAGV,QAAQ,IAAIA,CAAG,CACjB,CACA,kBAAkBA,EAAKP,EAAQ,QAAS,CACjC,KAAK,SAGV,QAAQ,IAAI,KAAKO,CAAG,GAAI,UAAUP,CAAK,GAAG,CAC5C,CACF,EACIQ,EAAiBH,EAGjBI,EAAgB,KAAM,CACxB,YAAYxD,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,UAAY,KACjB,KAAK,UAAY,KACjB,KAAK,eAAiB,KACtB,KAAK,UAAY,GACjB,KAAK,OAAS,IAAIuD,EAAe,KAAK,OAAO,KAAK,CACpD,CACA,MAAM,MAAO,CAEX,GADA,KAAK,YAA8B,IAAI,KACnC,CAAC,MAAM,KAAK,sBAAsB,EAAG,CACvC,KAAK,UAAU,EACf,MACF,CACA,KAAK,eAAiB,WAAW,IAAM,CACrC,KAAK,oBAAoB,CAC3B,EAAG,GAAG,EACN,MAAME,EAAoB,MAAM,KAAK,oBAAoB,EACnDC,EAAoB,KAAK,OAAO,OAAO,MAAQD,IAAsB,IAASA,EAAkB,MAAQ,IACxGE,EAAoB,KAAK,OAAO,OAAO,MAAQF,IAAsB,IAASA,EAAkB,MAAQ,IAC1GC,GACF,KAAK,UAAY,IAAI3B,EAAkB,KAAK,OAAQ,KAAK,MAAM,EAC/D,MAAM,KAAK,UAAU,IAAI,GAEzB,KAAK,OAAO,WAAW,gFAAgF,EAErG4B,GACF,KAAK,UAAY,IAAIR,EAAkB,KAAK,OAAQ,KAAK,MAAM,EAC/D,MAAM,KAAK,UAAU,IAAI,GAEzB,KAAK,OAAO,WAAW,gFAAgF,EAErGO,GAAqBC,EACvB,KAAK,uBAAuB,GAE5B,KAAK,OAAO,WAAW,uDAAuD,EAC9E,KAAK,UAAU,EAEnB,CACA,MAAM,uBAAwB,CAC5B,MAAMpE,EAAY,CAChB,MAAO,KAAK,OAAO,gBACnB,OAAQ,KAAK,OAAO,gBACtB,EACA,OAAIO,EAAc,qBAAqB,KAAK,OAAO,UAAWP,CAAS,GACrE,KAAK,OAAO,WAAW,mDAAmD,EACnE,IAEF,EACT,CACA,MAAM,qBAAsB,CAC1B,GAAI,CAACO,EAAc,aAAa,EAC9B,MAAO,GAET,IAAI8D,EAAa,IAAI,SACrB,OAAAA,EAAW,OAAO,SAAU,qBAAqB,EACjDA,EAAW,OAAO,sBAAuB,KAAK,OAAO,KAAK,EAC1DA,EAAW,OAAO,MAAO,KAAK,OAAO,GAAG,EACxCA,EAAW,OAAO,YAAa,KAAK,OAAO,SAAS,GACvB,MAAM,MAAM,KAAK,OAAO,SAAU,CAC7D,OAAQ,OACR,YAAa,cACb,KAAMA,CACR,CAAC,EAAE,KAAMC,GAASA,EAAK,KAAK,CAAC,GACD,IAC9B,CACA,wBAAyB,CACvB,MAAMC,EAAU,CACd,IAAK,KAAK,UAAY,KAAK,UAAU,WAAW,EAAI,KACpD,IAAK,KAAK,UAAY,KAAK,UAAU,WAAW,EAAI,IACtD,EACMD,EAAO,IAAI,SACjBA,EAAK,OAAO,SAAU,eAAe,EACrCA,EAAK,OAAO,sBAAuB,KAAK,OAAO,KAAK,EACpDA,EAAK,OAAO,MAAO,KAAK,OAAO,GAAG,EAClCA,EAAK,OAAO,YAAa,KAAK,OAAO,SAAS,EAC9CA,EAAK,OAAO,SAAU,KAAK,gBAAgB,CAAC,EAC5CA,EAAK,OAAO,UAAW,KAAK,UAAUC,CAAO,CAAC,EAC9C,MAAM,KAAK,OAAO,SAAU,CAC1B,OAAQ,OACR,YAAa,cACb,KAAMD,EACN,QAAS,CACP,wBAAyB,EAC3B,CACF,CAAC,EAAE,KAAME,GAAaA,EAAS,KAAK,CAAC,EAAE,KAAMC,GAAU,CACrD,KAAK,OAAO,WAAWA,EAAM,KAAK,GAAG,CACvC,CAAC,EAAE,MAAOC,GAAU,CAClB,KAAK,OAAO,WAAWA,CAAK,CAC9B,CAAC,EAAE,QAAQ,IAAM,CACf,KAAK,UAAU,CACjB,CAAC,CACH,CACA,iBAAkB,CAChB,OAAW,KAAK,YAAZ,GACK,KAAK,UAGV,KADgC,IAAI,KAAS,KAAK,aAAe,IAE5D,UAEF,SACT,CACA,qBAAsB,CACpB,KAAK,uBAAuB,CAC9B,CACA,WAAY,CACW,SAAS,cAAc,8BAA8B,EAC7D,aAAa,mBAAoB,MAAM,EACpD,aAAa,KAAK,cAAc,CAClC,CACF,EACIC,EAAwBV,GAG1BW,GAAuB,CACvB,GAAI,CAACA,EACH,OAEF,MAAMC,EAAW,IAAIF,EAAsBC,CAAkB,EAC7D,GAAI,SAAS,aAAe,UAAW,CACrC,WAAW,IAAM,CACfC,EAAS,KAAK,CAChB,EAAGD,EAAmB,KAAK,EAC3B,MACF,CACA,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,WAAW,IAAM,CACfC,EAAS,KAAK,CAChB,EAAGD,EAAmB,KAAK,CAC7B,CAAC,CACH,GAAG,OAAO,kBAAkB,EAC5B,IAAIE,EAA2BH,CACjC,GAAG", + "names": ["BeaconUtils", "is_mobile", "threshold", "screenWidth", "screenHeight", "isNotValidForMobile", "isNotValidForDesktop", "signature", "rect", "Utils_default", "BeaconLcp", "config", "logger", "above_the_fold_images", "err", "count", "lcpElements", "element", "imgElement", "item", "a", "b", "candidate", "visibleWidth", "visibleHeight", "nodeName", "element_info", "css_bg_url_rgx", "source", "imageElement", "img", "bg_props", "prop", "full_bg_prop", "matches", "m", "elements", "firstElementWithInfo", "elementInfo", "image", "isImageOrVideo", "isBgImageOrPicture", "BeaconLcp_default", "BeaconLrc", "elementsInView", "depth", "parent", "scrollTop", "skipStrings", "str", "exclusions", "i", "attribute", "pattern", "attributeValue", "distance", "hash", "can_push_hash", "color", "position", "pos", "sibling", "BeaconLrc_default", "Logger", "enabled", "msg", "Logger_default", "BeaconManager", "isGeneratedBefore", "shouldGenerateLcp", "shouldGeneratelrc", "data_check", "data", "results", "response", "data2", "error", "BeaconManager_default", "rocket_beacon_data", "instance", "BeaconEntryPoint_default"] } diff --git a/composer.json b/composer.json index fa3265928d..ea27265d0a 100644 --- a/composer.json +++ b/composer.json @@ -44,6 +44,7 @@ "php": ">=7.3", "cloudflare/cf-ip-rewrite": "^1.0", "composer/installers": "^1.0 || ^2.0", + "voku/simple_html_dom": "^4.8", "wp-media/apply-filters-typed": "^1.0" }, "require-dev": { @@ -128,9 +129,9 @@ "test-integration": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --exclude-group AdminOnly,BeaverBuilder,Elementor,Hummingbird,WithSmush,WithWoo,WithAmp,WithAmpAndCloudflare,WithSCCSS,Cloudways,Dreampress,Cloudflare,CloudflareAdmin,Multisite,WPEngine,SpinUpWP,WordPressCom,O2Switch,PDFEmbedder,PDFEmbedderPremium,PDFEmbedderSecure,Godaddy,LiteSpeed,RevolutionSlider,WordFence,ConvertPlug,Kinsta,Jetpack,RankMathSEO,AllInOneSeoPack,SEOPress,TheSEOFramework,OneCom,RocketLazyLoad,WPXCloud,TheEventsCalendar,Perfmatters,RapidLoad,ProIsp,TranslatePress,WPGeotargeting,Weglot,Pressidium,PerformanceHints", "test-integration-coverage": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --exclude-group AdminOnly,BeaverBuilder,Elementor,Hummingbird,WithSmush,WithWoo,WithAmp,WithAmpAndCloudflare,WithSCCSS,Cloudways,Dreampress,Cloudflare,CloudflareAdmin,Multisite,WPEngine,SpinUpWP,WordPressCom,O2Switch,PDFEmbedder,PDFEmbedderPremium,PDFEmbedderSecure,Godaddy,LiteSpeed,RevolutionSlider,WordFence,ConvertPlug,Kinsta,Jetpack,RankMathSEO,AllInOneSeoPack,SEOPress,TheSEOFramework,OneCom,RocketLazyLoad,WPXCloud,TheEventsCalendar,Perfmatters,RapidLoad,ProIsp,TranslatePress,WPGeotargeting,Weglot,Pressidium,PerformanceHints --coverage-php tests/report/integration.cov", "test-integration-adminonly": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group AdminOnly", - "test-integration-adminonly-coverage": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group AdminOnly --coverage-php tests/report/unit.cov", + "test-integration-adminonly-coverage": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group AdminOnly --coverage-php tests/report/integration-adminonly.cov", "test-integration-performancehints": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group PerformanceHints", - "test-integration-performancehints-coverage": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group PerformanceHints --coverage-php tests/report/unit.cov", + "test-integration-performancehints-coverage": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group PerformanceHints --coverage-php tests/report/integration-performancehints.cov", "test-integration-bb": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group BeaverBuilder", "test-integration-cloudflare": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group Cloudflare", "test-integration-cloudflareadmin": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group CloudflareAdmin", diff --git a/dynamic-lists-delayjs.json b/dynamic-lists-delayjs.json index 3e014b2a66..7a9865e59b 100644 --- a/dynamic-lists-delayjs.json +++ b/dynamic-lists-delayjs.json @@ -1 +1 @@ -{"plugins":{"ffc21030-519a-4853-8cea-49f959e82731":{"id":"plugin:def67a2c1ddd6df2353e4772b6fd4e5b","title":"Additional Variation Images Gallery for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woo-variation-gallery\/assets\/js\/slick.min.js","\/woo-variation-gallery\/assets\/js\/frontend.min.js","\/wp-includes\/js\/underscore.min.js","variation_custom_fields"],"is_default":0,"condition":"woo-variation-gallery\/woo-variation-gallery.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"0e7dc253-acd0-4421-877f-a7101d848717":{"id":"plugin:4b82cc7379d46c6272f5d556bb264eec","title":"Advanced Ads","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/(.*).js","advanced_ads_ready","advadsCfpQueue","adsbygoogle","adservice.google","\/advanced-ads(.*)","advads_items","advads_tracking_ads"],"is_default":0,"condition":"advanced-ads\/advanced-ads.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"a4d5c058-9120-47ee-977c-f30f83fb1a75":{"id":"plugin:a076fbb79772f497349a76ee74a7f708","title":"All-in-one Compliance for GDPR \/ CCPA Cookie Consent","type":"plugin","icon":"","exclusions":["iubenda_cs.js","var _iub"],"is_default":0,"condition":"iubenda-cookie-law-solution\/iubenda_cookie_solution.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"88457e92-0f24-458e-b7b5-bab59074ebef":{"title":"Amelia","condition":"ameliabooking\/ameliabooking.php","exclusions":["\/wp-content\/plugins\/ameliabooking\/(.*).js","var hasAmeliaEvent"],"icon_url":"","type":"plugin","id":"plugin:93ea6597c3cbd06e93a46b9f5368732d","is_default":0,"created_at":1714415106},"79a5082f-821a-4a4b-a0e3-caaf22cf3f75":{"id":"plugin:9bdceaa1bb89135730a3b2aa4db94c22","title":"AMO Team Showcase","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/amo-team-showcase\/public\/js\/wookmark.js","\/amo-team-showcase\/public\/js\/amo-team-showcase-public.js","\/wp-includes\/js\/imagesloaded.min.js","amoTeamVars"],"is_default":0,"condition":"amo-team-showcase\/amo-team-showcase.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"90c7fd90-3adf-4cb7-8a92-845bdbd95d27":{"title":"Anti-Spam by CleanTalk - Prevent console error","condition":"cleantalk-spam-protect\/cleantalk.php","exclusions":["ctPublicFunctions","ctPublic"],"icon_url":"","type":"plugin","id":"plugin:ed2ade77cd44e21b1703b093c002a903","is_default":0,"created_at":1699370420},"e054f840-700a-4549-bbba-485473a53f71":{"title":"AnWP Football Leagues - Calendar Widget","condition":"football-leagues-by-anwppro\/anwp-football-leagues.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/football-leagues-by-anwppro\/(.*)","\/football-leagues-by-anwppro-premium-premium\/(.*)","window.AnWPFLPro","window.AnWPFLTabulator","\/elementor\/assets\/lib\/flatpickr\/flatpickr.min.js"],"icon_url":"","type":"plugin","id":"plugin:e7581089f33fdf0a970d5c5deb16ff50","is_default":0,"created_at":1708535321},"1d058cae-4460-4354-bab3-a96445650bd8":{"id":"plugin:b739df50f3f5bf400075f17dca652517","title":"AnyWhere Elementor Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/anywhere-elementor-pro\/build\/index.js"],"is_default":0,"condition":"anywhere-elementor-pro\/anywhere-elementor-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"8a1614c7-55b1-4b6d-88e5-6e8ddc630dae":{"id":"plugin:46741e77eaf4d13a0c80be6b86379758","title":"Astra - Pro Addon","type":"plugin","icon":"","exclusions":["\/astra-addon\/astra-addon-(.*).js"],"is_default":0,"condition":"astra-addon\/astra-addon.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"37d96403-f9ea-4481-b2f8-374d7c93e61a":{"id":"plugin:ccd87807930a1856717fd276c336db9a","title":"Beaver Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/bb-plugin\/","\/bb-plugin\/js\/yui3.min.js","\/wp-includes\/js\/imagesloaded.min.js","\/bb-plugin\/js\/fl-slideshow.min.js"],"is_default":0,"condition":"beaver-builder-lite-version\/fl-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"f83dbf3b-783e-4ef9-9b18-8a469ca7102d":{"title":"Bloom","condition":"bloom\/bloom.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/bloom\/"],"icon_url":"","type":"plugin","id":"plugin:e57cdfbc09f4e0f7445c279d9f580bdd","is_default":0,"created_at":1685189070},"135aadd2-cd4a-44ae-8dcf-801f3f2316c0":{"id":"plugin:055ef01accbad6378e3d1a4965600964","title":"Booked","type":"plugin","icon":"","exclusions":["\/booked\/","\/js\/jquery\/ui\/datepicker.min.js"],"is_default":0,"condition":"booked\/booked.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"ddfee9b0-e5a9-4d3f-8c21-b999cbb61c33":{"id":"plugin:492f9b0d55f3bf07c68e915ea1dfb72a","title":"Bookly","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/bookly-responsive-appointment-booking-tool\/frontend\/","window.bookly"],"is_default":0,"condition":"bookly-responsive-appointment-booking-tool\/main.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"7a013fd6-0881-4dbe-8e93-33edefe7f717":{"title":"Borlabs Cookie","condition":"borlabs-cookie\/borlabs-cookie.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","borlabsCookieConfig","borlabs-cookie.min.js","borlabsCookieContentBlocker","BorlabsCookieBox","allFbWidgets","\/borlabs-cookie\/assets\/javascript\/","borlabs-cookie-config"],"icon_url":"","type":"plugin","id":"plugin:e1ec2daca513de476bd3dae79366e9ab","is_default":0,"created_at":1702497952},"3999e680-4049-4494-945c-768cecc1a2c4":{"id":"plugin:43019d66af7b41e65bb602c01e10c6a0","title":"Brizy","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/brizy\/public\/editor-build\/(.*)-wp\/editor\/js\/group-(.*).js","\/brizy\/public\/editor-build\/(.*)-wp\/editor\/js\/preview.js","Brizy.emit"],"is_default":0,"condition":"brizy\/brizy.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"af4d9357-3def-42a1-86b7-419553444b4d":{"id":"plugin:5c317f9f244597d8f236ecb7d8e41752","title":"Carousel Upsells and Related Product for WooCommerce","type":"plugin","icon":"","exclusions":["\/carousel-upsells-and-related-product-for-woocommerce\/assets\/js\/glide.min.js","carusel_poduct_related"],"is_default":0,"condition":"carousel-upsells-and-related-product-for-woocommerce\/ffxf-woo-glide-related-and-upsells.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"1d866d90-5451-43ba-a4d1-75b64f9235e1":{"id":"plugin:0a3a29603ebac8fe0808f64f5c8edbb2","title":"clickskeks.at Cookiebanner","type":"plugin","icon":"","exclusions":["clickskeks"],"is_default":0,"condition":"clickskeks\/index.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c09695cc-2387-4416-881a-c0b392188a26":{"title":"Complianz","condition":"complianz-gdpr\/complianz-gpdr.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","complianz"],"icon_url":"","type":"plugin","id":"plugin:a766f95208154cd69a3e15150a42f325","is_default":0,"created_at":1685188788},"bfb36984-e2a1-40ba-a8cd-f29b0b6f720f":{"title":"Complianz Premium","condition":"complianz-gdpr-premium\/complianz-gpdr-premium.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","complianz"],"icon_url":"","type":"plugin","id":"plugin:89d54385816dd2d5ae92cfda9d95bbfd","is_default":0,"created_at":1712163685},"b5e146fc-0b7c-4c6c-a631-8da246d3bd89":{"title":"Conerstone Builder - Fix mobile menu","condition":"cornerstone\/cornerstone.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/cornerstone\/assets\/js\/site\/cs-classic.(.*).js"],"icon_url":"","type":"plugin","id":"plugin:f8f8c81535b5e0073aa3c56b6dd3df5b","is_default":0,"created_at":1708614275},"368bc394-b74e-4b62-b359-cd967f78c6ea":{"title":"ConsentMagic Pro - Show popup without user interaction","condition":"consent-magic-pro\/consent-magic-pro.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/plugins\/consent-magic-pro\/js\/cs-public.min.js","\/wp-content\/plugins\/pixelyoursite-pro\/(.*)"],"icon_url":"","type":"plugin","id":"plugin:9e0701a214f49a057f17b00e39df2e7e","is_default":0,"created_at":1711026041},"7e551e3b-fbe4-4235-87a9-b476bc9e2020":{"id":"plugin:949b1b923d51d10a2fb67a2a39d166b3","title":"Content Egg","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/content-egg\/res\/js\/morrisjs\/morris.min.js","\/content-egg\/res\/js\/morrisjs\/raphael.min.js","Morris.Area"],"is_default":0,"condition":"content-egg\/content-egg.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"7fbca6c5-9239-4550-a755-6f041f867a57":{"title":"Cookie Notice & Compliance for GDPR \/ CCPA","condition":"cookie-notice\/cookie-notice.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/cookie-notice\/","var cnArgs"],"icon_url":"","type":"plugin","id":"plugin:213d0f883ae27aefb3a7937656bbd11e","is_default":0,"created_at":1681379736},"26722567-fe35-44b5-a5a7-fb0f3a38c3f2":{"id":"plugin:1d10ad30bbcf0fd4b26e9625a07abcfc","title":"Cookiebot CMP","type":"plugin","icon":"","exclusions":["consent.cookiebot.com"],"is_default":0,"condition":"cookiebot\/cookiebot.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"1547249a-ce0c-40e4-91f6-148a5f9652d7":{"title":"CookieYes Lite - Show on page load","condition":"cookie-law-info\/cookie-law-info.php","exclusions":["\/cookie-law-info\/lite\/frontend\/js\/script.min.js"],"icon_url":"","type":"plugin","id":"plugin:29d4d4ccd077232b111581043bbd8d81","is_default":0,"created_at":1721422981},"74110e36-89e5-440d-bec3-7133da3277c2":{"id":"plugin:edcf103293ceab711e999d419d038ca1","title":"Coupon Referral Program","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/coupon-referral-program\/","\/wp-includes\/js\/jquery\/ui\/draggable.min.js"],"is_default":0,"condition":"coupon-referral-program\/coupon-referral-program.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"408fa396-20f2-4b1f-820d-52882af281cc":{"title":"CozyStay Core - Fix background images","condition":"cozystay-core\/cozystay-core.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/cozystay-core\/assets\/scripts\/front\/parallax-bundle.min.js"],"icon_url":"","type":"plugin","id":"plugin:872b5eef05c1fc3b00cda07ee966938d","is_default":0,"created_at":1711999893},"ed63e02f-d6c5-481a-bcb9-aae15f72aa21":{"id":"plugin:c3e26264dcfd25802805b4fd1a2a449c","title":"Crisp - Live Chat and Chatbot","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","CRISP_RUNTIME_CONFIG","l.js"],"is_default":0,"condition":"crisp\/crisp.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"a8eb622b-279c-4f84-86e0-785e9497add7":{"id":"plugin:6e4bf949e12f0bebfefb48f6c316102a","title":"Custom Twitter Feeds pro","type":"plugin","icon":"","exclusions":["\/custom-twitter-feeds-pro\/js\/ctf-scripts.min.js"],"is_default":0,"condition":"custom-twitter-feeds-pro\/custom-twitter-feed.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"1624ef15-e25b-406d-bdf9-d4b78d7a59e7":{"title":"Customer Reviews for WooCommerce Plugin","condition":"customer-reviews-woocommerce\/ivole.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/customer-reviews-woocommerce\/js\/colcade.js"],"icon_url":"","type":"plugin","id":"plugin:1f893b343e72ce55e6c9013fbda172fa","is_default":0,"created_at":1704734788},"b0614843-afed-4377-9d8d-e869221be331":{"title":"Depicter Slider","condition":"depicter\/depicter.php","exclusions":["\/depicter\/"],"icon_url":"","type":"plugin","id":"plugin:77c42a041f1c40d128f4bb3714a6d20d","is_default":0,"created_at":1713878881},"396cc03a-8946-4ee8-ab15-7e48261df79a":{"title":"Divi - Carousel Module 2.0","condition":"dg-divi-carousel","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/dg-divi-carousel\/"],"icon_url":"","type":"plugin","id":"plugin:fcd789b7d02699f89720aa5ff3627912","is_default":0,"created_at":1709126476},"c15fe3b3-0eaa-48f9-bf04-0e778b1f8c63":{"title":"Divi - Supreme","condition":"supreme-modules-for-divi\/supreme-modules-for-divi.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI","\/supreme-modules-for-divi\/"],"icon_url":"","type":"plugin","id":"plugin:b5489ae4d8b949f536d6dd2e5b0c1a95","is_default":0,"created_at":1679738701},"dd31451b-989a-4517-b02a-e2c2e2023366":{"id":"plugin:5caed322df984bbfd3ecb506cf12b688","title":"Divi Den Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ddpro\/build\/freddie\/js\/freddieScriptPageTransition.js","\/ddpro\/build\/freddie\/js\/freddieScriptsHeaders.js","\/ddpro\/build\/freddie\/js\/freddieScriptsContents.js","\/ddpro\/build\/freddie\/js\/gsap\/gsap.min.js"],"is_default":0,"condition":"ddpro\/ddpro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"2b006370-cc90-42c1-9656-a30fbfbc91c6":{"id":"plugin:402d9b241b04934dd30f32e7ba490e63","title":"Divi Mobile","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","divi-menu","dm_nav"],"is_default":0,"condition":"divi-mobile\/divi-mobile.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"666bbed9-7ce3-457c-ad6e-b5e056d05010":{"title":"Divi Overlays","condition":"divi-overlays\/divi-overlays.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","var DIVI","\/divi-overlays\/"],"icon_url":"","type":"plugin","id":"plugin:1c828c93d87298d2a27c76e13d0880ba","is_default":0,"created_at":1679738664},"42a404af-7792-44be-9baa-565dc3baf25d":{"title":"Divi Pixel","condition":"divi-pixel\/divi-pixel.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/divi-pixel\/dist\/public\/js\/hamburger.min.js","\/divi-pixel\/dist\/vendor\/js\/easypiechart.js"],"icon_url":"","type":"plugin","id":"plugin:dd2494945a487a6cc74d3ab1b2137ccb","is_default":0,"created_at":1718642717},"85f5c099-c481-4c38-bbb9-8b76113bdfd5":{"title":"Divi Supreme Pro","condition":"supreme-modules-pro-for-divi\/supreme-modules-pro-for-divi.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","elm.style.display","\/supreme-modules-pro-for-divi\/includes\/modules\/ImageCarousel\/frontend.min.js","\/supreme-modules-pro-for-divi\/public\/js\/swiper-bundle.min.js"],"icon_url":"","type":"plugin","id":"plugin:3d5f0ae7751702fd1bb490fcf991a334","is_default":0,"created_at":1695118162},"0b78d762-c7be-45de-9aae-0c5078ec0619":{"id":"plugin:b5fc0101608d0b0627268dc49e3e1f8f","title":"Divi Toolbox","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","jQuery('.preloader')","\/divi-toolbox\/assets\/js\/toolbox-scripts.js"],"is_default":0,"condition":"divi-toolbox\/divi-toolbox.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"31a34440-1383-40c4-8920-effcf99f2165":{"title":"Dracula Dark Mode","condition":"dracula-dark-mode-premium\/plugin.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/plugins\/dracula-dark-mode-premium\/assets\/js\/dark-mode.js","\/wp-content\/plugins\/dracula-dark-mode-premium\/assets\/js\/frontend.js","\/wp-includes\/js\/dist\/vendor\/react-dom.min.js","\/wp-includes\/js\/dist\/vendor\/react.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js","draculaDarkMode"],"icon_url":"","type":"plugin","id":"plugin:5e8a5d8d3830136d84d0f3676f1bf5a5","is_default":0,"created_at":1704210236},"8baba0f8-4449-47d8-a87d-9b6a116e7684":{"title":"Dynamic Pricing & Discounts Lite for WooCommerce","condition":"woo-dynamic-pricing-discounts-lite\/dynamic-pricing-discounts-lite-for-woocommerce.php","exclusions":["\/woo-dynamic-pricing-discounts-lite\/assets\/OwlCarousel\/dist\/owl.carousel.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:185062bf08db42515488e1853d1f4917","is_default":0,"created_at":1677857247},"0fa129f2-5869-4db7-9bf0-69e4b3549ee2":{"id":"plugin:27478327aa44075a86176fad95640d76","title":"Dynamic Product Gallery for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-dynamic-gallery\/","a3revWCDynamicGallery"],"is_default":0,"condition":"woocommerce-dynamic-gallery\/wc_dynamic_gallery_woocommerce.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"9958c6be-2f67-4791-95c3-a7ad96d599c0":{"title":"Dynamic Product Gallery Premium for WooCommerce","condition":"woocommerce-dynamic-gallery-pro\/wc_dynamic_gallery_woocommerce.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/woocommerce-dynamic-gallery-pro\/assets\/js\/mygallery\/jquery.a3-dgallery.js","settings_defaults_","a3revWCDynamicGallery"],"icon_url":"","type":"plugin","id":"plugin:11dc02a76019f00422f4ac85f47f5135","is_default":0,"created_at":1683208937},"ce26ed21-1be5-481f-80d4-31edfac6d890":{"title":"Dynamic.ooo - Dynamic Content for Elementor","condition":"dynamic-content-for-elementor\/dynamic-content-for-elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/dynamic-content-for-elementor\/assets\/","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:d2bd5b348abe016bdc722acce7755062","is_default":0,"created_at":1683355024},"6a3161a6-1a6f-457a-a9ee-54b376981927":{"id":"plugin:ee1dec033c6481a77fe88de5bef1a02d","title":"Easy Table of Contents","type":"plugin","icon":"","exclusions":["\/easy-table-of-contents\/assets\/js\/front.min.js"],"is_default":0,"condition":"easy-table-of-contents\/easy-table-of-contents.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"25a534a0-2c1f-4cf4-9e19-7941bc032b3a":{"title":"Ecwid Ecommerce Shopping Cart","condition":"ecwid-shopping-cart\/ecwid-shopping-cart.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","app.ecwid.com\/script.js","\/ecwid-shopping-cart\/js\/frontend.js","\/ecwid-shopping-cart\/js\/static-page.js","ecwidParamswindow.ec","jQuery.mobile","xSearch","xCategoriesV2","xProductBrowser","Ecwid.init"],"icon_url":"","type":"plugin","id":"plugin:41c8f5f0ab00cb39654aedd783d194e0","is_default":0,"created_at":1704734846},"a0d681db-991a-4220-8f05-c54a4857aa42":{"title":"Element Pack Pro","condition":"bdthemes-element-pack\/bdthemes-element-pack.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/bdthemes-element-pack\/assets\/js\/modules\/ep-static-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-custom-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-slideshow.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-product-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-stacker.min.js","\/bdthemes-element-pack\/assets\/js\/bdt-uikit.min.js","\/bdthemes-element-pack\/assets\/js\/common\/helper.min.js","\/bdthemes-element-pack\/assets\/vendor\/js\/ScrollTrigger.min.js","\/bdthemes-element-pack\/assets\/vendor\/js\/gsap.min.js"],"icon_url":"","type":"plugin","id":"plugin:ced76c4da718a667537dc6c9d5e0244d","is_default":0,"created_at":1715791619},"40464325-5bae-4a20-bc97-553499e09a73":{"title":"Elementor","condition":"elementor\/elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/happy-elementor-addons-pro\/","\/header-footer-elementor\/inc\/js\/frontend.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:1d15783218a3137bec4ee8df5353e218","is_default":0,"created_at":1694425872},"ac86b64c-c80a-4053-894d-6caa8b4fdce8":{"title":"Elementor Loop Carrousel","condition":"elementor\/elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:0eb8d0bbd1c7ca05ac133ea634f676b7","is_default":0,"created_at":1694442056},"a8fc9fd1-f6d3-41eb-abe9-ef176de6d7e2":{"title":"Elementor - Lazy Load Background Images","condition":"elementor\/elementor.php","exclusions":["lazyloadRunObserver"],"icon_url":"","type":"plugin","id":"plugin:bf248cb2876558452a566c5dd89262b8","is_default":0,"created_at":1694453032},"1948aff5-7850-4979-91fa-0ce181484508":{"id":"plugin:de658ae6c2d05a5a4a947efecf5e0c16","title":"Elementor Custom Skin","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ele-custom-skin(.*)\/assets\/js\/"],"is_default":0,"condition":"ele-custom-skin\/ele-custom-skin.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"25708299-c596-4416-8ad8-740aee0f2752":{"title":"Elementor Pro","condition":"elementor-pro\/elementor-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/happy-elementor-addons-pro\/","\/header-footer-elementor\/inc\/js\/frontend.js"],"icon_url":"","type":"plugin","id":"plugin:030ad23e3851ed7adfa7b9b6c13cf5a6","is_default":0,"created_at":1679490021},"f34dd874-4b34-41e6-a31c-ece3c1efbffc":{"id":"plugin:305581ad4294a30eeb1247982f626005","title":"Elementor Pro - SmartMenus","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/assets\/lib\/smartmenus\/jquery.smartmenus.min.js","\/elementor-pro\/assets\/js\/preloaded-elements-handlers.min.js"],"is_default":0,"condition":"elementor-pro\/elementor-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"111cc8b2-0be9-438b-9aa3-7f1e301a5697":{"id":"plugin:5ae9f5d99224d5ebc7d0c0bbf5b99787","title":"Elementor Pro - User Cache","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/backbone.min.js","elementorAdminBarConfig","elementorCommonConfig","elementorWebCliConfig","elementorDevToolsConfig"],"is_default":0,"condition":"elementor-pro\/elementor-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c1713bf8-e0c3-4cb5-8b3f-841b06aa87ed":{"title":"ElementsKit Lite - Megamenu","condition":"elementskit-lite\/elementskit-lite.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/elementskit(.*)\/"],"icon_url":"","type":"plugin","id":"plugin:b91fed2fc4478dbb7067742c1ee4691b","is_default":0,"created_at":1683270249},"236c2a9e-9668-4a80-9b66-d2222d812dd6":{"title":"Elfsight Slider CC","condition":"elfsight-slider-cc\/elfsight-slider-cc.php","exclusions":["\/elfsight-slider-cc\/assets\/elfsight-slider.js"],"icon_url":"","type":"plugin","id":"plugin:b0e259c84df5e120d6113dd0eef9da4b","is_default":0,"created_at":1718660424},"706ff35d-8e33-4b04-a986-346faff704e9":{"id":"plugin:417192424139d89fb2a5b1ee1f2b9613","title":"Essential Addons for Elementor","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/essential-addons(-for)?-elementor(-lite)?\/.*(.min)?.js"],"is_default":0,"condition":"essential-addons-for-elementor-lite\/essential_adons_elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"b38556dc-2bc4-430f-9c55-7191cf7773db":{"id":"plugin:057757d0593ad9d2dc58124f0077a5df","title":"Essential Addons for Elementor Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/essential-addons(-for)?-elementor(-lite)?\/.*(.min)?.js"],"is_default":0,"condition":"essential-addons-elementor\/essential_adons_elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"719b988f-0d60-40c2-ba46-88f943119cb1":{"id":"plugin:c8e6c490f6438f566ade600c33531a85","title":"Essential Grid","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/essential-grid\/","lightboxOptions"],"is_default":0,"condition":"essential-grid\/essential-grid.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"47d3d2ab-160d-4b07-ac25-8250b9e6a951":{"id":"plugin:dafd19fa48a1fef890dc4348052fcb75","title":"EventON Lite","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/eventon-lite\/assets\/js\/(.*)"],"is_default":0,"condition":"eventon-lite\/eventon.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"219968d7-cf1f-4ee0-917a-db35dcc93a3e":{"id":"plugin:49ff465628fc3cb6d7f23ff81d9b8339","title":"FacetWP","type":"plugin","icon":"","exclusions":["\/facetwp\/assets\/js\/dist\/front.min.js","window.FWP_"],"is_default":0,"condition":"facetwp\/index.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"acce5701-5917-48d5-83ab-3e626aa420c5":{"id":"plugin:78a1c88a56fa957c802074b6418c6fac","title":"FacetWP - Flyout menu","type":"plugin","icon":"","exclusions":["\/facetwp-flyout\/assets\/js\/front.js"],"is_default":0,"condition":"facetwp-flyout\/facetwp-flyout.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"081461cf-dbd0-42f3-9557-10cdc16cf145":{"title":"FiboFilters Premium","condition":"fibofilters-pro\/fibofilters.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/fibofilters-pro\/build\/front-pro\/front.js"],"icon_url":"","type":"plugin","id":"plugin:d9f62725f1470d35c3f220645bc2e473","is_default":0,"created_at":1709923289},"f2a5b95f-1a22-46d2-8b72-42a53e46ae3f":{"id":"plugin:5d7555892a3a9968fde3fa3a335fc3d8","title":"FiboSearch - Ajax Search for WooCommerce","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/jquery\/jquery.js","\/wp-includes\/js\/jquery\/jquery-migrate.js","\/ajax-search-for-woocommerce-premium\/assets\/js\/search.js"],"is_default":0,"condition":"ajax-search-for-woocommerce\/ajax-search-for-woocommerce.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"7d1404e9-be76-449c-87aa-919557abe82d":{"id":"plugin:ad46179e8b0584abaf52056b846da227","title":"FlexBlock","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/flo-flex-builder\/dist\/flex-public.min.js","flexDebug"],"is_default":0,"condition":"flo-flex-builder\/flo-flex-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"b9c6a2dc-b226-4e2c-b85e-29ee55b8f751":{"id":"plugin:567a2b15db30ef6bd4904e4317139aac","title":"Fluent Forms","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/fluentform\/public\/js\/(.*).js","\/fluentformpro\/public\/js\/(.*).js"],"is_default":0,"condition":"fluentform\/fluentform.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"10874f8a-2855-4e80-bc46-e484589b76a8":{"id":"plugin:e78c153103f698b2b34892332d6b3b62","title":"Flying Images","type":"plugin","icon":"","exclusions":["flyingImages"],"is_default":0,"condition":"nazy-load\/flying-images.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"53958499-dacd-41d6-93bc-1534fe7d9eda":{"id":"plugin:5a0e40a6c5783856893b803189de1404","title":"FooGallery Premium","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/foobox-image-lightbox\/free\/js\/foobox.free.min.js","\/plugins\/foogallery-premium\/pro\/extensions\/default-templates\/shared\/js\/foogallery.min.js"],"is_default":0,"condition":"foogallery-premium\/foogallery.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"7870d704-2024-4622-838c-fad37d5c6753":{"id":"plugin:ebb5efb57b19ae60e734e456ca2df3f8","title":"Formidable Forms","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","frmSigs","\/formidable-signature\/js\/frm.signature.min.js"],"is_default":0,"condition":"formidable\/formidable.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"3f24f9b3-e59e-400f-a784-999f93f60fab":{"id":"plugin:0b08523445b8869a67ca40e777704692","title":"Forminator","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","forminatorFront","\/forminator\/build\/front\/front.multi.min.js","\/forminator\/assets\/js\/library\/jquery.validate.min.js","\/forminator\/assets\/forminator-ui\/js\/forminator-form.min.js","\/forminator\/assets\/forminator-ui\/js\/select2.full.min.js","\/wp-includes\/js\/jquery\/ui\/datepicker.min.js","\/wp-includes\/js\/dist\/vendor\/moment.min.js"],"is_default":0,"condition":"forminator\/forminator.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"3a600ded-3454-48fb-9811-46afa2ab3c05":{"id":"plugin:5759bf0d47ac3457485314b381a9b528","title":"GDPR Cookie Compliance","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/gdpr-cookie-compliance\/dist\/scripts\/main.js"],"is_default":0,"condition":"gdpr-cookie-compliance\/moove-gdpr.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"e21aaa5e-7354-471d-ab86-85f99f48830c":{"id":"plugin:ffb40036ab0583218561de7c28c6bd9b","title":"GDPR Cookie Consent","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/public\/js\/cookie-law-info-public.js","Cli_Data"],"is_default":0,"condition":"webtoffee-gdpr-cookie-consent\/cookie-law-info.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c11ca4ea-1a23-49ee-9a6b-1e549de50ea2":{"id":"plugin:3877953c5ec1e66db92ad844ae8ebafc","title":"Getwid - Gutenberg Blocks","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/ui\/tabs.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js"],"is_default":0,"condition":"getwid\/getwid.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"79b33eb9-bc92-4d8a-afd8-1c61e70bed8f":{"title":"GiveWP","condition":"give\/give.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/give\/assets\/dist\/js\/give.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:0fb3af06fc5c710a670220b054c292c5","is_default":0,"created_at":1706652232},"3773bb33-b168-4f68-9963-512da24ac4da":{"title":"GoodLayers Core","condition":"goodlayers-core\/goodlayers-core.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/goodlayers-core\/plugins\/script.js","\/goodlayers-core\/include\/js\/page-builder.js"],"icon_url":"","type":"plugin","id":"plugin:5f124509a56ca2e0644246919ec70434","is_default":0,"created_at":1704734904},"2adabe9b-6e03-4a67-959f-492813d40f69":{"title":"Google Tag Manager for WooCommerce PRO","condition":"gtm-ecommerce-woo-pro\/gtm-ecommerce-woo-pro.php","exclusions":["\/gtm-ecommerce-woo-pro\/assets\/gtm-ecommerce-woo-pro.js"],"icon_url":"","type":"plugin","id":"plugin:e54fd4313007b6fedf8ab4df0e05277a","is_default":0,"created_at":1691218549},"7bf261ac-89d4-492f-8a3d-1c5809b9579a":{"title":"Gravity Forms","condition":"gravityforms\/gravityforms.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/gravityforms\/","gform","recaptcha","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/plupload\/plupload.min.js","\/wp-includes\/js\/plupload\/moxie.min.js"],"icon_url":"","type":"plugin","id":"plugin:7a1c1606d094f6bff83c0ee155908367","is_default":0,"created_at":1694457903},"fbaf4a19-f675-441a-b75c-7fd748a59827":{"title":"Gravity Forms Page Transitions","condition":"gp-page-transitions\/gp-page-transitions.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/gp-page-transitions\/js\/"],"icon_url":"","type":"plugin","id":"plugin:53ef8d0ee1f9fdf0bbf87676e449eef5","is_default":0,"created_at":1713987341},"12340193-5c35-4b0d-b0bc-bea690cf1cae":{"id":"plugin:2f3112dd98c39aeb6bde618c9026a29f","title":"Green Forms","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","leform.min.js","leform_customjs_handlers","leform_ajax_url"],"is_default":0,"condition":"green-forms\/green-forms.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"4d20b427-47cf-4cdf-91c7-ff53602d3b2a":{"id":"plugin:0eb769dddc58f998e913345841b1d0b3","title":"GTM4WP","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","dataLayer"],"is_default":0,"condition":"duracelltomi-google-tag-manager\/duracelltomi-google-tag-manager-for-wordpress.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"a2b3c237-728c-49d6-882a-e3885444e9b4":{"id":"plugin:3b085ccda851ccf129d9506462f0cd65","title":"GTranslate","type":"plugin","icon":"","exclusions":["translate.google.com","googleTranslateElementInit"],"is_default":0,"condition":"gtranslate\/gtranslate.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"79dfc946-6b96-4b6d-bcaf-8cae6330581a":{"title":"GTranslate - Show language switcher on page load","condition":"gtranslate\/gtranslate.php","exclusions":["window.gtranslateSettings","\/wp-content\/plugins\/gtranslate\/js\/dwf.js"],"icon_url":"","type":"plugin","id":"plugin:0aedfaa0f543c47c4b0fcf57307c6691","is_default":0,"created_at":1719940839},"40cd9336-e73f-4a61-a7f6-27ec1ca6892c":{"id":"plugin:e1f17c1eac230219e6fec3ac07406a0d","title":"HBook","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/hbook\/","hb_booking_form_data","hb_max_date"],"is_default":0,"condition":"hbook\/hbook.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"192224c7-df72-4e3d-8f13-3206ac5b2e90":{"title":"Helper - OpenAI Chatbot for WordPress","condition":"\/helper\/index.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/helper\/js\/helper.min.js","mdpHelper"],"icon_url":"","type":"plugin","id":"plugin:07311d992a8a9d6af91e4766d2cb9ac9","is_default":0,"created_at":1691599768},"99cfbb2e-5678-42c2-928f-5cb09d7e43da":{"id":"plugin:269c5766fba124a838ac012a4b5a1a13","title":"HUSKY - Products Filter for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-products-filter\/(.*)","woof"],"is_default":0,"condition":"woocommerce-products-filter\/index.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"3a964eac-4aeb-49a7-9fd6-4c31b2645dee":{"id":"plugin:d457acfec0f86aac6733f1446f4fc94f","title":"Instagram Feed Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/instagram-feed-pro\/js\/sbi-scripts.min.js","sb_instagram_js_options"],"is_default":0,"condition":"instagram-feed-pro\/instagram-feed.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"8f9f4788-1b8d-468b-b291-1fcbd48618b9":{"id":"plugin:513b0c0ec8e12130af9b4bbbb17d7275","title":"Interactive Geo Maps","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/interactive-geo-maps-premium\/assets\/public\/map-service\/app.min.js","\/interactive-geo-maps\/assets\/public\/map-service\/app.js","iMapsData","cdn.amcharts.com\/lib\/"],"is_default":0,"condition":"interactive-geo-maps\/interactive-geo-maps.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"cf650ca3-afa0-4a13-9e4f-f7cca19abac6":{"title":"Ivory Search","condition":"add-search-to-menu\/add-search-to-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/add-search-to-menu\/public\/js\/ivory-search.min.js"],"icon_url":"","type":"plugin","id":"plugin:7430e9d2c985ae0a3339a7b7e1acc318","is_default":0,"created_at":1677852711},"17a5dd54-1f5e-4d57-a56d-a8a970651954":{"id":"plugin:1c8a1e1ba89a601f88654f094139b469","title":"JetBlocks","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-blocks\/assets\/js\/jet-blocks.min.js"],"is_default":0,"condition":"jet-blocks\/jet-blocks.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"b6f78c90-9823-459a-8dc1-1257e5f0d4e3":{"id":"plugin:dac9ec782180f33d0fcc7c4e0e569b9d","title":"JetBlog","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/","\/elementor\/","\/jet-blog\/","ElementorProFrontendConfig","elementorFrontendConfig","hasJetBlogPlaylist"],"is_default":0,"condition":"jet-blog\/jet-blog.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"e17173d8-6ef8-4e27-ba0f-379c9aea7eda":{"id":"plugin:0fe8895d1da5247b73a5d0b482df4ac4","title":"JetElements","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/jet-elements\/","hasJetBlogPlaylist","jetElements","\/wp-includes\/js\/jquery\/ui\/"],"is_default":0,"condition":"jet-elements\/jet-elements.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"cfd77501-9c9e-4f11-b994-0178a592fc08":{"title":"JetEngine","condition":"jet-engine\/jet-engine.php","exclusions":["\/jet-engine\/"],"icon_url":"","type":"plugin","id":"plugin:bc998e71546860c8c7f70c45a6c18972","is_default":0,"created_at":1686208296},"36fed829-a2d9-41b5-94f6-2c3b9f07a94e":{"id":"plugin:433a3173f2d06f7d02c7b91c06ed215d","title":"JetMenu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/","\/elementor\/","\/jet-blog\/assets\/js\/lib\/slick\/slick.min.js","\/jet-elements\/","\/jet-menu\/","elementorFrontendConfig","ElementorProFrontendConfig","hasJetBlogPlaylist","JetEngineSettings","jetMenuPublicSettings","\/jet-reviews\/assets\/js\/lib\/vue.min.js"],"is_default":0,"condition":"jet-menu\/jet-menu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"580cfed7-f034-4e39-bc7a-cdd01923ce87":{"id":"plugin:51714cfdb43f231a1c93e7cffb1007ab","title":"JetPopup","type":"plugin","icon":"","exclusions":["\/jet-popup\/assets\/js\/lib\/anime-js\/anime.min.js","\/jet-popup\/assets\/js\/jet-popup-frontend.js","\/jet-woo-builder\/","var jetPopupData"],"is_default":0,"condition":"jet-popup\/jet-popup.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"d9cd2730-12e2-42d7-a082-6f0efcd466cc":{"id":"plugin:df3bc4b6a8a9f28a5ba24cb7496bbc72","title":"JetProductGallery","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-woo-product-gallery\/assets\/lib\/swiper\/swiper.min.js","\/jet-woo-product-gallery\/assets\/js\/jet-woo-product-gallery.min.js"],"is_default":0,"condition":"jet-woo-product-gallery\/jet-woo-product-gallery.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"544aa37b-4d52-4182-99e8-abe23585da14":{"id":"plugin:5921fc95965ac7fccb7296957bd9abff","title":"JetReviews","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-reviews\/assets\/js\/jet-reviews-frontend.js","\/jet-reviews\/assets\/js\/lib\/vue.min.js","jetReviewsWidget"],"is_default":0,"condition":"jet-reviews\/jet-reviews.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"963c7804-eede-4570-bd63-67066588b758":{"title":"JetSearch - Search results popup","condition":"jet-search\/jet-search.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/jet-search\/assets\/lib\/chosen\/chosen.jquery.min.js","\/jet-search\/assets\/js\/jet-search.js","\/jet-search\/assets\/lib\/jet-plugins\/jet-plugins.js"],"icon_url":"","type":"plugin","id":"plugin:13e8760379022187de982df2226a5be4","is_default":0,"created_at":1708541675},"a8460089-34b4-4f8f-8694-5d92fa48aa82":{"title":"JetSmartFilters","condition":"jet-smart-filters\/jet-smart-filters.php","exclusions":["jetOffcanvasInitialized"],"icon_url":"","type":"plugin","id":"plugin:0cd63a514de1f1acb88e2bde65c4bc8d","is_default":0,"created_at":1694447256},"fe3c4915-6f8b-49b7-aa9c-c97b264d9f12":{"id":"plugin:a346b60514ef52afeffc6e2ef2793da3","title":"JetSticky","type":"plugin","icon":"","exclusions":["\/jetsticky-for-elementor\/"],"is_default":0,"condition":"jetsticky-for-elementor\/jetsticky-for-elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"853479dc-fff5-47cf-9a60-bf9b00f71fc4":{"title":"JetTabs for Elementor","condition":"jet-tabs\/jet-tabs.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/wp-content\/plugins\/jet-tabs\/assets\/js\/jet-tabs-frontend.min.js"],"icon_url":"","type":"plugin","id":"plugin:d887a6ffea25d759e8aecdb6b78917f7","is_default":0,"created_at":1697130971},"b7f89562-230c-4f63-8360-7aad6df31e02":{"id":"plugin:829272546b040d5aaeeeaf976b6cd4ec","title":"JetTricks","type":"plugin","icon":"","exclusions":["\/jet-tricks\/"],"is_default":0,"condition":"jet-tricks\/jet-tricks.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"90451e2a-553a-4496-9fa4-cffedbe69d43":{"id":"plugin:f44f3dbd09149f57db370e4132b057db","title":"JetWoo Widgets For Elementor","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/jetwoo-widgets-for-elementor\/assets\/js\/jet-woo-widgets.js","\/jet-woo-builder\/assets\/js\/jet-woo-builder.min.js","\/jet-woo-builder\/assets\/js\/frontend.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"is_default":0,"condition":"jet-woo-builder\/jet-woo-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"944718c2-48c6-4f53-aaa2-460d07e033cc":{"id":"plugin:ed318a971f8a047bed5b02ad546a9c18","title":"JetWooBuilder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js","\/elementor-pro\/","\/elementor\/","elementorFrontendConfig","ElementorProFrontendConfig","JetEngineSettings","\/jet-woo-builder\/","\/jet-woo-builder-custom-quantity-selectors-main\/assets\/js\/main.js"],"is_default":0,"condition":"jet-woo-builder\/jet-woo-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"f5b62f59-1dae-4cdf-ac3f-f5e846fc9918":{"id":"plugin:9562e253cd4ac2b1e1f70e32cb4e32dc","title":"Layer Slider","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.utils.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.kreaturamedia.jquery.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.transitions.js","initLayerSlider"],"is_default":0,"condition":"LayerSlider\/layerslider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e2be718d-83a2-4fa0-bc98-f0df52be3dc1":{"id":"plugin:1425e2735306796fe1539d9184a77e10","title":"LoftLoader Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","loftloader.min.js"],"is_default":0,"condition":"loftloader-pro\/loftloader-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"cfa18552-656e-453c-9e14-c07522dc6598":{"id":"plugin:0bf67b8ba84771e1a367fe24590ef09c","title":"MailUp for WordPress","type":"plugin","icon":"","exclusions":["\/mailup-email-and-newsletter-subscription-form\/public\/js\/mailup-public.js","mailup-js-extra"],"is_default":0,"condition":"mailup-email-and-newsletter-subscription-form\/mailup.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c5330c66-ba7b-45b1-87e4-ce590ab005dd":{"id":"plugin:10d0de28911c5f66463b9c8783f8148a","title":"Maintenance","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/maintenance\/"],"is_default":0,"condition":"maintenance\/maintenance.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"62f6663a-a15f-4bca-b9b5-79f1770e2c5a":{"title":"MapifyLite- Show map on page load","condition":"mapifylite\/mapify_lite.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/mapifylite\/assets\/vendor\/leaflet-1.7.1\/leaflet.js","\/plugins\/mapifylite\/assets\/vendor\/leaflet\/markercluster\/leaflet.markercluster.js","\/plugins\/mapifylite\/assets\/vendor\/leaflet\/locatecontrol\/L.Control.Locate.min.js","\/plugins\/mapifylite\/assets\/vendor\/tooltip.js","\/plugins\/mapifylite\/assets\/js\/dist\/bundle.js","var map"],"icon_url":"","type":"plugin","id":"plugin:48c30c0f37b64accf88126d4ef58e17b","is_default":0,"created_at":1720028033},"267aef71-afa0-4848-b6f8-3e1ca15c3a23":{"id":"plugin:9460789bdfe77425c895f130991a4cb4","title":"Maps Marker Pro","type":"plugin","icon":"","exclusions":["\/maps-marker-pro\/js\/mapsmarkerpro.js","var mapsMarkerPro"],"is_default":0,"condition":"maps-marker-pro\/maps-marker-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"b5a88b63-e906-49b3-8134-420139915ea6":{"title":"Master Popups","condition":"master-popups\/master-popups.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/master-popups\/assets\/public\/js\/master-popups-libs.min.js"],"icon_url":"","type":"plugin","id":"plugin:8fd7bd2c8b0a33e62798573abd12be63","is_default":0,"created_at":1681305305},"4be41549-bf4d-4c49-8346-0f8a3b88fdba":{"id":"plugin:de888634cc4bd51576eed319d5a528fd","title":"Master Slider","type":"plugin","icon":"","exclusions":["masterslider"],"is_default":0,"condition":"master-slider\/master-slider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"087bee18-7cd1-4c10-8acc-19e1b7c4f4cd":{"id":"plugin:b71309a89bf3c8b558b6fca5d6531919","title":"Max Mega Menu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/hoverIntent.min.js","\/megamenu\/js\/maxmegamenu.js","var megamenu"],"is_default":0,"condition":"megamenu\/megamenu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"cf22f0b9-01f4-409e-8a93-ad6743095abd":{"id":"plugin:94a7bae84ef2816494be4af66c577bfc","title":"Meta Slider","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ml-slider\/","var metaslider"],"is_default":0,"condition":"ml-slider\/ml-slider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"bb2cbc0d-20da-415e-8218-c17f1db53579":{"title":"Monarch","condition":"monarch\/monarch.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","dt-place-monarch-icons"],"icon_url":"","type":"plugin","id":"plugin:b7335d6d6d5c5134ea10ac2d9b04226c","is_default":0,"created_at":1677853476},"a98d6a80-4610-4ede-bd33-c3e15bed0a95":{"id":"plugin:4f8651262425ef6d7c223c68a2ec2063","title":"Monster Insights","type":"plugin","icon":"","exclusions":["__gtagTracker","monsterinsights_frontend","\/google-analytics-for-wordpress\/assets\/js\/frontend-gtag.min.js"],"is_default":0,"condition":"google-analytics-for-wordpress\/googleanalytics.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"26e1a36e-7a03-449e-8ecc-e42c41ca291c":{"id":"plugin:f8fc66b302dec2327bdec0434a3b275b","title":"Motion.page","type":"plugin","icon":"","exclusions":["\/motionpage\/core\/includes\/assets\/js\/(.*)","\/motionpage\/core\/includes\/assets\/js\/gsap\/(.*)","\/motionpage\/assets\/js\/(.*)","\/motionpage\/assets\/js\/gsap\/(.*)"],"is_default":0,"condition":"motionpage\/motionpage.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"459fd663-7f80-45fd-8308-d3484981e161":{"title":"Ninja Forms","condition":"ninja-forms\/ninja-forms.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/ninja-forms\/assets\/js\/min\/front-end-deps.js","\/ninja-forms\/assets\/js\/min\/front-end.js","nf-"],"icon_url":"","type":"plugin","id":"plugin:1d3ae9c1a96d5062616968b81eef319d","is_default":0,"created_at":1703190792},"c97440dd-7592-40e7-8c98-dac20d39808f":{"id":"plugin:723a588dcd49285ea9f7404e2379b47f","title":"Ninja Tables","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ninja-tables(.*)\/assets\/","\/ninja-tables(.*)\/public\/","\/wp-includes\/js\/dist\/vendor\/moment.min.js","ninja_table_instance_","ninja_filter_","ninja_table_ready_init_table_id"],"is_default":0,"condition":"ninja-tables\/ninja-tables.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"ebc01f06-8c35-47fa-9c63-8959c5cbd915":{"id":"plugin:f41a52ab1dd50a81cd3a5e341af0007c","title":"NotificationX","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/notificationx\/assets\/public\/js\/(.*).js","notificationXArr"],"is_default":0,"condition":"notificationx\/notificationx.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"3aaf4a1b-591a-48b7-8d60-e6d65c0f94c9":{"id":"plugin:be8fc72a8b8e8eb5958be13737cff47c","title":"Ocean Elementor Widgets","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ocean-elementor-widgets\/"],"is_default":0,"condition":"ocean-elementor-widgets\/ocean-elementor-widgets.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"f053a7d3-62b0-4312-b0ca-6ff63380eb0b":{"id":"plugin:1a14afe852fefe7b22ccad3893672a29","title":"One Click Accessibility","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pojo-accessibility\/assets\/js\/app.min.js"],"is_default":0,"condition":"pojo-accessibility\/pojo-accessibility.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"61e11800-48a9-4354-8a4c-ac9a2b4b033a":{"id":"plugin:b9ed0fe6f2cdbd305691a6b857f4b3dc","title":"OoohBoi Steroids for Elementor","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ooohboi-steroids-for-elementor\/"],"is_default":0,"condition":"ooohboi-steroids-for-elementor\/ooohboi-steroids.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"560b78a2-f051-490b-9dc6-a602dece0d81":{"id":"plugin:f1ff18a3e04c4e0995fca9cabffe57a7","title":"Optimole","type":"plugin","icon":"","exclusions":["optimoleData"],"is_default":0,"condition":"optimole-wp\/optimole-wp.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"b0fda458-4bf2-41e9-a159-60d4bb6102a6":{"id":"plugin:48ec18bd3f59772d98f85dddab75e305","title":"OSM - OpenStreetMap","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/osm\/js\/OL\/","\/osm\/js\/osm-v3-plugin-lib.js","vectorM"],"is_default":0,"condition":"osm\/osm.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"3743ed67-e0d1-4243-bb1f-ee48a445dd10":{"id":"plugin:9eacf0b76484af0259cd788f4923f20c","title":"OxyExtras","type":"plugin","icon":"","exclusions":["vime","vime.esm.js"],"is_default":0,"condition":"oxyextras\/plugin.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"52a21e27-af5b-4476-8d6d-54c323fd1443":{"id":"plugin:e852555c4b4789d78a96d76f503b3262","title":"Oxygen Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/component-framework\/vendor\/aos\/aos.js","AOS.init","oxygen_init_pro_menu","oxy-pro-menu-show-dropdown","oxy-shape-divider","oxygenVSBInitToggleJs"],"is_default":0,"condition":"oxygen\/functions.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"ebd282b9-e175-4b83-90a2-fe12389ccd11":{"id":"plugin:6f9419e58ec86c94e7698aaaaf9dc715","title":"PageLoader by Bonfire","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pageloader-by-bonfire\/pageloader.js","bonfire-pageloader-overlay"],"is_default":0,"condition":"pageloader-by-bonfire\/pageloader-by-bonfire.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"0baf6353-aa70-41a9-a3bc-d89870a5839b":{"id":"plugin:3a4c4518eb0f60108ab4934fab27d335","title":"PDF Embedder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pdf-embedder\/js\/(.*).js"],"is_default":0,"condition":"pdf-embedder\/pdf_embedder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"cba51ec1-87cc-44eb-b12b-d652e3446507":{"id":"plugin:4f90aca5957cccbf623e3bbc31afa204","title":"Perfect Brands for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/perfect-woocommerce-brands\/assets\/lib\/slick\/slick.min.js","\/perfect-woocommerce-brands\/assets\/js\/functions-frontend.min.js"],"is_default":0,"condition":"perfect-woocommerce-brands\/perfect-woocommerce-brands.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"808e7a4e-025c-4fae-bf82-de3716e5eb0d":{"id":"plugin:84fe214646388d7c021dda25003ac165","title":"Photonic","type":"plugin","icon":"","exclusions":["\/photonic\/include\/js\/front-end\/module\/photonic-baguettebox.min.js"],"is_default":0,"condition":"photonic\/photonic.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"936aff7d-a8ac-4473-a7b5-4b1611b6c557":{"id":"plugin:6838be282f853f71be282783cb1c162b","title":"Pixel Caffein","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/pixel-caffeine\/build\/frontend.js","aepc_pixel"],"is_default":0,"condition":"pixel-caffeine\/pixel-caffeine.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"ab3a4ef5-2732-4b46-a7c3-17b4e9405cd1":{"id":"plugin:afe0eb7c64d4556a7111c56dd8c4d307","title":"Pixel Manager for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/woocommerce-pixel-manager-pro\/js\/public\/","wpm"],"is_default":0,"condition":"woocommerce-pixel-manager-pro\/woocommerce-pixel-manager.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"2774f964-50b2-425e-8a30-0a02f421b7e4":{"id":"plugin:38d4b2986868f543639cd1ebc3e510aa","title":"Popup Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/popup-builder\/public\/js\/(.*).js","\/popupbuilder-exit-intent\/public\/javascript\/ExitIntent.js","var sgpbPublicUrl","SGPB_POPUP_PARAMS"],"is_default":0,"condition":"popup-builder\/popup-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"82dbb1e5-31f9-43d7-b522-52819aa49ba5":{"id":"plugin:786717922362642f34a7ff58e919bd95","title":"Popup Maker","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/pum\/pum-site-scripts.js","pum","\/plugins\/popup-maker\/assets\/js\/site.min.js"],"is_default":0,"condition":"popup-maker\/popup-maker.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"48e08305-1f1c-4ef4-9f13-24af1b155abc":{"id":"plugin:17831cbb64e469c7f66224c8c63d0a58","title":"PowerPack Addons for Elementor","type":"plugin","icon":"","exclusions":["\/powerpack-lite-for-elementor\/assets\/js\/min\/frontend.min.js"],"is_default":0,"condition":"powerpack-lite-for-elementor\/powerpack-lite-elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e037ae2f-e36b-4f1a-ada8-eb8fde6746f2":{"id":"plugin:80e1283ea1afead3ca904fad792643c5","title":"Preloader Plus","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/preloader-plus\/(.*)"],"is_default":0,"condition":"preloader-plus\/preloader-plus.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"90fed478-e89a-455c-8371-836bee58fb81":{"title":"Premium Addons for Elementor","condition":"premium-addons-for-elementor\/premium-addons-for-elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/premium-addons.min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/isotope.min.js","\/premium-addons-elementor\/pa-frontend-(.*).min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/slick.min.js","\/premium-addons-pro\/assets\/frontend\/min-js\/tooltipster.min.js","window.scopes_array","lottie.min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/premium-nav-menu.min.js"],"icon_url":"","type":"plugin","id":"plugin:debbfbbcbdf9ffb465bbc40008d99f02","is_default":0,"created_at":1693315214},"7e43c261-77be-48fc-b25a-8953a654ae85":{"id":"plugin:100a0382fcf3d1b6b22da928bce46ea8","title":"Presto Player","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/dist\/vendor\/regenerator-runtime.min.js","\/presto-player\/dist\/components\/web-components\/web-components.esm.js","\/presto-player\/src\/player\/player-static.js","var player","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"is_default":0,"condition":"presto-player\/presto-player.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"3d6f509f-d040-4279-9a2f-a4e6eae1e9df":{"id":"plugin:c0fce700121492b566517e68301db382","title":"Price Based on Country for WooCommerce Pro","type":"plugin","icon":"","exclusions":["\/woocommerce-product-price-based-on-countries\/assets\/js\/ajax-geolocation.min.js","\/woocommerce-price-based-country-pro-addon\/assets\/js\/currency-switcher.min.js","add-to-cart.min.js","cart-fragments.min.js"],"is_default":0,"condition":"woocommerce-price-based-country-pro-addon\/woocommerce-price-based-country-pro-addon.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"b970bc8a-bcbe-4d08-8ac0-a6853ab3f036":{"id":"plugin:f1ecfe258440b371124999ca3bfbfff3","title":"Prime Slider","type":"plugin","icon":"","exclusions":["\/plugins\/bdthemes-prime-slider-lite\/assets\/js\/bdt-uikit.min.js"],"is_default":0,"condition":"bdthemes-prime-slider-lite\/bdthemes-prime-slider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e5458963-f167-4b68-88e4-77dd39af2842":{"id":"plugin:29ea8f4dd72f5a5c5927917fb0665a05","title":"PRO Elements","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pro-elements\/"],"is_default":0,"condition":"pro-elements\/pro-elements.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"b119ad72-f498-4576-bb71-9e6d8c37b68f":{"title":"Product Filter by WBW (for WooCommerce)","condition":"woo-product-filter\/woo-product-filter.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/wp-content\/plugins\/woo-product-filter\/modules\/woofilters\/js\/frontend.woofilters.js","\/wp-includes\/js\/jquery\/ui\/mouse.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/jquery\/ui\/slider.min.js"],"icon_url":"","type":"plugin","id":"plugin:e57ad91e0d94fab011353af544873743","is_default":0,"created_at":1685686062},"7b779aca-e497-4da3-8e51-fa12837d15ab":{"title":"Product Filters for WooCommerce","condition":"woocommerce-product-filters\/woocommerce-product-filters.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-product-filters\/","\/woocommerce\/assets\/js\/accounting\/accounting.min.js","\/wp-includes\/js\/jquery\/ui\/","wcpf-load-project","WCPFData"],"icon_url":"","type":"plugin","id":"plugin:719469f1c977f7109d3d6ee21ecd5a16","is_default":0,"created_at":1691235154},"2b2a51f2-bd47-4591-92d8-4a690bce5d99":{"id":"plugin:a898898b2b0ea2cd82e20a6d3a3aa47b","title":"Product Gallery Slider for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/twist\/assets\/js\/slick.min.js","wpgs-public-js-after"],"is_default":0,"condition":"twist\/twist.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"062c5be3-e5ea-4958-9619-44e3410f237e":{"title":"Product Video Gallery for Woocommerce","condition":"product-video-gallery-slider-for-woocommerce\/product-video-gallery-slider-for-woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/product-video-gallery-slider-for-woocommerce\/public\/js\/nickx.front.js"],"icon_url":"","type":"plugin","id":"plugin:bbc653a91f0635cd2edb0b741aa62b85","is_default":0,"created_at":1693512477},"34d225a4-688c-476b-846b-420774160d6b":{"id":"plugin:e0b123d324c6fc85b8682660c34f8829","title":"Rank Math SEO","type":"plugin","icon":"","exclusions":["local_ga_js"],"is_default":0,"condition":"seo-by-rank-math\/rank-math.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"02305ca0-2c2a-4eef-a802-b8a942771ecc":{"title":"Retainful","condition":"retainful-next-order-coupon-for-woocommerce\/retainful-next-order-coupon-for-woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/retainful-next-order-coupon-for-woocommerce\/src\/premium\/assets\/js\/atc-popup.min.js","\/retainful-next-order-coupon-for-woocommerce\/src\/premium\/assets\/js\/exit-intent-popup.js","retainful.com","rnoc-add-to-cart-js-before","rnoc_redirect_coupon_popup"],"icon_url":"","type":"plugin","id":"plugin:f9fdee19ba6aed961d96d86e1521a761","is_default":0,"created_at":1679331508},"b4055250-5813-400f-b663-d390fee989e4":{"title":"Revolution Slider","condition":"revslider\/revslider.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/revslider\/public\/assets\/js\/","\/revslider\/sr6\/assets\/js\/","\/revslider-(.*)-addon\/","setREVStartSize","rev_slider_","revslider_","window.RS_MODULES","\/revslider\/public\/js\/libs\/tptools.js","\/revslider\/public\/js\/sr7.js","SR7"],"icon_url":"","type":"plugin","id":"plugin:d6a4d07d1b4022d886df52322dcd8a6f","is_default":0,"created_at":1714049967},"0b4e061a-b366-4d5a-a00e-bded4b107133":{"title":"Royal Elementor Addons","condition":"royal-elementor-addons\/wpr-addons.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/royal-elementor-addons\/assets\/js\/frontend.min.js","\/royal-elementor-addons\/assets\/js\/lib\/jarallax\/jarallax.min.js"],"icon_url":"","type":"plugin","id":"plugin:c4b464373716d7ac8e3cfb019aaa6102","is_default":0,"created_at":1688124503},"1b19ec89-171a-4f85-8c4b-b1bcfc6b1433":{"id":"plugin:5e3f85d8c82cc184b945415d1a862601","title":"Sassy Social Share","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/sassy-social-share\/public\/js\/sassy-social-share-public.js","heateorSssLoadEvent"],"is_default":0,"condition":"sassy-social-share\/sassy-social-share.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"f5899925-2ab7-43b6-abc4-51b76d664ca6":{"title":"Scrollsequence","condition":"scrollsequence-pro\/scrollsequence-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/scrollsequence-pro\/public\/js\/gsap__premium_only.js","\/scrollsequence-pro\/public\/js\/gsap-scrolltrigger__premium_only.js","\/scrollsequence-pro\/public\/js\/ssq-lib__premium_only.js","scrollsequence-input-script"],"icon_url":"","type":"plugin","id":"plugin:3df51830b6b80668fc342c8dcea495cf","is_default":0,"created_at":1678111131},"043827fc-3df8-45d6-9cd2-14fbe962987a":{"id":"plugin:9d60b5d2de4d828b78c7b088024377d6","title":"ShiftNav Pro - Responsive Mobile Menu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shiftnav-pro\/assets\/js\/shiftnav(.*).js"],"is_default":0,"condition":"shiftnav-pro\/shiftnav.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"bcbaf240-e76f-4620-b7d5-4852c46d4be7":{"id":"plugin:56279bd768c8f27ad1972b6774738bcf","title":"ShiftNav \u2013 Responsive Mobile Menu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shiftnav-responsive-mobile-menu\/"],"is_default":0,"condition":"shiftnav-responsive-mobile-menu\/shiftnav-responsive-mobile-menu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"bbe0543b-b5af-467b-a90d-e2975d892d8d":{"title":"Short Pixel Adaptive Image","condition":"shortpixel-adaptive-images\/short-pixel-ai.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shortpixel-adaptive-images\/assets\/js\/ai(.*).min.js","spai_settings"],"icon_url":"","type":"plugin","id":"plugin:1bc7ac87d8ab2301a1b904919dc7a798","is_default":0,"created_at":1704734942},"543ab43a-6bd3-4948-a09e-3b95e7c9209d":{"title":"Showcase IDX","condition":"showcase-idx\/showcaseidx.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","SIDX","search.showcaseidx.com\/js\/app-(.*).js","cdn.shortpixel.ai"],"icon_url":"","type":"plugin","id":"plugin:ce4dea8ddc3caa8d00e95cec3202d32a","is_default":0,"created_at":1704734988},"a16bcab7-1169-46b9-a425-b091478d8312":{"id":"plugin:3ea7d9f75ad03620b0bce2517bd5b8d1","title":"Side Cart WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/plugins\/woocommerce\/assets\/js\/frontend\/add-to-cart.min.js","\/plugins\/woocommerce\/assets\/js\/jquery-blockui\/jquery.blockUI.min.js","\/plugins\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js"],"is_default":0,"condition":"side-cart-woocommerce\/xoo-wsc-main.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"521f748e-cf09-4019-bd28-b52daef5f16f":{"id":"plugin:7843983bf90dbae16c6e889382c71b23","title":"Simple Banner","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/simple-banner\/","simpleBannerScriptParams"],"is_default":0,"condition":"simple-banner\/simple-banner.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"76026e82-d9cf-482c-b480-55c57693a184":{"id":"plugin:b6825f971d35a5515d095564a2e40936","title":"Site Kit by Google","type":"plugin","icon":"","exclusions":["google-analytics.com\/analytics.js","ga\\( '","ga\\('","\/gtag\/js","gtag\\(","\/gtm.js"],"is_default":0,"condition":"google-site-kit\/google-site-kit.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"4f9be7dd-fa19-401c-a5a5-81654990f9c4":{"title":"SiteOrigin Widgets Bundle - Load images","condition":"so-widgets-bundle\/so-widgets-bundle.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/so-widgets-bundle\/js\/slider\/jquery.slider.min.js","\/so-widgets-bundle\/js\/jquery.cycle.min.js","\/so-widgets-bundle\/js\/jquery.cycle.swipe.min.js","\/so-widgets-bundle\/js\/sow.jquery.fittext.min.js","\/so-widgets-bundle\/js\/lib\/jquery.fitvids.min.js","\/siteorigin-panels\/js\/styling.min.js","siteorigin-panels-before-js","page_id"],"icon_url":"","type":"plugin","id":"plugin:3968480c93d7f92ed1cb78a54b47fc9f","is_default":0,"created_at":1716234178},"79c458d7-f7f7-4072-919d-ad337bde6ae3":{"title":"Slick Menu","condition":"slick-menu\/slick-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/slick-menu\/"],"icon_url":"","type":"plugin","id":"plugin:5ce5dfecdc9d3292c69a1413bbd17d3c","is_default":0,"created_at":1704735027},"99cf4942-49ea-4687-b156-405ed1ce1cfa":{"title":"Slide Anything","condition":"slide-anything\/slide-anything.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/slide-anything\/owl-carousel\/owl.carousel.min.js","owl_goto.trigger"],"icon_url":"","type":"plugin","id":"plugin:fff874cc48b80940210228c975df395c","is_default":0,"created_at":1702907355},"dd0ea584-0c99-4c30-b46d-da35b94c9f0a":{"title":"Slider by Soliloquy","condition":"soliloquy-lite\/soliloquy-lite.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","soliloquy-min.js","soliloquy_slider"],"icon_url":"","type":"plugin","id":"plugin:ffb5f8cc0ea17886dbd05f601ca3eec0","is_default":0,"created_at":1704735068},"ecb2fffc-d289-4f68-ae94-71131f17deee":{"title":"Smart Slider 3","condition":"smart-slider-3\/smart-slider-3.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/smart-slider-3\/(.*).js","_N2"],"icon_url":"","type":"plugin","id":"plugin:2f373822dceb191c31c8ad2183d51869","is_default":0,"created_at":1704735119},"284ede43-bf80-419e-8414-46c26cb746f0":{"title":"Smart Slider 3 Pro","condition":"nextend-smart-slider3-pro\/nextend-smart-slider3-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/SmartSlider3\/(.*).js","_N2"],"icon_url":"","type":"plugin","id":"plugin:720ec9fbbd8a52ce525959a68a5310b3","is_default":0,"created_at":1704735152},"be70034f-def5-4771-9b3f-662eb218da2a":{"title":"Spectra - Show Slider Images","condition":"ultimate-addons-for-gutenberg\/ultimate-addons-for-gutenberg.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/ultimate-addons-for-gutenberg\/assets\/js\/spectra-animations.min.js","\/ultimate-addons-for-gutenberg\/assets\/js\/post.min.js","\/ultimate-addons-for-gutenberg\/assets\/js\/aos.min.js","\/slick.min.js","\/imagesloaded.min.js","UAGBPostCarousel"],"icon_url":"","type":"plugin","id":"plugin:af16af31f83a874b9d0a9570d9c15ff7","is_default":0,"created_at":1706824485},"c3334c29-4160-42df-a1ce-f8aeeaee8668":{"title":"Super Socializer","condition":"super-socializer\/super_socializer.php","exclusions":["theChamp","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:660defe26748470c3a47366cd4012579","is_default":0,"created_at":1677853633},"f18b4242-fe3f-4e2b-bfc9-ac2fb3939a90":{"title":"Superfly Menu","condition":"superfly-menu\/main.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate((.*?)(.min?)?).js","\/superfly-menu\/includes\/vendor\/looks_awesome\/icon_manager\/js\/md5.js","\/superfly-menu\/includes\/vendor\/looks_awesome\/icon_manager\/js\/util.js","\/superfly-menu\/js\/public.min.js","window.SFM_is_mobile","var SFM_skew_disabled","var SFM_template"],"icon_url":"","type":"plugin","id":"plugin:ccb15175093bc6c437b78797f0698a7b","is_default":0,"created_at":1684301673},"1a05c00a-8562-45bc-80e8-987a4574b1c9":{"title":"Symplr Ads","condition":"symplr-ads\/symplr-plugin.php","exclusions":["\/symplr-ads\/","cdns.symplr.de"],"icon_url":"","type":"plugin","id":"plugin:3b6d39e28a87e86c4659491e2368ff61","is_default":0,"created_at":1692199959},"858d2d7f-bdac-4d27-ba26-baa9ace96ba4":{"id":"plugin:7d93008296bb5c7c43d4cba185ed2632","title":"Tabby Responsive Tabs","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/tabby-responsive-tabs\/js\/tabby.js","RESPONSIVEUI"],"is_default":0,"condition":"tabby-responsive-tabs\/tabby-responsive-tabs.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e44a5c93-bb77-4624-a121-d846905137ea":{"id":"plugin:2f563bbb7e92363ec3fb2989a1c7dffe","title":"The Plus Addons for Elementor","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/theplus-addons\/(.*)"],"is_default":0,"condition":"the-plus-addons-for-elementor-page-builder\/theplus_elementor_addon.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"2bbac961-b000-4802-ae97-d52472ec6750":{"title":"The Plus Addons for Elementor Premium","condition":"theplus_elementor_addon\/theplus_elementor_addon.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/theplus_elementor_addon\/","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig"],"icon_url":"","type":"plugin","id":"plugin:6e127deaaeefbe57ff945b1f9e274518","is_default":0,"created_at":1688143611},"c3b5d7fd-a1e0-4aca-a0b6-405018a37266":{"title":"The Post Grid","condition":"the-post-grid\/","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","the-post-grid"],"icon_url":"","type":"plugin","id":"plugin:93c3354976453458cf67f8ec0fdfce5a","is_default":0,"created_at":1721070241},"666b45e8-749c-4140-bd17-e1cd589e03ee":{"id":"plugin:b9c418b47c986935a1151ab9b42f8971","title":"ThemeREX Addons","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/trx_addons\/js\/__scripts-full.js","\/trx_addons\/components\/cpt\/layouts\/shortcodes\/menu\/superfish.min.js"],"is_default":0,"condition":"trx_addons\/trx_addons.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"a750cada-eb58-4df4-9966-21c8a69332ba":{"id":"plugin:75af9efe22c5cc776636266feb55adf1","title":"Thrive Architect","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"is_default":0,"condition":"thrive-visual-editor\/thrive-visual-editor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"13714cde-680e-4ca4-8607-c35952d6a5f2":{"title":"Thrive Comments","condition":"thrive-comments\/thrive-comments.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-leads\/","window.TL_Const","var ml=","\/thrive-comments\/assets\/js\/","ThriveComments","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js"],"icon_url":"","type":"plugin","id":"plugin:6a72d06ca2f6a888b0d9d5ea93af2edc","is_default":0,"created_at":1677852974},"aa7ca898-499f-4f04-b419-3de199996969":{"id":"plugin:b84d82c02cade64ade00712b9c5652aa","title":"Thrive Leads","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-leads\/","window.TL_Const","var ml=","\/thrive-comments\/assets\/js\/","ThriveComments","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js"],"is_default":0,"condition":"thrive-leads\/thrive-leads.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"9eee297a-8241-4ef2-af97-46074bd0898c":{"id":"plugin:5bb61b0559b0a3fd578315b553451327","title":"Thrive Quiz Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"is_default":0,"condition":"thrive-quiz-builder\/thrive-quiz-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c2f3ec2a-5b09-4845-aa95-84841783fbfc":{"id":"plugin:a7f3e5206abff19ca7cf142260181738","title":"Thrive Ultimatum","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-ultimatum\/","var TVE_Ult_"],"is_default":0,"condition":"thrive-ultimatum\/thrive-ultimatum.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"d48b8d2f-e071-4a30-840a-306154a115a0":{"id":"plugin:f57be2014b6a489d053f8367fa6c0f9f","title":"Tidio Chat","type":"plugin","icon":"","exclusions":["document.tidioChatCode"],"is_default":0,"condition":"tidio-live-chat\/tidio-elements.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"cb6d33ed-7eb4-4ff9-9ad0-7fc54fbecf6f":{"id":"plugin:c9e0485ec256d4a6a8d92a98c18d76fc","title":"Toolset Blocks","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","toolsetCommonEs.fontToHead","toolsetCommonEs.styleToHead","\/toolset-blocks\/vendor\/toolset\/blocks\/public\/js\/frontend.js","\/toolset-blocks\/vendor\/toolset\/common-es\/public\/toolset-common-es-frontend.js","\/toolset-blocks\/public\/js\/views-frontend.js","\/wp-includes\/js\/underscore.min.js"],"is_default":0,"condition":"toolset-blocks\/wp-views.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"4bac6350-0925-49fb-904a-372f22fd6baf":{"id":"plugin:71beda322b37f7fc7d456822493cb972","title":"Top Bar Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/topbar-pro\/js\/tpbr_front.min.js","\/plugins\/topbar-pro\/js\/jquery.cookie.js"],"is_default":0,"condition":"topbar-pro\/topbar_pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"033486e7-0ddc-4915-a848-31504d00448e":{"title":"Twenty20 Image Before-After","condition":"twenty20\/ttwenty.php","exclusions":["\/twenty20\/assets\/js\/(.*).js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","twentytwenty-container"],"icon_url":"","type":"plugin","id":"plugin:23441bba9d3602bc932d697c7cb8aa1f","is_default":0,"created_at":1677858089},"bef2147e-2d0b-431d-ac29-5e8430c0d809":{"title":"Typing Effect","condition":"animated-typing-effect\/typingeffect.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/animated-typing-effect\/assets\/js\/typed.js","\/plugins\/animated-typing-effect\/assets\/js\/typed.fe.js"],"icon_url":"","type":"plugin","id":"plugin:e4e1a3e63d09a28dcb20577efbcb5a48","is_default":0,"created_at":1711400446},"7675a34d-006e-4672-99d5-a81e1b8e47f9":{"id":"plugin:3d59cc34167a7f8123e66b627148e0b7","title":"UberMenu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ubermenu\/assets\/js\/ubermenu.min.js"],"is_default":0,"condition":"ubermenu\/ubermenu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"8233178a-e7b3-43ce-b193-bd0d9c960933":{"id":"plugin:86424c46157c1c7e2e1571055813beee","title":"Ultimate Addons for Elementor","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ultimate-elementor\/assets\/lib\/slick\/slick.min.js","\/ultimate-elementor\/assets\/min-js\/uael-frontend.min.js","\/ultimate-elementor\/assets\/lib\/isotope\/isotope.min.js","\/ultimate-elementor\/assets\/lib\/jquery-element-resize\/jquery_resize.min.js","\/ultimate-elementor\/assets\/lib\/fancybox\/jquery_fancybox.min.js","\/ultimate-elementor\/assets\/lib\/justifiedgallery\/justifiedgallery.min.js","\/elementor-pro\/assets\/js\/frontend.min.js","\/wp-includes\/js\/imagesloaded.min.js","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js","\/elementor\/assets\/lib\/swiper\/swiper.min.js","\/nasa-core\/assets\/js\/min\/jquery.slick.min.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig"],"is_default":0,"condition":"ultimate-elementor\/ultimate-elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"8bddf484-6c78-4147-a4e6-d3039904e5f6":{"title":"Ultimate Addons for Elementor - Mobile Menu","condition":"ultimate-elementor\/ultimate-elementor.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/ultimate-elementor\/assets\/js\/uael-nav-menu.js","\/ultimate-elementor\/assets\/min-js\/uael-nav-menu.min.js"],"icon_url":"","type":"plugin","id":"plugin:70cfade3a7adbb54196f6acccc5a176f","is_default":0,"created_at":1694771327},"028504f7-b1cd-4318-8a6d-ce186197e89d":{"id":"plugin:0f0a91f0c454021a5ff9fc25c3ed419f","title":"Ultimate Addons for WPBakery Page Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Ultimate_VC_Addons\/assets\/"],"is_default":0,"condition":"Ultimate_VC_Addons\/Ultimate_VC_Addons.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"5754af3d-a6af-49eb-b731-bdd82f26dc4e":{"id":"plugin:34db8636812bad84c8aea037c2ddc8c2","title":"Ultimate Responsive Image Slider","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","sliderPro"],"is_default":0,"condition":"ultimate-responsive-image-slider\/ultimate-responsive-image-slider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"78ae882d-ae31-4179-b677-8893814938c7":{"title":"Unlimited Elements for Elementor Premium - Slider","condition":"unlimited-elements-for-elementor-premium\/unlimited-elements-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/unlimited-elements-for-elementor-premium\/","uc_"],"icon_url":"","type":"plugin","id":"plugin:17260bc347b8c29bee0010e9ec164184","is_default":0,"created_at":1683270377},"051cbfbb-7ad2-4f06-a493-3cf423a80904":{"id":"plugin:6717ef5673a956bc08ca4a5117065d53","title":"Variation Swatches for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jquery\/ui\/","\/woo-variation-swatches\/","\/woo-variation-swatches-pro\/","underscore.min.js"],"is_default":0,"condition":"woo-variation-swatches\/woo-variation-swatches.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"6879caba-7224-4eca-bcb2-370785b495ea":{"id":"plugin:57597b7683e01892932083413f085134","title":"Web Accessibility By accessiBe","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/accessibe\/","acsbJS"],"is_default":0,"condition":"accessibe\/accessiebe.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"bd6732fe-4c2b-40a1-9035-8464057e2da5":{"title":"WooCommerce - Cart Fragments","condition":"woocommerce\/woocommerce.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js"],"icon_url":"","type":"plugin","id":"plugin:201de694c6fc28c8d580a3b2ca484218","is_default":0,"created_at":1680937567},"d044900d-07e1-4533-9516-33106efcb259":{"title":"WooCommerce - Product description","condition":"woocommerce\/woocommerce.php","exclusions":["\/plugins\/woocommerce\/assets\/js\/frontend\/single-product.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:a82644b4c9417ea3a240939a73344700","is_default":0,"created_at":1679309756},"bff953b1-2213-4666-8112-76a84a3cc207":{"title":"WooCommerce - Product Gallery","condition":"woocommerce\/woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/zoom\/jquery.zoom(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/photoswipe\/","\/woocommerce\/?(.*)\/assets\/js\/flexslider\/jquery.flexslider(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/frontend\/single-product(.min)?.js","wc_single_product_params"],"icon_url":"","type":"plugin","id":"plugin:7665868ff97c265628f376523a4f9ecc","is_default":0,"created_at":1686579689},"016e6ddf-c6e7-49ec-bd3f-2585d9e45895":{"title":"WooCommerce - Select2 library","condition":"woocommerce\/woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce\/assets\/js\/select2\/select2(.*).js"],"icon_url":"","type":"plugin","id":"plugin:4bca670bd5d55dd24b17fb0193b0891e","is_default":0,"created_at":1681459540},"b9b2c6d7-944f-4ae3-ae04-c9e2204b9dab":{"id":"plugin:9165c768e978d6ad3f696db8c78ccbb2","title":"WooCommerce Attribute Swatches","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/iconic-woo-attribute-swatches-premium\/assets\/frontend\/js\/main.min.js","\/iconic-woo-attribute-swatches-premium\/assets\/vendor\/flickity\/flickity.pkgd.min.js","iconic_was_vars"],"is_default":0,"condition":"iconic-woo-attribute-swatches-premium\/iconic-woo-attribute-swatches.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"4506c5e9-7349-44c9-9967-34370c83facb":{"title":"WooCommerce Bookings","condition":"woocommerce-bookings\/woocommerce-bookings.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/woocommerce-bookings\/dist\/frontend.js","\/wp-includes\/js\/dist\/date.min.js","\/wp-includes\/js\/dist\/vendor\/moment.min.js","\/wp-includes\/js\/jquery\/ui\/datepicker.min.js","\/wp-includes\/js\/underscore.min.js","\/woocommerce\/assets\/js\/jquery-blockui\/jquery.blockUI.min.js","\/wp-includes\/js\/dist\/hooks.min.js"],"icon_url":"","type":"plugin","id":"plugin:14dec6d289b9977fa3a74116feecebcc","is_default":0,"created_at":1693998405},"fec9cd04-c358-45da-a1a8-1668b964016b":{"id":"plugin:456f3b849ba3b6647246aca9d7cdaed5","title":"WooCommerce Product Reviews Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","wc_product_reviews_pro","\/woocommerce-product-reviews-pro\/assets\/js\/frontend\/wc-product-reviews-pro-frontend.min.js","\/woocommerce\/assets\/js\/jquery-tiptip\/jquery.tipTip.min.js"],"is_default":0,"condition":"woocommerce-product-reviews-pro\/woocommerce-product-reviews-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"551a9399-627f-4978-9bae-5cc8e0aefc82":{"id":"plugin:c8577e74eef3b082fb6403760d53f68c","title":"WooCommerce TM Extra Product Options","type":"plugin","icon":"","exclusions":["\/woocommerce-tm-extra-product-options\/assets\/js\/epo.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/jquery\/ui\/mouse.min.js","\/wp-includes\/js\/jquery\/ui\/slider.min.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/wp-util.min.js","\/wp-includes\/js\/dist\/hooks.js","\/wp-includes\/js\/dist\/i18n.js"],"is_default":0,"condition":"woocommerce-tm-extra-product-options\/tm-woo-extra-product-options.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"3cac4650-6a52-448e-8e48-e99a772a59a2":{"id":"plugin:c6e6cab8c80fa3fe57d609f72d2d5c56","title":"WooLentor","type":"plugin","icon":"","exclusions":["\/woolementor\/assets\/third-party\/slick\/slick.min.js","\/woolentor-addons","woolentor_addons"],"is_default":0,"condition":"woolentor-addons\/woolentor_addons_elementor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"21af073d-d2ec-4d46-bbda-2c69f87f3f98":{"title":"Woolentor - Fix product gallery","condition":"woolentor-addons\/woolentor_addons_elementor.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)",".woolentor-learg-img","\/woolentor-addons\/assets\/js\/slick.min.js","\/woolentor-addons-pro\/assets\/lib\/js\/tippy.min.js"],"icon_url":"","type":"plugin","id":"plugin:c5315e06dfc353cd57f85a60abe4e320","is_default":0,"created_at":1700061004},"67aeb4cb-1a00-4d10-a00c-34888b4c0dba":{"title":"WooThumbs for WooCommerce","condition":"woothumbs-premium\/woothumbs-premium.php","exclusions":["\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/wp-embed.min.js","\/wp-includes\/js\/wp-util.min.js","\/woothumbs-premium\/(.*)"],"icon_url":"","type":"plugin","id":"plugin:b97b1d3f627769e1dd8305aa25af993c","is_default":0,"created_at":1679065404},"c7a14763-88d0-4344-a6af-e0a8dc5fa8d5":{"id":"plugin:31b9e812a025e5750a6ef0980ee7d2db","title":"WordPress Mega Menu \u2013 QuadMenu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/quadmenu","#private-menu","#public-menu"],"is_default":0,"condition":"quadmenu\/quadmenu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"f699fdbd-84a7-4f24-b729-3e4a4f83a4dd":{"id":"plugin:601f8fc7d10cad1c2ec2949c0d9b1651","title":"WP Armour","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/honeypot\/includes\/js\/wpa.js","\/wp-armour-extended\/includes\/js\/wpae.js","wpa_hidden_field","wpa_add_test"],"is_default":0,"condition":"wp-armour-extended\/wp-armour-extended.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"697239fe-74f5-42a4-a504-97ee85bf43ff":{"title":"WP Booking Calendar","condition":"booking\/wpdev-booking.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/booking(.*)\/_dist\/all\/_out\/wpbc_all.js","\/wp-content\/plugins\/booking(.*)\/js\/datepick\/jquery.datepick.wpbc.9.0.js","\/wp-content\/plugins\/booking(.*)\/js\/wpbc_time-selector.js","\/wp-content\/plugins\/booking(.*)\/assets\/libs\/tippy.js","\/wp-content\/plugins\/booking(.*)\/assets\/libs\/popper\/popper.js","wpbc_init__head","wpbc_url_ajax","booking_max_monthes_in_calendar","wpbc_define_tippy_popover","flex_tl_table_loading"],"icon_url":"","type":"plugin","id":"plugin:fdaf786c076fa0f17eec1e321fee0b3f","is_default":0,"created_at":1720571754},"6a28aae5-ef91-43fc-8204-92e3a25642b4":{"id":"plugin:5728f3b9856dfe37a36ab15b0a637198","title":"WP Go Maps","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","maps.googleapis.com"],"is_default":0,"condition":"wp-google-maps\/wpGoogleMaps.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c9b991d1-a653-404b-be85-e276b1814e7d":{"title":"WP Google Map Pro","condition":"wp-google-map-gold\/wp-google-map-gold.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","maps.google.com\/maps\/api\/js","\/wp-includes\/js\/masonry.min.js","\/wp-google-map-gold\/(.*)"],"icon_url":"","type":"plugin","id":"plugin:dc12a9b7b9c4c7ce3c532b6b377739f2","is_default":0,"created_at":1677858391},"1f8f9fbf-fbf0-4e3a-b77c-af0fa47e950d":{"id":"plugin:87f572f5f0ec143a8fceba77d0616197","title":"WP Google Maps Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-google-maps(.*)","maps.googleapis.com","mgl_","wpgmza"],"is_default":0,"condition":"wp-google-maps-pro\/wp-google-maps-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"41e4b98c-e63f-4800-a478-02592562322b":{"id":"plugin:3735ca768ede98b25795f4cb057ff4ed","title":"WP iCal Availability","type":"plugin","icon":"","exclusions":["\/wp-ical-availability\/js\/custom-select.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-ical-availability\/"],"is_default":0,"condition":"wp-ical-availability\/wp-ical-availability.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"2b06c5b8-dc32-4bb0-8504-3a9f1c3a1ec0":{"title":"WP MapIt","condition":"wp-mapit\/wp_mapit.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-mapit\/wp_mapit\/js\/leaflet.js","\/wp-mapit\/wp_mapit\/js\/wp_mapit_multipin.js"],"icon_url":"","type":"plugin","id":"plugin:ba8d1c7f294a3f5b593556eb3b0bc7d9","is_default":0,"created_at":1679331261},"2039eafd-1c11-4e21-a61b-30857f291ae3":{"id":"plugin:927b8bf7806f2d287559b86a0b455a59","title":"WP Responsive Menu","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-responsive-menu\/(.*)"],"is_default":0,"condition":"wp-responsive-menu\/wp-responsive-menu.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e06be942-cccd-4b2d-a268-06dc78f0b820":{"title":"WP Search with Algolia","condition":"wp-search-with-algolia\/algolia.php","exclusions":["\/wp-search-with-algolia\/js\/algoliasearch\/dist\/algoliasearch-lite.umd.js","\/wp-search-with-algolia\/js\/autocomplete-noconflict.js","\/wp-search-with-algolia\/js\/autocomplete.js\/dist\/autocomplete.min.js","var algolia"],"icon_url":"","type":"plugin","id":"plugin:43267e659d599fbb6b42c719b49bb7a7","is_default":0,"created_at":1677857180},"4fc2a7ae-b9e6-410e-93cf-e6d1962add6a":{"title":"WP Smart Preloader","condition":"wp-smart-preloader\/wp-preloader.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-smart-preloader\/assets\/js\/wsp-main-script(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:4fb90fc73fc2b5d1e37ea2dadfd3cef3","is_default":0,"created_at":1711125833},"7ecf40ce-2bcd-412c-bb01-9e71fecf6be8":{"title":"WP Store Locator","condition":"wp-store-locator\/wp-store-locator.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-store-locator\/","\/wp-includes\/js\/underscore.min.js","maps.google.com"],"icon_url":"","type":"plugin","id":"plugin:d37bb5054a24471ca1675d9ab49d01b0","is_default":0,"created_at":1704735183},"7a1d19a2-3a48-40ab-8051-f642fc63ce2d":{"title":"WP Ultimate Post Grid","condition":"wp-ultimate-post-grid\/wp-ultimate-post-grid.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/wp-ultimate-post-grid\/dist\/public.js","\/wp-ultimate-post-grid-premium\/dist\/public-premium.js","wpupg_grid_args"],"icon_url":"","type":"plugin","id":"plugin:e24341fef49bd64b89682d583218c108","is_default":0,"created_at":1686597940},"76c86163-ddf3-4113-b620-de9d5058f505":{"title":"WPBakery Page Builder","condition":"js_composer\/js_composer.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js"],"icon_url":"","type":"plugin","id":"plugin:517d7d24da9a7072ed389d0fb30374a0","is_default":0,"created_at":1704404852},"0b8ff2c0-c3cd-4ec1-b7f5-c7751de6101b":{"title":"WPBakery Page Builder - Carousel","condition":"js_composer\/js_composer.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/js_composer\/assets\/lib\/vc_carousel\/js\/vc_carousel.min.js"],"icon_url":"","type":"plugin","id":"plugin:76336ed3f04df091e669f89d908ef2ed","is_default":0,"created_at":1704405212},"4f5e5b98-c326-4b9f-9ada-3b257862132c":{"id":"plugin:1ec7138c950c355e7af60d49c81139fc","title":"wpDataTables","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wpdatatables\/","highcharts"],"is_default":0,"condition":"wpdatatables\/wpdatatables.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"18be1b8c-0bc4-4a01-abc6-a127aff380c6":{"id":"plugin:c62ca58ea081c1271de8dadfa7daac69","title":"WPForms","type":"plugin","icon":"","exclusions":["\/wpforms-offline-forms\/assets\/js\/wpforms-offline-forms.min.js","wpforms-offline-forms-js-extra","wpformsRecaptchaLoad"],"is_default":0,"condition":"wpforms\/wpforms.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"138b2894-25d2-47ce-b33d-cbf1256d8f45":{"title":"WPForms - Loader GIF","condition":"wpforms\/wpforms.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wpforms-conversational-forms\/assets\/js\/conversational-forms.es5.min.js"],"icon_url":"","type":"plugin","id":"plugin:03dc6ae2848dd60e1d4f4f86015c22f0","is_default":0,"created_at":1715863299},"8a3cacb6-81bd-456a-a1cc-a4025f8e5234":{"id":"plugin:0992ac952c0a05bb35e18b1d5744d346","title":"WPForms Lite","type":"plugin","icon":"","exclusions":["wpformsRecaptchaLoad","\/wpforms-offline-forms\/assets\/js\/wpforms-offline-forms.min.js","wpforms-offline-forms-js-extra"],"is_default":0,"condition":"wpforms-lite\/wpforms.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"98bbd410-5b01-4244-a8eb-715765180328":{"title":"XL WooCommerce Sales Triggers","condition":"xl-woocommerce-sales-triggers\/xl-woocommerce-sales-triggers.php","exclusions":["\/xl-woocommerce-sales-triggers\/assets\/js\/wcst_combined.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:ba9e526ddb0157e69757530c6b18b714","is_default":0,"created_at":1677856813},"bf9f9620-dd0e-4e6f-9a45-4eb78a148f42":{"id":"plugin:58663fc781232169e865f6fe7cf1afaa","title":"YITH WooCommerce Ajax Product Filter","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/yith-woocommerce-ajax-navigation\/assets\/js\/yith-wcan-shortcodes.min.js"],"is_default":0,"condition":"yith-woocommerce-ajax-navigation\/init.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"b053279d-e07c-438c-bb3e-3a1f4f5d7c5e":{"id":"plugin:68b637fd247e40c8e135e4771d739b07","title":"YITH WooCommerce AJAX Product Filter Premium","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/yith-woocommerce-ajax-product-filter-premium\/assets\/js\/yith-wcan-shortcodes.min.js"],"is_default":0,"condition":"yith-woocommerce-ajax-product-filter-premium\/init.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"62056165-8bd9-4ff0-b21f-e4ed0ae45fae":{"title":"YITH WooCommerce Points and Rewards","condition":"yith-woocommerce-points-and-rewards-premium\/init.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/yith-woocommerce-points-and-rewards-premium\/assets\/js\/frontend.min.js","\/woo-variation-swatches-pro\/assets\/js\/add-to-cart-variation.min.js"],"icon_url":"","type":"plugin","id":"plugin:4acc87d4eb72c86cdea76d180b61a098","is_default":0,"created_at":1709917756},"d94dbbf3-bcab-4e47-9fbb-6b3a7cf92787":{"title":"Yotpo Social Reviews for Woocommerce","condition":"yotpo-social-reviews-for-woocommerce\/wc_yotpo.php","exclusions":["\/yotpo-social-reviews-for-woocommerce\/assets\/js\/headerScript.js"],"icon_url":"","type":"plugin","id":"plugin:45ab742b3fccbd04d7bc973c8582be87","is_default":0,"created_at":1680686421},"51dccf53-5cc7-4283-9ab1-01d34c6cce22":{"title":"Zoho SalesIQ","condition":"zoho-salesiq\/index.php","exclusions":["zoho.salesiq"],"icon_url":"","type":"plugin","id":"plugin:b96c3865575068aac82c973eb3e3c52a","is_default":0,"created_at":1713536671}},"themes":{"9aeea459-91d3-44b6-8a26-b883dca8b402":{"title":"Agensy - Load page without User Interaction","condition":"agensy","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/agensy\/js\/scripts.js","\/themes\/agensy\/js\/scripts-single.js","\/themes\/agensy\/js\/wow.min.js","\/themes\/agensy\/js\/TweenMax.min.js","\/themes\/agensy\/js\/swiper.min.js","\/plugins\/visualcomposer\/assets\/lib\/bower\/isotope\/dist\/isotope.pkgd.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","type":"theme","id":"theme:7ab7dfeb0db9c0c74c020be318c2e6d9","is_default":0,"created_at":1707317936},"9c623554-5834-4669-9e96-1b894c1939b2":{"id":"theme:0193ea55fce2ada93b262f2824008c0f","title":"Andaman","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/andaman\/assets\/js\/","\/wp-andaman-plugins\/shortcodes\/vc_extend\/"],"is_default":0,"condition":"andaman","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"7374c5a5-69f8-460f-b44f-dee884a824cd":{"id":"theme:24cbda63f1b898ade5562ab4ec6d97a5","title":"Artale","type":"theme","icon":"","exclusions":["\/artale-elementor\/assets\/js\/modulobox.js","\/artale-elementor\/assets\/js\/artale-elementor.js","\/artale\/js\/jquery-stellar.js","\/artale\/js\/core\/artale-plugins.js","\/artale\/js\/core\/artale-custom.js","var loader"],"is_default":0,"condition":"artale","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"23b01203-2a70-4394-9326-d59824def2d7":{"title":"Ashe Pro Premium","condition":"ashe-pro-premium","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/ashe-pro-premium\/"],"icon_url":"","type":"theme","id":"theme:4791da3cbbd1ed86253a087f0287aeb4","is_default":0,"created_at":1704912793},"03a9cc62-c167-447d-beb2-65c76c96b056":{"title":"Astra","condition":"astra","exclusions":["\/astra\/assets\/js\/minified\/frontend.min.js","replace\\(\/woocommerce-no-js\/,"],"icon_url":"","type":"theme","id":"theme:3cce5f3eaf76e098ba8e28f7bbba3f92","is_default":0,"created_at":1712608792},"2a2b54cb-8e1d-49d2-bfca-93eee231e470":{"id":"theme:72a8d63e59c10bdf512a62b862d143a7","title":"Astra - Carousel","type":"theme","icon":"","exclusions":["var astra","\/astra\/assets\/js\/minified\/style.min.js"],"is_default":0,"condition":"astra","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"7783361f-66fc-4d95-a054-4e9545bb5b48":{"title":"Auteur","condition":"g5plus-auteur","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/g5plus-auteur\/assets\/js\/core.min.js","\/g5plus-auteur\/assets\/vendors\/","\/auteur-framework\/libs\/smart-framework\/assets\/vendors\/perfect-scrollbar\/js\/perfect-scrollbar.jquery.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","type":"theme","id":"theme:6207fe478e269e7547bda70a46607a49","is_default":0,"created_at":1679737107},"4c618038-8fc7-4d48-8d41-a32da14e5c1e":{"title":"AutoTrader","condition":"autotrader","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/autotrader\/(.*).js"],"icon_url":"","type":"theme","id":"theme:046dfeee2b77390c53e0e7f93b6a3792","is_default":0,"created_at":1679736741},"18f04f23-35a0-4c45-8cb6-a91d57ca1790":{"id":"theme:835da12f43373029659f766920e81b47","title":"Avada - Animations & mobile-specific actions","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/fusion-scripts\/(.*).js","window.off_canvas_","\/plugins\/fusion-builder\/","\/plugins\/fusion-core\/","\/Avada\/includes\/"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"90135867-1b95-498b-80d6-f5dbf2f6b318":{"title":"Avada - FAQ shortcode","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/fusion-core\/js\/min\/avada-faqs.js"],"icon_url":"","type":"theme","id":"theme:b084708c80d8582546e5430219aa4670","is_default":0,"created_at":1678277160},"d23b5bb1-1d7f-4109-bf69-b20a2be2d337":{"id":"theme:5e7a2248e1a53d9bb27b187deb541248","title":"Avada - Fusion carousel","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.carouFredSel.js","\/includes\/lib\/assets\/min\/js\/general\/fusion-carousel.js","fusionCarouselVars"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"98dfa8c1-e72a-4cef-a0b2-8f0c322490fc":{"id":"theme:f16fb109027f4994a7649a8b1663e6f7","title":"Avada - Fusion form","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-form.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-form-logics.js","\/includes\/lib\/assets\/min\/js\/library\/cssua.js","\/includes\/lib\/assets\/min\/js\/general\/fusion.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"026801fa-af67-47ba-b966-347693f0585f":{"id":"theme:33f50696d353d8bd4eb59ff6e8f44c97","title":"Avada - Fusion grid gallery","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-gallery.js","\/includes\/lib\/assets\/min\/js\/library\/imagesLoaded.js","\/includes\/lib\/assets\/min\/js\/library\/isotope.js","\/includes\/lib\/assets\/min\/js\/library\/packery.js","\/includes\/lib\/assets\/min\/js\/library\/lazysizes.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c8349314-15a3-481e-973b-e4d936e4420e":{"id":"theme:56fa9993a573540c83eda9c49fae5e3c","title":"Avada - Fusion slider","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-core\/js\/min\/avada-fusion-slider.js","\/Avada\/includes\/"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"7a04bc85-0fec-4487-ae05-bb2e5d8d0420":{"title":"Avada - Load Portfolio on pageload","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/library\/packery.js","\/library\/isotope.js","\/library\/imagesLoaded.js","\/general\/fusion-lightbox.js","\/fusion-core\/js\/min\/avada-portfolio.js"],"icon_url":"","type":"theme","id":"theme:c3f0ed4d94499b68c77d95db37d1d399","is_default":0,"created_at":1696601814},"55bd510c-78aa-49d5-8304-8be2ee2ab0da":{"id":"theme:2189c1c769d65cfc2182e4822847071b","title":"Avada - Mobile menu","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/assets\/min\/js\/general\/avada-menu.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.easing.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"ddf00672-c35c-4b68-aeca-925e68bf12b2":{"id":"theme:97a185f08af70c39c7e221faab0f73eb","title":"Avada - OffCanvas","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/fusion-scripts\/(.*).min.js","window.off_canvas_"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"17544cc3-9d3a-4611-bc5d-44d04e2786fa":{"title":"Avada - Show the Portfolio grid on page load","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/includes\/lib\/assets\/min\/js\/library\/imagesLoaded.js","\/includes\/lib\/assets\/min\/js\/library\/isotope.js","\/includes\/lib\/assets\/min\/js\/library\/lazysizes.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js","\/includes\/lib\/assets\/min\/js\/library\/packery.js","\/fusion-core\/js\/min\/avada-portfolio.js","avadaPortfolioVars"],"icon_url":"","type":"theme","id":"theme:9d1a9b0c2ca20fca764a82f197b962fd","is_default":0,"created_at":1696601823},"c6c3347c-14e0-4766-afa5-df33a47f5a5a":{"id":"theme:3ff44421b404c5efffa25e78e479e4ea","title":"Avada - Sticky menu","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Avada\/assets\/min\/js\/general\/avada-menu.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"232596c1-6a6a-4fe8-a5c3-a60fa74a9456":{"id":"theme:0d727d80bb132f17c737e55883fe4be0","title":"Avada - WooCommerce product gallery","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/assets\/min\/js\/general\/avada-woo-product-images.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.flexslider.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"95ece7e4-3b19-45e5-aa28-14f833c9afca":{"title":"Avesa","condition":"avesa","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/avesa\/js\/main.js","\/avesa\/js\/isotope.js","\/sw_core\/js\/slick.min.js","\/avesa\/js\/bootstrap-datetimepicker.min.js","\/avesa\/js\/bootstrap.min.js"],"icon_url":"","type":"theme","id":"theme:aad8bfcc594eec02e3b0d635198dee5e","is_default":0,"created_at":1679737993},"f2bfe477-4e45-4e52-a7d9-4d0ba3a92258":{"title":"Besa","condition":"besa","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/besa\/js\/"],"icon_url":"","type":"theme","id":"theme:c238e89523c46ca28b08e401f42f6ccc","is_default":0,"created_at":1679738204},"bd94908c-8138-4995-986b-47ec66494bdd":{"title":"BeTheme","condition":"betheme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/betheme\/","mfn","\/wp-includes\/js\/jquery\/ui\/tabs.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js"],"icon_url":"","type":"theme","id":"theme:b99156eb9eeb357c0a70bd3bda6861cc","is_default":0,"created_at":1679738639},"190d2f1a-72a6-40ca-b08a-5c7ee7b0a6a5":{"title":"Bosa Online Education - Fixes animations and preloader","condition":"bosa-online-education","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/bosa\/assets\/js\/jquery.slicknav.min.js","\/bosa\/assets\/slick\/slick.min.js","\/bosa\/assets\/js\/navigation.js","\/bosa\/assets\/js\/custom.min.js","\/bosa\/assets\/js\/theia-sticky-sidebar.min.js"],"icon_url":"","type":"theme","id":"theme:5430bf7b83c83a3687b3b7b437e961b0","is_default":0,"created_at":1708371742},"6fb2b9d7-6ecc-4260-999c-938fbebdbf01":{"id":"theme:de8504b73ea228d0ea9bbce69752092e","title":"Bridge","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/bridge-creative\/bridge\/js\/","\/wp-includes\/js\/"],"is_default":0,"condition":"bridge","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"1dd63427-b4c9-4596-b952-ac711e3637f9":{"title":"Bridge - Load elements without user interaction","condition":"bridge","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/bridge\/js\/default.min.js","\/wp-content\/themes\/bridge\/js\/plugins.js","\/wp-content\/themes\/bridge\/js\/default_dynamic.js","\/wp-content\/themes\/bridge\/js\/jquery.touchSwipe.min.js"],"icon_url":"","type":"theme","id":"theme:ad9b810efd365ad9a27987d2912b94cd","is_default":0,"created_at":1710252260},"65698b6b-85dd-41ef-8fd7-718f1e983dba":{"title":"Car Dealer","condition":"cardealer","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/(.*)","\/cardealer\/js\/(.*)"],"icon_url":"","type":"theme","id":"theme:b1111424fff61af8d1e152dcdd6810f6","is_default":0,"created_at":1679737517},"3927d724-5a0a-402b-a838-858d30b54ea9":{"title":"Cardea - Show Page Content on Load","condition":"cardea-wp","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/cardea-wp\/js\/main.js","\/themes\/cardea-wp\/js\/jquery.sticky.js","\/themes\/cardea-wp\/js\/jquery.fitvids.js","\/themes\/cardea-wp\/js\/jquery.smartmenus.min.js"],"icon_url":"","type":"theme","id":"theme:d65d1a8303b0c7508278884520e4bec7","is_default":0,"created_at":1698677525},"087fb457-a09d-4140-84bd-c9bc1e8195b7":{"title":"CheerUp","condition":"cheerup","exclusions":["\/cheerup\/js\/jquery.sticky-sidebar.js","\/cheerup\/js\/object-fit-images.js","\/cheerup\/js\/jquery.fitvids.js","\/cheerup\/js\/jquery.mfp-lightbox.js","\/cheerup\/js\/ie-polyfills.js","\/cheerup\/js\/theme.js","\/wp-includes\/js\/imagesloaded.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/jquery.min.js"],"icon_url":"","type":"theme","id":"theme:13bcf562f45afb245dc4f76fecfba6d6","is_default":0,"created_at":1696429398},"eb86aedb-91e6-480c-b76c-756ac1da41be":{"title":"Clover","condition":"clover-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/clover-theme\/"],"icon_url":"","type":"theme","id":"theme:89372f3d9321ae09c94488592084da29","is_default":0,"created_at":1679738878},"6e90b649-5736-497f-9bc6-515900cfea8a":{"title":"Divi - Animations","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI"],"icon_url":"","type":"theme","id":"theme:c0abf30dba4ff13db836d1b01685953a","is_default":0,"created_at":1679737389},"70916c43-4e02-4932-b6aa-91a1815bc755":{"title":"Divi - Background video","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/Divi\/js\/custom.unified.js","\/js\/mediaelement\/(.*)","mejs"],"icon_url":"","type":"theme","id":"theme:c7edea41ae6716291e2d32a2ab429209","is_default":0,"created_at":1679738240},"08531785-9818-4e30-903e-564637a2ad7a":{"title":"Divi - Counter module","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/easypiechart.js"],"icon_url":"","type":"theme","id":"theme:2c46b9f5a770f260c3f7115bb330b2d5","is_default":0,"created_at":1679736810},"1d63dd7c-7bc7-4629-b03d-0437e177af32":{"title":"Divi - Load Animated Elements on Page Load","condition":"Divi","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/easypiechart.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/salvattore.js"],"icon_url":"","type":"theme","id":"theme:5df38c80278da90f725c16d68ea25aa1","is_default":0,"created_at":1719498170},"b996762a-84ef-440d-a089-73a187936fbf":{"title":"Divi - Mobile menu","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js"],"icon_url":"","type":"theme","id":"theme:b9116994f4e4b9b9fa574440c00d2f0d","is_default":0,"created_at":1679738580},"ae096e1e-9c36-46ad-a3d1-c26ea507276b":{"title":"Divi - Sticky elements","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/sticky-elements.js","var DIVI"],"icon_url":"","type":"theme","id":"theme:8b62db03c90245f3e690335b079b05dc","is_default":0,"created_at":1679737191},"349f31f0-dd10-41d3-b0a4-9c5df64879f8":{"title":"Divi - Sticky menu","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/js\/jquery\/jquery-migrate.min.js","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/magnific-popup.js","jqueryParams","firstHeader"],"icon_url":"","type":"theme","id":"theme:b7b84aca0f0dc6a1ced31d38626c50ea","is_default":0,"created_at":1679738821},"59563458-5f04-4959-b3e2-53e49e169d67":{"title":"Divi - WooCommerce Single Product Images","condition":"Divi","exclusions":["\/Divi\/js\/scripts.min.js"],"icon_url":"","type":"theme","id":"theme:f9c5bdba8b39fc877b41dea00fa756f9","is_default":0,"created_at":1684342262},"6426539e-4e43-4fef-ab5a-3eb7b2a8b057":{"title":"Eikra","condition":"eikra","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/eikra\/assets\/js\/","EikraObj"],"icon_url":"","type":"theme","id":"theme:55d2581ad975eb6325bc97fc3d3b0cb8","is_default":0,"created_at":1679738450},"59020bd6-069f-4f2d-afa2-fbdefa03211c":{"title":"Ekko","condition":"ekko","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ekko\/"],"icon_url":"","type":"theme","id":"theme:2c06f4a1949f8ba4e77042a47674fd9e","is_default":0,"created_at":1679737803},"d82f5cdd-c5d3-4596-94dc-1e25aaff2083":{"title":"Elessi","condition":"elessi-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elessi-theme\/assets\/js\/min\/functions.min.js","\/elessi-theme\/assets\/js\/min\/main.min.js"],"icon_url":"","type":"theme","id":"theme:d5d2b7fda7b8a2b5b91d430f7602e230","is_default":0,"created_at":1679737773},"f0587c21-54d0-429d-8efe-18a93dacb18d":{"id":"theme:5fc04cc678cb54567aedb51027933002","title":"Enfold","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/dynamic_avia\/avia-footer-scripts-(.*).js","var avia_is_mobile"],"is_default":0,"condition":"enfold","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c93ee1ee-3956-4278-9ee9-1a0968753e86":{"title":"Enfold - Fix hamburger menu","condition":"enfold","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/enfold\/js\/avia-snippet-hamburger-menu.js","\/enfold\/js\/avia.js","\/enfold\/js\/shortcodes.js","\/enfold\/js\/waypoints\/waypoints.js"],"icon_url":"","type":"theme","id":"theme:2b0c22c5169b94c2eabb125d18915246","is_default":0,"created_at":1715090218},"cc0550cb-918e-419d-b4f2-1809cf666dbb":{"id":"theme:eb759a03d0ca292c948f09d004a2963f","title":"Enfold - LayerSlider","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","layerslider"],"is_default":0,"condition":"enfold","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"ec883654-4f63-4fae-a3ef-923dcbc2426d":{"title":"Enfold - Shortcodes","condition":"enfold","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/enfold\/js\/avia(.min)?.js","\/enfold\/js\/shortcodes(.min)?.js","\/enfold\/config-templatebuilder\/avia-shortcodes\/","\/enfold\/js\/avia-compat(.min)?.js","\/enfold\/js\/waypoints\/waypoints.min.js","\/enfold\/js\/avia-snippet-(.*).js","\/enfold\/js\/avia-js(.min)?.js","\/enfold\/js\/aviapopup\/jquery.magnific-popup(.min)?.js"],"icon_url":"","type":"theme","id":"theme:072fc4077d7071791d774d6ddbf5dc2a","is_default":0,"created_at":1712954619},"fe3546f0-be3e-4173-8992-a7f6f203b82f":{"title":"Envision","condition":"envision","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/envision\/lib\/js\/app.min.js","var CloudFwOp"],"is_default":1,"icon_url":"","type":"theme","id":"theme:fc5f7d69b646ed95835badc0fc23bc11","created_at":1679737494},"d997b942-19de-4710-9c81-79d3c65cbd76":{"id":"theme:047f009f2a1f4cdf2088c46be47e385b","title":"Ewebot","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/gt3-themes-core\/","\/uploads\/gt3-assets\/js\/(.*)","\/wp-includes\/js\/imagesloaded.min.js"],"is_default":0,"condition":"ewebot","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"53d29aec-8ae4-4273-b748-f5bd52dfe177":{"title":"Farvis","condition":"farvis","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/farvis\/"],"icon_url":"","type":"theme","id":"theme:26bff2f3a6ff6347d35edf5c77a35687","is_default":0,"created_at":1679737972},"fb01246b-a5f8-4021-b514-c02cf55e80bd":{"title":"Flatsome","condition":"flatsome","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/flatsome\/assets\/js\/flatsome.js","\/flatsome\/assets\/libs\/packery.pkgd.min.js","\/flatsome\/assets\/js\/woocommerce.js"],"icon_url":"","type":"theme","id":"theme:26fb1cf80f074ca199d8a7e94c5fc796","is_default":0,"created_at":1679738732},"4d65dc12-9ce7-4171-94a7-9821fd95240e":{"id":"theme:28a6f8b3319c107a34603be0f01a4bcf","title":"Flatsome - Google map","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","maps.googleapis.com","google.maps.LatLng","\/wp-includes\/js\/hoverIntent.min.js"],"is_default":0,"condition":"flatsome","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"890e15b6-c66b-4a9e-9b7d-55417df94916":{"title":"Flatsome - Images","condition":"flatsome","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/flatsome\/inc\/integrations\/wp-rocket\/flatsome-wp-rocket.js","\/flatsome\/assets\/js\/flatsome.js","\/flatsome\/inc\/extensions\/flatsome-lazy-load\/flatsome-lazy-load.js"],"icon_url":"","type":"theme","id":"theme:f2d60aad9f2f5395e3e145cf8f8ab165","is_default":0,"created_at":1679737691},"cb54d070-8ee0-4c35-9fa9-b2bac73ccf39":{"title":"Frida","condition":"frida","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/frida\/"],"icon_url":"","type":"theme","id":"theme:109ddf56796a5133e12279f3daa5ff62","is_default":0,"created_at":1679738013},"435fe79f-47ba-422e-aca6-cea566f6b8a1":{"title":"Gardena Theme","condition":"gardena","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/gardena\/"],"icon_url":"","type":"theme","id":"theme:993e6f0fc44b9e55c0a565b84a449340","is_default":0,"created_at":1713905793},"9e78539a-03d9-442b-ab94-dd3b7a9658e4":{"id":"theme:80a330247d61d729fcd78dc01de6ed2f","title":"GeneratePress - Mobile menu","type":"theme","icon":"","exclusions":["\/generatepress\/assets\/js\/menu.min.js","generatepressMenu","\/gp-premium\/menu-plus\/functions\/js\/offside.min.js"],"is_default":0,"condition":"generatepress","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"02d47d01-56f5-4801-b319-cff1707dd59d":{"title":"Harmuny - Modern WordPress Blog Theme","condition":"harmuny","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/harmuny\/"],"icon_url":"","type":"theme","id":"theme:1ff9662c2a3e3221052cbe229feed18c","is_default":0,"created_at":1712153245},"6373bbb2-877c-4075-b6e4-7c58d686b25c":{"title":"HealthFirst - Prevent console errors","condition":"healthfirst","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-includes\/js\/hoverIntent.min.js","\/wp-content\/plugins\/healthfirst-core\/assets\/js\/healthfirst-core.min.js","\/wp-content\/plugins\/healthfirst-core\/assets\/plugins\/modernizr\/modernizr.js","\/wp-content\/plugins\/healthfirst-core\/assets\/plugins\/perfect-scrollbar\/perfect-scrollbar.jquery.min.js","\/wp-content\/themes\/healthfirst\/assets\/js\/main.min.js","\/wp-content\/themes\/healthfirst\/assets\/plugins\/waitforimages\/jquery.waitforimages.js"],"icon_url":"","type":"theme","id":"theme:d244b3c692f8d023048207dbe9eb84da","is_default":0,"created_at":1699370973},"2c72e7e6-cb77-44e9-af87-d5c42ae6db52":{"title":"Honor - WPBakery fix","condition":"honor","exclusions":["\/honor\/js\/__scripts.js","HONOR_STORAGE","\/js_composer\/"],"icon_url":"","type":"theme","id":"theme:9f228373ff4d172655dbf5cb3b1bc23a","is_default":0,"created_at":1679736895},"9309d1d3-1035-4a2c-8ced-075bc3ff9957":{"title":"HotelMaster","condition":"hotelmaster","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/hotelmaster\/javascript\/gdlr-script.js","\/hotelmaster\/plugins\/dl-menu\/modernizr.custom.js","\/hotelmaster\/plugins\/dl-menu\/jquery.dlmenu.js","\/hotelmaster\/plugins\/superfish\/js\/superfish.js","\/hotelmaster\/plugins\/jquery.easing.js"],"icon_url":"","type":"theme","id":"theme:978eaddad3b1047e479407b6d92197aa","is_default":0,"created_at":1679738595},"4a09f745-cbb1-47c8-b50a-c8014d5d1335":{"id":"theme:e813a548bceac6765a1cdf2316f1a6ab","title":"HotelMaster - Blog","type":"theme","icon":"","exclusions":["\/wp-includes\/js\/masonry.min.js","\/gp-premium\/blog\/functions\/js\/scripts.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"is_default":0,"condition":"hotelmaster","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"f2d8f704-ec68-4278-9ca2-885daa0c1ce5":{"id":"theme:398a264e302e42640553681e8759cd07","title":"HotelMaster - Masonry","type":"theme","icon":"","exclusions":["\/gp-premium\/menu-plus\/functions\/js\/offside.min.js","offSide"],"is_default":0,"condition":"hotelmaster","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"92b2e258-1f44-41c1-b1bd-f117f61ee49d":{"title":"Jannah Theme - Fix masonry grid","condition":"jannah","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/masonry.min.js","\/wp-includes\/js\/jquery\/jquery.masonry.min.js","tie-"],"icon_url":"","type":"theme","id":"theme:35f7f183089309f52046377ca65e905a","is_default":0,"created_at":1699642920},"df52436c-53d6-461a-b81a-cd0b21680524":{"title":"JNews","condition":"jnews","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/jnews\/assets\/js\/","jnews","jfla"],"icon_url":"","type":"theme","id":"theme:5d90e451984f9d894b1aabb0d00f30a2","is_default":0,"created_at":1679738860},"87ed69a2-3295-4fad-a82e-eeb02925a5dc":{"title":"Jobify","condition":"jobify","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jobify\/js\/jobify.min.js","\/jobify\/js\/select2.full.min.js"],"icon_url":"","type":"theme","id":"theme:592006aa4562a6915e344e5e2a09e5ee","is_default":0,"created_at":1704735224},"28a0b1ea-8d2f-4931-a48a-166b8df8a773":{"title":"JOYN","condition":"joyn","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/swift-framework\/includes\/page-builder\/frontend-assets\/js\/lib\/modernizr-custom.js","\/swift-framework\/includes\/page-builder\/frontend-assets\/js\/spb-functions.min.js","\/swift-framework\/includes\/swift-slider\/assets\/js\/swift-slider.min.js","\/swift-framework\/public\/js\/lib\/imagesloaded.pkgd.min.js","\/joyn\/js\/owl.carousel.min.js","\/joyn\/js\/theme-scripts.js","\/joyn\/js\/functions.js"],"icon_url":"","type":"theme","id":"theme:c395470ad2d4d681836cd942bbb03120","is_default":0,"created_at":1679738527},"542be60a-2346-4740-9a41-8a580c4f013c":{"title":"Juno Toys","condition":"junotoys","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/junotoys\/fw\/js\/core.init.js","\/junotoys\/fw\/js\/core.utils.js","\/junotoys\/fw\/js\/superfish.js","\/junotoys\/fw\/js\/swiper\/swiper.js","\/trx_utils\/shortcodes\/theme.shortcodes.js","\/wp-includes\/js\/jquery\/ui\/(.*)"],"icon_url":"","type":"theme","id":"theme:2acab38e8356d36355bb81d931e7fba4","is_default":0,"created_at":1679737788},"06167710-10c7-446e-a08b-ce676e444102":{"title":"Jupiter","condition":"jupiter","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jupiter\/","\/wp-includes\/js\/underscore.min.js","WebFont.load"],"icon_url":"","type":"theme","id":"theme:89c5c30498c2989611f9044be006197c","is_default":0,"created_at":1679738430},"5d042e1f-7e62-4ec4-ba31-30d396004522":{"title":"JupiterX","condition":"jupiterx","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jupiterx\/(.*).js","\/wp-includes\/js\/underscore.min.js","WebFont.load"],"icon_url":"","type":"theme","id":"theme:b06632962a4948d4944fd8d79ffbfceb","is_default":0,"created_at":1679737312},"c4b030ea-66a1-4729-85bf-a484e373a316":{"title":"Kadence","condition":"kadence","exclusions":["\/kadence\/assets\/js\/navigation.min.js","mobile_menu_breakpoint","kadenceConfig"],"icon_url":"","type":"theme","id":"theme:4b7907ee68218db279648da9bf7102d1","is_default":0,"created_at":1704735260},"20c605b4-3e3a-4bb0-a5e5-a08e2cb0f31f":{"title":"Kalium","condition":"kalium","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/kalium\/assets\/js\/main.min.js","mobile_menu_breakpoint","var _k"],"icon_url":"","type":"theme","id":"theme:1fcb99a1ab06e1e36635365ed3e59ce5","is_default":0,"created_at":1679737406},"e1e04a7d-635a-4e28-83d9-e345ce40e354":{"title":"Kava","condition":"kava","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/kava\/assets\/js\/theme-script.js"],"icon_url":"","type":"theme","id":"theme:359d67efbf530c998245225dd3245a88","is_default":0,"created_at":1679738609},"e833c36e-ee89-4924-b608-3f28327c2f85":{"title":"Lay","condition":"lay","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/backbone.min.js","\/wp-includes\/js\/underscore.min.js","\/lay\/","\/laytheme-carousel\/","window.laytheme"],"icon_url":"","type":"theme","id":"theme:7c718c6da874ea6e4b27c6d70bc4e7e8","is_default":0,"created_at":1679737453},"2df2ef47-a833-4711-ba54-48dc62586f37":{"id":"theme:85d9922ac61ed833fd047a67029df8e5","title":"LazaNews","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jquery.custom.js"],"is_default":0,"condition":"lazanews","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"9443304a-34e9-4700-a03a-5f8f62f83ed1":{"title":"Listeo","condition":"listeo","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/listeo\/js\/"],"icon_url":"","type":"theme","id":"theme:db7da585545001f5ae614a2810f08f3a","is_default":0,"created_at":1679737244},"77afa73c-c4a8-42a8-aaee-43f6a761364e":{"title":"ListingPro","condition":"listingpro","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/listingpro\/assets\/lib\/jquerym.menu\/js\/jquery.mmenu.min.all.js","\/listingpro\/assets\/lib\/Magnific-Popup-master\/jquery.magnific-popup.min.js","\/listingpro\/assets\/js\/select2.full.min.js","\/listingpro\/assets\/js\/jquery.city-autocomplete.js","\/listingpro\/assets\/js\/chosen.jquery.min.js","\/listingpro\/assets\/lib\/bootstrap\/js\/bootstrap-slider.js","\/listingpro\/assets\/js\/jquery-ui.js","\/listingpro\/assets\/js\/mapbox.js","\/listingpro\/assets\/js\/main.js","\/listingpro\/assets\/js\/leaflet.markercluster.js","maps"],"icon_url":"","type":"theme","id":"theme:0b365e43dfc65d2b1b70fac6510c7c9c","is_default":0,"created_at":1679737938},"01b369b5-b578-4314-8e95-40b67a41d75a":{"title":"Master Study","condition":"masterstudy","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/masterstudy\/assets\/js\/custom.js","\/masterstudy\/assets\/vendors\/jquery.fancybox.min.js","\/masterstudy\/assets\/js\/select2.full.min.js"],"icon_url":"","type":"theme","id":"theme:0ee224c20e4ef7d546733d933db598f2","is_default":0,"created_at":1704735299},"6b000cc7-d33b-4109-9c39-6119a5d81cde":{"title":"Maya","condition":"maya","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/maya\/js\/jquery.mobilemenu.js","\/maya\/js\/jquery.custom.js","\/maya\/core\/includes\/js\/jquery.tipsy.js"],"icon_url":"","type":"theme","id":"theme:719fe28004fcdd81a820602924aa8074","is_default":0,"created_at":1679737916},"ef3c76d6-1041-473d-81ea-a5a6e8c86735":{"title":"MH Magazine","condition":"mh-magazine","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/mh-magazine\/"],"icon_url":"","type":"theme","id":"theme:2a0cd6efc2f46be69de61712729a2ec9","is_default":0,"created_at":1679737743},"9cbb2777-5524-43b8-af36-692b27452c0d":{"title":"Minimog","condition":"minimog","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/minimog\/"],"icon_url":"","type":"theme","id":"theme:61c0c235042359ee7d2a9035e79a7da2","is_default":0,"created_at":1679738135},"7eb81c74-8062-4a6c-bf66-b7c5bc160141":{"title":"Moozo Elementor","condition":"moozo-elementor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/moozo-elementor\/assets\/js\/countdown.js","\/moozo-elementor\/assets\/vendor\/countdown\/countdown.min.js"],"icon_url":"","type":"theme","id":"theme:2ddb538c8e6b6c766fffd0d5c861fd82","is_default":0,"created_at":1679738623},"e90b7bfa-9ff6-4e1a-bf29-6207d55fdd39":{"title":"Motor","condition":"motor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/motor\/js\/"],"icon_url":"","type":"theme","id":"theme:b33538179f5661a86cbe327a1793e199","is_default":0,"created_at":1683973354},"445e625a-f955-41fa-84de-65d9ea19be07":{"title":"My Listing","condition":"my-listing","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/my-listing\/assets\/","\/wp-includes\/js\/dist\/vendor\/moment.min.js","maps.googleapis.com","MyListing","_Explore_Settings"],"icon_url":"","type":"theme","id":"theme:afacb777229ddf5cabceacc64948057d","is_default":0,"created_at":1679737725},"00b8cd2d-2781-4fbb-ac5d-00750ba94ac9":{"title":"Neve - Mobile menu","condition":"neve","exclusions":["\/neve\/assets\/js\/build\/modern\/frontend.js"],"icon_url":"","type":"theme","id":"theme:5ae731cc06dd9284f8172675a6fe81ab","is_default":0,"created_at":1679738714},"483abc54-f1fc-47dc-bfc1-a269c7d1c849":{"title":"Newspaper - Images","condition":"Newspaper","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","tagdiv_theme.min.js","tdBlocksArray","\/wp-includes\/js\/underscore.min.js","\/td-cloud-library\/assets\/js\/","\/npm\/slick-carousel@1.8.1\/slick\/slick.min.js","tdb-gallery-wrap","tdBlocksArray","tdb_"],"icon_url":"","type":"theme","id":"theme:649ff22527bac2b1c8e0115cd3851d53","is_default":0,"created_at":1695805761},"50db8d14-d421-4237-be14-a6f7b5c11ec5":{"title":"Newspaper - Slider & YouTube","condition":"Newspaper","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","tagdiv_theme.min.js","tdBlocksArray","tdb_globals","td_youtube_list_ids","iosSlider","\/td-cloud-library\/assets\/js\/js_files_for_front.min.js","\/wp-includes\/js\/underscore.min.js","\/td-cloud-library\/assets\/js\/","\/npm\/slick-carousel@1.8.1\/slick\/slick.min.js","tdb-gallery-wrap","tdBlocksArray","tdb_"],"icon_url":"","type":"theme","id":"theme:7e2eeee57ae458c5959342eda6526bf1","is_default":0,"created_at":1695805747},"514f4c30-2b67-4648-960e-dfe1cc401ca5":{"title":"Niva","condition":"niva","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/niva\/js\/","\/sweetthemes-framework\/js\/","mt_typed"],"icon_url":"","type":"theme","id":"theme:c4838f73a344b829ed626635e210dcf4","is_default":0,"created_at":1679738256},"e67ee504-c3b1-455e-88ab-1fae8c830652":{"title":"OceanWP","condition":"oceanwp","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/oceanwp\/"],"icon_url":"","type":"theme","id":"theme:db37af4b7d12695d37d9256313a5f37a","is_default":0,"created_at":1679737552},"e44e240a-8765-4f4f-b67e-d54e4b727506":{"title":"OceanWP - Mobile menu","condition":"oceanwp","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ocean-side-panel\/assets\/js\/side-panel.min.js","\/oceanwp\/assets\/js\/theme.vanilla.min.js"],"icon_url":"","type":"theme","id":"theme:9babbcd52b2ce558d299a06cd1130a11","is_default":0,"created_at":1679738463},"897b0100-958d-4a02-b6b2-1e753e9869f4":{"title":"PenNews","condition":"pennews","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pennews\/js\/script.min.js","\/pennews\/js\/script.lib.min.js"],"icon_url":"","type":"theme","id":"theme:02811fa00bc1471bb5be0457ce0ee005","is_default":0,"created_at":1704735339},"edd3ba03-e0fd-4b6e-911b-60b29f3471bf":{"title":"Pharmacy Mentor","condition":"pharmacymentor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/pharmacymentor\/"],"icon_url":"","type":"theme","id":"theme:3188aaf1ef2c39937450f2a14ebb1174","is_default":0,"created_at":1679738214},"725415ff-cc76-45cc-a131-3170e5aa30fc":{"title":"Porto","condition":"porto","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/","\/porto\/js\/theme.js","\/porto\/js\/theme.min.js"],"icon_url":"","type":"theme","id":"theme:8493f398f200c8dffe60d46439dd3360","is_default":0,"created_at":1679737758},"2c19bcec-f3ff-4873-bfd7-db6bc0f6433c":{"title":"Porto - Owl Carousel","condition":"porto","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-includes\/js\/jquery\/ui\/","\/porto\/js\/theme(|.min).js","\/porto\/js\/libs\/owl.carousel(|.min).js","\/porto\/js\/theme-async(|.min).js","\/prettyPhoto\/jquery.prettyPhoto(|.min).js"],"icon_url":"","type":"theme","id":"theme:f34f5199fb7fca78852cd3fb7758f178","is_default":0,"created_at":1687527252},"5b11ec89-1cb2-4793-8b77-79e917e810a0":{"title":"Pro Theme - Fix menu and accordions","condition":"pro","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/pro\/cornerstone\/assets\/js\/site\/cs-classic.(.*).js"],"icon_url":"","type":"theme","id":"theme:8f30d70dd2d9a0386445aef8fdd534a9","is_default":0,"created_at":1708100602},"31347ccb-f69e-4cd3-bd47-b80ce14ac76e":{"title":"ProPhoto","condition":"prophoto7","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/prophoto7\/js\/bundle.front.js","\/wp-includes\/js\/underscore.min.js","PROPHOTO"],"icon_url":"","type":"theme","id":"theme:a5836a56c4472fade4dc6ebfe2281554","is_default":0,"created_at":1679737425},"a8208c04-865c-49aa-ab96-41e378d391c8":{"title":"Publisher","condition":"publisher","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/publisher\/js\/"],"icon_url":"","type":"theme","id":"theme:32c73be0cb175da278c8e2af0811b0d1","is_default":0,"created_at":1679738169},"a0d69f3d-1356-4a1d-a600-2f2f788b8a9a":{"title":"REHub","condition":"rehub-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/rehub-theme\/js\/custom_floatpanel.js"],"icon_url":"","type":"theme","id":"theme:321af1febb74f488cf911380893739b2","is_default":0,"created_at":1679738502},"8b74bbe5-7f32-42df-908f-78c99a8cad82":{"title":"Rey","condition":"rey","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/rey\/scripts-(.*).js","\/rey-core\/assets\/js\/"],"icon_url":"","type":"theme","id":"theme:e46567cd0f3ec9b37e7230dc87eac367","is_default":0,"created_at":1679737011},"5c9115d3-bcbd-49d6-8feb-4880d2b82bfe":{"title":"Rife Free","condition":"rife-free","exclusions":["\/rife-free\/js\/script.min.js","\/rife-free\/js\/isotope.pkgd.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","var reJS"],"icon_url":"","type":"theme","id":"theme:74a449954de79625eccc6750e87af8f6","is_default":0,"created_at":1679738107},"6542b2fd-1f91-4862-aa18-11eecc02faaf":{"title":"Roisin","condition":"roisin","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/themes\/roisin\/assets\/js\/main.min.js","\/plugins\/roisin-core\/assets\/js\/roisin-core.min.js","\/wp-includes\/js\/hoverIntent.min.js"],"icon_url":"","type":"theme","id":"theme:8f38fe58034772931110930b91cb6797","is_default":0,"created_at":1685964523},"5a192ad9-d150-4aa0-8efc-d68131cb7a37":{"title":"Sahifa - Mobile Menu","condition":"sahifa","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/themes\/sahifa\/js\/ilightbox.packed.js","\/translate_a\/element.js"],"icon_url":"","type":"theme","id":"theme:06ebe49f4c1e5b04cece831f8bb198a3","is_default":0,"created_at":1687540363},"7ae9d978-d63c-4a58-beb3-418bebb5b23c":{"title":"Salient","condition":"salient","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/salient\/","winW > bodyW"],"icon_url":"","type":"theme","id":"theme:b3e12d57ac23897be1bb2c673e3fc761","is_default":0,"created_at":1704735382},"35aaa6c5-4a37-4161-b504-fb3ebc4b1148":{"title":"Salient - Nectar slider","condition":"salient","exclusions":["\/salient-nectar-slider\/js\/nectar-slider.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"theme","id":"theme:d612db1dd8dc76faa6a36a9ebfd336dc","is_default":0,"created_at":1704735415},"84c95206-3e59-4eb3-a0c9-e2231a1c0a48":{"title":"SEO Lounge","condition":"seolounge","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js","\/seolounge\/js\/radiantthemes-custom.js","\/seolounge\/js\/radiantthemes-core.min.js"],"icon_url":"","type":"theme","id":"theme:3d72b779d9c4ba6b51cc5b245b141433","is_default":0,"created_at":1691695809},"cd44aa56-088a-40dd-bf1e-f835efa68626":{"title":"Shoptimizer","condition":"shoptimizer","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shoptimizer\/assets\/js\/lazyload-bg.js","\/shoptimizer\/assets\/js\/main.min.js"],"icon_url":"","type":"theme","id":"theme:6c32b43f4da639e5901574fac6b7d387","is_default":0,"created_at":1679737143},"d2c48a48-430a-4eea-bc05-99b66f1f6a7b":{"title":"SmartMag","condition":"smart-mag","exclusions":["\/smart-mag\/js\/lazyload.js"],"icon_url":"","type":"theme","id":"theme:23d6b7878bd0087addb067db3fa39864","is_default":0,"created_at":1679738490},"dd0d9133-ef17-4dac-b174-9f25d535838f":{"title":"Soledad","condition":"soledad","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/soledad\/js\/main.js","\/soledad\/js\/more-post.js","\/soledad\/js\/libs-script.min.js"],"icon_url":"","type":"theme","id":"theme:d3f78b26c2d11c99230171cc6378d06e","is_default":0,"created_at":1679737664},"3b85dd6e-9534-477e-9b15-940d0e155c8d":{"title":"Spacious - Mobile Menu","condition":"spacious","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/spacious\/js\/navigation.js"],"icon_url":"","type":"theme","id":"theme:d423c1f002b10b8682ee24d616b19c9c","is_default":0,"created_at":1703192854},"d657dc56-5c04-439a-8987-401f89a65bf9":{"title":"Stockholm","condition":"stockholm","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/stockholm\/js\/"],"icon_url":"","type":"theme","id":"theme:fcfff492e00727b63cf5dff9f59bc2a4","is_default":0,"created_at":1679738378},"121f9b1b-d3cd-4dde-915e-0b348abf6687":{"title":"Storefront","condition":"storefront","exclusions":["\/storefront\/assets\/js\/navigation.min.js"],"icon_url":"","type":"theme","id":"theme:f0dca7e4eaedf573d4664be249845942","is_default":0,"created_at":1679738793},"41cfc83f-ff02-4a35-a3b7-e92db213b224":{"title":"StreamTube","condition":"streamtube","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/streamtube\/","\/streamtube-core\/"],"icon_url":"","type":"theme","id":"theme:9772ccddd470688f6bc6aee86e34d29b","is_default":0,"created_at":1679331431},"c31366fe-9045-4767-a405-52a11e08b82e":{"title":"Sydney - Load elements on page load","condition":"sydney-pro-ii","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/sydney-pro-ii\/js\/scripts.js","\/wp-content\/themes\/sydney-pro-ii\/js\/functions.min.js","\/wp-content\/themes\/sydney-pro-ii\/js\/elementor.js","\/wp-content\/themes\/sydney-pro-ii\/js\/hero-slider.js","\/wp-content\/plugins\/sydney-toolbox\/js\/main.js"],"icon_url":"","type":"theme","id":"theme:1fb15693856451537e331adeaf2c7d6f","is_default":0,"created_at":1711977131},"aec0a548-4c6b-400a-80ed-19a49e0faef0":{"title":"The7","condition":"dt-the7","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","loader-removed","\/Ultimate_VC_Addons\/assets\/min-js\/","\/dt-the7\/","\/js_composer\/"],"icon_url":"","type":"theme","id":"theme:7934c689fd20e30b6bfc69bb9d46cb63","is_default":0,"created_at":1679737892},"538354ff-d69f-40be-b0cc-df3790599dd2":{"title":"TheGem","condition":"thegem","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thegem\/js\/","gemSettings","thegemSlideshow","tgpLazyItemsOptions"],"icon_url":"","type":"theme","id":"theme:153c54fe73897da838ce39152b1db5a8","is_default":0,"created_at":1679738477},"84d95a79-270c-4223-b459-bb49c6acfaf1":{"title":"Theme Electiman - Mobile Menu","condition":"electiman","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/electiman\/assets\/js\/navigation.js","\/themes\/electiman\/assets\/js\/theme-pluginjs.js","\/themes\/electiman\/assets\/js\/theme.js","\/themes\/electiman\/assets\/js\/slick.min.js","\/themes\/electiman\/venobox\/venobox.min.js","\/themes\/electiman\/assets\/js\/owl.carousel.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","type":"theme","id":"theme:a59c888391c869ed4f3417c02d71fe15","is_default":0,"created_at":1702923332},"3a59bf59-4fe5-4690-8ab7-33e6a976e2e3":{"title":"Thrive Theme Builder","condition":"thrive-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-visual-editor\/editor\/js\/dist\/modules\/(.*).js","TVE_Event_Manager_Registered_Callbacks","ThriveGlobal","TCB_Front","TL_Front","TVE_Ult","thrive-","thrive_","tve_","tve-"],"icon_url":"","type":"theme","id":"theme:7492fc8f8a90ad7ef680d9c560da2b0f","is_default":0,"created_at":1710767440},"68f2de3b-e2b8-4edf-b82f-93fd7834c65f":{"title":"Total","condition":"Total","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Total\/assets\/js\/total.min.js"],"icon_url":"","type":"theme","id":"theme:96b0141273eabab320119c467cdcaf17","is_default":0,"created_at":1679737571},"6dc1cb35-6b50-4da0-9834-dddf169edaa6":{"id":"theme:7c37c885d7fecf788f635734f99e8610","title":"Townhub","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/townhub-add-ons\/assets\/js\/(.*)","\/wp-includes\/js\/dist\/vendor\/react.js","\/wp-includes\/js\/dist\/vendor\/react-dom.js"],"is_default":0,"condition":"townhub","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"f484f86b-e316-4871-9322-dee3925349fe":{"title":"Travel Monster - Owl Carousel","condition":"travel-monster","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/wp-travel-engine\/assets\/lib\/owl-carousel(.*)\/owl.carousel(|.min).js","var isRtl"],"icon_url":"","type":"theme","id":"theme:d3e8da87b3affd399205438fbc8a4f05","is_default":0,"created_at":1690822771},"3ec96c3f-a6bf-4748-9b7e-78864bd24add":{"title":"uDesign - Mobile Menu","condition":"u-design","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/u-design\/assets\/js\/theme.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework-async.min.js"],"icon_url":"","type":"theme","id":"theme:31ce70b0a02f8720a86d993816676943","is_default":0,"created_at":1699292981},"cb523239-27cc-461e-973d-c984a83223ac":{"title":"uDesign - Show Page Content on Load","condition":"u-design","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/u-design\/assets\/js\/theme.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework.min.js"],"icon_url":"","type":"theme","id":"theme:c55edd40ad3f9321da577dad70bb130c","is_default":0,"created_at":1698778683},"14cb0a85-8bee-491e-99d7-5f20a07f4bdd":{"title":"Uncode","condition":"uncode","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uncode\/library\/js\/init(.min)?.js","\/uncode\/library\/js\/plugins(.min)?.js","\/uncode\/library\/js\/app(.min)?.js","\/uncode\/library\/js\/woocommerce-uncode(.min)?.js","\/wp-includes\/js\/mediaelement\/mediaelement-and-player.min.js","initHeader","initBox","fixMenuHeight","initRow"],"icon_url":"","type":"theme","id":"theme:18ba19b98aefbb6c0fde6c6bf92e9cfc","is_default":0,"created_at":1679738154},"96aa49eb-6372-4b4c-b70d-f29dede8a8f2":{"title":"Utouch - Load menu on page load","condition":"utouch","exclusions":["\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/jquery.min.js","\/utouch\/js\/main.js","\/utouch\/js\/swiper.jquery.min.js","\/utouch\/js\/fitvids.js","\/utouch\/js\/theme-plugins.js","\/utouch\/js\/crum-mega-menu.js"],"icon_url":"","type":"theme","id":"theme:18284bf26abf49a1d5d60b3fb34e4c2d","is_default":0,"created_at":1714156159},"a1fbf155-720a-4704-9794-d6749ad6df59":{"title":"Vivo theme - Fix blank page","condition":"vivo","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/vivo\/framework\/assets\/js\/bt_framework_misc.js"],"icon_url":"","type":"theme","id":"theme:a140e640fed504586e24e7c0df30376b","is_default":0,"created_at":1704308662},"5acb5d19-caa6-4deb-b7db-0051df4c3c3b":{"title":"Voxel Theme","condition":"voxel","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/voxel\/","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig"],"icon_url":"","type":"theme","id":"theme:240a2be0a2b66b01f83abdcd83da7c7c","is_default":0,"created_at":1720444241},"88e96479-1aa2-4adc-8f07-20bc0368a63f":{"title":"Werkstatt","condition":"werkstatt","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/js\/underscore.min.js","\/werkstatt\/assets\/js\/vendor.min.js","\/werkstatt\/assets\/js\/fullscreen.min.js","\/werkstatt\/assets\/js\/app.min.js"],"icon_url":"","type":"theme","id":"theme:38faa29db5a07b8fef6aee9cc11cafec","is_default":0,"created_at":1679737639},"60c4110b-a960-4d44-b619-6d79514dbf75":{"title":"Woodmart","condition":"woodmart","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/imagesloaded.min.js","\/woodmart\/js\/scripts\/wc\/","\/woodmart\/js\/scripts\/global\/","\/woodmart\/js\/libs\/owl.carousel.min.js","\/woodmart\/js\/libs\/owl.carousel.js","\/woodmart\/js\/libs\/slick.js","\/woodmart\/js\/libs\/autocomplete.min.js"],"icon_url":"","type":"theme","id":"theme:06338f13cb89e5309ad2eb7e4d457be4","is_default":0,"created_at":1695633901},"a4547b5b-10ab-407c-969c-269fddec07b8":{"title":"Woodmart - Cart Fragments","condition":"woodmart","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js","\/woodmart\/js\/scripts\/wc\/updateCartFragmentsFix.js"],"icon_url":"","type":"theme","id":"theme:591f4f1b2e86b1e987cd8789df3ffce3","is_default":0,"created_at":1700584689},"97066e39-027a-4cd6-9152-7b6b53f365f5":{"title":"Woodmart - Mobile Menu","condition":"woodmart","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/woodmart\/js\/scripts\/menu\/mobileNavigation.min.js","\/themes\/woodmart\/js\/scripts\/global\/helpers.min.js"],"icon_url":"","type":"theme","id":"theme:d79a3941e2f12fb93ffc980ebeb1d7f4","is_default":0,"created_at":1711745013},"119ebd1c-6b46-4f07-8d6a-3498d9c8814f":{"title":"XStore","condition":"xstore","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/xstore\/js\/","\/et-core-plugin\/packages\/st-woo-swatches\/public\/js\/frontend.min.js"],"icon_url":"","type":"theme","id":"theme:3de9d9ba385200548f177d9c704ae92a","is_default":0,"created_at":1679738190},"9a7a548c-07a1-4dff-93fc-6e8230b67853":{"id":"theme:119d329456073aa10969d7cbd9760f28","title":"YOOtheme Pro","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","uikit.min.js"],"is_default":0,"condition":"yootheme","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"f74c499e-b7d9-4590-8671-379f51f468c8":{"title":"Zeen","condition":"zeen","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/zeen\/assets\/js\/","\/js.cookie.min.js"],"icon_url":"","type":"theme","id":"theme:acb52844f996627788836366404a3245","is_default":0,"created_at":1679737859}},"scripts":{"dd0c5a5b-ec56-49f9-9aa4-89e1e3a6a28a":{"title":"Amazon Ads","exclusions":["amazon-adsystem.com"],"icon_url":"","type":"script","id":"script:b82a5936d8ea0745016caeb71629ae5d","is_default":0,"created_at":1681390276},"980edf32-c64b-4370-bf23-c62b079e71c3":{"title":"Google AdSense","exclusions":["adsbygoogle"],"icon_url":"","type":"script","id":"script:0206e6040c8ff64b8d6ee5fef2ce1c90","is_default":0,"created_at":1681377840},"2499bb90-0753-4b2b-9bd4-1525f94c7437":{"title":"Google Analytics","exclusions":["google-analytics.com\/analytics.js","ga\\( '","ga\\('"],"icon_url":"","type":"script","id":"script:d86cf69a8b82547a94ca3f6a307cf9a6","is_default":0,"created_at":1681388311},"6f460036-3106-4b8c-9951-d32de9b1258f":{"title":"Google Maps","exclusions":["maps.googleapis.com","maps.google.com"],"icon_url":"","type":"script","id":"script:4d60ab2c6d11d753267484006c23e54c","is_default":0,"created_at":1681390259},"ac2d5720-9418-468c-80a0-3874ee743c0f":{"title":"Google Optimize","exclusions":["a,s,y,n,c,h,i,d,e","googleoptimize.com\/optimize.js","async-hide"],"icon_url":"","type":"script","id":"script:031a0cece38c4739df67f910dcabf1bd","is_default":0,"created_at":1681390261},"122e6ebb-51fd-477f-97fb-559593f1a48b":{"title":"Google Recaptcha","exclusions":["recaptcha"],"icon_url":"","type":"script","id":"script:032cb16577cbf07bc7c02bac83bd936d","is_default":0,"created_at":1681390264},"219277ae-b2ac-4d42-913d-eaea40985295":{"title":"Google Tag Manager","exclusions":["\/gtag\/js","gtag\\(","\/gtm.js","async-hide"],"icon_url":"","type":"script","id":"script:1d3c65b2b03ef35e14df6b163ea3a1f6","is_default":0,"created_at":1681390266},"f632e3f4-20e6-471e-a78d-86afbea63586":{"title":"HubSpot","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","js(.*).hsforms.net","hbspt.forms.create"],"icon_url":"","type":"script","id":"script:de4bd8ef4675ebb85a055955de76d0ee","is_default":0,"created_at":1713282413},"5d606add-ffb8-4a06-b295-5f722710fbfd":{"title":"Refari","exclusions":["widget.refari.co","refari"],"icon_url":"","type":"script","id":"script:a705e197b13b47e72a105c923e044358","is_default":0,"created_at":1683797056},"742ec14a-27a1-4789-b9c8-a9c3a3cf7042":{"title":"Reviews.io","exclusions":["\/carousel-inline-iframeless\/dist.js","carouselInlineWidget"],"icon_url":"","type":"script","id":"script:4df445c576f45889506ba175a4c39fdc","is_default":0,"created_at":1684389426},"05d3eb78-f574-49be-95e1-3f11714005d1":{"id":"script:ce7566d1d08cc094b74cf283cf9c56a5","title":"Stripe","type":"script","icon":"","exclusions":["js.stripe.com"],"is_default":0,"condition":"","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"0a37e528-8718-49f7-a26d-059aa29f867d":{"title":"Trustindex","exclusions":["cdn.trustindex.io\/loader.js","cdn.trustindex.io\/loader-cert.js"],"icon_url":"","type":"script","id":"script:1d38d6195597e8bb81966870f0a4f939","is_default":0,"created_at":1713359486},"ce9a3865-9efa-4e98-ae10-4f842a4ecc22":{"title":"Typeform","exclusions":["\/next\/embed.js"],"icon_url":"","type":"script","id":"script:cd3889ae3b96f891186ae270dbbcc9bb","is_default":0,"created_at":1709838856},"b56bf06c-2f8c-4757-b536-a689fb0e75f9":{"title":"Typekit","exclusions":["typekit"],"icon_url":"","type":"script","id":"script:7815e38b93e3b500a632681bd594bd61","is_default":0,"created_at":1681390268},"49c38c0a-43b9-4237-88cb-57ddd519f0ad":{"title":"Venatus Media","exclusions":["\/ad-manager.min.js","__vm_add"],"icon_url":"","type":"script","id":"script:abe11528732aed9a19a97e73b242faa5","is_default":0,"created_at":1681390272},"2c1d0998-8ab5-478c-8eb9-9e375b46363e":{"title":"Wistia","exclusions":["fast.wistia.com","\/assets\/external\/E-v1.js"],"icon_url":"","type":"script","id":"script:9a0111f8c3186c1cb3113587c660c041","is_default":0,"created_at":1711395219},"0627fe24-7e9d-400f-b064-d98bec2ba85e":{"id":"script:dbd1875130c71eb4b2ef768ad18d820c","title":"Yandex Ads","type":"script","icon":"","exclusions":["yandex.ru","window.yaContextCb"],"is_default":0,"condition":"","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""}}} \ No newline at end of file +{"plugins":{"ffc21030-519a-4853-8cea-49f959e82731":{"title":"Additional Variation Images Gallery for WooCommerce","condition":"woo-variation-gallery\/woo-variation-gallery.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woo-variation-gallery\/assets\/js\/slick.min.js","\/woo-variation-gallery\/assets\/js\/frontend.min.js","\/wp-includes\/js\/underscore.min.js","variation_custom_fields"],"icon_url":"","summary":"Prevents delay in the loading of product images.","type":"plugin","id":"plugin:def67a2c1ddd6df2353e4772b6fd4e5b","is_default":0,"created_at":1724424735},"0e7dc253-acd0-4421-877f-a7101d848717":{"title":"Advanced Ads","condition":"advanced-ads\/advanced-ads.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/(.*).js","advanced_ads_ready","advadsCfpQueue","adsbygoogle","adservice.google","\/advanced-ads(.*)","advads_items","advads_tracking_ads"],"icon_url":"","summary":"The latest versions of Advanced Ads include automatic compatibility with Delay JS. So please update them first: Advanced Ads 1.27.0, Advanced Ads Pro 2.13.0, and Advanced Ads Tracking 2.1.0","type":"plugin","id":"plugin:4b82cc7379d46c6272f5d556bb264eec","is_default":0,"created_at":1724424826},"a4d5c058-9120-47ee-977c-f30f83fb1a75":{"id":"plugin:a076fbb79772f497349a76ee74a7f708","title":"All-in-one Compliance for GDPR \/ CCPA Cookie Consent","type":"plugin","icon":"","exclusions":["iubenda_cs.js","var _iub"],"is_default":0,"condition":"iubenda-cookie-law-solution\/iubenda_cookie_solution.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"88457e92-0f24-458e-b7b5-bab59074ebef":{"title":"Amelia","condition":"ameliabooking\/ameliabooking.php","exclusions":["\/wp-content\/plugins\/ameliabooking\/(.*).js","var hasAmeliaEvent"],"icon_url":"","summary":"Display booking options without user interaction.","type":"plugin","id":"plugin:93ea6597c3cbd06e93a46b9f5368732d","is_default":0,"created_at":1724425057},"79a5082f-821a-4a4b-a0e3-caaf22cf3f75":{"title":"AMO Team Showcase","condition":"amo-team-showcase\/amo-team-showcase.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/amo-team-showcase\/public\/js\/wookmark.js","\/amo-team-showcase\/public\/js\/amo-team-showcase-public.js","\/wp-includes\/js\/imagesloaded.min.js","amoTeamVars"],"icon_url":"","summary":"To display team members.","type":"plugin","id":"plugin:9bdceaa1bb89135730a3b2aa4db94c22","is_default":0,"created_at":1724425072},"90c7fd90-3adf-4cb7-8a92-845bdbd95d27":{"title":"Anti-Spam by CleanTalk - Prevent console error","condition":"cleantalk-spam-protect\/cleantalk.php","exclusions":["ctPublicFunctions","ctPublic"],"icon_url":"","summary":"Prevent console error","type":"plugin","id":"plugin:ed2ade77cd44e21b1703b093c002a903","is_default":0,"created_at":1724425107},"e054f840-700a-4549-bbba-485473a53f71":{"title":"AnWP Football Leagues - Calendar Widget","condition":"football-leagues-by-anwppro\/anwp-football-leagues.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/football-leagues-by-anwppro\/(.*)","\/football-leagues-by-anwppro-premium-premium\/(.*)","window.AnWPFLPro","window.AnWPFLTabulator","\/elementor\/assets\/lib\/flatpickr\/flatpickr.min.js"],"icon_url":"","summary":"Display FL Calendar Widget","type":"plugin","id":"plugin:e7581089f33fdf0a970d5c5deb16ff50","is_default":0,"created_at":1724425139},"1d058cae-4460-4354-bab3-a96445650bd8":{"title":"AnyWhere Elementor Pro","condition":"anywhere-elementor-pro\/anywhere-elementor-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/anywhere-elementor-pro\/build\/index.js"],"icon_url":"","summary":"Make links clickable","type":"plugin","id":"plugin:b739df50f3f5bf400075f17dca652517","is_default":0,"created_at":1724425158},"8a1614c7-55b1-4b6d-88e5-6e8ddc630dae":{"id":"plugin:46741e77eaf4d13a0c80be6b86379758","title":"Astra - Pro Addon","type":"plugin","icon":"","exclusions":["\/astra-addon\/astra-addon-(.*).js"],"is_default":0,"condition":"astra-addon\/astra-addon.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"37d96403-f9ea-4481-b2f8-374d7c93e61a":{"title":"Beaver Builder","condition":"beaver-builder-lite-version\/fl-builder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/bb-plugin\/","\/bb-plugin\/js\/yui3.min.js","\/wp-includes\/js\/imagesloaded.min.js","\/bb-plugin\/js\/fl-slideshow.min.js"],"icon_url":"","summary":"To show parallax background, slideshow background and some animations instantly.","type":"plugin","id":"plugin:ccd87807930a1856717fd276c336db9a","is_default":0,"created_at":1724427769},"f83dbf3b-783e-4ef9-9b18-8a469ca7102d":{"title":"Bloom","condition":"bloom\/bloom.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/bloom\/"],"icon_url":"","type":"plugin","id":"plugin:e57cdfbc09f4e0f7445c279d9f580bdd","is_default":0,"created_at":1685189070},"135aadd2-cd4a-44ae-8dcf-801f3f2316c0":{"id":"plugin:055ef01accbad6378e3d1a4965600964","title":"Booked","type":"plugin","icon":"","exclusions":["\/booked\/","\/js\/jquery\/ui\/datepicker.min.js"],"is_default":0,"condition":"booked\/booked.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"ddfee9b0-e5a9-4d3f-8c21-b999cbb61c33":{"title":"Bookly","condition":"bookly-responsive-appointment-booking-tool\/main.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/bookly-responsive-appointment-booking-tool\/frontend\/","window.bookly"],"icon_url":"","summary":"To load the booking form on page load.","type":"plugin","id":"plugin:492f9b0d55f3bf07c68e915ea1dfb72a","is_default":0,"created_at":1724427886},"7a013fd6-0881-4dbe-8e93-33edefe7f717":{"title":"Borlabs Cookie","condition":"borlabs-cookie\/borlabs-cookie.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","borlabsCookieConfig","borlabs-cookie.min.js","borlabsCookieContentBlocker","BorlabsCookieBox","allFbWidgets","\/borlabs-cookie\/assets\/javascript\/","borlabs-cookie-config"],"icon_url":"","type":"plugin","id":"plugin:e1ec2daca513de476bd3dae79366e9ab","is_default":0,"created_at":1702497952},"3999e680-4049-4494-945c-768cecc1a2c4":{"title":"Brizy","condition":"brizy\/brizy.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/brizy\/public\/editor-build\/(.*)-wp\/editor\/js\/group-(.*).js","\/brizy\/public\/editor-build\/(.*)-wp\/editor\/js\/preview.js","Brizy.emit"],"icon_url":"","summary":"Prevents partially loading the slider.","type":"plugin","id":"plugin:43019d66af7b41e65bb602c01e10c6a0","is_default":0,"created_at":1724428007},"af4d9357-3def-42a1-86b7-419553444b4d":{"title":"Carousel Upsells and Related Product for WooCommerce","condition":"carousel-upsells-and-related-product-for-woocommerce\/ffxf-woo-glide-related-and-upsells.php","exclusions":["\/carousel-upsells-and-related-product-for-woocommerce\/assets\/js\/glide.min.js","carusel_poduct_related"],"icon_url":"","summary":"To load the carousel products with the correct spacing without interaction.","type":"plugin","id":"plugin:5c317f9f244597d8f236ecb7d8e41752","is_default":0,"created_at":1724428163},"1d866d90-5451-43ba-a4d1-75b64f9235e1":{"title":"clickskeks.at Cookiebanner","condition":"clickskeks\/index.php","exclusions":["clickskeks"],"icon_url":"","summary":"Load the cookie banner without interaction.","type":"plugin","id":"plugin:0a3a29603ebac8fe0808f64f5c8edbb2","is_default":0,"created_at":1724428285},"c09695cc-2387-4416-881a-c0b392188a26":{"title":"Complianz","condition":"complianz-gdpr\/complianz-gpdr.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","complianz"],"icon_url":"","type":"plugin","id":"plugin:a766f95208154cd69a3e15150a42f325","is_default":0,"created_at":1685188788},"bfb36984-e2a1-40ba-a8cd-f29b0b6f720f":{"title":"Complianz Premium","condition":"complianz-gdpr-premium\/complianz-gpdr-premium.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","complianz"],"icon_url":"","type":"plugin","id":"plugin:89d54385816dd2d5ae92cfda9d95bbfd","is_default":0,"created_at":1712163685},"b5e146fc-0b7c-4c6c-a631-8da246d3bd89":{"title":"Conerstone Builder - Fix mobile menu","condition":"cornerstone\/cornerstone.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/cornerstone\/assets\/js\/site\/cs-classic.(.*).js"],"icon_url":"","summary":"Fix the issue with the hamburger menu, when Delay JavaScript execution is enabled the menu doesn't open.","type":"plugin","id":"plugin:f8f8c81535b5e0073aa3c56b6dd3df5b","is_default":0,"created_at":1724428497},"368bc394-b74e-4b62-b359-cd967f78c6ea":{"title":"ConsentMagic Pro - Show popup without user interaction","condition":"consent-magic-pro\/consent-magic-pro.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/plugins\/consent-magic-pro\/js\/cs-public.min.js","\/wp-content\/plugins\/pixelyoursite-pro\/(.*)"],"icon_url":"","summary":"Load the consent popup without user interaction.","type":"plugin","id":"plugin:9e0701a214f49a057f17b00e39df2e7e","is_default":0,"created_at":1724428306},"7e551e3b-fbe4-4235-87a9-b476bc9e2020":{"title":"Content Egg","condition":"content-egg\/content-egg.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/content-egg\/res\/js\/morrisjs\/morris.min.js","\/content-egg\/res\/js\/morrisjs\/raphael.min.js","Morris.Area"],"icon_url":"","summary":"Show charts on page load.","type":"plugin","id":"plugin:949b1b923d51d10a2fb67a2a39d166b3","is_default":0,"created_at":1724428456},"7fbca6c5-9239-4550-a755-6f041f867a57":{"title":"Cookie Notice & Compliance for GDPR \/ CCPA","condition":"cookie-notice\/cookie-notice.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/cookie-notice\/","var cnArgs"],"icon_url":"","summary":"Loads the cookie notice on the screen.","type":"plugin","id":"plugin:213d0f883ae27aefb3a7937656bbd11e","is_default":0,"created_at":1724428382},"26722567-fe35-44b5-a5a7-fb0f3a38c3f2":{"title":"Cookiebot CMP","condition":"cookiebot\/cookiebot.php","exclusions":["consent.cookiebot.com"],"icon_url":"","summary":"Resolves issue with links not being clickable.","type":"plugin","id":"plugin:1d10ad30bbcf0fd4b26e9625a07abcfc","is_default":0,"created_at":1724428418},"1547249a-ce0c-40e4-91f6-148a5f9652d7":{"title":"CookieYes Lite - Show on page load","condition":"cookie-law-info\/cookie-law-info.php","exclusions":["\/cookie-law-info\/lite\/frontend\/js\/script.min.js"],"icon_url":"","type":"plugin","id":"plugin:29d4d4ccd077232b111581043bbd8d81","is_default":0,"created_at":1721422981},"74110e36-89e5-440d-bec3-7133da3277c2":{"title":"Coupon Referral Program","condition":"coupon-referral-program\/coupon-referral-program.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/coupon-referral-program\/","\/wp-includes\/js\/jquery\/ui\/draggable.min.js"],"icon_url":"","summary":"Fixes non-breaking dependency error.\r\n\r\nAlso requires excluding the following from JavaScript deferring:\r\n\r\n\/coupon-referral-program\/","type":"plugin","id":"plugin:edcf103293ceab711e999d419d038ca1","is_default":0,"created_at":1724428687},"408fa396-20f2-4b1f-820d-52882af281cc":{"title":"CozyStay Core - Fix background images","condition":"cozystay-core\/cozystay-core.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/cozystay-core\/assets\/scripts\/front\/parallax-bundle.min.js"],"icon_url":"","summary":"Fixes background images loading.","type":"plugin","id":"plugin:872b5eef05c1fc3b00cda07ee966938d","is_default":0,"created_at":1724428721},"ed63e02f-d6c5-481a-bcb9-aae15f72aa21":{"title":"Crisp - Live Chat and Chatbot","condition":"crisp\/crisp.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","CRISP_RUNTIME_CONFIG","l.js"],"icon_url":"","summary":"Allow the chat icon to be displayed.","type":"plugin","id":"plugin:c3e26264dcfd25802805b4fd1a2a449c","is_default":0,"created_at":1724428819},"a8eb622b-279c-4f84-86e0-785e9497add7":{"title":"Custom Twitter Feeds pro","condition":"custom-twitter-feeds-pro\/custom-twitter-feed.php","exclusions":["\/custom-twitter-feeds-pro\/js\/ctf-scripts.min.js"],"icon_url":"","summary":"Allow Twitter feed pro to display a Twitter feed","type":"plugin","id":"plugin:6e4bf949e12f0bebfefb48f6c316102a","is_default":0,"created_at":1724428839},"1624ef15-e25b-406d-bdf9-d4b78d7a59e7":{"title":"Customer Reviews for WooCommerce Plugin","condition":"customer-reviews-woocommerce\/ivole.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/customer-reviews-woocommerce\/js\/colcade.js"],"icon_url":"","type":"plugin","id":"plugin:1f893b343e72ce55e6c9013fbda172fa","is_default":0,"created_at":1704734788},"b0614843-afed-4377-9d8d-e869221be331":{"title":"Depicter Slider","condition":"depicter\/depicter.php","exclusions":["\/depicter\/"],"icon_url":"","type":"plugin","id":"plugin:77c42a041f1c40d128f4bb3714a6d20d","is_default":0,"created_at":1713878881},"396cc03a-8946-4ee8-ab15-7e48261df79a":{"title":"Divi - Carousel Module 2.0","condition":"dg-divi-carousel","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/dg-divi-carousel\/"],"icon_url":"","type":"plugin","id":"plugin:fcd789b7d02699f89720aa5ff3627912","is_default":0,"created_at":1709126476},"c15fe3b3-0eaa-48f9-bf04-0e778b1f8c63":{"title":"Divi - Supreme","condition":"supreme-modules-for-divi\/supreme-modules-for-divi.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI","\/supreme-modules-for-divi\/"],"icon_url":"","type":"plugin","id":"plugin:b5489ae4d8b949f536d6dd2e5b0c1a95","is_default":0,"created_at":1679738701},"dd31451b-989a-4517-b02a-e2c2e2023366":{"title":"Divi Den Pro","condition":"ddpro\/ddpro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ddpro\/build\/freddie\/js\/freddieScriptPageTransition.js","\/ddpro\/build\/freddie\/js\/freddieScriptsHeaders.js","\/ddpro\/build\/freddie\/js\/freddieScriptsContents.js","\/ddpro\/build\/freddie\/js\/gsap\/gsap.min.js"],"icon_url":"","summary":"Fires animations and content created with Divi Den Pro.","type":"plugin","id":"plugin:5caed322df984bbfd3ecb506cf12b688","is_default":0,"created_at":1724429225},"2b006370-cc90-42c1-9656-a30fbfbc91c6":{"title":"Divi Mobile","condition":"divi-mobile\/divi-mobile.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","divi-menu","dm_nav"],"icon_url":"","summary":"Avoid double click when using the mobile menu.","type":"plugin","id":"plugin:402d9b241b04934dd30f32e7ba490e63","is_default":0,"created_at":1724429325},"666bbed9-7ce3-457c-ad6e-b5e056d05010":{"title":"Divi Overlays","condition":"divi-overlays\/divi-overlays.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","var DIVI","\/divi-overlays\/"],"icon_url":"","summary":"Enable modals to be displayed on screen","type":"plugin","id":"plugin:1c828c93d87298d2a27c76e13d0880ba","is_default":0,"created_at":1724429242},"42a404af-7792-44be-9baa-565dc3baf25d":{"title":"Divi Pixel","condition":"divi-pixel\/divi-pixel.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/divi-pixel\/dist\/public\/js\/hamburger.min.js","\/divi-pixel\/dist\/vendor\/js\/easypiechart.js"],"icon_url":"","summary":"Page Preloader","type":"plugin","id":"plugin:dd2494945a487a6cc74d3ab1b2137ccb","is_default":0,"created_at":1724429347},"85f5c099-c481-4c38-bbb9-8b76113bdfd5":{"title":"Divi Supreme Pro","condition":"supreme-modules-pro-for-divi\/supreme-modules-pro-for-divi.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","elm.style.display","\/supreme-modules-pro-for-divi\/includes\/modules\/ImageCarousel\/frontend.min.js","\/supreme-modules-pro-for-divi\/public\/js\/swiper-bundle.min.js"],"icon_url":"","summary":"Avoid white screen before user interaction","type":"plugin","id":"plugin:3d5f0ae7751702fd1bb490fcf991a334","is_default":0,"created_at":1724429378},"0b78d762-c7be-45de-9aae-0c5078ec0619":{"id":"plugin:b5fc0101608d0b0627268dc49e3e1f8f","title":"Divi Toolbox","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","jQuery('.preloader')","\/divi-toolbox\/assets\/js\/toolbox-scripts.js"],"is_default":0,"condition":"divi-toolbox\/divi-toolbox.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"31a34440-1383-40c4-8920-effcf99f2165":{"title":"Dracula Dark Mode","condition":"dracula-dark-mode-premium\/plugin.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/plugins\/dracula-dark-mode-premium\/assets\/js\/dark-mode.js","\/wp-content\/plugins\/dracula-dark-mode-premium\/assets\/js\/frontend.js","\/wp-includes\/js\/dist\/vendor\/react-dom.min.js","\/wp-includes\/js\/dist\/vendor\/react.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js","draculaDarkMode"],"icon_url":"","summary":"Show dark mode toggle button and apply styles without need for user interaction with page.","type":"plugin","id":"plugin:5e8a5d8d3830136d84d0f3676f1bf5a5","is_default":0,"created_at":1724429514},"8baba0f8-4449-47d8-a87d-9b6a116e7684":{"title":"Dynamic Pricing & Discounts Lite for WooCommerce","condition":"woo-dynamic-pricing-discounts-lite\/dynamic-pricing-discounts-lite-for-woocommerce.php","exclusions":["\/woo-dynamic-pricing-discounts-lite\/assets\/OwlCarousel\/dist\/owl.carousel.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:185062bf08db42515488e1853d1f4917","is_default":0,"created_at":1677857247},"0fa129f2-5869-4db7-9bf0-69e4b3549ee2":{"id":"plugin:27478327aa44075a86176fad95640d76","title":"Dynamic Product Gallery for WooCommerce","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-dynamic-gallery\/","a3revWCDynamicGallery"],"is_default":0,"condition":"woocommerce-dynamic-gallery\/wc_dynamic_gallery_woocommerce.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"9958c6be-2f67-4791-95c3-a7ad96d599c0":{"title":"Dynamic Product Gallery Premium for WooCommerce","condition":"woocommerce-dynamic-gallery-pro\/wc_dynamic_gallery_woocommerce.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/woocommerce-dynamic-gallery-pro\/assets\/js\/mygallery\/jquery.a3-dgallery.js","settings_defaults_","a3revWCDynamicGallery"],"icon_url":"","summary":"Load the gallery content without user interaction.","type":"plugin","id":"plugin:11dc02a76019f00422f4ac85f47f5135","is_default":0,"created_at":1724429541},"ce26ed21-1be5-481f-80d4-31edfac6d890":{"title":"Dynamic.ooo - Dynamic Content for Elementor","condition":"dynamic-content-for-elementor\/dynamic-content-for-elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/dynamic-content-for-elementor\/assets\/","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","summary":"Show dynamic content","type":"plugin","id":"plugin:d2bd5b348abe016bdc722acce7755062","is_default":0,"created_at":1724429557},"6a3161a6-1a6f-457a-a9ee-54b376981927":{"title":"Easy Table of Contents","condition":"easy-table-of-contents\/easy-table-of-contents.php","exclusions":["\/easy-table-of-contents\/assets\/js\/front.min.js"],"icon_url":"","summary":"Avoid the Easy Table of Contents to briefly open when the page loads.","type":"plugin","id":"plugin:ee1dec033c6481a77fe88de5bef1a02d","is_default":0,"created_at":1724429629},"25a534a0-2c1f-4cf4-9e19-7941bc032b3a":{"title":"Ecwid Ecommerce Shopping Cart","condition":"ecwid-shopping-cart\/ecwid-shopping-cart.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","app.ecwid.com\/script.js","\/ecwid-shopping-cart\/js\/frontend.js","\/ecwid-shopping-cart\/js\/static-page.js","ecwidParamswindow.ec","jQuery.mobile","xSearch","xCategoriesV2","xProductBrowser","Ecwid.init"],"icon_url":"","type":"plugin","id":"plugin:41c8f5f0ab00cb39654aedd783d194e0","is_default":0,"created_at":1704734846},"a0d681db-991a-4220-8f05-c54a4857aa42":{"title":"Element Pack Pro","condition":"bdthemes-element-pack\/bdthemes-element-pack.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/bdthemes-element-pack\/assets\/js\/modules\/ep-static-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-custom-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-slideshow.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-product-carousel.min.js","\/bdthemes-element-pack\/assets\/js\/modules\/ep-stacker.min.js","\/bdthemes-element-pack\/assets\/js\/bdt-uikit.min.js","\/bdthemes-element-pack\/assets\/js\/common\/helper.min.js","\/bdthemes-element-pack\/assets\/vendor\/js\/ScrollTrigger.min.js","\/bdthemes-element-pack\/assets\/vendor\/js\/gsap.min.js"],"icon_url":"","summary":"Fix issues with gallery and product carousels.","type":"plugin","id":"plugin:ced76c4da718a667537dc6c9d5e0244d","is_default":0,"created_at":1724429901},"40464325-5bae-4a20-bc97-553499e09a73":{"title":"Elementor","condition":"elementor\/elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/happy-elementor-addons-pro\/","\/header-footer-elementor\/inc\/js\/frontend.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:1d15783218a3137bec4ee8df5353e218","is_default":0,"created_at":1694425872},"ac86b64c-c80a-4053-894d-6caa8b4fdce8":{"title":"Elementor Loop Carrousel","condition":"elementor\/elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","type":"plugin","id":"plugin:0eb8d0bbd1c7ca05ac133ea634f676b7","is_default":0,"created_at":1694442056},"a8fc9fd1-f6d3-41eb-abe9-ef176de6d7e2":{"title":"Elementor - Lazy Load Background Images","condition":"elementor\/elementor.php","exclusions":["lazyloadRunObserver"],"icon_url":"","summary":"Start background images so they load immediately","type":"plugin","id":"plugin:bf248cb2876558452a566c5dd89262b8","is_default":0,"created_at":1724430300},"1948aff5-7850-4979-91fa-0ce181484508":{"title":"Elementor Custom Skin","condition":"ele-custom-skin\/ele-custom-skin.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ele-custom-skin(.*)\/assets\/js\/"],"icon_url":"","summary":"Fixes console error when Elementor scripts are excluded","type":"plugin","id":"plugin:de658ae6c2d05a5a4a947efecf5e0c16","is_default":0,"created_at":1724429916},"25708299-c596-4416-8ad8-740aee0f2752":{"title":"Elementor Pro","condition":"elementor-pro\/elementor-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/happy-elementor-addons-pro\/","\/header-footer-elementor\/inc\/js\/frontend.js"],"icon_url":"","summary":"Show elements, galleries, and start animations. \r\n\r\nWhen User Cache is active the following exclusions will resolve console errors:\r\n\r\n\/wp-includes\/js\/underscore.min.js\r\n\/wp-includes\/js\/jquery\/ui\/core.min.js\r\n\/wp-includes\/js\/backbone.min.js\r\nelementorAdminBarConfig\r\nelementorCommonConfig\r\nelementorWebCliConfig\r\nelementorDevToolsConfig","type":"plugin","id":"plugin:030ad23e3851ed7adfa7b9b6c13cf5a6","is_default":0,"created_at":1724430189},"f34dd874-4b34-41e6-a31c-ece3c1efbffc":{"title":"Elementor Pro - SmartMenus","condition":"elementor-pro\/elementor-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/assets\/lib\/smartmenus\/jquery.smartmenus.min.js","\/elementor-pro\/assets\/js\/preloaded-elements-handlers.min.js"],"icon_url":"","summary":"Fixes the mobile menu","type":"plugin","id":"plugin:305581ad4294a30eeb1247982f626005","is_default":0,"created_at":1724430219},"111cc8b2-0be9-438b-9aa3-7f1e301a5697":{"id":"plugin:5ae9f5d99224d5ebc7d0c0bbf5b99787","title":"Elementor Pro - User Cache","type":"plugin","icon":"","exclusions":["\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/backbone.min.js","elementorAdminBarConfig","elementorCommonConfig","elementorWebCliConfig","elementorDevToolsConfig"],"is_default":0,"condition":"elementor-pro\/elementor-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c1713bf8-e0c3-4cb5-8b3f-841b06aa87ed":{"title":"ElementsKit Lite - Megamenu","condition":"elementskit-lite\/elementskit-lite.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/elementskit(.*)\/"],"icon_url":"","type":"plugin","id":"plugin:b91fed2fc4478dbb7067742c1ee4691b","is_default":0,"created_at":1683270249},"236c2a9e-9668-4a80-9b66-d2222d812dd6":{"title":"Elfsight Slider CC","condition":"elfsight-slider-cc\/elfsight-slider-cc.php","exclusions":["\/elfsight-slider-cc\/assets\/elfsight-slider.js"],"icon_url":"","summary":"Load slider on page loading","type":"plugin","id":"plugin:b0e259c84df5e120d6113dd0eef9da4b","is_default":0,"created_at":1724430233},"706ff35d-8e33-4b04-a986-346faff704e9":{"title":"Essential Addons for Elementor","condition":"essential-addons-for-elementor-lite\/essential_adons_elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/essential-addons(-for)?-elementor(-lite)?\/.*(.min)?.js"],"icon_url":"","summary":"Start the carousel on page load","type":"plugin","id":"plugin:417192424139d89fb2a5b1ee1f2b9613","is_default":0,"created_at":1724430272},"b38556dc-2bc4-430f-9c55-7191cf7773db":{"title":"Essential Addons for Elementor Pro","condition":"essential-addons-elementor\/essential_adons_elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/essential-addons(-for)?-elementor(-lite)?\/.*(.min)?.js"],"icon_url":"","summary":"Start the carousel on page load","type":"plugin","id":"plugin:057757d0593ad9d2dc58124f0077a5df","is_default":0,"created_at":1724430280},"719b988f-0d60-40c2-ba46-88f943119cb1":{"title":"Essential Grid","condition":"essential-grid\/essential-grid.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/essential-grid\/","lightboxOptions"],"icon_url":"","summary":"Load grid without interaction.","type":"plugin","id":"plugin:c8e6c490f6438f566ade600c33531a85","is_default":0,"created_at":1724430960},"47d3d2ab-160d-4b07-ac25-8250b9e6a951":{"title":"EventON Lite","condition":"eventon-lite\/eventon.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/eventon-lite\/assets\/js\/(.*)"],"icon_url":"","summary":"Load the events calendar on page load","type":"plugin","id":"plugin:dafd19fa48a1fef890dc4348052fcb75","is_default":0,"created_at":1724430313},"219968d7-cf1f-4ee0-917a-db35dcc93a3e":{"id":"plugin:49ff465628fc3cb6d7f23ff81d9b8339","title":"FacetWP","type":"plugin","icon":"","exclusions":["\/facetwp\/assets\/js\/dist\/front.min.js","window.FWP_"],"is_default":0,"condition":"facetwp\/index.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"acce5701-5917-48d5-83ab-3e626aa420c5":{"id":"plugin:78a1c88a56fa957c802074b6418c6fac","title":"FacetWP - Flyout menu","type":"plugin","icon":"","exclusions":["\/facetwp-flyout\/assets\/js\/front.js"],"is_default":0,"condition":"facetwp-flyout\/facetwp-flyout.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"081461cf-dbd0-42f3-9557-10cdc16cf145":{"title":"FiboFilters Premium","condition":"fibofilters-pro\/fibofilters.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/fibofilters-pro\/build\/front-pro\/front.js"],"icon_url":"","summary":"Display filter without need for user interaction.","type":"plugin","id":"plugin:d9f62725f1470d35c3f220645bc2e473","is_default":0,"created_at":1724431277},"f2a5b95f-1a22-46d2-8b72-42a53e46ae3f":{"title":"FiboSearch - Ajax Search for WooCommerce","condition":"ajax-search-for-woocommerce\/ajax-search-for-woocommerce.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.js","\/wp-includes\/js\/jquery\/jquery-migrate.js","\/ajax-search-for-woocommerce-premium\/assets\/js\/search.js"],"icon_url":"","summary":"Avoid search modals moving to the top when adding keyword in the input field.","type":"plugin","id":"plugin:5d7555892a3a9968fde3fa3a335fc3d8","is_default":0,"created_at":1724431295},"7d1404e9-be76-449c-87aa-919557abe82d":{"title":"FlexBlock","condition":"flo-flex-builder\/flo-flex-builder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/flo-flex-builder\/dist\/flex-public.min.js","flexDebug"],"icon_url":"","summary":"Fire animations and show images on pageload.","type":"plugin","id":"plugin:ad46179e8b0584abaf52056b846da227","is_default":0,"created_at":1724431336},"b9c6a2dc-b226-4e2c-b85e-29ee55b8f751":{"title":"Fluent Forms","condition":"fluentform\/fluentform.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/fluentform\/public\/js\/(.*).js","\/fluentformpro\/public\/js\/(.*).js"],"icon_url":"","summary":"Fixes files upload field.\r\n\r\n*Requires exlcuding jQuery from JavaScript deferring as well","type":"plugin","id":"plugin:567a2b15db30ef6bd4904e4317139aac","is_default":0,"created_at":1724431366},"10874f8a-2855-4e80-bc46-e484589b76a8":{"title":"Flying Images","condition":"nazy-load\/flying-images.php","exclusions":["flyingImages"],"icon_url":"","summary":"Fixes images not being loaded until there is user interaction","type":"plugin","id":"plugin:e78c153103f698b2b34892332d6b3b62","is_default":0,"created_at":1724431386},"53958499-dacd-41d6-93bc-1534fe7d9eda":{"title":"FooGallery Premium","condition":"foogallery-premium\/foogallery.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/foobox-image-lightbox\/free\/js\/foobox.free.min.js","\/plugins\/foogallery-premium\/pro\/extensions\/default-templates\/shared\/js\/foogallery.min.js"],"icon_url":"","summary":"Prevents delay in the loading of product images.","type":"plugin","id":"plugin:5a0e40a6c5783856893b803189de1404","is_default":0,"created_at":1724431261},"7870d704-2024-4622-838c-fad37d5c6753":{"title":"Formidable Forms","condition":"formidable\/formidable.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","frmSigs","\/formidable-signature\/js\/frm.signature.min.js"],"icon_url":"","summary":"Prevent the delay of the function and the file that processes the signature.","type":"plugin","id":"plugin:ebb5efb57b19ae60e734e456ca2df3f8","is_default":0,"created_at":1724431311},"3f24f9b3-e59e-400f-a784-999f93f60fab":{"title":"Forminator","condition":"forminator\/forminator.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","forminatorFront","\/forminator\/build\/front\/front.multi.min.js","\/forminator\/assets\/js\/library\/jquery.validate.min.js","\/forminator\/assets\/forminator-ui\/js\/forminator-form.min.js","\/forminator\/assets\/forminator-ui\/js\/select2.full.min.js","\/wp-includes\/js\/jquery\/ui\/datepicker.min.js","\/wp-includes\/js\/dist\/vendor\/moment.min.js"],"icon_url":"","summary":"Display form without interaction","type":"plugin","id":"plugin:0b08523445b8869a67ca40e777704692","is_default":0,"created_at":1724431402},"3a600ded-3454-48fb-9811-46afa2ab3c05":{"title":"GDPR Cookie Compliance","condition":"gdpr-cookie-compliance\/moove-gdpr.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/gdpr-cookie-compliance\/dist\/scripts\/main.js"],"icon_url":"","summary":"Show the consent banner on page load.","type":"plugin","id":"plugin:5759bf0d47ac3457485314b381a9b528","is_default":0,"created_at":1724431440},"e21aaa5e-7354-471d-ab86-85f99f48830c":{"title":"GDPR Cookie Consent","condition":"webtoffee-gdpr-cookie-consent\/cookie-law-info.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/public\/js\/cookie-law-info-public.js","Cli_Data"],"icon_url":"","summary":"Show the consent banner on page load.","type":"plugin","id":"plugin:ffb40036ab0583218561de7c28c6bd9b","is_default":0,"created_at":1724431421},"c11ca4ea-1a23-49ee-9a6b-1e549de50ea2":{"title":"Getwid - Gutenberg Blocks","condition":"getwid\/getwid.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/ui\/tabs.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js"],"icon_url":"","summary":"Fixes tabs when jQuery is excluded from Delay JavaScript Execution.","type":"plugin","id":"plugin:3877953c5ec1e66db92ad844ae8ebafc","is_default":0,"created_at":1724431639},"79b33eb9-bc92-4d8a-afd8-1c61e70bed8f":{"title":"GiveWP","condition":"give\/give.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/give\/assets\/dist\/js\/give.js","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","summary":"Closes the preloader.","type":"plugin","id":"plugin:0fb3af06fc5c710a670220b054c292c5","is_default":0,"created_at":1724431653},"3773bb33-b168-4f68-9963-512da24ac4da":{"title":"GoodLayers Core","condition":"goodlayers-core\/goodlayers-core.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/goodlayers-core\/plugins\/script.js","\/goodlayers-core\/include\/js\/page-builder.js"],"icon_url":"","type":"plugin","id":"plugin:5f124509a56ca2e0644246919ec70434","is_default":0,"created_at":1704734904},"2adabe9b-6e03-4a67-959f-492813d40f69":{"title":"Google Tag Manager for WooCommerce PRO","condition":"gtm-ecommerce-woo-pro\/gtm-ecommerce-woo-pro.php","exclusions":["\/gtm-ecommerce-woo-pro\/assets\/gtm-ecommerce-woo-pro.js"],"icon_url":"","summary":"Fire tracker on page load.","type":"plugin","id":"plugin:e54fd4313007b6fedf8ab4df0e05277a","is_default":0,"created_at":1724431759},"7bf261ac-89d4-492f-8a3d-1c5809b9579a":{"title":"Gravity Forms","condition":"gravityforms\/gravityforms.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/gravityforms\/","gform","recaptcha","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/plupload\/plupload.min.js","\/wp-includes\/js\/plupload\/moxie.min.js"],"icon_url":"","type":"plugin","id":"plugin:7a1c1606d094f6bff83c0ee155908367","is_default":0,"created_at":1694457903},"fbaf4a19-f675-441a-b75c-7fd748a59827":{"title":"Gravity Forms Page Transitions","condition":"gp-page-transitions\/gp-page-transitions.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/gp-page-transitions\/js\/"],"icon_url":"","summary":"To load the form without interaction - Gravity Forms one-click exclusion should also be checked.","type":"plugin","id":"plugin:53ef8d0ee1f9fdf0bbf87676e449eef5","is_default":0,"created_at":1724432081},"12340193-5c35-4b0d-b0bc-bea690cf1cae":{"title":"Green Forms","condition":"green-forms\/green-forms.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","leform.min.js","leform_customjs_handlers","leform_ajax_url"],"icon_url":"","summary":"Load forms without any delay","type":"plugin","id":"plugin:2f3112dd98c39aeb6bde618c9026a29f","is_default":0,"created_at":1724432097},"4d20b427-47cf-4cdf-91c7-ff53602d3b2a":{"id":"plugin:0eb769dddc58f998e913345841b1d0b3","title":"GTM4WP","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","dataLayer"],"is_default":0,"condition":"duracelltomi-google-tag-manager\/duracelltomi-google-tag-manager-for-wordpress.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"a2b3c237-728c-49d6-882a-e3885444e9b4":{"title":"GTranslate","condition":"gtranslate\/gtranslate.php","exclusions":["translate.google.com","googleTranslateElementInit"],"icon_url":"","summary":"To enable immediate translation on the page without user interaction","type":"plugin","id":"plugin:3b085ccda851ccf129d9506462f0cd65","is_default":0,"created_at":1724432146},"79dfc946-6b96-4b6d-bcaf-8cae6330581a":{"title":"GTranslate - Show language switcher on page load","condition":"gtranslate\/gtranslate.php","exclusions":["window.gtranslateSettings","\/wp-content\/plugins\/gtranslate\/js\/dwf.js"],"icon_url":"","summary":"To show language switcher on page load.","type":"plugin","id":"plugin:0aedfaa0f543c47c4b0fcf57307c6691","is_default":0,"created_at":1724432128},"40cd9336-e73f-4a61-a7f6-27ec1ca6892c":{"title":"HBook","condition":"hbook\/hbook.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/hbook\/","hb_booking_form_data","hb_max_date"],"icon_url":"","summary":"Render the form on page load.","type":"plugin","id":"plugin:e1f17c1eac230219e6fec3ac07406a0d","is_default":0,"created_at":1724432162},"192224c7-df72-4e3d-8f13-3206ac5b2e90":{"title":"Helper - OpenAI Chatbot for WordPress","condition":"\/helper\/index.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/helper\/js\/helper.min.js","mdpHelper"],"icon_url":"","summary":"Allow for chatbot icon load without user interaction.","type":"plugin","id":"plugin:07311d992a8a9d6af91e4766d2cb9ac9","is_default":0,"created_at":1724433592},"99cfbb2e-5678-42c2-928f-5cb09d7e43da":{"title":"HUSKY - Products Filter for WooCommerce","condition":"woocommerce-products-filter\/index.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-products-filter\/(.*)","woof"],"icon_url":"","summary":"Avoid console error (no impact on the functionality of WOOF)","type":"plugin","id":"plugin:269c5766fba124a838ac012a4b5a1a13","is_default":0,"created_at":1724432177},"3a964eac-4aeb-49a7-9fd6-4c31b2645dee":{"id":"plugin:d457acfec0f86aac6733f1446f4fc94f","title":"Instagram Feed Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/instagram-feed-pro\/js\/sbi-scripts.min.js","sb_instagram_js_options"],"is_default":0,"condition":"instagram-feed-pro\/instagram-feed.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"8f9f4788-1b8d-468b-b291-1fcbd48618b9":{"id":"plugin:513b0c0ec8e12130af9b4bbbb17d7275","title":"Interactive Geo Maps","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/interactive-geo-maps-premium\/assets\/public\/map-service\/app.min.js","\/interactive-geo-maps\/assets\/public\/map-service\/app.js","iMapsData","cdn.amcharts.com\/lib\/"],"is_default":0,"condition":"interactive-geo-maps\/interactive-geo-maps.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"cf650ca3-afa0-4a13-9e4f-f7cca19abac6":{"title":"Ivory Search","condition":"add-search-to-menu\/add-search-to-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/add-search-to-menu\/public\/js\/ivory-search.min.js"],"icon_url":"","type":"plugin","id":"plugin:7430e9d2c985ae0a3339a7b7e1acc318","is_default":0,"created_at":1677852711},"17a5dd54-1f5e-4d57-a56d-a8a970651954":{"title":"JetBlocks","condition":"jet-blocks\/jet-blocks.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-blocks\/assets\/js\/jet-blocks.min.js"],"icon_url":"","summary":"Enable dropdown on hover on the Cart and enable Mobile Sticky Header","type":"plugin","id":"plugin:1c8a1e1ba89a601f88654f094139b469","is_default":0,"created_at":1724432217},"b6f78c90-9823-459a-8dc1-1257e5f0d4e3":{"title":"JetBlog","condition":"jet-blog\/jet-blog.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/","\/elementor\/","\/jet-blog\/","ElementorProFrontendConfig","elementorFrontendConfig","hasJetBlogPlaylist"],"icon_url":"","summary":"News ticker to work on pageload (in addition to any other Jet exclusions).","type":"plugin","id":"plugin:dac9ec782180f33d0fcc7c4e0e569b9d","is_default":0,"created_at":1724432242},"e17173d8-6ef8-4e27-ba0f-379c9aea7eda":{"title":"JetElements","condition":"jet-elements\/jet-elements.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/jet-elements\/","hasJetBlogPlaylist","jetElements","\/wp-includes\/js\/jquery\/ui\/"],"icon_url":"","summary":"Load JetElements on page load.","type":"plugin","id":"plugin:0fe8895d1da5247b73a5d0b482df4ac4","is_default":0,"created_at":1724432253},"cfd77501-9c9e-4f11-b994-0178a592fc08":{"title":"JetEngine","condition":"jet-engine\/jet-engine.php","exclusions":["\/jet-engine\/"],"icon_url":"","type":"plugin","id":"plugin:bc998e71546860c8c7f70c45a6c18972","is_default":0,"created_at":1686208296},"36fed829-a2d9-41b5-94f6-2c3b9f07a94e":{"title":"JetMenu","condition":"jet-menu\/jet-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor-pro\/","\/elementor\/","\/jet-blog\/assets\/js\/lib\/slick\/slick.min.js","\/jet-elements\/","\/jet-menu\/","elementorFrontendConfig","ElementorProFrontendConfig","hasJetBlogPlaylist","JetEngineSettings","jetMenuPublicSettings","\/jet-reviews\/assets\/js\/lib\/vue.min.js"],"icon_url":"","summary":"Mobile menu to show on page load.","type":"plugin","id":"plugin:433a3173f2d06f7d02c7b91c06ed215d","is_default":0,"created_at":1724432268},"580cfed7-f034-4e39-bc7a-cdd01923ce87":{"title":"JetPopup","condition":"jet-popup\/jet-popup.php","exclusions":["\/jet-popup\/assets\/js\/lib\/anime-js\/anime.min.js","\/jet-popup\/assets\/js\/jet-popup-frontend.js","\/jet-woo-builder\/","var jetPopupData"],"icon_url":"","summary":"To show the pop up","type":"plugin","id":"plugin:51714cfdb43f231a1c93e7cffb1007ab","is_default":0,"created_at":1724432311},"d9cd2730-12e2-42d7-a082-6f0efcd466cc":{"title":"JetProductGallery","condition":"jet-woo-product-gallery\/jet-woo-product-gallery.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-woo-product-gallery\/assets\/lib\/swiper\/swiper.min.js","\/jet-woo-product-gallery\/assets\/js\/jet-woo-product-gallery.min.js"],"icon_url":"","summary":"To avoid issues with the product gallery on the product page","type":"plugin","id":"plugin:df3bc4b6a8a9f28a5ba24cb7496bbc72","is_default":0,"created_at":1724432327},"544aa37b-4d52-4182-99e8-abe23585da14":{"title":"JetReviews","condition":"jet-reviews\/jet-reviews.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jet-reviews\/assets\/js\/jet-reviews-frontend.js","\/jet-reviews\/assets\/js\/lib\/vue.min.js","jetReviewsWidget"],"icon_url":"","summary":"To show the reviews on the product page","type":"plugin","id":"plugin:5921fc95965ac7fccb7296957bd9abff","is_default":0,"created_at":1724432349},"963c7804-eede-4570-bd63-67066588b758":{"title":"JetSearch - Search results popup","condition":"jet-search\/jet-search.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/jet-search\/assets\/lib\/chosen\/chosen.jquery.min.js","\/jet-search\/assets\/js\/jet-search.js","\/jet-search\/assets\/lib\/jet-plugins\/jet-plugins.js"],"icon_url":"","summary":"To display the list of results when using the search box.","type":"plugin","id":"plugin:13e8760379022187de982df2226a5be4","is_default":0,"created_at":1724432367},"a8460089-34b4-4f8f-8694-5d92fa48aa82":{"title":"JetSmartFilters","condition":"jet-smart-filters\/jet-smart-filters.php","exclusions":["jetOffcanvasInitialized"],"icon_url":"","type":"plugin","id":"plugin:0cd63a514de1f1acb88e2bde65c4bc8d","is_default":0,"created_at":1694447256},"fe3c4915-6f8b-49b7-aa9c-c97b264d9f12":{"title":"JetSticky","condition":"jetsticky-for-elementor\/jetsticky-for-elementor.php","exclusions":["\/jetsticky-for-elementor\/"],"icon_url":"","summary":"Allows sticky menu and sidebar to be displayed","type":"plugin","id":"plugin:a346b60514ef52afeffc6e2ef2793da3","is_default":0,"created_at":1724432399},"853479dc-fff5-47cf-9a60-bf9b00f71fc4":{"title":"JetTabs for Elementor","condition":"jet-tabs\/jet-tabs.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig","\/wp-content\/plugins\/jet-tabs\/assets\/js\/jet-tabs-frontend.min.js"],"icon_url":"","summary":"To make the tab functionality work correctly.","type":"plugin","id":"plugin:d887a6ffea25d759e8aecdb6b78917f7","is_default":0,"created_at":1724432416},"b7f89562-230c-4f63-8360-7aad6df31e02":{"title":"JetTricks","condition":"jet-tricks\/jet-tricks.php","exclusions":["\/jet-tricks\/"],"icon_url":"","summary":"To display animations.","type":"plugin","id":"plugin:829272546b040d5aaeeeaf976b6cd4ec","is_default":0,"created_at":1724432431},"90451e2a-553a-4496-9fa4-cffedbe69d43":{"title":"JetWoo Widgets For Elementor","condition":"jet-woo-builder\/jet-woo-builder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/jetwoo-widgets-for-elementor\/assets\/js\/jet-woo-widgets.js","\/jet-woo-builder\/assets\/js\/jet-woo-builder.min.js","\/jet-woo-builder\/assets\/js\/frontend.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","summary":"Load JetWoo carousel on page load.","type":"plugin","id":"plugin:f44f3dbd09149f57db370e4132b057db","is_default":0,"created_at":1724432447},"944718c2-48c6-4f53-aaa2-460d07e033cc":{"title":"JetWooBuilder","condition":"jet-woo-builder\/jet-woo-builder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js","\/elementor-pro\/","\/elementor\/","elementorFrontendConfig","ElementorProFrontendConfig","JetEngineSettings","\/jet-woo-builder\/","\/jet-woo-builder-custom-quantity-selectors-main\/assets\/js\/main.js"],"icon_url":"","summary":"Add quantity buttons to add to cart.","type":"plugin","id":"plugin:ed318a971f8a047bed5b02ad546a9c18","is_default":0,"created_at":1724432462},"f5b62f59-1dae-4cdf-ac3f-f5e846fc9918":{"id":"plugin:9562e253cd4ac2b1e1f70e32cb4e32dc","title":"Layer Slider","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.utils.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.kreaturamedia.jquery.js","\/LayerSlider\/assets\/static\/layerslider\/js\/layerslider.transitions.js","initLayerSlider"],"is_default":0,"condition":"LayerSlider\/layerslider.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"e2be718d-83a2-4fa0-bc98-f0df52be3dc1":{"title":"LoftLoader Pro","condition":"loftloader-pro\/loftloader-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","loftloader.min.js"],"icon_url":"","summary":"Prevent the page from getting stuck in the loader and load the page content without user interaction.","type":"plugin","id":"plugin:1425e2735306796fe1539d9184a77e10","is_default":0,"created_at":1724432664},"cfa18552-656e-453c-9e14-c07522dc6598":{"title":"MailUp for WordPress","condition":"mailup-email-and-newsletter-subscription-form\/mailup.php","exclusions":["\/mailup-email-and-newsletter-subscription-form\/public\/js\/mailup-public.js","mailup-js-extra"],"icon_url":"","summary":"Enables subscription from to be submitted","type":"plugin","id":"plugin:0bf67b8ba84771e1a367fe24590ef09c","is_default":0,"created_at":1724433004},"c5330c66-ba7b-45b1-87e4-ce590ab005dd":{"title":"Maintenance","condition":"maintenance\/maintenance.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/maintenance\/"],"icon_url":"","summary":"Removes the preload spinner without interaction.","type":"plugin","id":"plugin:10d0de28911c5f66463b9c8783f8148a","is_default":0,"created_at":1724433020},"62f6663a-a15f-4bca-b9b5-79f1770e2c5a":{"title":"MapifyLite- Show map on page load","condition":"mapifylite\/mapify_lite.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/mapifylite\/assets\/vendor\/leaflet-1.7.1\/leaflet.js","\/plugins\/mapifylite\/assets\/vendor\/leaflet\/markercluster\/leaflet.markercluster.js","\/plugins\/mapifylite\/assets\/vendor\/leaflet\/locatecontrol\/L.Control.Locate.min.js","\/plugins\/mapifylite\/assets\/vendor\/tooltip.js","\/plugins\/mapifylite\/assets\/js\/dist\/bundle.js","var map"],"icon_url":"","summary":"Load map on pageload.","type":"plugin","id":"plugin:48c30c0f37b64accf88126d4ef58e17b","is_default":0,"created_at":1724432876},"267aef71-afa0-4848-b6f8-3e1ca15c3a23":{"title":"Maps Marker Pro","condition":"maps-marker-pro\/maps-marker-pro.php","exclusions":["\/maps-marker-pro\/js\/mapsmarkerpro.js","var mapsMarkerPro"],"icon_url":"","summary":"Load map on pageload.","type":"plugin","id":"plugin:9460789bdfe77425c895f130991a4cb4","is_default":0,"created_at":1724432891},"b5a88b63-e906-49b3-8134-420139915ea6":{"title":"Master Popups","condition":"master-popups\/master-popups.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/master-popups\/assets\/public\/js\/master-popups-libs.min.js"],"icon_url":"","type":"plugin","id":"plugin:8fd7bd2c8b0a33e62798573abd12be63","is_default":0,"created_at":1681305305},"4be41549-bf4d-4c49-8346-0f8a3b88fdba":{"title":"Master Slider","condition":"master-slider\/master-slider.php","exclusions":["masterslider"],"icon_url":"","summary":"Prevents Master Slider to be initially hidden","type":"plugin","id":"plugin:de888634cc4bd51576eed319d5a528fd","is_default":0,"created_at":1724432981},"087bee18-7cd1-4c10-8acc-19e1b7c4f4cd":{"title":"Max Mega Menu","condition":"megamenu\/megamenu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/hoverIntent.min.js","\/megamenu\/js\/maxmegamenu.js","var megamenu"],"icon_url":"","summary":"For the Pro version this file may need to be excluded too:\r\n\r\n\/megamenu-pro\/assets\/public.js","type":"plugin","id":"plugin:b71309a89bf3c8b558b6fca5d6531919","is_default":0,"created_at":1724433045},"cf22f0b9-01f4-409e-8a93-ad6743095abd":{"title":"Meta Slider","condition":"ml-slider\/ml-slider.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ml-slider\/","var metaslider"],"icon_url":"","summary":"Shows the slider on page load","type":"plugin","id":"plugin:94a7bae84ef2816494be4af66c577bfc","is_default":0,"created_at":1724433102},"bb2cbc0d-20da-415e-8218-c17f1db53579":{"title":"Monarch","condition":"monarch\/monarch.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","dt-place-monarch-icons"],"icon_url":"","type":"plugin","id":"plugin:b7335d6d6d5c5134ea10ac2d9b04226c","is_default":0,"created_at":1677853476},"a98d6a80-4610-4ede-bd33-c3e15bed0a95":{"id":"plugin:4f8651262425ef6d7c223c68a2ec2063","title":"Monster Insights","type":"plugin","icon":"","exclusions":["__gtagTracker","monsterinsights_frontend","\/google-analytics-for-wordpress\/assets\/js\/frontend-gtag.min.js"],"is_default":0,"condition":"google-analytics-for-wordpress\/googleanalytics.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"26e1a36e-7a03-449e-8ecc-e42c41ca291c":{"title":"Motion.page","condition":"motionpage\/motionpage.php","exclusions":["\/motionpage\/core\/includes\/assets\/js\/(.*)","\/motionpage\/core\/includes\/assets\/js\/gsap\/(.*)","\/motionpage\/assets\/js\/(.*)","\/motionpage\/assets\/js\/gsap\/(.*)"],"icon_url":"","summary":"Fixes any issue with Motion.page animations","type":"plugin","id":"plugin:f8fc66b302dec2327bdec0434a3b275b","is_default":0,"created_at":1724433236},"459fd663-7f80-45fd-8308-d3484981e161":{"title":"Ninja Forms","condition":"ninja-forms\/ninja-forms.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/ninja-forms\/assets\/js\/min\/front-end-deps.js","\/ninja-forms\/assets\/js\/min\/front-end.js","nf-"],"icon_url":"","summary":"Show the form on pageload","type":"plugin","id":"plugin:1d3ae9c1a96d5062616968b81eef319d","is_default":0,"created_at":1724433463},"c97440dd-7592-40e7-8c98-dac20d39808f":{"title":"Ninja Tables","condition":"ninja-tables\/ninja-tables.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ninja-tables(.*)\/assets\/","\/ninja-tables(.*)\/public\/","\/wp-includes\/js\/dist\/vendor\/moment.min.js","ninja_table_instance_","ninja_filter_","ninja_table_ready_init_table_id"],"icon_url":"","summary":"Show the table on pageload","type":"plugin","id":"plugin:723a588dcd49285ea9f7404e2379b47f","is_default":0,"created_at":1724433481},"ebc01f06-8c35-47fa-9c63-8959c5cbd915":{"title":"NotificationX","condition":"notificationx\/notificationx.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/notificationx\/assets\/public\/js\/(.*).js","notificationXArr"],"icon_url":"","summary":"Show the pop-up notification","type":"plugin","id":"plugin:f41a52ab1dd50a81cd3a5e341af0007c","is_default":0,"created_at":1724433494},"3aaf4a1b-591a-48b7-8d60-e6d65c0f94c9":{"title":"Ocean Elementor Widgets","condition":"ocean-elementor-widgets\/ocean-elementor-widgets.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ocean-elementor-widgets\/"],"icon_url":"","summary":"Avoid console errors (Elements added with this plugin should work)","type":"plugin","id":"plugin:be8fc72a8b8e8eb5958be13737cff47c","is_default":0,"created_at":1724433526},"f053a7d3-62b0-4312-b0ca-6ff63380eb0b":{"title":"One Click Accessibility","condition":"pojo-accessibility\/pojo-accessibility.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pojo-accessibility\/assets\/js\/app.min.js"],"icon_url":"","summary":"Allow One Click Accessibility to work on all pages","type":"plugin","id":"plugin:1a14afe852fefe7b22ccad3893672a29","is_default":0,"created_at":1724433541},"61e11800-48a9-4354-8a4c-ac9a2b4b033a":{"title":"OoohBoi Steroids for Elementor","condition":"ooohboi-steroids-for-elementor\/ooohboi-steroids.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/ooohboi-steroids-for-elementor\/"],"icon_url":"","summary":"Display OohhBoi elements on page load","type":"plugin","id":"plugin:b9ed0fe6f2cdbd305691a6b857f4b3dc","is_default":0,"created_at":1724433511},"560b78a2-f051-490b-9dc6-a602dece0d81":{"title":"Optimole","condition":"optimole-wp\/optimole-wp.php","exclusions":["optimoleData"],"icon_url":"","summary":"To fire excluded JavaScript files served through the Optimole CDN","type":"plugin","id":"plugin:f1ff18a3e04c4e0995fca9cabffe57a7","is_default":0,"created_at":1724433610},"b0fda458-4bf2-41e9-a159-60d4bb6102a6":{"title":"OSM - OpenStreetMap","condition":"osm\/osm.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/osm\/js\/OL\/","\/osm\/js\/osm-v3-plugin-lib.js","vectorM"],"icon_url":"","summary":"Display the map and avoid console errors.","type":"plugin","id":"plugin:48ec18bd3f59772d98f85dddab75e305","is_default":0,"created_at":1724433624},"3743ed67-e0d1-4243-bb1f-ee48a445dd10":{"title":"OxyExtras","condition":"oxyextras\/plugin.php","exclusions":["vime","vime.esm.js"],"icon_url":"","summary":"When using Pro Media Player","type":"plugin","id":"plugin:9eacf0b76484af0259cd788f4923f20c","is_default":0,"created_at":1724433698},"52a21e27-af5b-4476-8d6d-54c323fd1443":{"title":"Oxygen Builder","condition":"oxygen\/functions.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/component-framework\/vendor\/aos\/aos.js","AOS.init","oxygen_init_pro_menu","oxy-pro-menu-show-dropdown","oxy-shape-divider","oxygenVSBInitToggleJs"],"icon_url":"","summary":"When using the \"Pro Menu\" element.\r\nPrevents incorrect positioning of the Shape Divider on page load\r\nAllow tabs toggles to be closed when the page loads","type":"plugin","id":"plugin:e852555c4b4789d78a96d76f503b3262","is_default":0,"created_at":1724433680},"ebd282b9-e175-4b83-90a2-fe12389ccd11":{"id":"plugin:6f9419e58ec86c94e7698aaaaf9dc715","title":"PageLoader by Bonfire","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pageloader-by-bonfire\/pageloader.js","bonfire-pageloader-overlay"],"is_default":0,"condition":"pageloader-by-bonfire\/pageloader-by-bonfire.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"0baf6353-aa70-41a9-a3bc-d89870a5839b":{"title":"PDF Embedder","condition":"pdf-embedder\/pdf_embedder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pdf-embedder\/js\/(.*).js"],"icon_url":"","summary":"Load the PDF's without user interaction.\r\nPlease note that if Defer Javascript Execution is enabled, you also need to exclude these files from being deferred.","type":"plugin","id":"plugin:3a4c4518eb0f60108ab4934fab27d335","is_default":0,"created_at":1724433747},"cba51ec1-87cc-44eb-b12b-d652e3446507":{"title":"Perfect Brands for WooCommerce","condition":"perfect-woocommerce-brands\/perfect-woocommerce-brands.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/perfect-woocommerce-brands\/assets\/lib\/slick\/slick.min.js","\/perfect-woocommerce-brands\/assets\/js\/functions-frontend.min.js"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:4f90aca5957cccbf623e3bbc31afa204","is_default":0,"created_at":1724433762},"808e7a4e-025c-4fae-bf82-de3716e5eb0d":{"title":"Photonic","condition":"photonic\/photonic.php","exclusions":["\/photonic\/include\/js\/front-end\/module\/photonic-baguettebox.min.js"],"icon_url":"","summary":"Display the gallery without user interaction.","type":"plugin","id":"plugin:84fe214646388d7c021dda25003ac165","is_default":0,"created_at":1724434241},"936aff7d-a8ac-4473-a7b5-4b1611b6c557":{"title":"Pixel Caffein","condition":"pixel-caffeine\/pixel-caffeine.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/pixel-caffeine\/build\/frontend.js","aepc_pixel"],"icon_url":"","summary":"Fire the tracker on pageload.","type":"plugin","id":"plugin:6838be282f853f71be282783cb1c162b","is_default":0,"created_at":1724434253},"ab3a4ef5-2732-4b46-a7c3-17b4e9405cd1":{"title":"Pixel Manager for WooCommerce","condition":"woocommerce-pixel-manager-pro\/woocommerce-pixel-manager.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/woocommerce-pixel-manager-pro\/js\/public\/","wpm"],"icon_url":"","summary":"Fire the tracker on pageload.","type":"plugin","id":"plugin:afe0eb7c64d4556a7111c56dd8c4d307","is_default":0,"created_at":1724434270},"2774f964-50b2-425e-8a30-0a02f421b7e4":{"title":"Popup Builder","condition":"popup-builder\/popup-builder.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/popup-builder\/public\/js\/(.*).js","\/popupbuilder-exit-intent\/public\/javascript\/ExitIntent.js","var sgpbPublicUrl","SGPB_POPUP_PARAMS"],"icon_url":"","summary":"Show popup on exit","type":"plugin","id":"plugin:38d4b2986868f543639cd1ebc3e510aa","is_default":0,"created_at":1724433776},"82dbb1e5-31f9-43d7-b522-52819aa49ba5":{"title":"Popup Maker","condition":"popup-maker\/popup-maker.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/pum\/pum-site-scripts.js","pum","\/plugins\/popup-maker\/assets\/js\/site.min.js"],"icon_url":"","summary":"Show popup on one click","type":"plugin","id":"plugin:786717922362642f34a7ff58e919bd95","is_default":0,"created_at":1724433839},"48e08305-1f1c-4ef4-9f13-24af1b155abc":{"title":"PowerPack Addons for Elementor","condition":"powerpack-lite-for-elementor\/powerpack-lite-elementor.php","exclusions":["\/powerpack-lite-for-elementor\/assets\/js\/min\/frontend.min.js"],"icon_url":"","summary":"Show animations","type":"plugin","id":"plugin:17831cbb64e469c7f66224c8c63d0a58","is_default":0,"created_at":1724433893},"e037ae2f-e36b-4f1a-ada8-eb8fde6746f2":{"title":"Preloader Plus","condition":"preloader-plus\/preloader-plus.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/preloader-plus\/(.*)"],"icon_url":"","summary":"Prevents the preloader from being stuck until there's user interaction","type":"plugin","id":"plugin:80e1283ea1afead3ca904fad792643c5","is_default":0,"created_at":1724434032},"90fed478-e89a-455c-8371-836bee58fb81":{"title":"Premium Addons for Elementor","condition":"premium-addons-for-elementor\/premium-addons-for-elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/premium-addons.min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/isotope.min.js","\/premium-addons-elementor\/pa-frontend-(.*).min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/slick.min.js","\/premium-addons-pro\/assets\/frontend\/min-js\/tooltipster.min.js","window.scopes_array","lottie.min.js","\/premium-addons-for-elementor\/assets\/frontend\/min-js\/premium-nav-menu.min.js"],"icon_url":"","summary":"The above will cover:\r\n\r\n- Make equal height work\r\n- Make filters work\r\n- Make lottie animations work\r\n- Make the testimonials' carousel work","type":"plugin","id":"plugin:debbfbbcbdf9ffb465bbc40008d99f02","is_default":0,"created_at":1724434100},"7e43c261-77be-48fc-b25a-8953a654ae85":{"title":"Presto Player","condition":"presto-player\/presto-player.php","exclusions":["\/wp-includes\/js\/dist\/vendor\/regenerator-runtime.min.js","\/presto-player\/dist\/components\/web-components\/web-components.esm.js","\/presto-player\/src\/player\/player-static.js","var player","\/wp-includes\/js\/dist\/api-fetch.min.js","\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/dist\/i18n.min.js"],"icon_url":"","summary":"Load the video player","type":"plugin","id":"plugin:100a0382fcf3d1b6b22da928bce46ea8","is_default":0,"created_at":1724434113},"3d6f509f-d040-4279-9a2f-a4e6eae1e9df":{"title":"Price Based on Country for WooCommerce Pro","condition":"woocommerce-price-based-country-pro-addon\/woocommerce-price-based-country-pro-addon.php","exclusions":["\/woocommerce-product-price-based-on-countries\/assets\/js\/ajax-geolocation.min.js","\/woocommerce-price-based-country-pro-addon\/assets\/js\/currency-switcher.min.js","add-to-cart.min.js","cart-fragments.min.js"],"icon_url":"","summary":"To load the prices and currency switcher without interaction","type":"plugin","id":"plugin:c0fce700121492b566517e68301db382","is_default":0,"created_at":1724434128},"b970bc8a-bcbe-4d08-8ac0-a6853ab3f036":{"title":"Prime Slider","condition":"bdthemes-prime-slider-lite\/bdthemes-prime-slider.php","exclusions":["\/plugins\/bdthemes-prime-slider-lite\/assets\/js\/bdt-uikit.min.js"],"icon_url":"","summary":"Display slider without interaction","type":"plugin","id":"plugin:f1ecfe258440b371124999ca3bfbfff3","is_default":0,"created_at":1724434141},"e5458963-f167-4b68-88e4-77dd39af2842":{"title":"PRO Elements","condition":"pro-elements\/pro-elements.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pro-elements\/"],"icon_url":"","summary":"Fixes functions execution when the jQuery library is already excluded","type":"plugin","id":"plugin:29ea8f4dd72f5a5c5927917fb0665a05","is_default":0,"created_at":1724434176},"b119ad72-f498-4576-bb71-9e6d8c37b68f":{"title":"Product Filter by WBW (for WooCommerce)","condition":"woo-product-filter\/woo-product-filter.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/wp-content\/plugins\/woo-product-filter\/modules\/woofilters\/js\/frontend.woofilters.js","\/wp-includes\/js\/jquery\/ui\/mouse.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/jquery\/ui\/slider.min.js"],"icon_url":"","summary":"Resolves issue where the product filter won't load on the page, there's a 'loading' gif stuck in its place, and there's a console error.","type":"plugin","id":"plugin:e57ad91e0d94fab011353af544873743","is_default":0,"created_at":1724434285},"7b779aca-e497-4da3-8e51-fa12837d15ab":{"title":"Product Filters for WooCommerce","condition":"woocommerce-product-filters\/woocommerce-product-filters.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce-product-filters\/","\/woocommerce\/assets\/js\/accounting\/accounting.min.js","\/wp-includes\/js\/jquery\/ui\/","wcpf-load-project","WCPFData"],"icon_url":"","summary":"Make the filters work","type":"plugin","id":"plugin:719469f1c977f7109d3d6ee21ecd5a16","is_default":0,"created_at":1724434226},"2b2a51f2-bd47-4591-92d8-4a690bce5d99":{"title":"Product Gallery Slider for WooCommerce","condition":"twist\/twist.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/twist\/assets\/js\/slick.min.js","wpgs-public-js-after"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:a898898b2b0ea2cd82e20a6d3a3aa47b","is_default":0,"created_at":1724434162},"062c5be3-e5ea-4958-9619-44e3410f237e":{"title":"Product Video Gallery for Woocommerce","condition":"product-video-gallery-slider-for-woocommerce\/product-video-gallery-slider-for-woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/product-video-gallery-slider-for-woocommerce\/public\/js\/nickx.front.js"],"icon_url":"","type":"plugin","id":"plugin:bbc653a91f0635cd2edb0b741aa62b85","is_default":0,"created_at":1693512477},"34d225a4-688c-476b-846b-420774160d6b":{"id":"plugin:e0b123d324c6fc85b8682660c34f8829","title":"Rank Math SEO","type":"plugin","icon":"","exclusions":["local_ga_js"],"is_default":0,"condition":"seo-by-rank-math\/rank-math.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"02305ca0-2c2a-4eef-a802-b8a942771ecc":{"title":"Retainful","condition":"retainful-next-order-coupon-for-woocommerce\/retainful-next-order-coupon-for-woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/retainful-next-order-coupon-for-woocommerce\/src\/premium\/assets\/js\/atc-popup.min.js","\/retainful-next-order-coupon-for-woocommerce\/src\/premium\/assets\/js\/exit-intent-popup.js","retainful.com","rnoc-add-to-cart-js-before","rnoc_redirect_coupon_popup"],"icon_url":"","summary":"Show the pop-up","type":"plugin","id":"plugin:f9fdee19ba6aed961d96d86e1521a761","is_default":0,"created_at":1724434370},"b4055250-5813-400f-b663-d390fee989e4":{"title":"Revolution Slider","condition":"revslider\/revslider.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/revslider\/public\/assets\/js\/","\/revslider\/sr6\/assets\/js\/","\/revslider-(.*)-addon\/","setREVStartSize","rev_slider_","revslider_","window.RS_MODULES","\/revslider\/public\/js\/libs\/tptools.js","\/revslider\/public\/js\/sr7.js","SR7"],"icon_url":"","summary":"Show the slider on page load","type":"plugin","id":"plugin:d6a4d07d1b4022d886df52322dcd8a6f","is_default":0,"created_at":1724434385},"0b4e061a-b366-4d5a-a00e-bded4b107133":{"title":"Royal Elementor Addons","condition":"royal-elementor-addons\/wpr-addons.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/royal-elementor-addons\/assets\/js\/frontend.min.js","\/royal-elementor-addons\/assets\/js\/lib\/jarallax\/jarallax.min.js"],"icon_url":"","summary":"Fixes mobile menu not opening","type":"plugin","id":"plugin:c4b464373716d7ac8e3cfb019aaa6102","is_default":0,"created_at":1724434411},"1b19ec89-171a-4f85-8c4b-b1bcfc6b1433":{"id":"plugin:5e3f85d8c82cc184b945415d1a862601","title":"Sassy Social Share","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/sassy-social-share\/public\/js\/sassy-social-share-public.js","heateorSssLoadEvent"],"is_default":0,"condition":"sassy-social-share\/sassy-social-share.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"f5899925-2ab7-43b6-abc4-51b76d664ca6":{"title":"Scrollsequence","condition":"scrollsequence-pro\/scrollsequence-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/scrollsequence-pro\/public\/js\/gsap__premium_only.js","\/scrollsequence-pro\/public\/js\/gsap-scrolltrigger__premium_only.js","\/scrollsequence-pro\/public\/js\/ssq-lib__premium_only.js","scrollsequence-input-script"],"icon_url":"","summary":"Show images and animation on pageload","type":"plugin","id":"plugin:3df51830b6b80668fc342c8dcea495cf","is_default":0,"created_at":1724434606},"043827fc-3df8-45d6-9cd2-14fbe962987a":{"title":"ShiftNav Pro - Responsive Mobile Menu","condition":"shiftnav-pro\/shiftnav.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shiftnav-pro\/assets\/js\/shiftnav(.*).js"],"icon_url":"","summary":"Displays without interaction.","type":"plugin","id":"plugin:9d60b5d2de4d828b78c7b088024377d6","is_default":0,"created_at":1724434657},"bcbaf240-e76f-4620-b7d5-4852c46d4be7":{"title":"ShiftNav \u2013 Responsive Mobile Menu","condition":"shiftnav-responsive-mobile-menu\/shiftnav-responsive-mobile-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shiftnav-responsive-mobile-menu\/"],"icon_url":"","summary":"Displays without interaction.","type":"plugin","id":"plugin:56279bd768c8f27ad1972b6774738bcf","is_default":0,"created_at":1724434651},"bbe0543b-b5af-467b-a90d-e2975d892d8d":{"title":"Short Pixel Adaptive Image","condition":"shortpixel-adaptive-images\/short-pixel-ai.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shortpixel-adaptive-images\/assets\/js\/ai(.*).min.js","spai_settings"],"icon_url":"","type":"plugin","id":"plugin:1bc7ac87d8ab2301a1b904919dc7a798","is_default":0,"created_at":1704734942},"543ab43a-6bd3-4948-a09e-3b95e7c9209d":{"title":"Showcase IDX","condition":"showcase-idx\/showcaseidx.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","SIDX","search.showcaseidx.com\/js\/app-(.*).js","cdn.shortpixel.ai"],"icon_url":"","summary":"Prevents requiring double click on iOS to use filters.\r\n\r\nExclusion when the option New AI engine is enabled (You don't need the above, only this one):\r\n\r\ncdn.shortpixel.ai","type":"plugin","id":"plugin:ce4dea8ddc3caa8d00e95cec3202d32a","is_default":0,"created_at":1724434768},"a16bcab7-1169-46b9-a425-b091478d8312":{"title":"Side Cart WooCommerce","condition":"side-cart-woocommerce\/xoo-wsc-main.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/plugins\/woocommerce\/assets\/js\/frontend\/add-to-cart.min.js","\/plugins\/woocommerce\/assets\/js\/jquery-blockui\/jquery.blockUI.min.js","\/plugins\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js"],"icon_url":"","summary":"Makes cart icon work to slide in the cart menu.","type":"plugin","id":"plugin:3ea7d9f75ad03620b0bce2517bd5b8d1","is_default":0,"created_at":1724434681},"521f748e-cf09-4019-bd28-b52daef5f16f":{"title":"Simple Banner","condition":"simple-banner\/simple-banner.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/simple-banner\/","simpleBannerScriptParams"],"icon_url":"","summary":"Show the banner on pageload.","type":"plugin","id":"plugin:7843983bf90dbae16c6e889382c71b23","is_default":0,"created_at":1724434695},"76026e82-d9cf-482c-b480-55c57693a184":{"title":"Site Kit by Google","condition":"google-site-kit\/google-site-kit.php","exclusions":["google-analytics.com\/analytics.js","ga\\( '","ga\\('","\/gtag\/js","gtag\\(","\/gtm.js"],"icon_url":"","summary":"Fixes issues with Google Analytics.","type":"plugin","id":"plugin:b6825f971d35a5515d095564a2e40936","is_default":0,"created_at":1724434707},"4f9be7dd-fa19-401c-a5a5-81654990f9c4":{"title":"SiteOrigin Widgets Bundle - Load images","condition":"so-widgets-bundle\/so-widgets-bundle.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/so-widgets-bundle\/js\/slider\/jquery.slider.min.js","\/so-widgets-bundle\/js\/jquery.cycle.min.js","\/so-widgets-bundle\/js\/jquery.cycle.swipe.min.js","\/so-widgets-bundle\/js\/sow.jquery.fittext.min.js","\/so-widgets-bundle\/js\/lib\/jquery.fitvids.min.js","\/siteorigin-panels\/js\/styling.min.js","siteorigin-panels-before-js","page_id"],"icon_url":"","summary":"Load the images on the page load.","type":"plugin","id":"plugin:3968480c93d7f92ed1cb78a54b47fc9f","is_default":0,"created_at":1724434720},"79c458d7-f7f7-4072-919d-ad337bde6ae3":{"title":"Slick Menu","condition":"slick-menu\/slick-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/slick-menu\/"],"icon_url":"","summary":"Show menu on pageload","type":"plugin","id":"plugin:5ce5dfecdc9d3292c69a1413bbd17d3c","is_default":0,"created_at":1724434809},"99cf4942-49ea-4687-b156-405ed1ce1cfa":{"title":"Slide Anything","condition":"slide-anything\/slide-anything.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/slide-anything\/owl-carousel\/owl.carousel.min.js","owl_goto.trigger"],"icon_url":"","summary":"Show slider without user interaction","type":"plugin","id":"plugin:fff874cc48b80940210228c975df395c","is_default":0,"created_at":1724434788},"dd0ea584-0c99-4c30-b46d-da35b94c9f0a":{"title":"Slider by Soliloquy","condition":"soliloquy-lite\/soliloquy-lite.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","soliloquy-min.js","soliloquy_slider"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:ffb5f8cc0ea17886dbd05f601ca3eec0","is_default":0,"created_at":1724434937},"ecb2fffc-d289-4f68-ae94-71131f17deee":{"title":"Smart Slider 3","condition":"smart-slider-3\/smart-slider-3.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/smart-slider-3\/(.*).js","_N2"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:2f373822dceb191c31c8ad2183d51869","is_default":0,"created_at":1724434826},"284ede43-bf80-419e-8414-46c26cb746f0":{"title":"Smart Slider 3 Pro","condition":"nextend-smart-slider3-pro\/nextend-smart-slider3-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/SmartSlider3\/(.*).js","_N2"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:720ec9fbbd8a52ce525959a68a5310b3","is_default":0,"created_at":1724434836},"be70034f-def5-4771-9b3f-662eb218da2a":{"title":"Spectra - Show Slider Images","condition":"ultimate-addons-for-gutenberg\/ultimate-addons-for-gutenberg.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/ultimate-addons-for-gutenberg\/assets\/js\/spectra-animations.min.js","\/ultimate-addons-for-gutenberg\/assets\/js\/post.min.js","\/ultimate-addons-for-gutenberg\/assets\/js\/aos.min.js","\/slick.min.js","\/imagesloaded.min.js","UAGBPostCarousel"],"icon_url":"","summary":"Show the slider on pageload","type":"plugin","id":"plugin:af16af31f83a874b9d0a9570d9c15ff7","is_default":0,"created_at":1724434960},"c3334c29-4160-42df-a1ce-f8aeeaee8668":{"title":"Super Socializer","condition":"super-socializer\/super_socializer.php","exclusions":["theChamp","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:660defe26748470c3a47366cd4012579","is_default":0,"created_at":1677853633},"f18b4242-fe3f-4e2b-bfc9-ac2fb3939a90":{"title":"Superfly Menu","condition":"superfly-menu\/main.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate((.*?)(.min?)?).js","\/superfly-menu\/includes\/vendor\/looks_awesome\/icon_manager\/js\/md5.js","\/superfly-menu\/includes\/vendor\/looks_awesome\/icon_manager\/js\/util.js","\/superfly-menu\/js\/public.min.js","window.SFM_is_mobile","var SFM_skew_disabled","var SFM_template"],"icon_url":"","type":"plugin","id":"plugin:ccb15175093bc6c437b78797f0698a7b","is_default":0,"created_at":1684301673},"1a05c00a-8562-45bc-80e8-987a4574b1c9":{"title":"Symplr Ads","condition":"symplr-ads\/symplr-plugin.php","exclusions":["\/symplr-ads\/","cdns.symplr.de"],"icon_url":"","summary":"Loads Ads right away","type":"plugin","id":"plugin:3b6d39e28a87e86c4659491e2368ff61","is_default":0,"created_at":1724442756},"858d2d7f-bdac-4d27-ba26-baa9ace96ba4":{"title":"Tabby Responsive Tabs","condition":"tabby-responsive-tabs\/tabby-responsive-tabs.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/tabby-responsive-tabs\/js\/tabby.js","RESPONSIVEUI"],"icon_url":"","summary":"Load tabs without delay","type":"plugin","id":"plugin:7d93008296bb5c7c43d4cba185ed2632","is_default":0,"created_at":1724442869},"e44a5c93-bb77-4624-a121-d846905137ea":{"title":"The Plus Addons for Elementor","condition":"the-plus-addons-for-elementor-page-builder\/theplus_elementor_addon.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/theplus-addons\/(.*)"],"icon_url":"","summary":"Start animations on page load","type":"plugin","id":"plugin:2f563bbb7e92363ec3fb2989a1c7dffe","is_default":0,"created_at":1724442902},"2bbac961-b000-4802-ae97-d52472ec6750":{"title":"The Plus Addons for Elementor Premium","condition":"theplus_elementor_addon\/theplus_elementor_addon.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/theplus_elementor_addon\/","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig"],"icon_url":"","summary":"Solve issues with sliders and tabs","type":"plugin","id":"plugin:6e127deaaeefbe57ff945b1f9e274518","is_default":0,"created_at":1724442911},"c3b5d7fd-a1e0-4aca-a0b6-405018a37266":{"title":"The Post Grid","condition":"the-post-grid\/","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","the-post-grid"],"icon_url":"","summary":"Makes the content of single post appearing immediately","type":"plugin","id":"plugin:93c3354976453458cf67f8ec0fdfce5a","is_default":0,"created_at":1724442928},"666b45e8-749c-4140-bd17-e1cd589e03ee":{"title":"ThemeREX Addons","condition":"trx_addons\/trx_addons.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/trx_addons\/js\/__scripts-full.js","\/trx_addons\/components\/cpt\/layouts\/shortcodes\/menu\/superfish.min.js"],"icon_url":"","summary":"Hide the page preloader without user interaction","type":"plugin","id":"plugin:b9c418b47c986935a1151ab9b42f8971","is_default":0,"created_at":1724443103},"a750cada-eb58-4df4-9966-21c8a69332ba":{"id":"plugin:75af9efe22c5cc776636266feb55adf1","title":"Thrive Architect","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"is_default":0,"condition":"thrive-visual-editor\/thrive-visual-editor.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"13714cde-680e-4ca4-8607-c35952d6a5f2":{"title":"Thrive Comments","condition":"thrive-comments\/thrive-comments.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-leads\/","window.TL_Const","var ml=","\/thrive-comments\/assets\/js\/","ThriveComments","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js"],"icon_url":"","type":"plugin","id":"plugin:6a72d06ca2f6a888b0d9d5ea93af2edc","is_default":0,"created_at":1677852974},"aa7ca898-499f-4f04-b419-3de199996969":{"title":"Thrive Leads","condition":"thrive-leads\/thrive-leads.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-leads\/","window.TL_Const","var ml=","\/thrive-comments\/assets\/js\/","ThriveComments","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/backbone.min.js"],"icon_url":"","summary":"Show the form on pageload & Fix comment box not showing","type":"plugin","id":"plugin:b84d82c02cade64ade00712b9c5652aa","is_default":0,"created_at":1724443176},"9eee297a-8241-4ef2-af97-46074bd0898c":{"id":"plugin:5bb61b0559b0a3fd578315b553451327","title":"Thrive Quiz Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"is_default":0,"condition":"thrive-quiz-builder\/thrive-quiz-builder.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c2f3ec2a-5b09-4845-aa95-84841783fbfc":{"id":"plugin:a7f3e5206abff19ca7cf142260181738","title":"Thrive Ultimatum","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-ultimatum\/","var TVE_Ult_"],"is_default":0,"condition":"thrive-ultimatum\/thrive-ultimatum.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"d48b8d2f-e071-4a30-840a-306154a115a0":{"title":"Tidio Chat","condition":"tidio-live-chat\/tidio-elements.php","exclusions":["document.tidioChatCode"],"icon_url":"","summary":"Display the chat icon.","type":"plugin","id":"plugin:f57be2014b6a489d053f8367fa6c0f9f","is_default":0,"created_at":1724442883},"cb6d33ed-7eb4-4ff9-9ad0-7fc54fbecf6f":{"id":"plugin:c9e0485ec256d4a6a8d92a98c18d76fc","title":"Toolset Blocks","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","toolsetCommonEs.fontToHead","toolsetCommonEs.styleToHead","\/toolset-blocks\/vendor\/toolset\/blocks\/public\/js\/frontend.js","\/toolset-blocks\/vendor\/toolset\/common-es\/public\/toolset-common-es-frontend.js","\/toolset-blocks\/public\/js\/views-frontend.js","\/wp-includes\/js\/underscore.min.js"],"is_default":0,"condition":"toolset-blocks\/wp-views.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"4bac6350-0925-49fb-904a-372f22fd6baf":{"title":"Top Bar Pro","condition":"topbar-pro\/topbar_pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/topbar-pro\/js\/tpbr_front.min.js","\/plugins\/topbar-pro\/js\/jquery.cookie.js"],"icon_url":"","summary":"To prevent top bar from getting overlapped with other content.","type":"plugin","id":"plugin:71beda322b37f7fc7d456822493cb972","is_default":0,"created_at":1724443222},"033486e7-0ddc-4915-a848-31504d00448e":{"title":"Twenty20 Image Before-After","condition":"twenty20\/ttwenty.php","exclusions":["\/twenty20\/assets\/js\/(.*).js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","twentytwenty-container"],"icon_url":"","type":"plugin","id":"plugin:23441bba9d3602bc932d697c7cb8aa1f","is_default":0,"created_at":1677858089},"bef2147e-2d0b-431d-ac29-5e8430c0d809":{"title":"Typing Effect","condition":"animated-typing-effect\/typingeffect.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/plugins\/animated-typing-effect\/assets\/js\/typed.js","\/plugins\/animated-typing-effect\/assets\/js\/typed.fe.js"],"icon_url":"","summary":"Show the animated typing effect on page load","type":"plugin","id":"plugin:e4e1a3e63d09a28dcb20577efbcb5a48","is_default":0,"created_at":1724443336},"7675a34d-006e-4672-99d5-a81e1b8e47f9":{"title":"UberMenu","condition":"ubermenu\/ubermenu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ubermenu\/assets\/js\/ubermenu.min.js"],"icon_url":"","summary":"To make mobile menu responsive immediately without any user interaction","type":"plugin","id":"plugin:3d59cc34167a7f8123e66b627148e0b7","is_default":0,"created_at":1724443357},"8233178a-e7b3-43ce-b193-bd0d9c960933":{"title":"Ultimate Addons for Elementor","condition":"ultimate-elementor\/ultimate-elementor.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ultimate-elementor\/assets\/lib\/slick\/slick.min.js","\/ultimate-elementor\/assets\/min-js\/uael-frontend.min.js","\/ultimate-elementor\/assets\/lib\/isotope\/isotope.min.js","\/ultimate-elementor\/assets\/lib\/jquery-element-resize\/jquery_resize.min.js","\/ultimate-elementor\/assets\/lib\/fancybox\/jquery_fancybox.min.js","\/ultimate-elementor\/assets\/lib\/justifiedgallery\/justifiedgallery.min.js","\/elementor-pro\/assets\/js\/frontend.min.js","\/wp-includes\/js\/imagesloaded.min.js","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js","\/elementor\/assets\/lib\/swiper\/swiper.min.js","\/nasa-core\/assets\/js\/min\/jquery.slick.min.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig"],"icon_url":"","summary":"To make header slider be displayed correctly on page load","type":"plugin","id":"plugin:86424c46157c1c7e2e1571055813beee","is_default":0,"created_at":1724443382},"8bddf484-6c78-4147-a4e6-d3039904e5f6":{"title":"Ultimate Addons for Elementor - Mobile Menu","condition":"ultimate-elementor\/ultimate-elementor.php","exclusions":["\/jquery-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/jquery-migrate(.*)(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/ultimate-elementor\/assets\/js\/uael-nav-menu.js","\/ultimate-elementor\/assets\/min-js\/uael-nav-menu.min.js"],"icon_url":"","summary":"To make the mobile menu icon work as expected","type":"plugin","id":"plugin:70cfade3a7adbb54196f6acccc5a176f","is_default":0,"created_at":1724443394},"028504f7-b1cd-4318-8a6d-ce186197e89d":{"id":"plugin:0f0a91f0c454021a5ff9fc25c3ed419f","title":"Ultimate Addons for WPBakery Page Builder","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Ultimate_VC_Addons\/assets\/"],"is_default":0,"condition":"Ultimate_VC_Addons\/Ultimate_VC_Addons.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"5754af3d-a6af-49eb-b731-bdd82f26dc4e":{"title":"Ultimate Responsive Image Slider","condition":"ultimate-responsive-image-slider\/ultimate-responsive-image-slider.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","sliderPro"],"icon_url":"","summary":"To load the slider without any user interaction","type":"plugin","id":"plugin:34db8636812bad84c8aea037c2ddc8c2","is_default":0,"created_at":1724443418},"78ae882d-ae31-4179-b677-8893814938c7":{"title":"Unlimited Elements for Elementor Premium - Slider","condition":"unlimited-elements-for-elementor-premium\/unlimited-elements-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elementor\/","\/elementor-pro\/","ElementorProFrontendConfig","elementorFrontendConfig","\/unlimited-elements-for-elementor-premium\/","uc_"],"icon_url":"","type":"plugin","id":"plugin:17260bc347b8c29bee0010e9ec164184","is_default":0,"created_at":1683270377},"051cbfbb-7ad2-4f06-a493-3cf423a80904":{"title":"Variation Swatches for WooCommerce","condition":"woo-variation-swatches\/woo-variation-swatches.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jquery\/ui\/","\/woo-variation-swatches\/","\/woo-variation-swatches-pro\/","underscore.min.js"],"icon_url":"","summary":"Make some elements to load","type":"plugin","id":"plugin:6717ef5673a956bc08ca4a5117065d53","is_default":0,"created_at":1724443437},"6879caba-7224-4eca-bcb2-370785b495ea":{"title":"Web Accessibility By accessiBe","condition":"accessibe\/accessiebe.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/accessibe\/","acsbJS"],"icon_url":"","summary":"To preserve the functions of the plugin","type":"plugin","id":"plugin:57597b7683e01892932083413f085134","is_default":0,"created_at":1724443688},"bd6732fe-4c2b-40a1-9035-8464057e2da5":{"title":"WooCommerce - Cart Fragments","condition":"woocommerce\/woocommerce.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js"],"icon_url":"","type":"plugin","id":"plugin:201de694c6fc28c8d580a3b2ca484218","is_default":0,"created_at":1680937567},"d044900d-07e1-4533-9516-33106efcb259":{"title":"WooCommerce - Product description","condition":"woocommerce\/woocommerce.php","exclusions":["\/plugins\/woocommerce\/assets\/js\/frontend\/single-product.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:a82644b4c9417ea3a240939a73344700","is_default":0,"created_at":1679309756},"bff953b1-2213-4666-8112-76a84a3cc207":{"title":"WooCommerce - Product Gallery","condition":"woocommerce\/woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/zoom\/jquery.zoom(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/photoswipe\/","\/woocommerce\/?(.*)\/assets\/js\/flexslider\/jquery.flexslider(.min)?.js","\/woocommerce\/?(.*)\/assets\/js\/frontend\/single-product(.min)?.js","wc_single_product_params"],"icon_url":"","type":"plugin","id":"plugin:7665868ff97c265628f376523a4f9ecc","is_default":0,"created_at":1686579689},"016e6ddf-c6e7-49ec-bd3f-2585d9e45895":{"title":"WooCommerce - Select2 library","condition":"woocommerce\/woocommerce.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/woocommerce\/assets\/js\/select2\/select2(.*).js"],"icon_url":"","type":"plugin","id":"plugin:4bca670bd5d55dd24b17fb0193b0891e","is_default":0,"created_at":1681459540},"b9b2c6d7-944f-4ae3-ae04-c9e2204b9dab":{"title":"WooCommerce Attribute Swatches","condition":"iconic-woo-attribute-swatches-premium\/iconic-woo-attribute-swatches.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/iconic-woo-attribute-swatches-premium\/assets\/frontend\/js\/main.min.js","\/iconic-woo-attribute-swatches-premium\/assets\/vendor\/flickity\/flickity.pkgd.min.js","iconic_was_vars"],"icon_url":"","summary":"Makes using attribute swatches not require two clicks","type":"plugin","id":"plugin:9165c768e978d6ad3f696db8c78ccbb2","is_default":0,"created_at":1724443452},"4506c5e9-7349-44c9-9967-34370c83facb":{"title":"WooCommerce Bookings","condition":"woocommerce-bookings\/woocommerce-bookings.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/woocommerce-bookings\/dist\/frontend.js","\/wp-includes\/js\/dist\/date.min.js","\/wp-includes\/js\/dist\/vendor\/moment.min.js","\/wp-includes\/js\/jquery\/ui\/datepicker.min.js","\/wp-includes\/js\/underscore.min.js","\/woocommerce\/assets\/js\/jquery-blockui\/jquery.blockUI.min.js","\/wp-includes\/js\/dist\/hooks.min.js"],"icon_url":"","summary":"Make sure the calendar is displayed correctly","type":"plugin","id":"plugin:14dec6d289b9977fa3a74116feecebcc","is_default":0,"created_at":1724443469},"fec9cd04-c358-45da-a1a8-1668b964016b":{"id":"plugin:456f3b849ba3b6647246aca9d7cdaed5","title":"WooCommerce Product Reviews Pro","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","wc_product_reviews_pro","\/woocommerce-product-reviews-pro\/assets\/js\/frontend\/wc-product-reviews-pro-frontend.min.js","\/woocommerce\/assets\/js\/jquery-tiptip\/jquery.tipTip.min.js"],"is_default":0,"condition":"woocommerce-product-reviews-pro\/woocommerce-product-reviews-pro.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"551a9399-627f-4978-9bae-5cc8e0aefc82":{"id":"plugin:c8577e74eef3b082fb6403760d53f68c","title":"WooCommerce TM Extra Product Options","type":"plugin","icon":"","exclusions":["\/woocommerce-tm-extra-product-options\/assets\/js\/epo.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/core.min.js","\/wp-includes\/js\/jquery\/ui\/mouse.min.js","\/wp-includes\/js\/jquery\/ui\/slider.min.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/wp-util.min.js","\/wp-includes\/js\/dist\/hooks.js","\/wp-includes\/js\/dist\/i18n.js"],"is_default":0,"condition":"woocommerce-tm-extra-product-options\/tm-woo-extra-product-options.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"3cac4650-6a52-448e-8e48-e99a772a59a2":{"title":"WooLentor","condition":"woolentor-addons\/woolentor_addons_elementor.php","exclusions":["\/woolementor\/assets\/third-party\/slick\/slick.min.js","\/woolentor-addons","woolentor_addons"],"icon_url":"","summary":"Display the carousel without interaction.","type":"plugin","id":"plugin:c6e6cab8c80fa3fe57d609f72d2d5c56","is_default":0,"created_at":1724443648},"21af073d-d2ec-4d46-bbda-2c69f87f3f98":{"title":"Woolentor - Fix product gallery","condition":"woolentor-addons\/woolentor_addons_elementor.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)",".woolentor-learg-img","\/woolentor-addons\/assets\/js\/slick.min.js","\/woolentor-addons-pro\/assets\/lib\/js\/tippy.min.js"],"icon_url":"","summary":"Display the product gallery without interaction.","type":"plugin","id":"plugin:c5315e06dfc353cd57f85a60abe4e320","is_default":0,"created_at":1724443660},"67aeb4cb-1a00-4d10-a00c-34888b4c0dba":{"title":"WooThumbs for WooCommerce","condition":"woothumbs-premium\/woothumbs-premium.php","exclusions":["\/wp-includes\/js\/dist\/hooks.min.js","\/wp-includes\/js\/underscore.min.js","\/wp-includes\/js\/wp-embed.min.js","\/wp-includes\/js\/wp-util.min.js","\/woothumbs-premium\/(.*)"],"icon_url":"","summary":"To preserve the display of product variation images","type":"plugin","id":"plugin:b97b1d3f627769e1dd8305aa25af993c","is_default":0,"created_at":1724443675},"c7a14763-88d0-4344-a6af-e0a8dc5fa8d5":{"title":"WordPress Mega Menu \u2013 QuadMenu","condition":"quadmenu\/quadmenu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/quadmenu","#private-menu","#public-menu"],"icon_url":"","summary":"Show the menu on pageload","type":"plugin","id":"plugin:31b9e812a025e5750a6ef0980ee7d2db","is_default":0,"created_at":1724443871},"f699fdbd-84a7-4f24-b729-3e4a4f83a4dd":{"title":"WP Armour","condition":"wp-armour-extended\/wp-armour-extended.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/honeypot\/includes\/js\/wpa.js","\/wp-armour-extended\/includes\/js\/wpae.js","wpa_hidden_field","wpa_add_test"],"icon_url":"","summary":"To prevent marking all product reviews as spam.","type":"plugin","id":"plugin:601f8fc7d10cad1c2ec2949c0d9b1651","is_default":0,"created_at":1724443705},"697239fe-74f5-42a4-a504-97ee85bf43ff":{"title":"WP Booking Calendar","condition":"booking\/wpdev-booking.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/booking(.*)\/_dist\/all\/_out\/wpbc_all.js","\/wp-content\/plugins\/booking(.*)\/js\/datepick\/jquery.datepick.wpbc.9.0.js","\/wp-content\/plugins\/booking(.*)\/js\/wpbc_time-selector.js","\/wp-content\/plugins\/booking(.*)\/assets\/libs\/tippy.js","\/wp-content\/plugins\/booking(.*)\/assets\/libs\/popper\/popper.js","wpbc_init__head","wpbc_url_ajax","booking_max_monthes_in_calendar","wpbc_define_tippy_popover","flex_tl_table_loading"],"icon_url":"","type":"plugin","id":"plugin:fdaf786c076fa0f17eec1e321fee0b3f","is_default":0,"created_at":1720571754},"6a28aae5-ef91-43fc-8204-92e3a25642b4":{"id":"plugin:5728f3b9856dfe37a36ab15b0a637198","title":"WP Go Maps","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","maps.googleapis.com"],"is_default":0,"condition":"wp-google-maps\/wpGoogleMaps.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"c9b991d1-a653-404b-be85-e276b1814e7d":{"title":"WP Google Map Pro","condition":"wp-google-map-gold\/wp-google-map-gold.php","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","maps.google.com\/maps\/api\/js","\/wp-includes\/js\/masonry.min.js","\/wp-google-map-gold\/(.*)"],"icon_url":"","type":"plugin","id":"plugin:dc12a9b7b9c4c7ce3c532b6b377739f2","is_default":0,"created_at":1677858391},"1f8f9fbf-fbf0-4e3a-b77c-af0fa47e950d":{"title":"WP Google Maps Pro","condition":"wp-google-maps-pro\/wp-google-maps-pro.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-google-maps(.*)","maps.googleapis.com","mgl_","wpgmza"],"icon_url":"","summary":"Loads map on page load and fixes map not displayed after user interaction","type":"plugin","id":"plugin:87f572f5f0ec143a8fceba77d0616197","is_default":0,"created_at":1724444593},"41e4b98c-e63f-4800-a478-02592562322b":{"title":"WP iCal Availability","condition":"wp-ical-availability\/wp-ical-availability.php","exclusions":["\/wp-ical-availability\/js\/custom-select.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-ical-availability\/"],"icon_url":"","summary":"Fixes error when jQuery is already excluded, & Fully render the calendar on page load","type":"plugin","id":"plugin:3735ca768ede98b25795f4cb057ff4ed","is_default":0,"created_at":1724444622},"2b06c5b8-dc32-4bb0-8504-3a9f1c3a1ec0":{"title":"WP MapIt","condition":"wp-mapit\/wp_mapit.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-mapit\/wp_mapit\/js\/leaflet.js","\/wp-mapit\/wp_mapit\/js\/wp_mapit_multipin.js"],"icon_url":"","summary":"Display the map on page load","type":"plugin","id":"plugin:ba8d1c7f294a3f5b593556eb3b0bc7d9","is_default":0,"created_at":1724443719},"2039eafd-1c11-4e21-a61b-30857f291ae3":{"title":"WP Responsive Menu","condition":"wp-responsive-menu\/wp-responsive-menu.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-responsive-menu\/(.*)"],"icon_url":"","summary":"Render the menu on page load","type":"plugin","id":"plugin:927b8bf7806f2d287559b86a0b455a59","is_default":0,"created_at":1724443736},"e06be942-cccd-4b2d-a268-06dc78f0b820":{"title":"WP Search with Algolia","condition":"wp-search-with-algolia\/algolia.php","exclusions":["\/wp-search-with-algolia\/js\/algoliasearch\/dist\/algoliasearch-lite.umd.js","\/wp-search-with-algolia\/js\/autocomplete-noconflict.js","\/wp-search-with-algolia\/js\/autocomplete.js\/dist\/autocomplete.min.js","var algolia"],"icon_url":"","summary":"Fixes the search function and its related console errors.","type":"plugin","id":"plugin:43267e659d599fbb6b42c719b49bb7a7","is_default":0,"created_at":1724443749},"4fc2a7ae-b9e6-410e-93cf-e6d1962add6a":{"title":"WP Smart Preloader","condition":"wp-smart-preloader\/wp-preloader.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-smart-preloader\/assets\/js\/wsp-main-script(.min)?.js"],"icon_url":"","summary":"Allows the preloader to work without user interaction, and resolves GTMetrix\/PageSpeed Insights test.","type":"plugin","id":"plugin:4fb90fc73fc2b5d1e37ea2dadfd3cef3","is_default":0,"created_at":1724443814},"7ecf40ce-2bcd-412c-bb01-9e71fecf6be8":{"title":"WP Store Locator","condition":"wp-store-locator\/wp-store-locator.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-store-locator\/","\/wp-includes\/js\/underscore.min.js","maps.google.com"],"icon_url":"","summary":"Show the map on page load.","type":"plugin","id":"plugin:d37bb5054a24471ca1675d9ab49d01b0","is_default":0,"created_at":1724443828},"7a1d19a2-3a48-40ab-8051-f642fc63ce2d":{"title":"WP Ultimate Post Grid","condition":"wp-ultimate-post-grid\/wp-ultimate-post-grid.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/wp-ultimate-post-grid\/dist\/public.js","\/wp-ultimate-post-grid-premium\/dist\/public-premium.js","wpupg_grid_args"],"icon_url":"","summary":"Show the dropdown selector\/filter option","type":"plugin","id":"plugin:e24341fef49bd64b89682d583218c108","is_default":0,"created_at":1724443858},"76c86163-ddf3-4113-b620-de9d5058f505":{"title":"WPBakery Page Builder","condition":"js_composer\/js_composer.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js"],"icon_url":"","summary":"Fire sliders, animations, full-width elements resizing without user interaction","type":"plugin","id":"plugin:517d7d24da9a7072ed389d0fb30374a0","is_default":0,"created_at":1724444340},"0b8ff2c0-c3cd-4ec1-b7f5-c7751de6101b":{"title":"WPBakery Page Builder - Carousel","condition":"js_composer\/js_composer.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/js_composer\/assets\/lib\/vc_carousel\/js\/vc_carousel.min.js"],"icon_url":"","summary":"Fire carousels without user interaction.","type":"plugin","id":"plugin:76336ed3f04df091e669f89d908ef2ed","is_default":0,"created_at":1724444319},"4f5e5b98-c326-4b9f-9ada-3b257862132c":{"id":"plugin:1ec7138c950c355e7af60d49c81139fc","title":"wpDataTables","type":"plugin","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wpdatatables\/","highcharts"],"is_default":0,"condition":"wpdatatables\/wpdatatables.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"18be1b8c-0bc4-4a01-abc6-a127aff380c6":{"title":"WPForms","condition":"wpforms\/wpforms.php","exclusions":["\/wpforms-offline-forms\/assets\/js\/wpforms-offline-forms.min.js","wpforms-offline-forms-js-extra","wpformsRecaptchaLoad"],"icon_url":"","summary":"Prevents issues with redirect to Thank you page.","type":"plugin","id":"plugin:c62ca58ea081c1271de8dadfa7daac69","is_default":0,"created_at":1724444513},"138b2894-25d2-47ce-b33d-cbf1256d8f45":{"title":"WPForms - Loader GIF","condition":"wpforms\/wpforms.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wpforms-conversational-forms\/assets\/js\/conversational-forms.es5.min.js"],"icon_url":"","summary":"When Delay JavaScript Execution is enabled, the loader GIF stays until user interaction.","type":"plugin","id":"plugin:03dc6ae2848dd60e1d4f4f86015c22f0","is_default":0,"created_at":1724444364},"8a3cacb6-81bd-456a-a1cc-a4025f8e5234":{"id":"plugin:0992ac952c0a05bb35e18b1d5744d346","title":"WPForms Lite","type":"plugin","icon":"","exclusions":["wpformsRecaptchaLoad","\/wpforms-offline-forms\/assets\/js\/wpforms-offline-forms.min.js","wpforms-offline-forms-js-extra"],"is_default":0,"condition":"wpforms-lite\/wpforms.php","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"98bbd410-5b01-4244-a8eb-715765180328":{"title":"XL WooCommerce Sales Triggers","condition":"xl-woocommerce-sales-triggers\/xl-woocommerce-sales-triggers.php","exclusions":["\/xl-woocommerce-sales-triggers\/assets\/js\/wcst_combined.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","type":"plugin","id":"plugin:ba9e526ddb0157e69757530c6b18b714","is_default":0,"created_at":1677856813},"bf9f9620-dd0e-4e6f-9a45-4eb78a148f42":{"title":"YITH WooCommerce Ajax Product Filter","condition":"yith-woocommerce-ajax-navigation\/init.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/yith-woocommerce-ajax-navigation\/assets\/js\/yith-wcan-shortcodes.min.js"],"icon_url":"","summary":"Display product filters on mobile without interaction","type":"plugin","id":"plugin:58663fc781232169e865f6fe7cf1afaa","is_default":0,"created_at":1724444671},"b053279d-e07c-438c-bb3e-3a1f4f5d7c5e":{"title":"YITH WooCommerce AJAX Product Filter Premium","condition":"yith-woocommerce-ajax-product-filter-premium\/init.php","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/yith-woocommerce-ajax-product-filter-premium\/assets\/js\/yith-wcan-shortcodes.min.js"],"icon_url":"","summary":"Display product filters on mobile without interaction","type":"plugin","id":"plugin:68b637fd247e40c8e135e4771d739b07","is_default":0,"created_at":1724444677},"62056165-8bd9-4ff0-b21f-e4ed0ae45fae":{"title":"YITH WooCommerce Points and Rewards","condition":"yith-woocommerce-points-and-rewards-premium\/init.php","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/yith-woocommerce-points-and-rewards-premium\/assets\/js\/frontend.min.js","\/woo-variation-swatches-pro\/assets\/js\/add-to-cart-variation.min.js"],"icon_url":"","summary":"Display rewards points notification without interaction","type":"plugin","id":"plugin:4acc87d4eb72c86cdea76d180b61a098","is_default":0,"created_at":1724444693},"d94dbbf3-bcab-4e47-9fbb-6b3a7cf92787":{"title":"Yotpo Social Reviews for Woocommerce","condition":"yotpo-social-reviews-for-woocommerce\/wc_yotpo.php","exclusions":["\/yotpo-social-reviews-for-woocommerce\/assets\/js\/headerScript.js"],"icon_url":"","type":"plugin","id":"plugin:45ab742b3fccbd04d7bc973c8582be87","is_default":0,"created_at":1680686421},"51dccf53-5cc7-4283-9ab1-01d34c6cce22":{"title":"Zoho SalesIQ","condition":"zoho-salesiq\/index.php","exclusions":["zoho.salesiq"],"icon_url":"","summary":"Display chat without interaction","type":"plugin","id":"plugin:b96c3865575068aac82c973eb3e3c52a","is_default":0,"created_at":1724444708}},"themes":{"9aeea459-91d3-44b6-8a26-b883dca8b402":{"title":"Agensy - Load page without User Interaction","condition":"agensy","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/agensy\/js\/scripts.js","\/themes\/agensy\/js\/scripts-single.js","\/themes\/agensy\/js\/wow.min.js","\/themes\/agensy\/js\/TweenMax.min.js","\/themes\/agensy\/js\/swiper.min.js","\/plugins\/visualcomposer\/assets\/lib\/bower\/isotope\/dist\/isotope.pkgd.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","summary":"Load page without user interaction.","type":"theme","id":"theme:7ab7dfeb0db9c0c74c020be318c2e6d9","is_default":0,"created_at":1724424755},"9c623554-5834-4669-9e96-1b894c1939b2":{"title":"Andaman","condition":"andaman","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/andaman\/assets\/js\/","\/wp-andaman-plugins\/shortcodes\/vc_extend\/"],"icon_url":"","summary":"Unstuck the page loader (only use when jQuery is already excluded).","type":"theme","id":"theme:0193ea55fce2ada93b262f2824008c0f","is_default":0,"created_at":1724424778},"7374c5a5-69f8-460f-b44f-dee884a824cd":{"title":"Artale","condition":"artale","exclusions":["\/artale-elementor\/assets\/js\/modulobox.js","\/artale-elementor\/assets\/js\/artale-elementor.js","\/artale\/js\/jquery-stellar.js","\/artale\/js\/core\/artale-plugins.js","\/artale\/js\/core\/artale-custom.js","var loader"],"icon_url":"","summary":"Fixes the page loader (not closing) and display the main menu.","type":"theme","id":"theme:24cbda63f1b898ade5562ab4ec6d97a5","is_default":0,"created_at":1724424807},"23b01203-2a70-4394-9326-d59824def2d7":{"title":"Ashe Pro Premium","condition":"ashe-pro-premium","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/ashe-pro-premium\/"],"icon_url":"","summary":"Display mobile header without user interaction","type":"theme","id":"theme:4791da3cbbd1ed86253a087f0287aeb4","is_default":0,"created_at":1724426464},"03a9cc62-c167-447d-beb2-65c76c96b056":{"title":"Astra","condition":"astra","exclusions":["\/astra\/assets\/js\/minified\/frontend.min.js","replace\\(\/woocommerce-no-js\/,"],"icon_url":"","type":"theme","id":"theme:3cce5f3eaf76e098ba8e28f7bbba3f92","is_default":0,"created_at":1712608792},"2a2b54cb-8e1d-49d2-bfca-93eee231e470":{"title":"Astra - Carousel","condition":"astra","exclusions":["var astra","\/astra\/assets\/js\/minified\/style.min.js"],"icon_url":"","summary":"Load carousel","type":"theme","id":"theme:72a8d63e59c10bdf512a62b862d143a7","is_default":0,"created_at":1724426844},"7783361f-66fc-4d95-a054-4e9545bb5b48":{"title":"Auteur","condition":"g5plus-auteur","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/g5plus-auteur\/assets\/js\/core.min.js","\/g5plus-auteur\/assets\/vendors\/","\/auteur-framework\/libs\/smart-framework\/assets\/vendors\/perfect-scrollbar\/js\/perfect-scrollbar.jquery.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","summary":"Fire the slider on pageload","type":"theme","id":"theme:6207fe478e269e7547bda70a46607a49","is_default":0,"created_at":1724427467},"4c618038-8fc7-4d48-8d41-a32da14e5c1e":{"title":"AutoTrader","condition":"autotrader","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/autotrader\/(.*).js"],"icon_url":"","type":"theme","id":"theme:046dfeee2b77390c53e0e7f93b6a3792","is_default":0,"created_at":1679736741},"18f04f23-35a0-4c45-8cb6-a91d57ca1790":{"id":"theme:835da12f43373029659f766920e81b47","title":"Avada - Animations & mobile-specific actions","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/fusion-scripts\/(.*).js","window.off_canvas_","\/plugins\/fusion-builder\/","\/plugins\/fusion-core\/","\/Avada\/includes\/"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"90135867-1b95-498b-80d6-f5dbf2f6b318":{"title":"Avada - FAQ shortcode","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/plugins\/fusion-core\/js\/min\/avada-faqs.js"],"icon_url":"","summary":"Displays content created with the FAQ shortcode","type":"theme","id":"theme:b084708c80d8582546e5430219aa4670","is_default":0,"created_at":1724427150},"d23b5bb1-1d7f-4109-bf69-b20a2be2d337":{"title":"Avada - Fusion carousel","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.carouFredSel.js","\/includes\/lib\/assets\/min\/js\/general\/fusion-carousel.js","fusionCarouselVars"],"icon_url":"","summary":"Display carousel on pageload","type":"theme","id":"theme:5e7a2248e1a53d9bb27b187deb541248","is_default":0,"created_at":1724427016},"98dfa8c1-e72a-4cef-a0b2-8f0c322490fc":{"title":"Avada - Fusion form","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-form.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-form-logics.js","\/includes\/lib\/assets\/min\/js\/library\/cssua.js","\/includes\/lib\/assets\/min\/js\/general\/fusion.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js"],"icon_url":"","summary":"To allow submitting forms","type":"theme","id":"theme:f16fb109027f4994a7649a8b1663e6f7","is_default":0,"created_at":1724427132},"026801fa-af67-47ba-b966-347693f0585f":{"title":"Avada - Fusion grid gallery","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-builder\/assets\/js\/min\/general\/fusion-gallery.js","\/includes\/lib\/assets\/min\/js\/library\/imagesLoaded.js","\/includes\/lib\/assets\/min\/js\/library\/isotope.js","\/includes\/lib\/assets\/min\/js\/library\/packery.js","\/includes\/lib\/assets\/min\/js\/library\/lazysizes.js"],"icon_url":"","summary":"Display fusion grid gallery without delay","type":"theme","id":"theme:33f50696d353d8bd4eb59ff6e8f44c97","is_default":0,"created_at":1724426998},"c8349314-15a3-481e-973b-e4d936e4420e":{"title":"Avada - Fusion slider","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/fusion-core\/js\/min\/avada-fusion-slider.js","\/Avada\/includes\/"],"icon_url":"","summary":"Display fusion slider without delay","type":"theme","id":"theme:56fa9993a573540c83eda9c49fae5e3c","is_default":0,"created_at":1724426978},"7a04bc85-0fec-4487-ae05-bb2e5d8d0420":{"title":"Avada - Load Portfolio on pageload","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/library\/packery.js","\/library\/isotope.js","\/library\/imagesLoaded.js","\/general\/fusion-lightbox.js","\/fusion-core\/js\/min\/avada-portfolio.js"],"icon_url":"","summary":"Load Portfolio on pageload","type":"theme","id":"theme:c3f0ed4d94499b68c77d95db37d1d399","is_default":0,"created_at":1724427228},"55bd510c-78aa-49d5-8304-8be2ee2ab0da":{"title":"Avada - Mobile menu","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/assets\/min\/js\/general\/avada-menu.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.easing.js"],"icon_url":"","summary":"Load mobile menu scripts without a delay","type":"theme","id":"theme:2189c1c769d65cfc2182e4822847071b","is_default":0,"created_at":1724427273},"ddf00672-c35c-4b68-aeca-925e68bf12b2":{"title":"Avada - OffCanvas","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uploads\/fusion-scripts\/(.*).min.js","window.off_canvas_"],"icon_url":"","summary":"Load Off Canvas pop-ups without user interaction","type":"theme","id":"theme:97a185f08af70c39c7e221faab0f73eb","is_default":0,"created_at":1724427179},"17544cc3-9d3a-4611-bc5d-44d04e2786fa":{"title":"Avada - Show the Portfolio grid on page load","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/includes\/lib\/assets\/min\/js\/library\/imagesLoaded.js","\/includes\/lib\/assets\/min\/js\/library\/isotope.js","\/includes\/lib\/assets\/min\/js\/library\/lazysizes.js","\/includes\/lib\/assets\/min\/js\/library\/modernizr.js","\/includes\/lib\/assets\/min\/js\/library\/packery.js","\/fusion-core\/js\/min\/avada-portfolio.js","avadaPortfolioVars"],"icon_url":"","type":"theme","id":"theme:9d1a9b0c2ca20fca764a82f197b962fd","is_default":0,"created_at":1696601823},"c6c3347c-14e0-4766-afa5-df33a47f5a5a":{"title":"Avada - Sticky menu","condition":"Avada","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Avada\/assets\/min\/js\/general\/avada-menu.js"],"icon_url":"","summary":"Fix sticky menu","type":"theme","id":"theme:3ff44421b404c5efffa25e78e479e4ea","is_default":0,"created_at":1724427248},"232596c1-6a6a-4fe8-a5c3-a60fa74a9456":{"id":"theme:0d727d80bb132f17c737e55883fe4be0","title":"Avada - WooCommerce product gallery","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/assets\/min\/js\/general\/avada-woo-product-images.js","\/includes\/lib\/assets\/min\/js\/library\/jquery.flexslider.js"],"is_default":0,"condition":"Avada","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"95ece7e4-3b19-45e5-aa28-14f833c9afca":{"title":"Avesa","condition":"avesa","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/avesa\/js\/main.js","\/avesa\/js\/isotope.js","\/sw_core\/js\/slick.min.js","\/avesa\/js\/bootstrap-datetimepicker.min.js","\/avesa\/js\/bootstrap.min.js"],"icon_url":"","summary":"Display images on product pages.","type":"theme","id":"theme:aad8bfcc594eec02e3b0d635198dee5e","is_default":0,"created_at":1724427449},"f2bfe477-4e45-4e52-a7d9-4d0ba3a92258":{"title":"Besa","condition":"besa","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/besa\/js\/"],"icon_url":"","summary":"Trigger animations and makes the mobile menu immediately responsive","type":"theme","id":"theme:c238e89523c46ca28b08e401f42f6ccc","is_default":0,"created_at":1724427619},"bd94908c-8138-4995-986b-47ec66494bdd":{"title":"BeTheme","condition":"betheme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/betheme\/","mfn","\/wp-includes\/js\/jquery\/ui\/tabs.min.js","\/wp-includes\/js\/jquery\/ui\/core.min.js"],"icon_url":"","summary":"Trigger animations and makes the mobile menu immediately responsive","type":"theme","id":"theme:b99156eb9eeb357c0a70bd3bda6861cc","is_default":0,"created_at":1724427590},"190d2f1a-72a6-40ca-b08a-5c7ee7b0a6a5":{"title":"Bosa Online Education - Fixes animations and preloader","condition":"bosa-online-education","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/bosa\/assets\/js\/jquery.slicknav.min.js","\/bosa\/assets\/slick\/slick.min.js","\/bosa\/assets\/js\/navigation.js","\/bosa\/assets\/js\/custom.min.js","\/bosa\/assets\/js\/theia-sticky-sidebar.min.js"],"icon_url":"","summary":"Fix for the loading animation and displaying mobile menu.","type":"theme","id":"theme:5430bf7b83c83a3687b3b7b437e961b0","is_default":0,"created_at":1724427748},"6fb2b9d7-6ecc-4260-999c-938fbebdbf01":{"id":"theme:de8504b73ea228d0ea9bbce69752092e","title":"Bridge","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/bridge-creative\/bridge\/js\/","\/wp-includes\/js\/"],"is_default":0,"condition":"bridge","created_at":1676435704,"updated_at":"2023-02-15T04:32:16.000000Z","icon_url":""},"1dd63427-b4c9-4596-b952-ac711e3637f9":{"title":"Bridge - Load elements without user interaction","condition":"bridge","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/bridge\/js\/default.min.js","\/wp-content\/themes\/bridge\/js\/plugins.js","\/wp-content\/themes\/bridge\/js\/default_dynamic.js","\/wp-content\/themes\/bridge\/js\/jquery.touchSwipe.min.js"],"icon_url":"","type":"theme","id":"theme:ad9b810efd365ad9a27987d2912b94cd","is_default":0,"created_at":1710252260},"65698b6b-85dd-41ef-8fd7-718f1e983dba":{"title":"Car Dealer","condition":"cardealer","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/(.*)","\/cardealer\/js\/(.*)"],"icon_url":"","summary":"Fix slider and form console errors","type":"theme","id":"theme:b1111424fff61af8d1e152dcdd6810f6","is_default":0,"created_at":1724428045},"3927d724-5a0a-402b-a838-858d30b54ea9":{"title":"Cardea - Show Page Content on Load","condition":"cardea-wp","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/cardea-wp\/js\/main.js","\/themes\/cardea-wp\/js\/jquery.sticky.js","\/themes\/cardea-wp\/js\/jquery.fitvids.js","\/themes\/cardea-wp\/js\/jquery.smartmenus.min.js"],"icon_url":"","summary":"Show content on page load","type":"theme","id":"theme:d65d1a8303b0c7508278884520e4bec7","is_default":0,"created_at":1724428028},"087fb457-a09d-4140-84bd-c9bc1e8195b7":{"title":"CheerUp","condition":"cheerup","exclusions":["\/cheerup\/js\/jquery.sticky-sidebar.js","\/cheerup\/js\/object-fit-images.js","\/cheerup\/js\/jquery.fitvids.js","\/cheerup\/js\/jquery.mfp-lightbox.js","\/cheerup\/js\/ie-polyfills.js","\/cheerup\/js\/theme.js","\/wp-includes\/js\/imagesloaded.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/jquery.min.js"],"icon_url":"","summary":"Fix an issue with the links in the menu.","type":"theme","id":"theme:13bcf562f45afb245dc4f76fecfba6d6","is_default":0,"created_at":1724428063},"eb86aedb-91e6-480c-b76c-756ac1da41be":{"title":"Clover","condition":"clover-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/clover-theme\/"],"icon_url":"","summary":"Load the hamburger menu.","type":"theme","id":"theme:89372f3d9321ae09c94488592084da29","is_default":0,"created_at":1724428083},"6e90b649-5736-497f-9bc6-515900cfea8a":{"title":"Divi - Animations","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI"],"icon_url":"","type":"theme","id":"theme:c0abf30dba4ff13db836d1b01685953a","is_default":0,"created_at":1679737389},"70916c43-4e02-4932-b6aa-91a1815bc755":{"title":"Divi - Background video","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/Divi\/js\/custom.unified.js","\/js\/mediaelement\/(.*)","mejs"],"icon_url":"","summary":"Play video background on page load","type":"theme","id":"theme:c7edea41ae6716291e2d32a2ab429209","is_default":0,"created_at":1724428928},"08531785-9818-4e30-903e-564637a2ad7a":{"title":"Divi - Counter module","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js","\/js\/magnific-popup.js","var DIVI","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/easypiechart.js"],"icon_url":"","summary":"Compatibility with the Number Counter module","type":"theme","id":"theme:2c46b9f5a770f260c3f7115bb330b2d5","is_default":0,"created_at":1724429005},"1d63dd7c-7bc7-4629-b03d-0437e177af32":{"title":"Divi - Load Animated Elements on Page Load","condition":"Divi","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/easypiechart.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/salvattore.js"],"icon_url":"","type":"theme","id":"theme:5df38c80278da90f725c16d68ea25aa1","is_default":0,"created_at":1719498170},"b996762a-84ef-440d-a089-73a187936fbf":{"title":"Divi - Mobile menu","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/Divi\/js\/scripts.min.js","\/Divi\/js\/custom.unified.js"],"icon_url":"","summary":"Avoids a double tap to open the mobile menu","type":"theme","id":"theme:b9116994f4e4b9b9fa574440c00d2f0d","is_default":0,"created_at":1724428978},"ae096e1e-9c36-46ad-a3d1-c26ea507276b":{"title":"Divi - Sticky elements","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js",".dipi_preloader_wrapper_outer","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/sticky-elements.js","var DIVI"],"icon_url":"","summary":"Enable sticky elements on page load.","type":"theme","id":"theme:8b62db03c90245f3e690335b079b05dc","is_default":0,"created_at":1724428907},"349f31f0-dd10-41d3-b0a4-9c5df64879f8":{"title":"Divi - Sticky menu","condition":"Divi","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/js\/jquery\/jquery-migrate.min.js","\/Divi\/js\/scripts.min.js","\/Divi\/includes\/builder\/feature\/dynamic-assets\/assets\/js\/magnific-popup.js","jqueryParams","firstHeader"],"icon_url":"","summary":"Hide sticky menu on page load.\r\n\r\nAvoid white flash when using this trick to prevent Divi's own flashing: \r\n\r\nelm.style.display","type":"theme","id":"theme:b7b84aca0f0dc6a1ced31d38626c50ea","is_default":0,"created_at":1724429206},"59563458-5f04-4959-b3e2-53e49e169d67":{"title":"Divi - WooCommerce Single Product Images","condition":"Divi","exclusions":["\/Divi\/js\/scripts.min.js"],"icon_url":"","type":"theme","id":"theme:f9c5bdba8b39fc877b41dea00fa756f9","is_default":0,"created_at":1684342262},"6426539e-4e43-4fef-ab5a-3eb7b2a8b057":{"title":"Eikra","condition":"eikra","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/eikra\/assets\/js\/","EikraObj"],"icon_url":"","summary":"Fixes preloader not closing.","type":"theme","id":"theme:55d2581ad975eb6325bc97fc3d3b0cb8","is_default":0,"created_at":1724429672},"59020bd6-069f-4f2d-afa2-fbdefa03211c":{"title":"Ekko","condition":"ekko","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ekko\/"],"icon_url":"","summary":"Fixes preloader (blank page) not closing.","type":"theme","id":"theme:2c06f4a1949f8ba4e77042a47674fd9e","is_default":0,"created_at":1724429886},"d82f5cdd-c5d3-4596-94dc-1e25aaff2083":{"title":"Elessi","condition":"elessi-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/elessi-theme\/assets\/js\/min\/functions.min.js","\/elessi-theme\/assets\/js\/min\/main.min.js"],"icon_url":"","type":"theme","id":"theme:d5d2b7fda7b8a2b5b91d430f7602e230","is_default":0,"created_at":1679737773},"f0587c21-54d0-429d-8efe-18a93dacb18d":{"id":"theme:5fc04cc678cb54567aedb51027933002","title":"Enfold","type":"theme","icon":"","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/dynamic_avia\/avia-footer-scripts-(.*).js","var avia_is_mobile"],"is_default":0,"condition":"enfold","created_at":1676435704,"updated_at":"2023-02-15T04:32:17.000000Z","icon_url":""},"c93ee1ee-3956-4278-9ee9-1a0968753e86":{"title":"Enfold - Fix hamburger menu","condition":"enfold","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/enfold\/js\/avia-snippet-hamburger-menu.js","\/enfold\/js\/avia.js","\/enfold\/js\/shortcodes.js","\/enfold\/js\/waypoints\/waypoints.js"],"icon_url":"","type":"theme","id":"theme:2b0c22c5169b94c2eabb125d18915246","is_default":0,"created_at":1715090218},"cc0550cb-918e-419d-b4f2-1809cf666dbb":{"title":"Enfold - LayerSlider","condition":"enfold","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","layerslider"],"icon_url":"","summary":"Loads the slider without user interaction when using Enfold's Layerslider implementation","type":"theme","id":"theme:eb759a03d0ca292c948f09d004a2963f","is_default":0,"created_at":1724430516},"ec883654-4f63-4fae-a3ef-923dcbc2426d":{"title":"Enfold - Shortcodes","condition":"enfold","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/enfold\/js\/avia(.min)?.js","\/enfold\/js\/shortcodes(.min)?.js","\/enfold\/config-templatebuilder\/avia-shortcodes\/","\/enfold\/js\/avia-compat(.min)?.js","\/enfold\/js\/waypoints\/waypoints.min.js","\/enfold\/js\/avia-snippet-(.*).js","\/enfold\/js\/avia-js(.min)?.js","\/enfold\/js\/aviapopup\/jquery.magnific-popup(.min)?.js"],"icon_url":"","type":"theme","id":"theme:072fc4077d7071791d774d6ddbf5dc2a","is_default":0,"created_at":1712954619},"fe3546f0-be3e-4173-8992-a7f6f203b82f":{"title":"Envision","condition":"envision","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/envision\/lib\/js\/app.min.js","var CloudFwOp"],"is_default":1,"icon_url":"","type":"theme","id":"theme:fc5f7d69b646ed95835badc0fc23bc11","created_at":1679737494},"d997b942-19de-4710-9c81-79d3c65cbd76":{"title":"Ewebot","condition":"ewebot","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/gt3-themes-core\/","\/uploads\/gt3-assets\/js\/(.*)","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","summary":"Fire animations on pageload.\r\n\r\nAllow the page to load without interaction.\r\n\r\n\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js\r\n\/jquery-migrate(.min)?.js\r\n\/wp-content\/themes\/ewebot\/dist\/js\/theme.js","type":"theme","id":"theme:047f009f2a1f4cdf2088c46be47e385b","is_default":0,"created_at":1724430887},"53d29aec-8ae4-4273-b748-f5bd52dfe177":{"title":"Farvis","condition":"farvis","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/farvis\/"],"icon_url":"","summary":"Fire animations and layout rendering on pageload.","type":"theme","id":"theme:26bff2f3a6ff6347d35edf5c77a35687","is_default":0,"created_at":1724430981},"fb01246b-a5f8-4021-b514-c02cf55e80bd":{"title":"Flatsome","condition":"flatsome","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/flatsome\/assets\/js\/flatsome.js","\/flatsome\/assets\/libs\/packery.pkgd.min.js","\/flatsome\/assets\/js\/woocommerce.js"],"icon_url":"","summary":"Avoid homepage slider delay. Allow zoom on the product image gallery.","type":"theme","id":"theme:26fb1cf80f074ca199d8a7e94c5fc796","is_default":0,"created_at":1724431063},"4d65dc12-9ce7-4171-94a7-9821fd95240e":{"title":"Flatsome - Google map","condition":"flatsome","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","maps.googleapis.com","google.maps.LatLng","\/wp-includes\/js\/hoverIntent.min.js"],"icon_url":"","summary":"Show Google Map on page load","type":"theme","id":"theme:28a6f8b3319c107a34603be0f01a4bcf","is_default":0,"created_at":1724431100},"890e15b6-c66b-4a9e-9b7d-55417df94916":{"title":"Flatsome - Images","condition":"flatsome","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/flatsome\/inc\/integrations\/wp-rocket\/flatsome-wp-rocket.js","\/flatsome\/assets\/js\/flatsome.js","\/flatsome\/inc\/extensions\/flatsome-lazy-load\/flatsome-lazy-load.js","\/wp-includes\/js\/hoverIntent.min.js"],"icon_url":"","summary":"Allow images to load immediately.","type":"theme","id":"theme:f2d60aad9f2f5395e3e145cf8f8ab165","is_default":0,"created_at":1725978870},"ee1a892b-c906-4e35-8684-827919f64bef":{"title":"Foxiz - Load Slider","condition":"foxiz","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/foxiz\/assets\/js\/rbswiper.min.js","\/plugins\/foxiz-core\/assets\/core.js","\/themes\/foxiz\/assets\/js\/global.js","\/themes\/foxiz\/assets\/js\/jquery.ui.totop.min.js"],"summary":"When Delay JavaScript Execution is enabled, the slider doesn't load until there is a user interaction. These exclusions make the slider load immediately.","icon_url":"","type":"theme","id":"theme:ee6e7f08495a961a7bcbfe4e0a283b6e","is_default":0,"created_at":1725039417},"cb54d070-8ee0-4c35-9fa9-b2bac73ccf39":{"title":"Frida","condition":"frida","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/frida\/"],"icon_url":"","summary":"Display images without user interaction and avoid issues with simpleLighbox images","type":"theme","id":"theme:109ddf56796a5133e12279f3daa5ff62","is_default":0,"created_at":1724431195},"435fe79f-47ba-422e-aca6-cea566f6b8a1":{"title":"Gardena Theme","condition":"gardena","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/gardena\/"],"icon_url":"","summary":"Fixes the error message for Largest contentful paint in PageSpeed report, when feature is enabled.","type":"theme","id":"theme:993e6f0fc44b9e55c0a565b84a449340","is_default":0,"created_at":1724431464},"9e78539a-03d9-442b-ab94-dd3b7a9658e4":{"title":"GeneratePress - Mobile menu","condition":"generatepress","exclusions":["\/generatepress\/assets\/js\/menu.min.js","generatepressMenu","\/gp-premium\/menu-plus\/functions\/js\/offside.min.js"],"icon_url":"","summary":"Fixes the mobile menu requiring a double touch, if touching the mobile menu is the first interaction of a visitor with the page.","type":"theme","id":"theme:80a330247d61d729fcd78dc01de6ed2f","is_default":0,"created_at":1724431524},"02d47d01-56f5-4801-b319-cff1707dd59d":{"title":"Harmuny - Modern WordPress Blog Theme","condition":"harmuny","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/harmuny\/"],"icon_url":"","summary":"Load slideshow without user interaction.","type":"theme","id":"theme:1ff9662c2a3e3221052cbe229feed18c","is_default":0,"created_at":1724427976},"6373bbb2-877c-4075-b6e4-7c58d686b25c":{"title":"HealthFirst","condition":"healthfirst","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-includes\/js\/hoverIntent.min.js","\/wp-content\/plugins\/healthfirst-core\/assets\/js\/healthfirst-core.min.js","\/wp-content\/plugins\/healthfirst-core\/assets\/plugins\/modernizr\/modernizr.js","\/wp-content\/plugins\/healthfirst-core\/assets\/plugins\/perfect-scrollbar\/perfect-scrollbar.jquery.min.js","\/wp-content\/themes\/healthfirst\/assets\/js\/main.min.js","\/wp-content\/themes\/healthfirst\/assets\/plugins\/waitforimages\/jquery.waitforimages.js"],"summary":"When Delay JavaScript Execution is enabled, there are console errors.","icon_url":"","type":"theme","id":"theme:882ee30ccc8ed2b36e93c7b6e2c4b98e","is_default":0,"created_at":1724431542},"2c72e7e6-cb77-44e9-af87-d5c42ae6db52":{"title":"Honor - WPBakery fix","condition":"honor","exclusions":["\/honor\/js\/__scripts.js","HONOR_STORAGE","\/js_composer\/"],"icon_url":"","summary":"Only required if used with WPBakery plugin to fix some dependencies issues","type":"theme","id":"theme:9f228373ff4d172655dbf5cb3b1bc23a","is_default":0,"created_at":1724431564},"9309d1d3-1035-4a2c-8ced-075bc3ff9957":{"title":"HotelMaster","condition":"hotelmaster","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/hotelmaster\/javascript\/gdlr-script.js","\/hotelmaster\/plugins\/dl-menu\/modernizr.custom.js","\/hotelmaster\/plugins\/dl-menu\/jquery.dlmenu.js","\/hotelmaster\/plugins\/superfish\/js\/superfish.js","\/hotelmaster\/plugins\/jquery.easing.js"],"icon_url":"","summary":"Fixes double touch required to use the menu on mobile.","type":"theme","id":"theme:978eaddad3b1047e479407b6d92197aa","is_default":0,"created_at":1724431621},"4a09f745-cbb1-47c8-b50a-c8014d5d1335":{"title":"HotelMaster - Blog","condition":"hotelmaster","exclusions":["\/wp-includes\/js\/masonry.min.js","\/gp-premium\/blog\/functions\/js\/scripts.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","summary":"Loads the blog","type":"theme","id":"theme:e813a548bceac6765a1cdf2316f1a6ab","is_default":0,"created_at":1724431587},"f2d8f704-ec68-4278-9ca2-885daa0c1ce5":{"title":"HotelMaster - Masonry","condition":"hotelmaster","exclusions":["\/gp-premium\/menu-plus\/functions\/js\/offside.min.js","offSide"],"icon_url":"","summary":"Display blog archive posts in a masonry layout without user interaction.","type":"theme","id":"theme:398a264e302e42640553681e8759cd07","is_default":0,"created_at":1724431607},"92b2e258-1f44-41c1-b1bd-f117f61ee49d":{"title":"Jannah Theme - Fix masonry grid","condition":"jannah","exclusions":["\/wp-includes\/js\/jquery\/jquery.min.js","\/wp-includes\/js\/masonry.min.js","\/wp-includes\/js\/jquery\/jquery.masonry.min.js","tie-"],"icon_url":"","summary":"Fix masonry grid","type":"theme","id":"theme:35f7f183089309f52046377ca65e905a","is_default":0,"created_at":1724432477},"df52436c-53d6-461a-b81a-cd0b21680524":{"title":"JNews","condition":"jnews","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/jnews\/assets\/js\/","jnews","jfla"],"icon_url":"","summary":"Toggle the search box on mobile.\r\n\r\nLoad images without interaction:\r\n\r\n\/jnews\/assets\/js\/modernizr-custom.js","type":"theme","id":"theme:5d90e451984f9d894b1aabb0d00f30a2","is_default":0,"created_at":1724432551},"87ed69a2-3295-4fad-a82e-eeb02925a5dc":{"title":"Jobify","condition":"jobify","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jobify\/js\/jobify.min.js","\/jobify\/js\/select2.full.min.js"],"icon_url":"","summary":"Prevent white space on the mobile header before user interaction","type":"theme","id":"theme:592006aa4562a6915e344e5e2a09e5ee","is_default":0,"created_at":1724432575},"28a0b1ea-8d2f-4931-a48a-166b8df8a773":{"title":"JOYN","condition":"joyn","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/swift-framework\/includes\/page-builder\/frontend-assets\/js\/lib\/modernizr-custom.js","\/swift-framework\/includes\/page-builder\/frontend-assets\/js\/spb-functions.min.js","\/swift-framework\/includes\/swift-slider\/assets\/js\/swift-slider.min.js","\/swift-framework\/public\/js\/lib\/imagesloaded.pkgd.min.js","\/joyn\/js\/owl.carousel.min.js","\/joyn\/js\/theme-scripts.js","\/joyn\/js\/functions.js"],"icon_url":"","summary":"Prevent the page from not loading on mobile devices","type":"theme","id":"theme:c395470ad2d4d681836cd942bbb03120","is_default":0,"created_at":1724432590},"542be60a-2346-4740-9a41-8a580c4f013c":{"title":"Juno Toys","condition":"junotoys","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate.min.js","\/junotoys\/fw\/js\/core.init.js","\/junotoys\/fw\/js\/core.utils.js","\/junotoys\/fw\/js\/superfish.js","\/junotoys\/fw\/js\/swiper\/swiper.js","\/trx_utils\/shortcodes\/theme.shortcodes.js","\/wp-includes\/js\/jquery\/ui\/(.*)"],"icon_url":"","summary":"Display the swiper\/carousel products","type":"theme","id":"theme:2acab38e8356d36355bb81d931e7fba4","is_default":0,"created_at":1724432608},"06167710-10c7-446e-a08b-ce676e444102":{"title":"Jupiter","condition":"jupiter","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jupiter\/","\/wp-includes\/js\/underscore.min.js","WebFont.load"],"icon_url":"","type":"theme","id":"theme:89c5c30498c2989611f9044be006197c","is_default":0,"created_at":1679738430},"5d042e1f-7e62-4ec4-ba31-30d396004522":{"title":"JupiterX","condition":"jupiterx","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jupiterx\/(.*).js","\/wp-includes\/js\/underscore.min.js","WebFont.load"],"icon_url":"","type":"theme","id":"theme:b06632962a4948d4944fd8d79ffbfceb","is_default":0,"created_at":1679737312},"c4b030ea-66a1-4729-85bf-a484e373a316":{"title":"Kadence","condition":"kadence","exclusions":["\/kadence\/assets\/js\/navigation.min.js","mobile_menu_breakpoint","kadenceConfig"],"icon_url":"","summary":"Avoid double click to open mobile menu and search button","type":"theme","id":"theme:4b7907ee68218db279648da9bf7102d1","is_default":0,"created_at":1724432769},"20c605b4-3e3a-4bb0-a5e5-a08e2cb0f31f":{"title":"Kalium","condition":"kalium","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/kalium\/assets\/js\/main.min.js","mobile_menu_breakpoint","var _k"],"icon_url":"","summary":"Fixes the hamburger menu.","type":"theme","id":"theme:1fcb99a1ab06e1e36635365ed3e59ce5","is_default":0,"created_at":1724432784},"e1e04a7d-635a-4e28-83d9-e345ce40e354":{"title":"Kava","condition":"kava","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/kava\/assets\/js\/theme-script.js"],"icon_url":"","summary":"Fixes the header color issue.","type":"theme","id":"theme:359d67efbf530c998245225dd3245a88","is_default":0,"created_at":1724432796},"e833c36e-ee89-4924-b608-3f28327c2f85":{"title":"Lay","condition":"lay","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/backbone.min.js","\/wp-includes\/js\/underscore.min.js","\/lay\/","\/laytheme-carousel\/","window.laytheme"],"icon_url":"","summary":"Start showing content on pageload.","type":"theme","id":"theme:7c718c6da874ea6e4b27c6d70bc4e7e8","is_default":0,"created_at":1724432836},"2df2ef47-a833-4711-ba54-48dc62586f37":{"title":"LazaNews","condition":"lazanews","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/jquery.custom.js"],"icon_url":"","summary":"Prevents the page preloading animation from being stuck until user interaction.","type":"theme","id":"theme:85d9922ac61ed833fd047a67029df8e5","is_default":0,"created_at":1724432810},"9443304a-34e9-4700-a03a-5f8f62f83ed1":{"title":"Listeo","condition":"listeo","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/listeo\/js\/"],"icon_url":"","summary":"Render the page on pageload","type":"theme","id":"theme:db7da585545001f5ae614a2810f08f3a","is_default":0,"created_at":1724432849},"77afa73c-c4a8-42a8-aaee-43f6a761364e":{"title":"ListingPro","condition":"listingpro","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/listingpro\/assets\/lib\/jquerym.menu\/js\/jquery.mmenu.min.all.js","\/listingpro\/assets\/lib\/Magnific-Popup-master\/jquery.magnific-popup.min.js","\/listingpro\/assets\/js\/select2.full.min.js","\/listingpro\/assets\/js\/jquery.city-autocomplete.js","\/listingpro\/assets\/js\/chosen.jquery.min.js","\/listingpro\/assets\/lib\/bootstrap\/js\/bootstrap-slider.js","\/listingpro\/assets\/js\/jquery-ui.js","\/listingpro\/assets\/js\/mapbox.js","\/listingpro\/assets\/js\/main.js","\/listingpro\/assets\/js\/leaflet.markercluster.js","maps"],"icon_url":"","summary":"Display the map and avoid console errors.","type":"theme","id":"theme:0b365e43dfc65d2b1b70fac6510c7c9c","is_default":0,"created_at":1724432862},"01b369b5-b578-4314-8e95-40b67a41d75a":{"title":"Master Study","condition":"masterstudy","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/masterstudy\/assets\/js\/custom.js","\/masterstudy\/assets\/vendors\/jquery.fancybox.min.js","\/masterstudy\/assets\/js\/select2.full.min.js"],"icon_url":"","summary":"Prevents the page preloading animation from being stuck until user interaction.","type":"theme","id":"theme:0ee224c20e4ef7d546733d933db598f2","is_default":0,"created_at":1724432905},"6b000cc7-d33b-4109-9c39-6119a5d81cde":{"title":"Maya","condition":"maya","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/maya\/js\/jquery.mobilemenu.js","\/maya\/js\/jquery.custom.js","\/maya\/core\/includes\/js\/jquery.tipsy.js"],"icon_url":"","summary":"Convert the mobile menu into a selector form on mobile devices without user interaction.","type":"theme","id":"theme:719fe28004fcdd81a820602924aa8074","is_default":0,"created_at":1724432964},"ef3c76d6-1041-473d-81ea-a5a6e8c86735":{"title":"MH Magazine","condition":"mh-magazine","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/mh-magazine\/"],"icon_url":"","summary":"Display menus on page load.","type":"theme","id":"theme:2a0cd6efc2f46be69de61712729a2ec9","is_default":0,"created_at":1724433164},"9cbb2777-5524-43b8-af36-692b27452c0d":{"title":"Minimog","condition":"minimog","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/minimog\/"],"icon_url":"","summary":"Display menus on page load.","type":"theme","id":"theme:61c0c235042359ee7d2a9035e79a7da2","is_default":0,"created_at":1724433180},"7eb81c74-8062-4a6c-bf66-b7c5bc160141":{"title":"Moozo Elementor","condition":"moozo-elementor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/moozo-elementor\/assets\/js\/countdown.js","\/moozo-elementor\/assets\/vendor\/countdown\/countdown.min.js"],"icon_url":"","summary":"Display the countdown timer without interaction.","type":"theme","id":"theme:2ddb538c8e6b6c766fffd0d5c861fd82","is_default":0,"created_at":1724433254},"e90b7bfa-9ff6-4e1a-bf29-6207d55fdd39":{"title":"Motor","condition":"motor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/motor\/js\/"],"icon_url":"","type":"theme","id":"theme:b33538179f5661a86cbe327a1793e199","is_default":0,"created_at":1683973354},"445e625a-f955-41fa-84de-65d9ea19be07":{"title":"My Listing","condition":"my-listing","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/my-listing\/assets\/","\/wp-includes\/js\/dist\/vendor\/moment.min.js","maps.googleapis.com","MyListing","_Explore_Settings"],"icon_url":"","summary":"Show the content on page load:","type":"theme","id":"theme:afacb777229ddf5cabceacc64948057d","is_default":0,"created_at":1724433267},"00b8cd2d-2781-4fbb-ac5d-00750ba94ac9":{"title":"Neve - Mobile menu","condition":"neve","exclusions":["\/neve\/assets\/js\/build\/modern\/frontend.js"],"icon_url":"","summary":"Prevents the need for a double tap on the mobile menu.","type":"theme","id":"theme:5ae731cc06dd9284f8172675a6fe81ab","is_default":0,"created_at":1724432677},"483abc54-f1fc-47dc-bfc1-a269c7d1c849":{"title":"Newspaper - Images","condition":"Newspaper","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","tagdiv_theme.min.js","tdBlocksArray","\/wp-includes\/js\/underscore.min.js","\/td-cloud-library\/assets\/js\/","\/npm\/slick-carousel@1.8.1\/slick\/slick.min.js","tdb-gallery-wrap","tdBlocksArray","tdb_"],"icon_url":"","summary":"Loads images without delay","type":"theme","id":"theme:649ff22527bac2b1c8e0115cd3851d53","is_default":0,"created_at":1724432710},"50db8d14-d421-4237-be14-a6f7b5c11ec5":{"title":"Newspaper - Slider & YouTube","condition":"Newspaper","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","tagdiv_theme.min.js","tdBlocksArray","tdb_globals","td_youtube_list_ids","iosSlider","\/td-cloud-library\/assets\/js\/js_files_for_front.min.js","\/wp-includes\/js\/underscore.min.js","\/td-cloud-library\/assets\/js\/","\/npm\/slick-carousel@1.8.1\/slick\/slick.min.js","tdb-gallery-wrap","tdBlocksArray","tdb_"],"icon_url":"","summary":"Render the slider and Youtube videos on pageload","type":"theme","id":"theme:7e2eeee57ae458c5959342eda6526bf1","is_default":0,"created_at":1724432700},"514f4c30-2b67-4648-960e-dfe1cc401ca5":{"title":"Niva","condition":"niva","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/niva\/js\/","\/sweetthemes-framework\/js\/","mt_typed"],"icon_url":"","summary":"Trigger the page loader and the typewriter","type":"theme","id":"theme:c4838f73a344b829ed626635e210dcf4","is_default":0,"created_at":1724432724},"e67ee504-c3b1-455e-88ab-1fae8c830652":{"title":"OceanWP","condition":"oceanwp","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/oceanwp\/"],"icon_url":"","summary":"Fixes some non-function breaking browser console errors.","type":"theme","id":"theme:db37af4b7d12695d37d9256313a5f37a","is_default":0,"created_at":1724432755},"e44e240a-8765-4f4f-b67e-d54e4b727506":{"title":"OceanWP - Mobile menu","condition":"oceanwp","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/ocean-side-panel\/assets\/js\/side-panel.min.js","\/oceanwp\/assets\/js\/theme.vanilla.min.js"],"icon_url":"","summary":"Avoids double tap on mobile menu","type":"theme","id":"theme:9babbcd52b2ce558d299a06cd1130a11","is_default":0,"created_at":1724432740},"897b0100-958d-4a02-b6b2-1e753e9869f4":{"title":"PenNews","condition":"pennews","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/pennews\/js\/script.min.js","\/pennews\/js\/script.lib.min.js"],"icon_url":"","summary":"When the theme's lazyload functionality is used, lazyload images without interaction.","type":"theme","id":"theme:02811fa00bc1471bb5be0457ce0ee005","is_default":0,"created_at":1724433732},"edd3ba03-e0fd-4b6e-911b-60b29f3471bf":{"title":"Pharmacy Mentor","condition":"pharmacymentor","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/pharmacymentor\/"],"icon_url":"","summary":"Load slider and animations on pageload.","type":"theme","id":"theme:3188aaf1ef2c39937450f2a14ebb1174","is_default":0,"created_at":1724442943},"725415ff-cc76-45cc-a131-3170e5aa30fc":{"title":"Porto","condition":"porto","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/jquery\/ui\/","\/porto\/js\/theme.js","\/porto\/js\/theme.min.js"],"icon_url":"","summary":"Load animations","type":"theme","id":"theme:8493f398f200c8dffe60d46439dd3360","is_default":0,"created_at":1724442964},"2c19bcec-f3ff-4873-bfd7-db6bc0f6433c":{"title":"Porto - Owl Carousel","condition":"porto","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-includes\/js\/jquery\/ui\/","\/porto\/js\/theme(|.min).js","\/porto\/js\/libs\/owl.carousel(|.min).js","\/porto\/js\/theme-async(|.min).js","\/prettyPhoto\/jquery.prettyPhoto(|.min).js"],"icon_url":"","summary":"Load Owl Carousel without interaction","type":"theme","id":"theme:f34f5199fb7fca78852cd3fb7758f178","is_default":0,"created_at":1724442974},"5b11ec89-1cb2-4793-8b77-79e917e810a0":{"title":"Pro Theme - Fix menu and accordions","condition":"pro","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/pro\/cornerstone\/assets\/js\/site\/cs-classic.(.*).js"],"icon_url":"","summary":"Fix menu and accordions","type":"theme","id":"theme:8f30d70dd2d9a0386445aef8fdd534a9","is_default":0,"created_at":1724443035},"31347ccb-f69e-4cd3-bd47-b80ce14ac76e":{"title":"ProPhoto","condition":"prophoto7","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/prophoto7\/js\/bundle.front.js","\/wp-includes\/js\/underscore.min.js","PROPHOTO"],"icon_url":"","summary":"Fire animations","type":"theme","id":"theme:a5836a56c4472fade4dc6ebfe2281554","is_default":0,"created_at":1724443049},"a8208c04-865c-49aa-ab96-41e378d391c8":{"title":"Publisher","condition":"publisher","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/publisher\/js\/"],"icon_url":"","summary":"Make the mobile menu expend from the first click and the cookie notice to show on pageload.","type":"theme","id":"theme:32c73be0cb175da278c8e2af0811b0d1","is_default":0,"created_at":1724443063},"a0d69f3d-1356-4a1d-a600-2f2f788b8a9a":{"title":"REHub","condition":"rehub-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/rehub-theme\/js\/custom_floatpanel.js"],"icon_url":"","summary":"Fix the sticky menu","type":"theme","id":"theme:321af1febb74f488cf911380893739b2","is_default":0,"created_at":1724434339},"8b74bbe5-7f32-42df-908f-78c99a8cad82":{"title":"Rey","condition":"rey","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/rey\/scripts-(.*).js","\/rey-core\/assets\/js\/"],"icon_url":"","summary":"Fix the sticky menu on mobile and animations","type":"theme","id":"theme:e46567cd0f3ec9b37e7230dc87eac367","is_default":0,"created_at":1724434354},"5c9115d3-bcbd-49d6-8feb-4880d2b82bfe":{"title":"Rife Free","condition":"rife-free","exclusions":["\/rife-free\/js\/script.min.js","\/rife-free\/js\/isotope.pkgd.min.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","var reJS"],"icon_url":"","type":"theme","id":"theme:74a449954de79625eccc6750e87af8f6","is_default":0,"created_at":1679738107},"6542b2fd-1f91-4862-aa18-11eecc02faaf":{"title":"Roisin","condition":"roisin","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/themes\/roisin\/assets\/js\/main.min.js","\/plugins\/roisin-core\/assets\/js\/roisin-core.min.js","\/wp-includes\/js\/hoverIntent.min.js"],"icon_url":"","type":"theme","id":"theme:8f38fe58034772931110930b91cb6797","is_default":0,"created_at":1685964523},"5a192ad9-d150-4aa0-8efc-d68131cb7a37":{"title":"Sahifa - Mobile Menu","condition":"sahifa","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/themes\/sahifa\/js\/ilightbox.packed.js","\/translate_a\/element.js"],"icon_url":"","summary":"Allow mobile menu slideout to work for Safari mobile","type":"theme","id":"theme:06ebe49f4c1e5b04cece831f8bb198a3","is_default":0,"created_at":1724434427},"7ae9d978-d63c-4a58-beb3-418bebb5b23c":{"title":"Salient","condition":"salient","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/salient\/","winW > bodyW"],"icon_url":"","summary":"Close mobile menu when using anchor links & Show the menu and animations on page load","type":"theme","id":"theme:b3e12d57ac23897be1bb2c673e3fc761","is_default":0,"created_at":1724434525},"35aaa6c5-4a37-4161-b504-fb3ebc4b1148":{"title":"Salient - Nectar slider","condition":"salient","exclusions":["\/salient-nectar-slider\/js\/nectar-slider.js","\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js"],"icon_url":"","summary":"load the images without interaction","type":"theme","id":"theme:d612db1dd8dc76faa6a36a9ebfd336dc","is_default":0,"created_at":1724434498},"84c95206-3e59-4eb3-a0c9-e2231a1c0a48":{"title":"SEO Lounge","condition":"seolounge","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?$","\/js_composer\/assets\/js\/dist\/js_composer_front.min.js","\/seolounge\/js\/radiantthemes-custom.js","\/seolounge\/js\/radiantthemes-core.min.js"],"icon_url":"","summary":"Avoid the loader being delayed so the page can be displayed before user interaction.","type":"theme","id":"theme:3d72b779d9c4ba6b51cc5b245b141433","is_default":0,"created_at":1724434624},"cd44aa56-088a-40dd-bf1e-f835efa68626":{"title":"Shoptimizer","condition":"shoptimizer","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/shoptimizer\/assets\/js\/lazyload-bg.js","\/shoptimizer\/assets\/js\/main.min.js"],"icon_url":"","summary":"Shows background images and fix the double tap on mobile menu","type":"theme","id":"theme:6c32b43f4da639e5901574fac6b7d387","is_default":0,"created_at":1724434579},"d2c48a48-430a-4eea-bc05-99b66f1f6a7b":{"title":"SmartMag","condition":"smart-mag","exclusions":["\/smart-mag\/js\/lazyload.js"],"icon_url":"","summary":"Fixes the images not being displayed because of the theme's Lazyload.","type":"theme","id":"theme:23d6b7878bd0087addb067db3fa39864","is_default":0,"created_at":1724434887},"dd0d9133-ef17-4dac-b174-9f25d535838f":{"title":"Soledad","condition":"soledad","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/soledad\/js\/main.js","\/soledad\/js\/more-post.js","\/soledad\/js\/libs-script.min.js"],"icon_url":"","summary":"Fixes the images not being displayed because of the theme's Lazyload.","type":"theme","id":"theme:d3f78b26c2d11c99230171cc6378d06e","is_default":0,"created_at":1724434902},"3b85dd6e-9534-477e-9b15-940d0e155c8d":{"title":"Spacious - Mobile Menu","condition":"spacious","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/spacious\/js\/navigation.js"],"icon_url":"","summary":"Fixes mobile menu functionality.","type":"theme","id":"theme:d423c1f002b10b8682ee24d616b19c9c","is_default":0,"created_at":1724434916},"d657dc56-5c04-439a-8987-401f89a65bf9":{"title":"Stockholm","condition":"stockholm","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/stockholm\/js\/"],"icon_url":"","summary":"To show the logo and prevent JavaScript errors","type":"theme","id":"theme:fcfff492e00727b63cf5dff9f59bc2a4","is_default":0,"created_at":1724443889},"121f9b1b-d3cd-4dde-915e-0b348abf6687":{"title":"Storefront","condition":"storefront","exclusions":["\/storefront\/assets\/js\/navigation.min.js"],"icon_url":"","summary":"Reveals menu from the first click.\r\n\r\nSome elements on the page (Link sliders) are showed on page load:\r\n\r\n\/storefront\/assets\/js\/homepage.min.js","type":"theme","id":"theme:f0dca7e4eaedf573d4664be249845942","is_default":0,"created_at":1724443926},"41cfc83f-ff02-4a35-a3b7-e92db213b224":{"title":"StreamTube","condition":"streamtube","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/streamtube\/","\/streamtube-core\/"],"icon_url":"","summary":"Fixes the display video error on the mobile version.","type":"theme","id":"theme:9772ccddd470688f6bc6aee86e34d29b","is_default":0,"created_at":1724444002},"c31366fe-9045-4767-a405-52a11e08b82e":{"title":"Sydney - Load elements on page load","condition":"sydney-pro-ii","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/sydney-pro-ii\/js\/scripts.js","\/wp-content\/themes\/sydney-pro-ii\/js\/functions.min.js","\/wp-content\/themes\/sydney-pro-ii\/js\/elementor.js","\/wp-content\/themes\/sydney-pro-ii\/js\/hero-slider.js","\/wp-content\/plugins\/sydney-toolbox\/js\/main.js"],"icon_url":"","summary":"Load elements on pages without user interaction","type":"theme","id":"theme:1fb15693856451537e331adeaf2c7d6f","is_default":0,"created_at":1724442744},"aec0a548-4c6b-400a-80ed-19a49e0faef0":{"title":"The7","condition":"dt-the7","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/wp-includes\/js\/jquery\/jquery-migrate.min.js","loader-removed","\/Ultimate_VC_Addons\/assets\/min-js\/","\/dt-the7\/","\/js_composer\/"],"icon_url":"","summary":"Remove the loader and fire animations","type":"theme","id":"theme:7934c689fd20e30b6bfc69bb9d46cb63","is_default":0,"created_at":1724443079},"538354ff-d69f-40be-b0cc-df3790599dd2":{"title":"TheGem","condition":"thegem","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thegem\/js\/","gemSettings","thegemSlideshow","tgpLazyItemsOptions"],"icon_url":"","summary":"To show the logo, slider, animations and prevent JavaScript errors","type":"theme","id":"theme:153c54fe73897da838ce39152b1db5a8","is_default":0,"created_at":1724444019},"84d95a79-270c-4223-b459-bb49c6acfaf1":{"title":"Theme Electiman - Mobile Menu","condition":"electiman","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/electiman\/assets\/js\/navigation.js","\/themes\/electiman\/assets\/js\/theme-pluginjs.js","\/themes\/electiman\/assets\/js\/theme.js","\/themes\/electiman\/assets\/js\/slick.min.js","\/themes\/electiman\/venobox\/venobox.min.js","\/themes\/electiman\/assets\/js\/owl.carousel.min.js","\/wp-includes\/js\/imagesloaded.min.js"],"icon_url":"","type":"theme","id":"theme:a59c888391c869ed4f3417c02d71fe15","is_default":0,"created_at":1702923332},"3a59bf59-4fe5-4690-8ab7-33e6a976e2e3":{"title":"Thrive Theme Builder","condition":"thrive-theme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/thrive-visual-editor\/editor\/js\/dist\/modules\/(.*).js","TVE_Event_Manager_Registered_Callbacks","ThriveGlobal","TCB_Front","TL_Front","TVE_Ult","thrive-","thrive_","tve_","tve-"],"icon_url":"","type":"theme","id":"theme:7492fc8f8a90ad7ef680d9c560da2b0f","is_default":0,"created_at":1710767440},"68f2de3b-e2b8-4edf-b82f-93fd7834c65f":{"title":"Total","condition":"Total","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/Total\/assets\/js\/total.min.js"],"icon_url":"","summary":"Allow the search to work","type":"theme","id":"theme:96b0141273eabab320119c467cdcaf17","is_default":0,"created_at":1724444033},"6dc1cb35-6b50-4da0-9834-dddf169edaa6":{"title":"Townhub","condition":"townhub","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/townhub-add-ons\/assets\/js\/(.*)","\/wp-includes\/js\/dist\/vendor\/react.js","\/wp-includes\/js\/dist\/vendor\/react-dom.js"],"icon_url":"","summary":"Prevent add-ons from breaking the site","type":"theme","id":"theme:7c37c885d7fecf788f635734f99e8610","is_default":0,"created_at":1724444055},"f484f86b-e316-4871-9322-dee3925349fe":{"title":"Travel Monster - Owl Carousel","condition":"travel-monster","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/wp-content\/plugins\/wp-travel-engine\/assets\/lib\/owl-carousel(.*)\/owl.carousel(|.min).js","var isRtl"],"icon_url":"","summary":"Load Owl Carousel Slider without user interaction","type":"theme","id":"theme:d3e8da87b3affd399205438fbc8a4f05","is_default":0,"created_at":1724444075},"3ec96c3f-a6bf-4748-9b7e-78864bd24add":{"title":"uDesign - Mobile Menu","condition":"u-design","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/u-design\/assets\/js\/theme.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework-async.min.js"],"icon_url":"","summary":"Keep the mobile menu working properly.","type":"theme","id":"theme:31ce70b0a02f8720a86d993816676943","is_default":0,"created_at":1724444158},"cb523239-27cc-461e-973d-c984a83223ac":{"title":"uDesign - Show Page Content on Load","condition":"u-design","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/wp-content\/themes\/u-design\/assets\/js\/theme.min.js","\/wp-content\/themes\/u-design\/framework\/assets\/js\/framework.min.js"],"icon_url":"","summary":"Display page content on load without user interaction.","type":"theme","id":"theme:c55edd40ad3f9321da577dad70bb130c","is_default":0,"created_at":1724444147},"14cb0a85-8bee-491e-99d7-5f20a07f4bdd":{"title":"Uncode","condition":"uncode","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/uncode\/library\/js\/init(.min)?.js","\/uncode\/library\/js\/plugins(.min)?.js","\/uncode\/library\/js\/app(.min)?.js","\/uncode\/library\/js\/woocommerce-uncode(.min)?.js","\/wp-includes\/js\/mediaelement\/mediaelement-and-player.min.js","initHeader","initBox","fixMenuHeight","initRow"],"icon_url":"","summary":"Hides Uncode's preloader without user interaction.","type":"theme","id":"theme:18ba19b98aefbb6c0fde6c6bf92e9cfc","is_default":0,"created_at":1724444172},"96aa49eb-6372-4b4c-b70d-f29dede8a8f2":{"title":"Utouch - Load menu on page load","condition":"utouch","exclusions":["\/wp-includes\/js\/jquery\/jquery-migrate.min.js","\/wp-includes\/js\/jquery\/jquery.min.js","\/utouch\/js\/main.js","\/utouch\/js\/swiper.jquery.min.js","\/utouch\/js\/fitvids.js","\/utouch\/js\/theme-plugins.js","\/utouch\/js\/crum-mega-menu.js"],"icon_url":"","summary":"Display menu on page load.","type":"theme","id":"theme:18284bf26abf49a1d5d60b3fb34e4c2d","is_default":0,"created_at":1724444186},"a1fbf155-720a-4704-9794-d6749ad6df59":{"title":"Vivo theme - Fix blank page","condition":"vivo","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/vivo\/framework\/assets\/js\/bt_framework_misc.js"],"icon_url":"","summary":"Fixes a blank page.","type":"theme","id":"theme:a140e640fed504586e24e7c0df30376b","is_default":0,"created_at":1724444202},"5acb5d19-caa6-4deb-b7db-0051df4c3c3b":{"title":"Voxel Theme","condition":"voxel","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/voxel\/","\/elementor\/","\/elementor-pro\/","\/wp-includes\/js\/imagesloaded.min.js","ElementorProFrontendConfig","elementorFrontendConfig"],"icon_url":"","type":"theme","id":"theme:240a2be0a2b66b01f83abdcd83da7c7c","is_default":0,"created_at":1720444241},"88e96479-1aa2-4adc-8f07-20bc0368a63f":{"title":"Werkstatt","condition":"werkstatt","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/js\/underscore.min.js","\/werkstatt\/assets\/js\/vendor.min.js","\/werkstatt\/assets\/js\/fullscreen.min.js","\/werkstatt\/assets\/js\/app.min.js"],"icon_url":"","summary":"Show animated elements on page load.","type":"theme","id":"theme:38faa29db5a07b8fef6aee9cc11cafec","is_default":0,"created_at":1724444798},"60c4110b-a960-4d44-b619-6d79514dbf75":{"title":"Woodmart","condition":"woodmart","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/wp-includes\/js\/imagesloaded.min.js","\/woodmart\/js\/scripts\/wc\/","\/woodmart\/js\/scripts\/global\/","\/woodmart\/js\/libs\/owl.carousel.min.js","\/woodmart\/js\/libs\/owl.carousel.js","\/woodmart\/js\/libs\/slick.js","\/woodmart\/js\/libs\/autocomplete.min.js"],"icon_url":"","summary":"Show WooCommerce thumbnails on pageload & Show product image gallery","type":"theme","id":"theme:06338f13cb89e5309ad2eb7e4d457be4","is_default":0,"created_at":1724444297},"a4547b5b-10ab-407c-969c-269fddec07b8":{"title":"Woodmart - Cart Fragments","condition":"woodmart","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>)","\/woocommerce\/assets\/js\/frontend\/cart-fragments.min.js","\/woocommerce\/assets\/js\/js-cookie\/js.cookie.min.js","\/woodmart\/js\/scripts\/wc\/updateCartFragmentsFix.js"],"icon_url":"","summary":"Fix problem with the quantity icon of the mini cart","type":"theme","id":"theme:591f4f1b2e86b1e987cd8789df3ffce3","is_default":0,"created_at":1724444280},"97066e39-027a-4cd6-9152-7b6b53f365f5":{"title":"Woodmart - Mobile Menu","condition":"woodmart","exclusions":["\\\/jquery(-migrate)?-?([0-9.]+)?(.min|.slim|.slim.min)?.js(\\?(.*))?( |'|\"|>|$)","\/themes\/woodmart\/js\/scripts\/menu\/mobileNavigation.min.js","\/themes\/woodmart\/js\/scripts\/global\/helpers.min.js"],"icon_url":"","summary":"Allow mobile menu to work with just one click.","type":"theme","id":"theme:d79a3941e2f12fb93ffc980ebeb1d7f4","is_default":0,"created_at":1724444264},"119ebd1c-6b46-4f07-8d6a-3498d9c8814f":{"title":"XStore","condition":"xstore","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/xstore\/js\/","\/et-core-plugin\/packages\/st-woo-swatches\/public\/js\/frontend.min.js"],"icon_url":"","type":"theme","id":"theme:3de9d9ba385200548f177d9c704ae92a","is_default":0,"created_at":1679738190},"9a7a548c-07a1-4dff-93fc-6e8230b67853":{"title":"YOOtheme Pro","condition":"yootheme","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","uikit.min.js"],"icon_url":"","summary":"Show animations and image in header on page load.\r\n\r\n\r\n\/yootheme\/","type":"theme","id":"theme:119d329456073aa10969d7cbd9760f28","is_default":0,"created_at":1724444774},"f74c499e-b7d9-4590-8671-379f51f468c8":{"title":"Zeen","condition":"zeen","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","\/zeen\/assets\/js\/","\/js.cookie.min.js"],"icon_url":"","summary":"Starts animations on pageload","type":"theme","id":"theme:acb52844f996627788836366404a3245","is_default":0,"created_at":1724444815}},"scripts":{"dd0c5a5b-ec56-49f9-9aa4-89e1e3a6a28a":{"title":"Amazon Ads","exclusions":["amazon-adsystem.com"],"icon_url":"","summary":"To show the ads","type":"script","id":"script:b82a5936d8ea0745016caeb71629ae5d","is_default":0,"created_at":1724424847},"980edf32-c64b-4370-bf23-c62b079e71c3":{"title":"Google AdSense","exclusions":["adsbygoogle"],"icon_url":"","type":"script","id":"script:0206e6040c8ff64b8d6ee5fef2ce1c90","is_default":0,"created_at":1681377840},"2499bb90-0753-4b2b-9bd4-1525f94c7437":{"title":"Google Analytics","exclusions":["google-analytics.com\/analytics.js","ga\\( '","ga\\('"],"icon_url":"","type":"script","id":"script:d86cf69a8b82547a94ca3f6a307cf9a6","is_default":0,"created_at":1681388311},"6f460036-3106-4b8c-9951-d32de9b1258f":{"title":"Google Maps","exclusions":["maps.googleapis.com","maps.google.com"],"icon_url":"","type":"script","id":"script:4d60ab2c6d11d753267484006c23e54c","is_default":0,"created_at":1681390259},"ac2d5720-9418-468c-80a0-3874ee743c0f":{"title":"Google Optimize","exclusions":["a,s,y,n,c,h,i,d,e","googleoptimize.com\/optimize.js","async-hide"],"icon_url":"","summary":"Prevent a flicker or blank screen.","type":"script","id":"script:031a0cece38c4739df67f910dcabf1bd","is_default":0,"created_at":1724431722},"122e6ebb-51fd-477f-97fb-559593f1a48b":{"title":"Google Recaptcha","exclusions":["recaptcha"],"icon_url":"","summary":"Fixes dependency issues related to Google Recaptcha","type":"script","id":"script:032cb16577cbf07bc7c02bac83bd936d","is_default":0,"created_at":1724431739},"219277ae-b2ac-4d42-913d-eaea40985295":{"title":"Google Tag Manager","exclusions":["\/gtag\/js","gtag\\(","\/gtm.js","async-hide"],"icon_url":"","type":"script","id":"script:1d3c65b2b03ef35e14df6b163ea3a1f6","is_default":0,"created_at":1681390266},"f632e3f4-20e6-471e-a78d-86afbea63586":{"title":"HubSpot","exclusions":["\/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js","\/jquery-migrate(.min)?.js","js(.*).hsforms.net","hbspt.forms.create"],"icon_url":"","summary":"Display the form","type":"script","id":"script:de4bd8ef4675ebb85a055955de76d0ee","is_default":0,"created_at":1724431936},"5d606add-ffb8-4a06-b295-5f722710fbfd":{"title":"Refari","exclusions":["widget.refari.co","refari"],"icon_url":"","type":"script","id":"script:a705e197b13b47e72a105c923e044358","is_default":0,"created_at":1683797056},"742ec14a-27a1-4789-b9c8-a9c3a3cf7042":{"title":"Reviews.io","exclusions":["\/carousel-inline-iframeless\/dist.js","carouselInlineWidget"],"icon_url":"","summary":"Prevents the widget from breaking","type":"script","id":"script:4df445c576f45889506ba175a4c39fdc","is_default":0,"created_at":1724442776},"05d3eb78-f574-49be-95e1-3f11714005d1":{"title":"Stripe","exclusions":["js.stripe.com"],"icon_url":"","summary":"Fixes ReferenceError: Stripe is not defined","type":"script","id":"script:ce7566d1d08cc094b74cf283cf9c56a5","is_default":0,"created_at":1724434974},"0a37e528-8718-49f7-a26d-059aa29f867d":{"title":"Trustindex","exclusions":["cdn.trustindex.io\/loader.js","cdn.trustindex.io\/loader-cert.js"],"icon_url":"","summary":"Trustindex element is shown immediately","type":"script","id":"script:1d38d6195597e8bb81966870f0a4f939","is_default":0,"created_at":1724442852},"ce9a3865-9efa-4e98-ae10-4f842a4ecc22":{"title":"Typeform","exclusions":["\/next\/embed.js"],"icon_url":"","summary":"Load Typeforms without interaction","type":"script","id":"script:cd3889ae3b96f891186ae270dbbcc9bb","is_default":0,"created_at":1724443247},"b56bf06c-2f8c-4757-b536-a689fb0e75f9":{"title":"Typekit","exclusions":["typekit"],"icon_url":"","summary":"Load Typekit fonts on page load","type":"script","id":"script:7815e38b93e3b500a632681bd594bd61","is_default":0,"created_at":1724443267},"49c38c0a-43b9-4237-88cb-57ddd519f0ad":{"title":"Venatus Media","exclusions":["\/ad-manager.min.js","__vm_add"],"icon_url":"","summary":"Show ads on page load.","type":"script","id":"script:abe11528732aed9a19a97e73b242faa5","is_default":0,"created_at":1724444833},"2c1d0998-8ab5-478c-8eb9-9e375b46363e":{"title":"Wistia","exclusions":["fast.wistia.com","\/assets\/external\/E-v1.js"],"icon_url":"","summary":"Show video on page load","type":"script","id":"script:9a0111f8c3186c1cb3113587c660c041","is_default":0,"created_at":1724444846},"0627fe24-7e9d-400f-b064-d98bec2ba85e":{"title":"Yandex Ads","exclusions":["yandex.ru","window.yaContextCb"],"icon_url":"","summary":"Display Ads without interaction","type":"script","id":"script:dbd1875130c71eb4b2ef768ad18d820c","is_default":0,"created_at":1724444653}}} \ No newline at end of file diff --git a/dynamic-lists-incompatible-plugins.json b/dynamic-lists-incompatible-plugins.json index 8a8b1a42ef..28c746693f 100644 --- a/dynamic-lists-incompatible-plugins.json +++ b/dynamic-lists-incompatible-plugins.json @@ -1 +1 @@ -{"":[{"slug":"wp-super-cache","file":"wp-super-cache\/wp-cache.php"},{"slug":"enable-gzip-compression","file":"enable-gzip-compression\/enable-gzip-compression.php"},{"slug":"quick-cache","file":"quick-cache\/quick-cache.php"},{"slug":"leverage-browser-caching-ninjas","file":"leverage-browser-caching-ninjas\/leverage-browser-caching-ninja.php"},{"slug":"wp-performance-score-booster","file":"wp-performance-score-booster\/wp-performance-score-booster.php"},{"slug":"litespeed-cache","file":"litespeed-cache\/litespeed-cache.php"},{"slug":"remove-query-strings-from-static-resources","file":"remove-query-strings-from-static-resources\/remove-query-strings.php"},{"slug":"wp-http-compression","file":"wp-http-compression\/wp-http-compression.php"},{"slug":"query-strings-remover","file":"query-strings-remover\/query-strings-remover.php"},{"slug":"page-optimize","file":"page-optimize\/page-optimize.php"},{"slug":"speed-booster-pack","file":"speed-booster-pack\/speed-booster-pack.php"},{"slug":"swift-performance","file":"swift-performance\/performance.php"},{"slug":"gzip-ninja-speed-compression","file":"gzip-ninja-speed-compression\/gzip-ninja-speed.php"},{"slug":"super-static-cache","file":"super-static-cache\/super-static-cache.php"},{"slug":"lite-cache","file":"lite-cache\/plugin.php"},{"slug":"hyper-cache","file":"hyper-cache\/plugin.php"},{"slug":"wp-ffpc","file":"wp-ffpc\/wp-ffpc.php"},{"slug":"wp-fast-cache","file":"wp-fast-cache\/wp-fast-cache.php"},{"slug":"psn-pagespeed-ninja","file":"psn-pagespeed-ninja\/pagespeedninja.php"},{"slug":"swift-performance-lite","file":"swift-performance-lite\/performance.php"},{"slug":"force-gzip","file":"force-gzip\/force-gzip.php"},{"slug":"add-expires-headers","file":"add-expires-headers\/add-expires-headers.php"},{"slug":"hyper-cache-extended","file":"hyper-cache-extended\/plugin.php"},{"slug":"gator-cache","file":"gator-cache\/gator-cache.php"},{"slug":"flexicache","file":"flexicache\/wp-plugin.php"},{"slug":"wp-fastest-cache","file":"wp-fastest-cache\/wpFastestCache.php"},{"slug":"wordpress-gzip-compression","file":"wordpress-gzip-compression\/ezgz.php"},{"slug":"wp-optimize","file":"wp-optimize\/wp-optimize.php"},{"slug":"check-and-enable-gzip-compression","file":"check-and-enable-gzip-compression\/richards-toolbox.php"},{"slug":"far-future-expiry-header","file":"far-future-expiry-header\/far-future-expiration.php"},{"slug":"leverage-browser-caching","file":"leverage-browser-caching\/leverage-browser-caching.php"},{"slug":"wpcompressor","file":"wpcompressor\/wpcompressor.php"},{"slug":"combine-css","file":"combine-css\/combine-css.php"},{"slug":"w3-total-cache","file":"w3-total-cache\/w3-total-cache.php"},{"slug":"cache-enabler","file":"cache-enabler\/cache-enabler.php"}],"minify_css||minify_js":[{"slug":"merge-minify-refresh","file":"merge-minify-refresh\/merge-minify-refresh.php"},{"slug":"async-js-and-css","file":"async-js-and-css\/asyncJSandCSS.php"},{"slug":"wp-super-minify","file":"wp-super-minify\/wp-super-minify.php"},{"slug":"fast-velocity-minify","file":"fast-velocity-minify\/fvm.php"},{"slug":"dependency-minification","file":"dependency-minification\/dependency-minification.php"},{"slug":"bwp-minify","file":"bwp-minify\/bwp-minify.php"},{"slug":"minqueue","file":"minqueue\/plugin.php"},{"slug":"scripts-gzip","file":"scripts-gzip\/scripts_gzip.php"},{"slug":"wp-minify","file":"wp-minify\/wp-minify.php"}],"lazyload":[{"slug":"lazy-load","file":"lazy-load\/lazy-load.php"},{"slug":"bj-lazy-load","file":"bj-lazy-load\/bj-lazy-load.php"},{"slug":"jquery-image-lazy-loading","file":"jquery-image-lazy-loading\/jq_img_lazy_load.php"},{"slug":"crazy-lazy","file":"crazy-lazy\/crazy-lazy.php"},{"slug":"specify-image-dimensions","file":"specify-image-dimensions\/specify-image-dimensions.php"},{"slug":"advanced-lazy-load","file":"advanced-lazy-load\/advanced_lazyload.php"}],"minify_js":[{"slug":"wp-js","file":"wp-js\/wp-js.php"},{"slug":"scripts-to-footerphp","file":"scripts-to-footerphp\/scripts-to-footer.php"},{"slug":"combine-js","file":"combine-js\/combine-js.php"},{"slug":"footer-javascript","file":"footer-javascript\/footer-javascript.php"}],"control_heartbeat":[{"slug":"heartbeat-control","file":"heartbeat-control\/heartbeat-control.php"}],"lazyload_iframes":[{"slug":"lazy-load-for-videos","file":"lazy-load-for-videos\/codeispoetry.php"}]} \ No newline at end of file +{"":[{"slug":"wp-super-cache","file":"wp-super-cache\/wp-cache.php"},{"slug":"enable-gzip-compression","file":"enable-gzip-compression\/enable-gzip-compression.php"},{"slug":"quick-cache","file":"quick-cache\/quick-cache.php"},{"slug":"leverage-browser-caching-ninjas","file":"leverage-browser-caching-ninjas\/leverage-browser-caching-ninja.php"},{"slug":"wp-performance-score-booster","file":"wp-performance-score-booster\/wp-performance-score-booster.php"},{"slug":"litespeed-cache","file":"litespeed-cache\/litespeed-cache.php"},{"slug":"remove-query-strings-from-static-resources","file":"remove-query-strings-from-static-resources\/remove-query-strings.php"},{"slug":"wp-http-compression","file":"wp-http-compression\/wp-http-compression.php"},{"slug":"query-strings-remover","file":"query-strings-remover\/query-strings-remover.php"},{"slug":"page-optimize","file":"page-optimize\/page-optimize.php"},{"slug":"speed-booster-pack","file":"speed-booster-pack\/speed-booster-pack.php"},{"slug":"swift-performance","file":"swift-performance\/performance.php"},{"slug":"gzip-ninja-speed-compression","file":"gzip-ninja-speed-compression\/gzip-ninja-speed.php"},{"slug":"super-static-cache","file":"super-static-cache\/super-static-cache.php"},{"slug":"lite-cache","file":"lite-cache\/plugin.php"},{"slug":"hyper-cache","file":"hyper-cache\/plugin.php"},{"slug":"wp-ffpc","file":"wp-ffpc\/wp-ffpc.php"},{"slug":"wp-fast-cache","file":"wp-fast-cache\/wp-fast-cache.php"},{"slug":"psn-pagespeed-ninja","file":"psn-pagespeed-ninja\/pagespeedninja.php"},{"slug":"swift-performance-lite","file":"swift-performance-lite\/performance.php"},{"slug":"force-gzip","file":"force-gzip\/force-gzip.php"},{"slug":"add-expires-headers","file":"add-expires-headers\/add-expires-headers.php"},{"slug":"hyper-cache-extended","file":"hyper-cache-extended\/plugin.php"},{"slug":"gator-cache","file":"gator-cache\/gator-cache.php"},{"slug":"flexicache","file":"flexicache\/wp-plugin.php"},{"slug":"wp-fastest-cache","file":"wp-fastest-cache\/wpFastestCache.php"},{"slug":"wordpress-gzip-compression","file":"wordpress-gzip-compression\/ezgz.php"},{"slug":"wp-optimize","file":"wp-optimize\/wp-optimize.php"},{"slug":"check-and-enable-gzip-compression","file":"check-and-enable-gzip-compression\/richards-toolbox.php"},{"slug":"far-future-expiry-header","file":"far-future-expiry-header\/far-future-expiration.php"},{"slug":"leverage-browser-caching","file":"leverage-browser-caching\/leverage-browser-caching.php"},{"slug":"wpcompressor","file":"wpcompressor\/wpcompressor.php"},{"slug":"combine-css","file":"combine-css\/combine-css.php"},{"slug":"w3-total-cache","file":"w3-total-cache\/w3-total-cache.php"},{"slug":"airlift","file":"airlift\/airlift.php"},{"slug":"cache-enabler","file":"cache-enabler\/cache-enabler.php"}],"minify_css||minify_js":[{"slug":"merge-minify-refresh","file":"merge-minify-refresh\/merge-minify-refresh.php"},{"slug":"async-js-and-css","file":"async-js-and-css\/asyncJSandCSS.php"},{"slug":"wp-super-minify","file":"wp-super-minify\/wp-super-minify.php"},{"slug":"fast-velocity-minify","file":"fast-velocity-minify\/fvm.php"},{"slug":"dependency-minification","file":"dependency-minification\/dependency-minification.php"},{"slug":"bwp-minify","file":"bwp-minify\/bwp-minify.php"},{"slug":"minqueue","file":"minqueue\/plugin.php"},{"slug":"scripts-gzip","file":"scripts-gzip\/scripts_gzip.php"},{"slug":"wp-minify","file":"wp-minify\/wp-minify.php"}],"lazyload":[{"slug":"lazy-load","file":"lazy-load\/lazy-load.php"},{"slug":"bj-lazy-load","file":"bj-lazy-load\/bj-lazy-load.php"},{"slug":"jquery-image-lazy-loading","file":"jquery-image-lazy-loading\/jq_img_lazy_load.php"},{"slug":"crazy-lazy","file":"crazy-lazy\/crazy-lazy.php"},{"slug":"specify-image-dimensions","file":"specify-image-dimensions\/specify-image-dimensions.php"},{"slug":"advanced-lazy-load","file":"advanced-lazy-load\/advanced_lazyload.php"}],"minify_js":[{"slug":"wp-js","file":"wp-js\/wp-js.php"},{"slug":"scripts-to-footerphp","file":"scripts-to-footerphp\/scripts-to-footer.php"},{"slug":"combine-js","file":"combine-js\/combine-js.php"},{"slug":"footer-javascript","file":"footer-javascript\/footer-javascript.php"}],"control_heartbeat":[{"slug":"heartbeat-control","file":"heartbeat-control\/heartbeat-control.php"}],"lazyload_iframes":[{"slug":"lazy-load-for-videos","file":"lazy-load-for-videos\/codeispoetry.php"}]} \ No newline at end of file diff --git a/dynamic-lists.json b/dynamic-lists.json index 73f1bf552e..5012e8a72b 100644 --- a/dynamic-lists.json +++ b/dynamic-lists.json @@ -1 +1 @@ -{"rucss_inline_atts_exclusions":["rocket-lazyload-inline-css","divi-style-parent-inline-inline-css","gsf-custom-css","extra-style-inline-inline-css","woodmart-inline-css-inline-css","woodmart_shortcodes-custom-css","rs-plugin-settings-inline-css","divi-style-inline-inline-css","tcb-post-list-dynamic-style","n2-ss-","wpcf7-","siteorigin-panels-layouts-footer","xstore-inline-css-inline-css","assets.reviews.io","ezoicCSS","stk-"],"rucss_inline_content_exclusions":[".wp-container-",".wp-elements-","#wpv-expandable-",".custom-content-","#thb-",".et_pb_text_dap_","#gdlr-core-shape-divider","#ultib3-",".uvc-wrap-",".jet-listing-dynamic-post-",".vcex_",".wprm-advanced-list-",".adsslot_",".jnews_",".cp-info-bar.content-","#stockie-custom-","#ohio-custom-",".uid-","#wpfMainWrapper","#penci_","#penci-",".wpbs_s","#apcore_","#apress_","#zolo_",".extended-products-grid#style-",".preloader#style-preloader-",".thegem-heading-",".thegem-button-",".thegem-custom-",".thegem-popup-","#pattern-","#thegem-video-frame-","#thegem-",".qwery_inline_",".dcgd_submit_button",".irs-bar",".gallery-grid-",".cmplz-hidden","#sqbquizouter","#start_sqbquizouter",".flo-header--",".trx_addons_inline_",".wpp-cardview-compact",".e-loop-item-",".tiered-pricing-plain-text",".vc_cta3_content-container",".vc_btn-gradient-btn-"],"defer_js_inline_exclusions":["DOMContentLoaded","document.write","window.lazyLoadOptions","N.N2_","rev_slider_wrapper","FB3D_CLIENT_LOCALE","ewww_webp_supported","anr_captcha_field_div","renderInvisibleReCaptcha","bookingInProgress"],"defer_js_external_exclusions":["gist.github.com","content.jwplatform.com","js.hsforms.net","www.uplaunch.com","google.com\/recaptcha","widget.reviews.co.uk","verify.authorize.net\/anetseal","lib\/admin\/assets\/lib\/webfont\/webfont.min.js","app.mailerlite.com","widget.reviews.io","simplybook.(.*)\/v2\/widget\/widget.js","\/wp-includes\/js\/dist\/i18n.min.js","\/wp-content\/plugins\/wpfront-notification-bar\/js\/wpfront-notification-bar(.*).js","\/wp-content\/plugins\/oxygen\/component-framework\/vendor\/aos\/aos.js","\/wp-content\/plugins\/ewww-image-optimizer\/includes\/check-webp(.min)?.js","static.mailerlite.com\/data\/(.*).js","cdn.voxpow.com\/static\/libs\/v1\/(.*).js","cdn.voxpow.com\/media\/trackers\/js\/(.*).js","use.typekit.net","www.idxhome.com","\/wp-includes\/js\/dist\/vendor\/lodash(.min)?.js","\/wp-includes\/js\/dist\/api-fetch(.min)?.js","\/wp-includes\/js\/dist\/i18n(.min)?.js","\/wp-includes\/js\/dist\/vendor\/wp-polyfill(.min)?.js","\/wp-includes\/js\/dist\/url(.min)?.js","\/wp-includes\/js\/dist\/hooks(.min)?.js","www.paypal.com\/sdk\/js","js-eu1.hsforms.net","yanovis.Voucher.js","\/carousel-upsells-and-related-product-for-woocommerce\/assets\/js\/glide.min.js","use.typekit.com","\/artale\/modules\/kirki\/assets\/webfont.js","\/api\/scripts\/lb_cs.js","js.hscta.net\/cta\/current.js","widget.refari.co","player.vdocipher.com","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js"],"delay_js_exclusions":["nowprocket","\/wp-includes\/js\/wp-embed.min.js","lazyLoadOptions","lazyLoadThumb","wp-rocket\/assets\/js\/lazyload\/(.*)","et_core_page_resource_fallback","window.\\$us === undefined","js-extra","fusionNavIsCollapsed","\/assets\/js\/smush-lazy-load","eio_lazy_vars","\\\/lazysizes(\\.min|-pre|-post)?\\.js","document\\.body\\.classList\\.remove\\(\"no-js\"\\)","document\\.documentElement\\.className\\.replace\\( 'no-js', 'js' \\)","et_animation_data","wpforms_settings","var nfForms","\/\/stats.wp.com","_stq.push","fluent_form_ff_form_instance_","cpLoadCSS","ninja_column_","var rbs_gallery_","var lepopup_","var billing_additional_field","var gtm4wp","var dataLayer_content","\/ewww-image-optimizer\/includes\/load[_-]webp(\\.min)?.js","\/ewww-image-optimizer\/includes\/check-webp(\\.min)?.js","ewww_webp_supported","\/dist\/js\/browser-redirect\/app.js","\/perfmatters\/js\/lazyload.min.js","lazyLoadInstance","scripts.mediavine.com\/tags\/","initCubePortfolio","simpli.fi","gforms_recaptcha_","\/jetpack-boost\/vendor\/automattic\/jetpack-lazy-images\/(.*)","jetpack-lazy-images-js-enabled","jetpack-boost-critical-css","wpformsRecaptchaCallback","booking-suedtirol-js","wpcp_css_disable_selection","\/gravityforms\/js\/conditional_logic.min.js","statcounter.com\/counter\/counter.js","var sc_project","\/jetpack\/jetpack_vendor\/automattic\/jetpack-lazy-images\/(.*)","\/themify-builder\/themify\/js\/modules\/fallback(\\.min)?.js","handlePixMessage","var corner_video","cdn.pixfuture.com\/hb_v2.js","cdn.pixfuture.com\/pbix.js","served-by.pixfuture.com\/www\/delivery\/ads.js","served-by.pixfuture.com\/www\/delivery\/headerbid_sticky_refresh.js","serv-vdo.pixfuture.com\/vpaid\/ads.js","wprRemoveCPCSS","window.jdgmSettings","\/photonic\/include\/js\/front-end\/nomodule\/photonic-baguettebox.min.js","\/photonic\/include\/ext\/baguettebox\/baguettebox.min.js","window.wsf_form_json_config","et_link_options_data","FuseboxPlayerAPIKey","js.hscta.net\/cta\/current.js","hbspt.cta.load","consent.cookiebot.com\/uc.js","\/woofilter-pro\/woofilterpro\/js\/ion.rangeSlider.min.js","barra.r7.com\/barra.js","rocket_css_lazyload_launch","#wpr-lazyload-bg","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js","rocket_lcp_data"],"js_minify_external":["html5.js","show_ads.js","histats.com\/js","ws.amazon.com\/widgets","\/ads\/","intensedebate.com","scripts.chitika.net\/","jotform.com\/","gist.github.com","forms.aweber.com","video.unrulymedia.com","stats.wp.com","stats.wordpress.com","widget.rafflecopter.com","widget-prime.rafflecopter.com","releases.flowplayer.org","c.ad6media.fr","cdn.stickyadstv.com","www.smava.de","contextual.media.net","app.getresponse.com","adserver.reklamstore.com","s0.wp.com","wprp.zemanta.com","files.bannersnack.com","smarticon.geotrust.com","js.gleam.io","ir-na.amazon-adsystem.com","web.ventunotech.com","verify.authorize.net","ads.themoneytizer.com","embed.finanzcheck.de","imagesrv.adition.com","js.juicyads.com","form.jotformeu.com","speakerdeck.com","content.jwplatform.com","ads.investingchannel.com","app.ecwid.com","www.industriejobs.de","s.gravatar.com","googlesyndication.com","a.optmstr.com","a.optmnstr.com","a.opmnstr.com","adthrive.com","mediavine.com","js.hsforms.net","googleadservices.com","f.convertkit.com","recaptcha\/api.js","mailmunch.co","apps.shareaholic.com","dsms0mj1bbhn4.cloudfront.net","nutrifox.com","code.tidio.co","www.uplaunch.com","widget.reviewability.com","embed-cdn.gettyimages.com\/widgets.js","app.mailerlite.com","ck.page","cdn.jsdelivr.net\/gh\/AmauriC\/","static.klaviyo.com\/onsite\/js\/klaviyo.js","a.omappapi.com\/app\/js\/api.min.js","static.zdassets.com","feedbackcompany.com\/widgets\/feedback-company-widget.min.js","widget.gleamjs.io","phonewagon.com","simplybook.asia\/v2\/widget\/widget.js","simplybook.it\/v2\/widget\/widget.js","simplybook.me\/v2\/widget\/widget.js","static.botsrv.com\/website\/js\/widget2.36cf1446.js","static.mailerlite.com\/data\/","cdn.voxpow.com","loader.knack.com","embed.lpcontent.net\/leadboxes\/current\/embed.js","cc.cdn.civiccomputing.com\/9\/cookieControl-9.x.min.js","cse.google.com\/cse.js","kit.fontawesome.com","cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-mml-chtml.js","static.leadpages.net\/leadbars\/current\/embed.js","booqable.com\/v2\/booqable.js","googleoptimize.com","cdna.hubpeople.com\/js\/widget_standalone_two_modes.js","s3.tradingview.com","www.vbt.io\/ext\/vbtforms.js","cdn.callrail.com","documentcloud.adobe.com\/view-sdk\/main.js","static.cleverpush.com","js.afterpay.com","cdn.enable.co.il\/licenses\/enable-","hcaptcha.com\/1\/api.js","voucher.getavo.it\/public\/js\/yanovis.Voucher.js","js-eu1.hsforms.net","statcounter.com\/counter\/counter.js","snapppt.com","use.typekit.com","secure.gravatar.com\/js\/gprofiles.js","cdn.jsdelivr.net\/npm\/hockeystack","widget.prod.faslet.net","ga.getresponse.com\/script\/ga.js","cognitoforms.com","usercentrics.eu","cdn.amcharts.com","umami","cdn.popt.in\/pixel.js","m2d.m2.ai","pubguru.net","trustindex.io","cdnjs.cloudflare.com\/ajax\/libs\/prism\/","podigee-podcast-player.js","tarteaucitron.io\/load.js","osm.klarnaservices.com\/lib.js","mein.clickskeks.at\/app.js","barra.r7.com\/barra.js","widget.refari.co","widget.reviews.co.uk","player.vdocipher.com","www.instagram.com\/embed.js","smartframe.io","challenges.cloudflare.com\/turnstile\/","script.roboassist.ai","cdn.hu-manity.co","daumcdn.net\/mapjsapi\/bundle\/postcode\/prod\/postcode.v2.js","consent.cookiebot.com\/uc.js","umstats.tools.coolw.xyz"],"js_move_after_combine":["map_fusion_map_","ec:addProduct","ec:addImpression","clear_better_facebook_comments","vc-row-destroy-equal-heights-","dfd-icon-list-","SFM_template","WLTChangeState","wlt_star_","wlt_pop_distance_","smart_list_tip","gd-wgt-pagi-","data-rf-id=","tvc_po=","scrapeazon","startclock","it_logo_field_owl-box_","td_live_css_uid","wpvl_paramReplace","tdAjaxCount","mec_skin_","_wca","_taboola","fbq('trackCustom'","fbq('track'","data.token","sharrre","dfads_ajax_load_ads","tie_postviews","wmp_update","h5ab-print-article","gform_ajax_frame_","gform_post_render","mts_view_count","act_css_tooltip","window.SLB","wpt_view_count","var dateNow","gallery_product_",".flo-block-slideshow-","data='api-key=ct-","ip_common_function()","(\"style#gsf-custom-css\").append","a3revWCDynamicGallery_","#owl-carousel-instagram-","window.FlowFlowOpts","jQuery('.td_uid_","jQuery(\".slider-","#dfd-vcard-widget-","#sf-instagram-widget-",".woocommerce-tabs-","penci_megamenu__","vc_prepareHoverBox","wp-temp-form-div","_wswebinarsystem_already_","#views-extra-css\").text","fusetag.setTargeting","hit.uptrendsdata.com","callback:window.renderBadge","test_run_nf_conditional_logic","cb_nombre","$('.fl-node-","function($){google_maps_","$(\"#myCarousel","et_animation_data=","current_url=\"","CustomEvent.prototype=window.Event.prototype","electro-wc-product-gallery","woof_is_mobile","jQuery('.videonextup","wpp_params","us.templateDirectoryUri=",".fat-gallery-item",".ratingbox","user_rating.prototype.eraseCookie","test_run_nf_conditional","dpsp-networks-btns-wrapper","pa_woo_product_info","sharing_enabled_on_post_via_metabox","#product-search-field-","GOTMLS_login_offset","berocket_aapf_time_to_fix_products_style","window.vc_googleMapsPointer","sinceID_","#ut-background-video-ut-section","+window.comment_tab_width+","dfd-button-hover-in","wpseo-address-wrapper","platform.stumbleupon.com","#woo_pp_ec_button_mini_cart","#supercarousel","blockClass","tdbMenuItem","tdbSearchItem","best_seller_badge","jQuery('#product-top-bar","fb_desc-","FC_regenerate_captcha","wp_post_blocks_vars.listed_posts=[","captcha-hash","mapdata={",".ywpc-char-",").countdowntimer(","jQuery(\"#td_uid_","find('#td_uid_","variation_estimate_msg"],"js_excluded_inline":["document.write","google_ad","edToolbar","gtag","_gaq.push","_gaLt","GoogleAnalyticsObject","syntaxhighlighter","adsbygoogle","ci_cap_","_stq","nonce","post_id","LogHuman","idcomments_acct","ch_client","sc_online_t","_stq","bannersnack_embed","vtn_player_type","ven_video_key","ANS_customer_id","tdBlock","tdLocalCache","wpRestNonce","\"url\":","lazyLoadOptions","adthrive","loadCSS","google_tag_params","clicky_custom","clicky_site_ids","NSLPopupCenter","_paq","gtm","dataLayer","RecaptchaLoad","WPCOM_sharing_counts","jetpack_remote_comment","subscribe-field","contextly","_mmunch","gt_request_uri","doGTranslate","docTitle","bs_ajax_paginate_","bs_deferred_loading_","theChampRedirectionUrl","theChampFBCommentUrl","theChampTwitterRedirect","theChampRegRedirectionUrl","ESSB_CACHE_URL","oneall_social_login_providers_","betterads_screen_width","woocommerce_wishlist_add_to_wishlist_url","arf_conditional_logic","heateorSsHorSharingShortUrl","TL_Const","bimber_front_microshare","setAttribute(\"id\"","setAttribute( \"id\"","TribeEventsPro","peepsotimedata","wphc_data","hc_rand_id","RBL_ADD","AfsAnalyticsObject","_thriveCurrentPost","esc_login_url","fwduvpMainPlaylist","Bibblio.initRelatedContent","showUFC()","#iphorm-","#fancy-","ult-carousel-","theChampLJAuthUrl","f._fbq","Insticator","w2dc_js_objects","cherry_ajax","ad_block_","elementorFrontendConfig","zeen_","disqusIdentifier","currentAjaxUrl","geodir_event_call_calendar_","atatags-","hbspt.forms.create","function(c,h,i,m,p)","dataTable({","rankMath = {","_atrk_opts","quicklinkOptions","ct_checkjs_","WP_Statistics_http","penci_block_","omapi_localized","omapi_data","OptinMonsterApp","tminusnow","nfForms","galleries.gallery_","wcj_evt.prodID","advads_tracking_ads","advadsGATracking.postContext","woopack_config","ulp_content_id","wp-cumulus\/tagcloud.swf?r=","ctSetCookie('ct_checkjs'","woof_really_curr_tax","uLogin.customInit","i18n_no_matching_variations_text","alsp_map_markers_attrs","var inc_opt =","iworks_upprev","yith_wcevti_tickets","window.metrilo.ensure_cbuid","metrilo.event","wordpress_page_root","wcct_info","Springbot.product_id","pysWooProductData","dfd-heading","owl=$(\"#","penci_megamenu","fts_security","algoliaAutocomplete","avia_framework_globals","tabs.easyResponsiveTabs","searchlocationHeader","yithautocomplete","data-parallax-speed","currency_data=","cedexisData","function reenableButton","#wpnbio-show","e.Newsletter2GoTrackingObject","var categories_","\"+nRemaining+\"","cartsguru_cart_token","after_share_easyoptin","location_data.push","thirstyFunctions.isThirstyLink","styles: ' #custom-menu-","function svc_center_","#svc_carousel2_container_","advads.move","elementid","advads_has_ads","wpseo_map_init","mdf_current_page_url","tptn_tracker","dpsp_pin_button_data","searchwp_live_search_params","wpp_params","top.location,thispage","selection+pagelink","ic_window_resolution","PHP.wp_p_id","ShopifyBuy.UI.onReady(client)","orig_request_uri","gie.widgets.load","Adman.Flash","PHP.wp_p_id","window.broadstreetKeywords","var productId =","var flatsomeVars","wc_product_block_data","static.mailerlite.com","amzn_assoc","_bs_getParameterByName","_stq.push","h._remove","var FlowFlowOpts","var WCPFData =","var _beeketing","var _statcounter","var actions =","var current_url","var object_name","var the_ajax_script","var wc_cart_fragments_params","var woocommerce_params","var wpml_cookies","wc_add_to_cart_params","window.broadstreetKeywords","window.wc_ga_pro.available_gateways","xa.prototype","HOUZEZ_ajaxcalls_vars","w2dc_maps_objects","w2dc_controller_args_array","w2dc_map_markers_attrs","YT.Player","WPFC.data","function current_video_","var videodiv","var slider_wppasrotate","wppas_ga","var blockClass","tarteaucitron","pw_brand_product_list","tminusCountDown","pysWooSelectContentData","wpvq_ans89733","_isp_version","price_range_data","window.FeedbackCompanyWidgets","woocs_current_currency","woo_variation_swatches_options","woocommerce_price_slider_params","scriptParams","form-adv-pagination","borlabsCookiePrioritize","urls_wpwidgetpolylang","quickViewNonce","frontendscripts_params","nj-facebook-messenger","var fb_mess_position","init_particles_row_background_script","setREVStartSize","fl-node","PPAccordion","soliloquy_","wprevpublicjs_script_vars","DTGS_NONCE_FRONTEND","et_animation_data","archives-dropdown","loftloaderCache","SmartSliderSimple","var nectarLove","var incOpt","RocketBrowserCompatibilityChecker","RocketPreloadLinksConfig","placementVersionId","var useEdit","var DTGS_NONCE_FRONTEND","n2jQuery","et_core_api_spam_recaptcha","cnArgs","__CF$cv$params","trustbox_settings","aepro","cdn.jst.ai","w2dc_fields_in_categories","jetMenuPublicSettings","JetTricksSettings","aepc_pixel","avadaWooCommerceVars","var isb","fcaPcPost","csrf_token","icwp_wpsf_vars_lpantibot","wpvViewHead","ed_school_plugin","aps_comp_","guaven_woos","__lm_redirect_to","__wpdm_view_count","bookacti.booking_system","nfFrontEnd","view_quote_cart_link","__eae_decode_emails","divioverlays_ajaxurl","var _EPYT_","#ins-heading-","#ins-button-","tve_frontend_options","lb24.src","amazon_Login_accessToken","porto_infinite_scroll",".adace-loader-","adace_load_","tagGroupsAccordiontaggroupscloudaccordion","tagGroupsTabstaggroupscloudtabs","jrRelatedWidgets","UNCODE.initRow","amp_mobile_redirect_disabled","wpgdprcData","wpml_browser_redirect_params","swPreRegister","kboard_settings","ct_ultimate_gdpr_cookie","wcpv_registration_local","www.idxhome.com","arf_footer_cl_logic_call","reload_attached_coupons","var ftpp","forminatorFront","_EPYT_","edd_free_downloads_vars","edd_stripe_vars","var ASP","ecwidOriginalTitle","defaultCategoryId","translation-revision-date","google_conversion_id","hbspt","var marker_locations_","var AdmMyAjax","ifso_page_url","referrer_for_pageload","WoocommerceWidget\/woocommerceWidget.js","var ht_ctc_chat_var","spuvar","var wpilFrontend","urls_polylangREPLACETOID","e.setAttribute('unselectable',on);","try{Typekit.load","iMapsData","var wpforms_user_journey","rocket_lazyload_css_data","wcStoreApiNonceTimestamp","createNonceMiddleware","pbidHash","wcBlocksMiddlewareConfig"],"cache_ignored_parameters":["utm_source","utm_medium","utm_campaign","utm_expid","utm_term","utm_content","utm_id","utm_source_platform","utm_creative_format","utm_marketing_tactic","mtm_source","mtm_medium","mtm_campaign","mtm_keyword","mtm_cid","mtm_content","pk_source","pk_medium","pk_campaign","pk_keyword","pk_cid","pk_content","fb_action_ids","fb_action_types","fb_source","fbclid","campaignid","adgroupid","adid","gclid","age-verified","ao_noptimize","usqp","cn-reloaded","_ga","sscid","gclsrc","_gl","mc_cid","mc_eid","_bta_tid","_bta_c","trk_contact","trk_msg","trk_module","trk_sid","gdfms","gdftrk","gdffi","_ke","_kx","redirect_log_mongo_id","redirect_mongo_id","sb_referer_host","mkwid","pcrid","ef_id","s_kwcid","msclkid","dm_i","epik","pp","gbraid","wbraid","ssp_iabi","ssp_iaba","gad","vgo_ee","gad_source"],"preload_exclusions":["void\\(.*;","(.*)__trashed(.*)","\/jet-menu\/(.*)","\/jet-popup\/(.*)"],"exclude_js_files":["\/wp-includes\/js\/dist\/i18n.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/html2canvas.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/pdf.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/three.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/3d-flip-book.min.js","\/google-site-kit\/dist\/assets\/js\/(.*).js","\/wp-live-chat-support\/public\/js\/callus(.*).js","\/borlabs-cookie\/assets\/javascript\/(.*).js","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js","\/woocommerce-bookings\/dist\/frontend.js","\/plugins\/mapify(.*)\/assets\/js\/dist\/bundle.js"],"staging_domains":[".wpengine.com",".wpenginepowered.com",".pantheonsite.io",".flywheelsites.com",".flywheelstaging.com",".kinsta.com",".kinsta.cloud",".cloudwaysapps.com",".azurewebsites.net",".wpserveur.net","-liquidwebsites.com",".myftpupload.com",".dream.press",".sg-host.com",".platformsh.site",".wpstage.net",".bigscoots-staging.com",".wpsc.site",".runcloud.link",".onrocket.site",".singlestaging.com",".myraidbox.de",".instawp.xyz",".instawp.co",".instawp.link",".instawp.app",".hstgr.cloud",".myhostpoint.ch",".wpcomstaging.com",".nxcli.io",".lyricalstaging.com"],"exclude_js_template":["type=\"module\"","data-minify=","data-no-minify="]} \ No newline at end of file +{"rucss_inline_atts_exclusions":["rocket-lazyload-inline-css","divi-style-parent-inline-inline-css","gsf-custom-css","extra-style-inline-inline-css","woodmart-inline-css-inline-css","woodmart_shortcodes-custom-css","rs-plugin-settings-inline-css","divi-style-inline-inline-css","tcb-post-list-dynamic-style","n2-ss-","wpcf7-","siteorigin-panels-layouts-footer","xstore-inline-css-inline-css","assets.reviews.io","ezoicCSS","stk-","rocket-lazyrender-inline-css","umsMapStyles_"],"rucss_inline_content_exclusions":[".wp-container-",".wp-elements-","#wpv-expandable-",".custom-content-","#thb-",".et_pb_text_dap_","#gdlr-core-shape-divider","#ultib3-",".uvc-wrap-",".jet-listing-dynamic-post-",".vcex_",".wprm-advanced-list-",".adsslot_",".jnews_",".cp-info-bar.content-","#stockie-custom-","#ohio-custom-",".uid-","#wpfMainWrapper","#penci_","#penci-",".wpbs_s","#apcore_","#apress_","#zolo_",".extended-products-grid#style-",".preloader#style-preloader-",".thegem-heading-",".thegem-button-",".thegem-custom-",".thegem-popup-","#pattern-","#thegem-video-frame-","#thegem-",".qwery_inline_",".dcgd_submit_button",".irs-bar",".gallery-grid-",".cmplz-hidden","#sqbquizouter","#start_sqbquizouter",".flo-header--",".trx_addons_inline_",".wpp-cardview-compact",".e-loop-item-",".tiered-pricing-plain-text",".vc_cta3_content-container",".vc_btn-gradient-btn-"],"defer_js_inline_exclusions":["DOMContentLoaded","document.write","window.lazyLoadOptions","N.N2_","rev_slider_wrapper","FB3D_CLIENT_LOCALE","ewww_webp_supported","anr_captcha_field_div","renderInvisibleReCaptcha","bookingInProgress"],"defer_js_external_exclusions":["gist.github.com","content.jwplatform.com","js.hsforms.net","www.uplaunch.com","google.com\/recaptcha","widget.reviews.co.uk","verify.authorize.net\/anetseal","lib\/admin\/assets\/lib\/webfont\/webfont.min.js","app.mailerlite.com","widget.reviews.io","simplybook.(.*)\/v2\/widget\/widget.js","\/wp-includes\/js\/dist\/i18n.min.js","\/wp-content\/plugins\/wpfront-notification-bar\/js\/wpfront-notification-bar(.*).js","\/wp-content\/plugins\/oxygen\/component-framework\/vendor\/aos\/aos.js","\/wp-content\/plugins\/ewww-image-optimizer\/includes\/check-webp(.min)?.js","static.mailerlite.com\/data\/(.*).js","cdn.voxpow.com\/static\/libs\/v1\/(.*).js","cdn.voxpow.com\/media\/trackers\/js\/(.*).js","use.typekit.net","www.idxhome.com","\/wp-includes\/js\/dist\/vendor\/lodash(.min)?.js","\/wp-includes\/js\/dist\/api-fetch(.min)?.js","\/wp-includes\/js\/dist\/i18n(.min)?.js","\/wp-includes\/js\/dist\/vendor\/wp-polyfill(.min)?.js","\/wp-includes\/js\/dist\/url(.min)?.js","\/wp-includes\/js\/dist\/hooks(.min)?.js","www.paypal.com\/sdk\/js","js-eu1.hsforms.net","yanovis.Voucher.js","\/carousel-upsells-and-related-product-for-woocommerce\/assets\/js\/glide.min.js","use.typekit.com","\/artale\/modules\/kirki\/assets\/webfont.js","\/api\/scripts\/lb_cs.js","js.hscta.net\/cta\/current.js","widget.refari.co","player.vdocipher.com","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js"],"delay_js_exclusions":["nowprocket","\/wp-includes\/js\/wp-embed.min.js","lazyLoadOptions","lazyLoadThumb","wp-rocket\/assets\/js\/lazyload\/(.*)","et_core_page_resource_fallback","window.\\$us === undefined","js-extra","fusionNavIsCollapsed","\/assets\/js\/smush-lazy-load","eio_lazy_vars","\\\/lazysizes(\\.min|-pre|-post)?\\.js","document\\.body\\.classList\\.remove\\(\"no-js\"\\)","document\\.documentElement\\.className\\.replace\\( 'no-js', 'js' \\)","et_animation_data","wpforms_settings","var nfForms","\/\/stats.wp.com","_stq.push","fluent_form_ff_form_instance_","cpLoadCSS","ninja_column_","var rbs_gallery_","var lepopup_","var billing_additional_field","var gtm4wp","var dataLayer_content","\/ewww-image-optimizer\/includes\/load[_-]webp(\\.min)?.js","\/ewww-image-optimizer\/includes\/check-webp(\\.min)?.js","ewww_webp_supported","\/dist\/js\/browser-redirect\/app.js","\/perfmatters\/js\/lazyload.min.js","lazyLoadInstance","scripts.mediavine.com\/tags\/","initCubePortfolio","simpli.fi","gforms_recaptcha_","\/jetpack-boost\/vendor\/automattic\/jetpack-lazy-images\/(.*)","jetpack-lazy-images-js-enabled","jetpack-boost-critical-css","wpformsRecaptchaCallback","booking-suedtirol-js","wpcp_css_disable_selection","\/gravityforms\/js\/conditional_logic.min.js","statcounter.com\/counter\/counter.js","var sc_project","\/jetpack\/jetpack_vendor\/automattic\/jetpack-lazy-images\/(.*)","\/themify-builder\/themify\/js\/modules\/fallback(\\.min)?.js","handlePixMessage","var corner_video","cdn.pixfuture.com\/hb_v2.js","cdn.pixfuture.com\/pbix.js","served-by.pixfuture.com\/www\/delivery\/ads.js","served-by.pixfuture.com\/www\/delivery\/headerbid_sticky_refresh.js","serv-vdo.pixfuture.com\/vpaid\/ads.js","wprRemoveCPCSS","window.jdgmSettings","\/photonic\/include\/js\/front-end\/nomodule\/photonic-baguettebox.min.js","\/photonic\/include\/ext\/baguettebox\/baguettebox.min.js","window.wsf_form_json_config","et_link_options_data","FuseboxPlayerAPIKey","js.hscta.net\/cta\/current.js","hbspt.cta.load","consent.cookiebot.com\/uc.js","\/woofilter-pro\/woofilterpro\/js\/ion.rangeSlider.min.js","barra.r7.com\/barra.js","rocket_css_lazyload_launch","#wpr-lazyload-bg","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js","rocket_lcp_data","rocket_beacon_data","\/wp-content\/plugins\/wp-rocket\/assets\/js\/wpr-beacon(.min)?.js"],"js_minify_external":["html5.js","show_ads.js","histats.com\/js","ws.amazon.com\/widgets","\/ads\/","intensedebate.com","scripts.chitika.net\/","jotform.com\/","gist.github.com","forms.aweber.com","video.unrulymedia.com","stats.wp.com","stats.wordpress.com","widget.rafflecopter.com","widget-prime.rafflecopter.com","releases.flowplayer.org","c.ad6media.fr","cdn.stickyadstv.com","www.smava.de","contextual.media.net","app.getresponse.com","adserver.reklamstore.com","s0.wp.com","wprp.zemanta.com","files.bannersnack.com","smarticon.geotrust.com","js.gleam.io","ir-na.amazon-adsystem.com","web.ventunotech.com","verify.authorize.net","ads.themoneytizer.com","embed.finanzcheck.de","imagesrv.adition.com","js.juicyads.com","form.jotformeu.com","speakerdeck.com","content.jwplatform.com","ads.investingchannel.com","app.ecwid.com","www.industriejobs.de","s.gravatar.com","googlesyndication.com","a.optmstr.com","a.optmnstr.com","a.opmnstr.com","adthrive.com","mediavine.com","js.hsforms.net","googleadservices.com","f.convertkit.com","recaptcha\/api.js","mailmunch.co","apps.shareaholic.com","dsms0mj1bbhn4.cloudfront.net","nutrifox.com","code.tidio.co","www.uplaunch.com","widget.reviewability.com","embed-cdn.gettyimages.com\/widgets.js","app.mailerlite.com","ck.page","cdn.jsdelivr.net\/gh\/AmauriC\/","static.klaviyo.com\/onsite\/js\/klaviyo.js","a.omappapi.com\/app\/js\/api.min.js","static.zdassets.com","feedbackcompany.com\/widgets\/feedback-company-widget.min.js","widget.gleamjs.io","phonewagon.com","simplybook.asia\/v2\/widget\/widget.js","simplybook.it\/v2\/widget\/widget.js","simplybook.me\/v2\/widget\/widget.js","static.botsrv.com\/website\/js\/widget2.36cf1446.js","static.mailerlite.com\/data\/","cdn.voxpow.com","loader.knack.com","embed.lpcontent.net\/leadboxes\/current\/embed.js","cc.cdn.civiccomputing.com\/9\/cookieControl-9.x.min.js","cse.google.com\/cse.js","kit.fontawesome.com","cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-mml-chtml.js","static.leadpages.net\/leadbars\/current\/embed.js","booqable.com\/v2\/booqable.js","googleoptimize.com","cdna.hubpeople.com\/js\/widget_standalone_two_modes.js","s3.tradingview.com","www.vbt.io\/ext\/vbtforms.js","cdn.callrail.com","documentcloud.adobe.com\/view-sdk\/main.js","static.cleverpush.com","js.afterpay.com","cdn.enable.co.il\/licenses\/enable-","hcaptcha.com\/1\/api.js","voucher.getavo.it\/public\/js\/yanovis.Voucher.js","js-eu1.hsforms.net","statcounter.com\/counter\/counter.js","snapppt.com","use.typekit.com","secure.gravatar.com\/js\/gprofiles.js","cdn.jsdelivr.net\/npm\/hockeystack","widget.prod.faslet.net","ga.getresponse.com\/script\/ga.js","cognitoforms.com","usercentrics.eu","cdn.amcharts.com","umami","cdn.popt.in\/pixel.js","m2d.m2.ai","pubguru.net","trustindex.io","cdnjs.cloudflare.com\/ajax\/libs\/prism\/","podigee-podcast-player.js","tarteaucitron.io\/load.js","osm.klarnaservices.com\/lib.js","mein.clickskeks.at\/app.js","barra.r7.com\/barra.js","widget.refari.co","widget.reviews.co.uk","player.vdocipher.com","www.instagram.com\/embed.js","smartframe.io","challenges.cloudflare.com\/turnstile\/","script.roboassist.ai","cdn.hu-manity.co","daumcdn.net\/mapjsapi\/bundle\/postcode\/prod\/postcode.v2.js","consent.cookiebot.com\/uc.js","umstats.tools.coolw.xyz"],"js_move_after_combine":["map_fusion_map_","ec:addProduct","ec:addImpression","clear_better_facebook_comments","vc-row-destroy-equal-heights-","dfd-icon-list-","SFM_template","WLTChangeState","wlt_star_","wlt_pop_distance_","smart_list_tip","gd-wgt-pagi-","data-rf-id=","tvc_po=","scrapeazon","startclock","it_logo_field_owl-box_","td_live_css_uid","wpvl_paramReplace","tdAjaxCount","mec_skin_","_wca","_taboola","fbq('trackCustom'","fbq('track'","data.token","sharrre","dfads_ajax_load_ads","tie_postviews","wmp_update","h5ab-print-article","gform_ajax_frame_","gform_post_render","mts_view_count","act_css_tooltip","window.SLB","wpt_view_count","var dateNow","gallery_product_",".flo-block-slideshow-","data='api-key=ct-","ip_common_function()","(\"style#gsf-custom-css\").append","a3revWCDynamicGallery_","#owl-carousel-instagram-","window.FlowFlowOpts","jQuery('.td_uid_","jQuery(\".slider-","#dfd-vcard-widget-","#sf-instagram-widget-",".woocommerce-tabs-","penci_megamenu__","vc_prepareHoverBox","wp-temp-form-div","_wswebinarsystem_already_","#views-extra-css\").text","fusetag.setTargeting","hit.uptrendsdata.com","callback:window.renderBadge","test_run_nf_conditional_logic","cb_nombre","$('.fl-node-","function($){google_maps_","$(\"#myCarousel","et_animation_data=","current_url=\"","CustomEvent.prototype=window.Event.prototype","electro-wc-product-gallery","woof_is_mobile","jQuery('.videonextup","wpp_params","us.templateDirectoryUri=",".fat-gallery-item",".ratingbox","user_rating.prototype.eraseCookie","test_run_nf_conditional","dpsp-networks-btns-wrapper","pa_woo_product_info","sharing_enabled_on_post_via_metabox","#product-search-field-","GOTMLS_login_offset","berocket_aapf_time_to_fix_products_style","window.vc_googleMapsPointer","sinceID_","#ut-background-video-ut-section","+window.comment_tab_width+","dfd-button-hover-in","wpseo-address-wrapper","platform.stumbleupon.com","#woo_pp_ec_button_mini_cart","#supercarousel","blockClass","tdbMenuItem","tdbSearchItem","best_seller_badge","jQuery('#product-top-bar","fb_desc-","FC_regenerate_captcha","wp_post_blocks_vars.listed_posts=[","captcha-hash","mapdata={",".ywpc-char-",").countdowntimer(","jQuery(\"#td_uid_","find('#td_uid_","variation_estimate_msg"],"js_excluded_inline":["document.write","google_ad","edToolbar","gtag","_gaq.push","_gaLt","GoogleAnalyticsObject","syntaxhighlighter","adsbygoogle","ci_cap_","_stq","nonce","post_id","LogHuman","idcomments_acct","ch_client","sc_online_t","_stq","bannersnack_embed","vtn_player_type","ven_video_key","ANS_customer_id","tdBlock","tdLocalCache","wpRestNonce","\"url\":","lazyLoadOptions","adthrive","loadCSS","google_tag_params","clicky_custom","clicky_site_ids","NSLPopupCenter","_paq","gtm","dataLayer","RecaptchaLoad","WPCOM_sharing_counts","jetpack_remote_comment","subscribe-field","contextly","_mmunch","gt_request_uri","doGTranslate","docTitle","bs_ajax_paginate_","bs_deferred_loading_","theChampRedirectionUrl","theChampFBCommentUrl","theChampTwitterRedirect","theChampRegRedirectionUrl","ESSB_CACHE_URL","oneall_social_login_providers_","betterads_screen_width","woocommerce_wishlist_add_to_wishlist_url","arf_conditional_logic","heateorSsHorSharingShortUrl","TL_Const","bimber_front_microshare","setAttribute(\"id\"","setAttribute( \"id\"","TribeEventsPro","peepsotimedata","wphc_data","hc_rand_id","RBL_ADD","AfsAnalyticsObject","_thriveCurrentPost","esc_login_url","fwduvpMainPlaylist","Bibblio.initRelatedContent","showUFC()","#iphorm-","#fancy-","ult-carousel-","theChampLJAuthUrl","f._fbq","Insticator","w2dc_js_objects","cherry_ajax","ad_block_","elementorFrontendConfig","zeen_","disqusIdentifier","currentAjaxUrl","geodir_event_call_calendar_","atatags-","hbspt.forms.create","function(c,h,i,m,p)","dataTable({","rankMath = {","_atrk_opts","quicklinkOptions","ct_checkjs_","WP_Statistics_http","penci_block_","omapi_localized","omapi_data","OptinMonsterApp","tminusnow","nfForms","galleries.gallery_","wcj_evt.prodID","advads_tracking_ads","advadsGATracking.postContext","woopack_config","ulp_content_id","wp-cumulus\/tagcloud.swf?r=","ctSetCookie('ct_checkjs'","woof_really_curr_tax","uLogin.customInit","i18n_no_matching_variations_text","alsp_map_markers_attrs","var inc_opt =","iworks_upprev","yith_wcevti_tickets","window.metrilo.ensure_cbuid","metrilo.event","wordpress_page_root","wcct_info","Springbot.product_id","pysWooProductData","dfd-heading","owl=$(\"#","penci_megamenu","fts_security","algoliaAutocomplete","avia_framework_globals","tabs.easyResponsiveTabs","searchlocationHeader","yithautocomplete","data-parallax-speed","currency_data=","cedexisData","function reenableButton","#wpnbio-show","e.Newsletter2GoTrackingObject","var categories_","\"+nRemaining+\"","cartsguru_cart_token","after_share_easyoptin","location_data.push","thirstyFunctions.isThirstyLink","styles: ' #custom-menu-","function svc_center_","#svc_carousel2_container_","advads.move","elementid","advads_has_ads","wpseo_map_init","mdf_current_page_url","tptn_tracker","dpsp_pin_button_data","searchwp_live_search_params","wpp_params","top.location,thispage","selection+pagelink","ic_window_resolution","PHP.wp_p_id","ShopifyBuy.UI.onReady(client)","orig_request_uri","gie.widgets.load","Adman.Flash","PHP.wp_p_id","window.broadstreetKeywords","var productId =","var flatsomeVars","wc_product_block_data","static.mailerlite.com","amzn_assoc","_bs_getParameterByName","_stq.push","h._remove","var FlowFlowOpts","var WCPFData =","var _beeketing","var _statcounter","var actions =","var current_url","var object_name","var the_ajax_script","var wc_cart_fragments_params","var woocommerce_params","var wpml_cookies","wc_add_to_cart_params","window.broadstreetKeywords","window.wc_ga_pro.available_gateways","xa.prototype","HOUZEZ_ajaxcalls_vars","w2dc_maps_objects","w2dc_controller_args_array","w2dc_map_markers_attrs","YT.Player","WPFC.data","function current_video_","var videodiv","var slider_wppasrotate","wppas_ga","var blockClass","tarteaucitron","pw_brand_product_list","tminusCountDown","pysWooSelectContentData","wpvq_ans89733","_isp_version","price_range_data","window.FeedbackCompanyWidgets","woocs_current_currency","woo_variation_swatches_options","woocommerce_price_slider_params","scriptParams","form-adv-pagination","borlabsCookiePrioritize","urls_wpwidgetpolylang","quickViewNonce","frontendscripts_params","nj-facebook-messenger","var fb_mess_position","init_particles_row_background_script","setREVStartSize","fl-node","PPAccordion","soliloquy_","wprevpublicjs_script_vars","DTGS_NONCE_FRONTEND","et_animation_data","archives-dropdown","loftloaderCache","SmartSliderSimple","var nectarLove","var incOpt","RocketBrowserCompatibilityChecker","RocketPreloadLinksConfig","placementVersionId","var useEdit","var DTGS_NONCE_FRONTEND","n2jQuery","et_core_api_spam_recaptcha","cnArgs","__CF$cv$params","trustbox_settings","aepro","cdn.jst.ai","w2dc_fields_in_categories","jetMenuPublicSettings","JetTricksSettings","aepc_pixel","avadaWooCommerceVars","var isb","fcaPcPost","csrf_token","icwp_wpsf_vars_lpantibot","wpvViewHead","ed_school_plugin","aps_comp_","guaven_woos","__lm_redirect_to","__wpdm_view_count","bookacti.booking_system","nfFrontEnd","view_quote_cart_link","__eae_decode_emails","divioverlays_ajaxurl","var _EPYT_","#ins-heading-","#ins-button-","tve_frontend_options","lb24.src","amazon_Login_accessToken","porto_infinite_scroll",".adace-loader-","adace_load_","tagGroupsAccordiontaggroupscloudaccordion","tagGroupsTabstaggroupscloudtabs","jrRelatedWidgets","UNCODE.initRow","amp_mobile_redirect_disabled","wpgdprcData","wpml_browser_redirect_params","swPreRegister","kboard_settings","ct_ultimate_gdpr_cookie","wcpv_registration_local","www.idxhome.com","arf_footer_cl_logic_call","reload_attached_coupons","var ftpp","forminatorFront","_EPYT_","edd_free_downloads_vars","edd_stripe_vars","var ASP","ecwidOriginalTitle","defaultCategoryId","translation-revision-date","google_conversion_id","hbspt","var marker_locations_","var AdmMyAjax","ifso_page_url","referrer_for_pageload","WoocommerceWidget\/woocommerceWidget.js","var ht_ctc_chat_var","spuvar","var wpilFrontend","urls_polylangREPLACETOID","e.setAttribute('unselectable',on);","try{Typekit.load","iMapsData","var wpforms_user_journey","rocket_lazyload_css_data","wcStoreApiNonceTimestamp","createNonceMiddleware","pbidHash","wcBlocksMiddlewareConfig"],"cache_ignored_parameters":["utm_source","utm_medium","utm_campaign","utm_expid","utm_term","utm_content","utm_id","utm_source_platform","utm_creative_format","utm_marketing_tactic","mtm_source","mtm_medium","mtm_campaign","mtm_keyword","mtm_cid","mtm_content","pk_source","pk_medium","pk_campaign","pk_keyword","pk_cid","pk_content","fb_action_ids","fb_action_types","fb_source","fbclid","campaignid","adgroupid","adid","gclid","age-verified","ao_noptimize","usqp","cn-reloaded","_ga","sscid","gclsrc","_gl","mc_cid","mc_eid","_bta_tid","_bta_c","trk_contact","trk_msg","trk_module","trk_sid","gdfms","gdftrk","gdffi","_ke","_kx","redirect_log_mongo_id","redirect_mongo_id","sb_referer_host","mkwid","pcrid","ef_id","s_kwcid","msclkid","dm_i","epik","pp","gbraid","wbraid","ssp_iabi","ssp_iaba","gad","vgo_ee","gad_source","onlywprocket","srsltid"],"preload_exclusions":["void\\(.*;","(.*)__trashed(.*)","\/jet-menu\/(.*)","\/jet-popup\/(.*)"],"exclude_js_files":["\/wp-includes\/js\/dist\/i18n.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/html2canvas.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/pdf.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/three.min.js","\/interactive-3d-flipbook-powered-physics-engine\/assets\/js\/3d-flip-book.min.js","\/google-site-kit\/dist\/assets\/js\/(.*).js","\/wp-live-chat-support\/public\/js\/callus(.*).js","\/borlabs-cookie\/assets\/javascript\/(.*).js","\/wp-content\/plugins\/wp-rocket\/assets\/js\/lcp-beacon(.min)?.js","\/woocommerce-bookings\/dist\/frontend.js","\/plugins\/mapify(.*)\/assets\/js\/dist\/bundle.js","\/wp-content\/plugins\/wp-rocket\/assets\/js\/wpr-beacon(.min)?.js"],"staging_domains":[".wpengine.com",".wpenginepowered.com",".pantheonsite.io",".flywheelsites.com",".flywheelstaging.com",".kinsta.com",".kinsta.cloud",".cloudwaysapps.com",".azurewebsites.net",".wpserveur.net","-liquidwebsites.com",".myftpupload.com",".dream.press",".sg-host.com",".platformsh.site",".wpstage.net",".bigscoots-staging.com",".wpsc.site",".runcloud.link",".onrocket.site",".singlestaging.com",".myraidbox.de",".instawp.xyz",".instawp.co",".instawp.link",".instawp.app",".hstgr.cloud",".myhostpoint.ch",".wpcomstaging.com",".nxcli.io",".lyricalstaging.com"],"exclude_js_template":["type=\"module\"","data-minify=","data-no-minify="]} \ No newline at end of file diff --git a/inc/Addon/Varnish/Subscriber.php b/inc/Addon/Varnish/Subscriber.php index 6b1e9fa1d8..fe5adbf213 100644 --- a/inc/Addon/Varnish/Subscriber.php +++ b/inc/Addon/Varnish/Subscriber.php @@ -40,11 +40,12 @@ public function __construct( Varnish $varnish, Options_Data $options ) { */ public static function get_subscribed_events() { return [ - 'before_rocket_clean_domain' => [ 'clean_domain', 10, 3 ], - 'before_rocket_clean_file' => [ 'clean_file' ], - 'rocket_rucss_after_clearing_usedcss' => [ 'clean_file' ], - 'before_rocket_clean_home' => [ 'clean_home', 10, 2 ], - 'rocket_saas_complete_job_status' => [ 'clean_file' ], + 'before_rocket_clean_domain' => [ 'clean_domain', 10, 3 ], + 'before_rocket_clean_file' => [ 'clean_file' ], + 'rocket_rucss_after_clearing_usedcss' => [ 'clean_file' ], + 'rocket_performance_hints_data_after_clearing' => [ 'clean_file' ], + 'before_rocket_clean_home' => [ 'clean_home', 10, 2 ], + 'rocket_saas_complete_job_status' => [ 'clean_file' ], ]; } diff --git a/inc/Engine/Admin/Beacon/Beacon.php b/inc/Engine/Admin/Beacon/Beacon.php index 9e7092f5be..bef646541b 100644 --- a/inc/Engine/Admin/Beacon/Beacon.php +++ b/inc/Engine/Admin/Beacon/Beacon.php @@ -821,6 +821,16 @@ public function get_suggest( $doc_id ) { 'url' => 'https://fr.docs.wp-rocket.me/article/1833-impossible-creer-table-rucssusedcss/?utm_source=wp_plugin&utm_medium=wp_rocket', ], ], + 'lazy_render_content' => [ + 'en' => [ + 'id' => '66b11e26a62a7505fcf339e7', + 'url' => 'https://docs.wp-rocket.me/article/1835-lazy-render-content/?utm_source=wp_plugin&utm_medium=wp_rocket', + ], + 'fr' => [ + 'id' => '66ba0e8e082392452a0773ea', + 'url' => 'https://fr.docs.wp-rocket.me/article/1836-rendu-differe-automatique/?utm_source=wp_plugin&utm_medium=wp_rocket', + ], + ], ]; return isset( $suggest[ $doc_id ][ $this->get_user_locale() ] ) diff --git a/inc/Engine/Admin/Settings/AdminBarMenuTrait.php b/inc/Engine/Admin/Settings/AdminBarMenuTrait.php new file mode 100644 index 0000000000..588c2f7749 --- /dev/null +++ b/inc/Engine/Admin/Settings/AdminBarMenuTrait.php @@ -0,0 +1,132 @@ +add_menu( + [ + 'parent' => 'wp-rocket', + 'id' => $id, + 'title' => $title, + 'href' => wp_nonce_url( admin_url( "admin-post.php?action={$action}{$referer}" ), $action ), + ] + ); + } + + /** + * Admin menu to WP Rocket admin bar menu + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance. + * @param string $id The menu id. + * @param string $title The menu title. + * @param string $action Menu action. + * @param bool $context Context. + * + * @return void + */ + protected function add_url_menu_item_to_admin_bar( + WP_Admin_Bar $wp_admin_bar, + string $id, + string $title, + string $action, + bool $context + ) { + global $post; + + if ( is_admin() ) { + return; + } + + if ( + $post + && + ! rocket_can_display_options() + ) { + return; + } + + if ( ! $context ) { + return; + } + + $referer = ''; + + if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { + $referer_url = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ); + + /** + * Filters to act on the referer url for the admin bar. + * + * @param string $uri Current uri. + */ + $referer = wpm_apply_filters_typed( 'string', 'rocket_admin_bar_referer', esc_url( $referer_url ) ); + $referer = '&_wp_http_referer=' . rawurlencode( remove_query_arg( 'fl_builder', $referer ) ); + } + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wp-rocket', + 'id' => $id, + 'title' => $title, + 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . $referer ), $action ), + ] + ); + } + + /** + * Add button to dashboard + * + * @param bool $context The feature context. + * @param string $title The button title. + * @param string $label Button label. + * @param string $action Button action. + * @param string $description Button description text. + * + * @return void + */ + public function dashboard_button( bool $context, string $title, string $label, string $action, string $description = '' ): void { + if ( ! $context ) { + return; + } + + $data = [ + 'action' => $action, + 'title' => $title, + 'label' => $label, + 'description' => $description, + ]; + + echo $this->generate( 'sections/clean-section', $data ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } +} diff --git a/inc/Engine/Admin/Settings/DataClearingTrait.php b/inc/Engine/Admin/Settings/DataClearingTrait.php new file mode 100644 index 0000000000..4d3c4fe966 --- /dev/null +++ b/inc/Engine/Admin/Settings/DataClearingTrait.php @@ -0,0 +1,46 @@ + 'sanitize_checkbox', 'options' => [ 'remove_unused_css' => [ - 'label' => __( 'Remove Unused CSS', 'rocket' ), + 'label' => __( 'Remove Unused CSS (RUCSS)', 'rocket' ), 'disabled' => $invalid_license || $rucss_status['disable'] ? 'disabled' : false, // translators: %1$s = opening tag, %2$s = closing tag. 'description' => sprintf( __( 'Removes unused CSS per page and helps to reduce page size and HTTP requests. Recommended for best performance. Test thoroughly! %1$sMore info%2$s', 'rocket' ), '', '' ), @@ -2231,25 +2231,23 @@ public function display_update_notice() { return; } - // Bail-out if previous version is greater than 3.16. - if ( $previous_version > '3.16' ) { + // Bail-out if previous version is greater than 3.17. + if ( $previous_version > '3.17' ) { return; } - $critical_images_beacon = $this->beacon->get_suggest( 'optimize_critical_images' ); - $remove_cache_tab = $this->beacon->get_suggest( 'remove_cache_tab' ); + $lazy_render_content = $this->beacon->get_suggest( 'lazy_render_content' ); rocket_notice_html( [ 'status' => 'info', 'dismissible' => '', 'message' => sprintf( - // translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: opening a tag, %4$s: option a tag, %5$s: opening a tag. - __( '%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our brand new feature %3$sOptimize critical images%5$s is automatically activated now! Also, the Cache tab was removed but the existing features will remain working, %4$ssee more here%5$s.', 'rocket' ), + // translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: opening a tag, %4$s: opening a tag. + __( '%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New feature: %3$sLazy Render Content%4$s. Check out our documentation to learn more about it.', 'rocket' ), '', '', - '', - '', + '', '' ), 'dismiss_button' => 'rocket_update_notice', diff --git a/inc/Engine/Cache/PurgeActionsSubscriber.php b/inc/Engine/Cache/PurgeActionsSubscriber.php index bed2dcae19..198ef0543d 100644 --- a/inc/Engine/Cache/PurgeActionsSubscriber.php +++ b/inc/Engine/Cache/PurgeActionsSubscriber.php @@ -44,21 +44,22 @@ public static function get_subscribed_events() { $slug = rocket_get_constant( 'WP_ROCKET_SLUG' ); return [ - 'profile_update' => 'purge_user_cache', - 'delete_user' => 'purge_user_cache', - 'create_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], - 'edit_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], - 'delete_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], - 'after_rocket_clean_post' => [ + 'profile_update' => 'purge_user_cache', + 'delete_user' => 'purge_user_cache', + 'create_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], + 'edit_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], + 'delete_term' => [ 'maybe_purge_cache_on_term_change', 10, 3 ], + 'after_rocket_clean_post' => [ [ 'purge_dates_archives' ], [ 'purge_post_terms_urls' ], ], - 'rocket_saas_complete_job_status' => [ 'purge_url_cache', 100 ], - 'rocket_rucss_after_clearing_usedcss' => 'purge_url_cache', - 'rocket_after_save_dynamic_lists' => 'purge_cache_after_saving_dynamic_lists', - 'update_option_' . $slug => [ 'purge_cache_reject_uri_partially', 10, 2 ], - 'update_option_blog_public' => 'purge_cache', - 'wp_rocket_upgrade' => [ 'on_update', 10, 2 ], + 'rocket_saas_complete_job_status' => [ 'purge_url_cache', 100 ], + 'rocket_rucss_after_clearing_usedcss' => 'purge_url_cache', + 'rocket_performance_hints_data_after_clearing' => 'purge_url_cache', + 'rocket_after_save_dynamic_lists' => 'purge_cache_after_saving_dynamic_lists', + 'update_option_' . $slug => [ 'purge_cache_reject_uri_partially', 10, 2 ], + 'update_option_blog_public' => 'purge_cache', + 'wp_rocket_upgrade' => [ 'on_update', 10, 2 ], ]; } diff --git a/inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php b/inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php new file mode 100644 index 0000000000..56ae3fcf41 --- /dev/null +++ b/inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php @@ -0,0 +1,31 @@ +factories = $factories; + } + + /** + * Checks existing data for various performance hints feature using their factories, + * then encodes the result in a single instance. + * + * @return void + */ + public function check_data(): void { + $payload = $this->get_payload( $this->factories, 'check_data' ); + wp_send_json_success( $payload ); + } + + /** + * Adds performance hints data to DB. + * + * @return void + */ + public function add_data() { + $payload = $this->get_payload( $this->factories, 'add_data' ); + wp_send_json_success( $payload ); + } + + /** + * Gets the response for ajax request. + * + * @param array $factories Array of factories. + * @param string $method Ajax product method name. + * @return array + */ + private function get_payload( array $factories, string $method ): array { + $payload = []; + + foreach ( $factories as $factory ) { + $payload = array_merge( $payload, $factory->get_ajax_controller()->$method() ); + } + + return $payload; + } +} diff --git a/inc/Engine/Common/PerformanceHints/AJAX/Subscriber.php b/inc/Engine/Common/PerformanceHints/AJAX/Subscriber.php index ef26dc446c..d96650f496 100644 --- a/inc/Engine/Common/PerformanceHints/AJAX/Subscriber.php +++ b/inc/Engine/Common/PerformanceHints/AJAX/Subscriber.php @@ -5,23 +5,22 @@ use WP_Rocket\Event_Management\Subscriber_Interface; - class Subscriber implements Subscriber_Interface { /** - * Array of Factories. + * Processor Instance. * - * @var array + * @var Processor */ - private $factories; + private $processor; /** * Instantiate the class * - * @param array $factories Array of factories. + * @param Processor $processor Processor Instance. */ - public function __construct( array $factories ) { - $this->factories = $factories; + public function __construct( Processor $processor ) { + $this->processor = $processor; } /** @@ -44,9 +43,7 @@ public static function get_subscribed_events(): array { * @return void */ public function add_data() { - foreach ( $this->factories as $factory ) { - $factory->get_ajax_controller()->add_data(); - } + $this->processor->add_data(); } /** @@ -55,8 +52,6 @@ public function add_data() { * @return void */ public function check_data() { - foreach ( $this->factories as $factory ) { - $factory->get_ajax_controller()->check_data(); - } + $this->processor->check_data(); } } diff --git a/inc/Engine/Common/PerformanceHints/Activation/ServiceProvider.php b/inc/Engine/Common/PerformanceHints/Activation/ServiceProvider.php index 50483bd380..6640dbe77a 100644 --- a/inc/Engine/Common/PerformanceHints/Activation/ServiceProvider.php +++ b/inc/Engine/Common/PerformanceHints/Activation/ServiceProvider.php @@ -7,6 +7,8 @@ use WP_Rocket\Engine\Common\PerformanceHints\WarmUp\{APIClient, Controller as WarmUpController, Subscriber as WarmUpSubscriber, Queue}; use WP_Rocket\Engine\Media\AboveTheFold\Context\Context as ATFContext; use WP_Rocket\Engine\Media\AboveTheFold\Activation\ActivationFactory as ATFActivationFactory; +use WP_Rocket\Engine\Optimization\LazyRenderContent\Activation\ActivationFactory as LRCActivationFactory; +use WP_Rocket\Engine\Optimization\LazyRenderContent\Context\Context as LRCContext; class ServiceProvider extends AbstractServiceProvider { /** @@ -26,6 +28,8 @@ class ServiceProvider extends AbstractServiceProvider { 'performance_hints_warmup_subscriber', 'atf_context', 'atf_activation_factory', + 'lrc_context', + 'lrc_activation_factory', ]; /** @@ -55,6 +59,15 @@ public function register(): void { ] ); + $this->getContainer()->add( 'lrc_context', LRCContext::class ); + + $this->getContainer()->addShared( 'lrc_activation_factory', LRCActivationFactory::class ) + ->addArguments( + [ + $this->getContainer()->get( 'lrc_context' ), + ] + ); + $factories = []; $atf_activation_factory = $this->getContainer()->get( 'atf_activation_factory' ); @@ -63,6 +76,12 @@ public function register(): void { $factories[] = $atf_activation_factory; } + $lrc_activation_factory = $this->getContainer()->get( 'lrc_activation_factory' ); + + if ( $lrc_activation_factory->get_context()->is_allowed() ) { + $factories[] = $lrc_activation_factory; + } + $this->getContainer()->add( 'performance_hints_warmup_apiclient', APIClient::class ) ->addArgument( $this->getContainer()->get( 'options' ) ); diff --git a/inc/Engine/Common/PerformanceHints/Admin/AdminBar.php b/inc/Engine/Common/PerformanceHints/Admin/AdminBar.php new file mode 100644 index 0000000000..955d7f1027 --- /dev/null +++ b/inc/Engine/Common/PerformanceHints/Admin/AdminBar.php @@ -0,0 +1,106 @@ +factories = $factories; + } + + /** + * Add performance hints data to WP Rocket admin bar menu + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. + * + * @return void + */ + public function add_clear_performance_menu_item( WP_Admin_Bar $wp_admin_bar ): void { + if ( empty( $this->factories ) ) { + return; + } + + $title = __( 'Clear Priority Elements', 'rocket' ); + $action = 'rocket_clean_performance_hints'; + + $this->add_menu_to_admin_bar( + $wp_admin_bar, + 'clear-performance-hints', + $title, + $action + ); + } + + /** + * Add clear performance hints URL data to WP Rocket admin bar menu + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. + * + * @return void + */ + public function add_clear_url_performance_hints_menu_item( WP_Admin_Bar $wp_admin_bar ) { + global $post; + + /** + * Filters the rocket `clear performance hints data of this url` option on admin bar menu. + * + * @since 3.17 + * + * @param bool $should_skip Should skip adding `clear performance hints of this url` option in admin bar. + * @param type $post Post object. + */ + if ( wpm_apply_filters_typed( 'boolean', 'rocket_skip_admin_bar_clean_performance_hints_option', false, $post ) ) { + return; + } + + $action = 'rocket_clean_performance_hints_url'; + + $title = __( 'Clear Priority Elements of this URL', 'rocket' ); + + $this->add_url_menu_item_to_admin_bar( + $wp_admin_bar, + 'clear-performance-hints-data-url', + $title, + $action, + ! empty( $this->factories ) + ); + } + + /** + * Display the dashboard button to clear performance hints data + * + * @return void + */ + public function display_dashboard_button() { + $context = ! empty( $this->factories ); + + $this->dashboard_button( + $context, + __( 'Priority Elements', 'rocket' ), + esc_html__( 'Clear', 'rocket' ), + 'rocket_clean_performance_hints', + __( 'This action will clear the Critical Images and Lazily Rendered Content.', 'rocket' ) + ); + } +} diff --git a/inc/Engine/Common/PerformanceHints/Admin/Clean.php b/inc/Engine/Common/PerformanceHints/Admin/Clean.php new file mode 100644 index 0000000000..20c1139325 --- /dev/null +++ b/inc/Engine/Common/PerformanceHints/Admin/Clean.php @@ -0,0 +1,55 @@ +clean_data( $clean, 'rocket_performance_hints_clear_message' ); + } + + /** + * Clean performance hints data for current url. + * + * @return void + */ + public function clean_url_performance_hints(): void { + if ( ! current_user_can( 'rocket_manage_options' ) ) { + return; + } + + check_admin_referer( 'rocket_clean_performance_hints_url' ); + + /** + * Fires when cleaning a single URL for the performance hints data + * + * @since 3.17 + */ + do_action( 'rocket_performance_hints_clean_url' ); + + wp_safe_redirect( esc_url_raw( wp_get_referer() ) ); + rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; + } +} diff --git a/inc/Engine/Common/PerformanceHints/Admin/Controller.php b/inc/Engine/Common/PerformanceHints/Admin/Controller.php index 5015c2e1e9..37d65ea64c 100644 --- a/inc/Engine/Common/PerformanceHints/Admin/Controller.php +++ b/inc/Engine/Common/PerformanceHints/Admin/Controller.php @@ -27,10 +27,6 @@ public function __construct( array $factories ) { * @return void */ public function truncate_tables() { - if ( empty( $this->factories ) ) { - return; - } - $this->delete_rows(); } @@ -68,10 +64,6 @@ private function delete_rows() { * @return void */ public function delete_post( $post_id ) { - if ( empty( $this->factories ) ) { - return; - } - $url = get_permalink( $post_id ); if ( false === $url ) { @@ -89,10 +81,6 @@ public function delete_post( $post_id ) { * @return void */ public function delete_term( $term_id ) { - if ( empty( $this->factories ) ) { - return; - } - $url = get_term_link( (int) $term_id ); if ( is_wp_error( $url ) ) { @@ -102,6 +90,24 @@ public function delete_term( $term_id ) { $this->delete_by_url( $url ); } + /** + * Should allow early if true. + * + * @return bool + */ + private function is_allowed(): bool { + $allowed = false; + + foreach ( $this->factories as $factory ) { + if ( $factory->get_context()->is_allowed() ) { + $allowed = true; + break; + } + } + + return $allowed; + } + /** * Deletes rows when triggering clean from admin * @@ -110,7 +116,7 @@ public function delete_term( $term_id ) { * @return array */ public function truncate_from_admin( $clean ) { - if ( empty( $this->factories ) ) { + if ( ! $this->is_allowed() ) { return $clean; } @@ -126,7 +132,7 @@ public function truncate_from_admin( $clean ) { 'status' => 'success', 'message' => sprintf( // translators: %1$s = plugin name. - __( '%1$s: Critical images cleared!', 'rocket' ), + __( '%1$s: Critical images and Lazy Render data was cleared!', 'rocket' ), 'WP Rocket' ), ]; @@ -149,6 +155,13 @@ public function clean_url() { $url = $parse_url['scheme'] . '://' . $parse_url['host'] . $url; } + /** + * Fires after clearing performance hints data for specific url. + * + * @param string $url Current page URL. + */ + do_action( 'rocket_performance_hints_data_after_clearing', $url ); + $this->delete_by_url( $url ); } @@ -165,6 +178,10 @@ public function truncate_on_update( $new_version, $old_version ) { return; } + if ( ! $this->is_allowed() ) { + return; + } + $this->truncate_tables(); } diff --git a/inc/Engine/Common/PerformanceHints/Admin/Notices.php b/inc/Engine/Common/PerformanceHints/Admin/Notices.php new file mode 100644 index 0000000000..260423d81c --- /dev/null +++ b/inc/Engine/Common/PerformanceHints/Admin/Notices.php @@ -0,0 +1,51 @@ +factories = $factories; + } + + /** + * Show admin notice after clearing performance hints tables. + * + * @return void + */ + public function clean_performance_hint_result() { + if ( ! current_user_can( 'rocket_manage_options' ) ) { + return; + } + + if ( empty( $this->factories ) ) { + return; + } + + $response = get_transient( 'rocket_performance_hints_clear_message' ); + + if ( ! $response ) { + return; + } + + delete_transient( 'rocket_performance_hints_clear_message' ); + + rocket_notice_html( $response ); + } +} diff --git a/inc/Engine/Common/PerformanceHints/Admin/Subscriber.php b/inc/Engine/Common/PerformanceHints/Admin/Subscriber.php index 223ec4c384..2c6449c9a3 100644 --- a/inc/Engine/Common/PerformanceHints/Admin/Subscriber.php +++ b/inc/Engine/Common/PerformanceHints/Admin/Subscriber.php @@ -3,6 +3,7 @@ namespace WP_Rocket\Engine\Common\PerformanceHints\Admin; +use WP_Admin_Bar; use WP_Rocket\Event_Management\Subscriber_Interface; class Subscriber implements Subscriber_Interface { @@ -13,13 +14,40 @@ class Subscriber implements Subscriber_Interface { */ private $controller; + /** + * AdminBar instance. + * + * @var AdminBar + */ + private $admin_bar; + + /** + * Clean Instance. + * + * @var Clean + */ + private $clean; + + /** + * Notices Instance. + * + * @var Notices + */ + private $notices; + /** * Instantiate the class * * @param Controller $controller Controller instance. + * @param AdminBar $admin_bar Admin bar instance. + * @param Clean $clean Clean instance. + * @param Notices $notices Notices instance. */ - public function __construct( Controller $controller ) { + public function __construct( Controller $controller, AdminBar $admin_bar, Clean $clean, Notices $notices ) { $this->controller = $controller; + $this->admin_bar = $admin_bar; + $this->clean = $clean; + $this->notices = $notices; } /** @@ -29,18 +57,28 @@ public function __construct( Controller $controller ) { */ public static function get_subscribed_events(): array { return [ - 'switch_theme' => 'truncate_tables', - 'permalink_structure_changed' => 'truncate_tables', - 'rocket_domain_options_changed' => 'truncate_tables', - 'wp_trash_post' => 'delete_post', - 'delete_post' => 'delete_post', - 'clean_post_cache' => 'delete_post', - 'wp_update_comment_count' => 'delete_post', - 'edit_term' => 'delete_term', - 'pre_delete_term' => 'delete_term', - 'rocket_saas_clean_all' => 'truncate_from_admin', - 'rocket_saas_clean_url' => 'clean_url', - 'wp_rocket_upgrade' => [ 'truncate_on_update', 10, 2 ], + 'switch_theme' => 'truncate_tables', + 'permalink_structure_changed' => 'truncate_tables', + 'rocket_domain_options_changed' => 'truncate_tables', + 'wp_trash_post' => 'delete_post', + 'delete_post' => 'delete_post', + 'clean_post_cache' => 'delete_post', + 'wp_update_comment_count' => 'delete_post', + 'edit_term' => 'delete_term', + 'pre_delete_term' => 'delete_term', + 'rocket_performance_hints_clean_all' => 'truncate_from_admin', + 'rocket_performance_hints_clean_url' => 'clean_url', + 'wp_rocket_upgrade' => [ 'truncate_on_update', 10, 2 ], + 'rocket_admin_bar_items' => [ + [ 'add_clear_performance_hints_menu_item' ], + [ 'add_clear_url_performance_hints_menu_item' ], + ], + 'admin_notices' => [ + [ 'clean_performance_hint_result' ], + ], + 'rocket_dashboard_actions' => 'display_dashboard_button', + 'admin_post_rocket_clean_performance_hints' => 'clean_performance_hints', + 'admin_post_rocket_clean_performance_hints_url' => 'clean_url_performance_hints', ]; } @@ -106,4 +144,62 @@ public function clean_url() { public function truncate_on_update( $new_version, $old_version ) { $this->controller->truncate_on_update( $new_version, $old_version ); } + + /** + * Add clear performance hints data to WP Rocket admin bar menu + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. + * + * @return void + */ + public function add_clear_performance_hints_menu_item( WP_Admin_Bar $wp_admin_bar ): void { + $this->admin_bar->add_clear_performance_menu_item( $wp_admin_bar ); + } + + /** + * Add clear performance data hints for current url to WP Rocket admin bar menu + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. + * + * @return void + */ + public function add_clear_url_performance_hints_menu_item( WP_Admin_Bar $wp_admin_bar ): void { + $this->admin_bar->add_clear_url_performance_hints_menu_item( $wp_admin_bar ); + } + + /** + * Display the dashboard button to clear performance data hints features + * + * @return void + */ + public function display_dashboard_button() { + $this->admin_bar->display_dashboard_button(); + } + + /** + * Truncate Performance Hints tables when clicking on the dashboard button/menu + * + * @return void + */ + public function clean_performance_hints(): void { + $this->clean->clean_performance_hints(); + } + + /** + * Truncate performance hints the current URL. + * + * @return void + */ + public function clean_url_performance_hints(): void { + $this->clean->clean_url_performance_hints(); + } + + /** + * Show admin notice after clearing Performance Hints tables. + * + * @return void + */ + public function clean_performance_hint_result(): void { + $this->notices->clean_performance_hint_result(); + } } diff --git a/inc/Engine/Common/PerformanceHints/Frontend/Processor.php b/inc/Engine/Common/PerformanceHints/Frontend/Processor.php index 9139159d22..96b080dec9 100644 --- a/inc/Engine/Common/PerformanceHints/Frontend/Processor.php +++ b/inc/Engine/Common/PerformanceHints/Frontend/Processor.php @@ -58,18 +58,27 @@ public function maybe_apply_optimizations( string $html ): string { $url = untrailingslashit( home_url( add_query_arg( [], $wp->request ) ) ); $is_mobile = $this->is_mobile(); - $html_optimized = null; + // Set flag as true by default. + $optimization_applied = true; + foreach ( $this->factories as $factory ) { $row = $factory->queries()->get_row( $url, $is_mobile ); + if ( empty( $row ) ) { - return $this->inject_beacon( $html, $url, $is_mobile ); + // Flag false if optimization has not been applied. + $optimization_applied = false; + continue; } - $html = $html_optimized ?? $html; - $html_optimized = $factory->get_frontend_controller()->optimize( $html, $row ); + $html = $factory->get_frontend_controller()->optimize( $html, $row ); + } + + // Check if all optimizations were applied: if not, inject beacon. + if ( ! $optimization_applied ) { + $html = $this->inject_beacon( $html, $url, $is_mobile ); } - return $html_optimized; + return $html; } /** diff --git a/inc/Engine/Common/PerformanceHints/Frontend/Subscriber.php b/inc/Engine/Common/PerformanceHints/Frontend/Subscriber.php index dde578f3f7..d23230c97c 100644 --- a/inc/Engine/Common/PerformanceHints/Frontend/Subscriber.php +++ b/inc/Engine/Common/PerformanceHints/Frontend/Subscriber.php @@ -3,9 +3,9 @@ namespace WP_Rocket\Engine\Common\PerformanceHints\Frontend; +use WP_Rocket\Buffer\Tests; use WP_Rocket\Event_Management\Subscriber_Interface; - class Subscriber implements Subscriber_Interface { /** @@ -15,13 +15,22 @@ class Subscriber implements Subscriber_Interface { */ private $processor; + /** + * Buffer tests to run against current page, to decide if we can start the buffer or not. + * + * @var Tests + */ + private $buffer_tests; + /** * Instantiate the class * * @param Processor $processor Processor Instance. + * @param Tests $buffer_tests Buffer tests instance. */ - public function __construct( Processor $processor ) { - $this->processor = $processor; + public function __construct( Processor $processor, Tests $buffer_tests ) { + $this->processor = $processor; + $this->buffer_tests = $buffer_tests; } /** @@ -31,8 +40,9 @@ public function __construct( Processor $processor ) { */ public static function get_subscribed_events(): array { return [ - 'rocket_buffer' => [ 'maybe_apply_optimizations', 17 ], - 'rocket_critical_image_saas_visit_buffer' => [ 'maybe_apply_optimizations', 17 ], + 'rocket_buffer' => [ 'maybe_apply_optimizations', 17 ], + 'rocket_performance_hints_buffer' => [ 'maybe_apply_optimizations', 17 ], + 'template_redirect' => [ 'start_performance_hints_buffer', 3 ], ]; } @@ -44,6 +54,45 @@ public static function get_subscribed_events(): array { * @return string */ public function maybe_apply_optimizations( $html ): string { + if ( ! isset( $_GET['wpr_imagedimensions'] ) && isset( $_GET['wpr_lazyrendercontent'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return $html; + } + return $this->processor->maybe_apply_optimizations( $html ); } + + /** + * Start performance hints buffer + * + * @return void + */ + public function start_performance_hints_buffer() { + if ( ! isset( $_GET['wpr_imagedimensions'] ) && ! isset( $_GET['wpr_lazyrendercontent'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return; + } + + if ( ! $this->buffer_tests->can_process_any_buffer() ) { + return; + } + + ob_start( [ $this, 'performance_hints_buffer' ] ); + } + + /** + * Update images that have no width/height with real dimensions for the SaaS + * + * @param string $buffer Page HTML content. + * + * @return string Page HTML content after update. + */ + public function performance_hints_buffer( $buffer ) { + /** + * Filters the buffer content for performance hints. + * + * @since 3.17 + * + * @param $buffer Page HTML content. + */ + return wpm_apply_filters_typed( 'string', 'rocket_performance_hints_buffer', $buffer ); + } } diff --git a/inc/Engine/Common/PerformanceHints/ServiceProvider.php b/inc/Engine/Common/PerformanceHints/ServiceProvider.php index d141da8f82..1330e11e3a 100644 --- a/inc/Engine/Common/PerformanceHints/ServiceProvider.php +++ b/inc/Engine/Common/PerformanceHints/ServiceProvider.php @@ -3,11 +3,17 @@ namespace WP_Rocket\Engine\Common\PerformanceHints; +use WP_Rocket\Buffer\{Config, Tests}; use WP_Rocket\Dependencies\League\Container\ServiceProvider\AbstractServiceProvider; -use WP_Rocket\Engine\Common\PerformanceHints\AJAX\Subscriber as AjaxSubscriber; -use WP_Rocket\Engine\Common\PerformanceHints\Frontend\Processor as FrontendProcessor; -use WP_Rocket\Engine\Common\PerformanceHints\Frontend\Subscriber as FrontendSubscriber; -use WP_Rocket\Engine\Common\PerformanceHints\Admin\{Controller as AdminController, Subscriber as AdminSubscriber}; +use WP_Rocket\Engine\Common\PerformanceHints\Admin\{ + Controller as AdminController, + Subscriber as AdminSubscriber, + AdminBar, + Clean, + Notices +}; +use WP_Rocket\Engine\Common\PerformanceHints\AJAX\{Processor as AjaxProcessor, Subscriber as AjaxSubscriber}; +use WP_Rocket\Engine\Common\PerformanceHints\Frontend\{Processor as FrontendProcessor, Subscriber as FrontendSubscriber }; use WP_Rocket\Engine\Common\PerformanceHints\Cron\{Controller as CronController, Subscriber as CronSubscriber}; use WP_Rocket\Engine\Common\PerformanceHints\WarmUp\{ APIClient, @@ -27,6 +33,9 @@ class ServiceProvider extends AbstractServiceProvider { * @var array */ protected $provides = [ + 'config', + 'tests', + 'ajax_processor', 'performance_hints_ajax_subscriber', 'frontend_processor', 'performance_hints_frontend_subscriber', @@ -38,6 +47,8 @@ class ServiceProvider extends AbstractServiceProvider { 'performance_hints_warmup_queue', 'performance_hints_warmup_controller', 'performance_hints_warmup_subscriber', + 'performance_hints_admin_bar', + 'performance_hints_clean', ]; /** @@ -60,19 +71,29 @@ public function register(): void { $factories = []; - $atf_factory = $this->getContainer()->get( 'atf_factory' ); + $factory_array = [ + $this->getContainer()->get( 'atf_factory' ), + $this->getContainer()->get( 'lrc_factory' ), + ]; + + foreach ( $factory_array as $factory ) { + if ( ! $factory->get_context()->is_allowed() ) { + continue; + } - if ( $atf_factory->get_context()->is_allowed() ) { - $factories[] = $atf_factory; + $factories[] = $factory; } - $this->getContainer()->addShared( 'performance_hints_ajax_subscriber', AjaxSubscriber::class ) + $this->getContainer()->addShared( 'ajax_processor', AjaxProcessor::class ) ->addArguments( [ $factories, ] ); + $this->getContainer()->addShared( 'performance_hints_ajax_subscriber', AjaxSubscriber::class ) + ->addArgument( $this->getContainer()->get( 'ajax_processor' ) ); + $this->getContainer()->add( 'frontend_processor', FrontendProcessor::class ) ->addArguments( [ @@ -81,32 +102,55 @@ public function register(): void { ] ); + $this->getContainer()->add( 'config', Config::class ) + ->addArgument( [ 'config_dir_path' => rocket_get_constant( 'WP_ROCKET_CONFIG_PATH' ) ] ); + + $this->getContainer()->add( 'tests', Tests::class ) + ->addArgument( $this->getContainer()->get( 'config' ) ); + $this->getContainer()->addShared( 'performance_hints_frontend_subscriber', FrontendSubscriber::class ) ->addArguments( [ $this->getContainer()->get( 'frontend_processor' ), + $this->getContainer()->get( 'tests' ), ] ); $this->getContainer()->add( 'performance_hints_admin_controller', AdminController::class ) + ->addArguments( + [ + $factory_array, + ] + ); + + $this->getContainer()->add( 'performance_hints_notices', Notices::class ) + ->addArguments( + [ + $factories, + ] + ); + + $this->getContainer()->add( 'performance_hints_admin_bar', Adminbar::class ) ->addArguments( [ $factories, + $this->getContainer()->get( 'template_path' ) . '/settings', ] ); + $this->getContainer()->add( 'performance_hints_clean', Clean::class ); + $this->getContainer()->addShared( 'performance_hints_admin_subscriber', AdminSubscriber::class ) ->addArguments( [ $this->getContainer()->get( 'performance_hints_admin_controller' ), + $this->getContainer()->get( 'performance_hints_admin_bar' ), + $this->getContainer()->get( 'performance_hints_clean' ), + $this->getContainer()->get( 'performance_hints_notices' ), ] ); $this->getContainer()->add( 'cron_controller', CronController::class ) - ->addArgument( - [ - $atf_factory, - ] - ); + ->addArgument( $factory_array ); $this->getContainer()->addShared( 'performance_hints_cron_subscriber', CronSubscriber::class ) ->addArgument( $this->getContainer()->get( 'cron_controller' ) ); diff --git a/inc/Engine/Common/PerformanceHints/WarmUp/Controller.php b/inc/Engine/Common/PerformanceHints/WarmUp/Controller.php index 5bffd9b05d..73019b2517 100644 --- a/inc/Engine/Common/PerformanceHints/WarmUp/Controller.php +++ b/inc/Engine/Common/PerformanceHints/WarmUp/Controller.php @@ -60,13 +60,26 @@ public function __construct( array $factories, Options_Data $options, APIClient $this->queue = $queue; } + /** + * Should terminate early if true. + * + * @return bool + */ + private function is_allowed(): bool { + return ! ( + 'local' === wp_get_environment_type() || + $this->user->is_license_expired_grace_period() || + (bool) $this->options->get( 'remove_unused_css', 0 ) + ); + } + /** * Send home URL for warm up. * * @return void */ public function warm_up_home(): void { - if ( (bool) $this->options->get( 'remove_unused_css', 0 ) ) { + if ( ! $this->is_allowed() ) { return; } @@ -84,11 +97,7 @@ public function warm_up_home(): void { * @return void */ public function warm_up(): void { - if ( 'local' === wp_get_environment_type() ) { - return; - } - - if ( (bool) $this->options->get( 'remove_unused_css', 0 ) ) { + if ( ! $this->is_allowed() ) { return; } @@ -109,10 +118,6 @@ public function warm_up(): void { * @return array */ public function fetch_links(): array { - if ( $this->user->is_license_expired_grace_period() ) { - return []; - } - $user_agent = 'WP Rocket/Pre-fetch Home Links Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'; $home_url = home_url(); diff --git a/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber.php b/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber.php index 2184c04b97..1e4d5a4b2c 100644 --- a/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber.php +++ b/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber.php @@ -75,7 +75,7 @@ public function send_to_saas( string $url ): void { * @return void */ public function warm_up_on_update( $new_version, $old_version ) { - if ( version_compare( $old_version, '3.16', '>=' ) ) { + if ( version_compare( $old_version, '3.17', '>=' ) ) { return; } $this->controller->warm_up(); diff --git a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php index 7d245910bb..536797be2e 100644 --- a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php +++ b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php @@ -3,6 +3,7 @@ namespace WP_Rocket\Engine\Media\AboveTheFold\AJAX; +use WP_Rocket\Engine\Common\PerformanceHints\AJAX\AJAXControllerTrait; use WP_Rocket\Engine\Media\AboveTheFold\Database\Queries\AboveTheFold as ATFQuery; use WP_Rocket\Engine\Common\Context\ContextInterface; use WP_Rocket\Engine\Optimization\UrlTrait; @@ -11,6 +12,7 @@ class Controller implements ControllerInterface { use UrlTrait; + use AJAXControllerTrait; /** * ATFQuery instance @@ -49,14 +51,19 @@ public function __construct( ATFQuery $query, ContextInterface $context ) { /** * Add LCP data to the database * - * @return void + * @return array */ - public function add_data(): void { + public function add_data(): array { + $payload = [ + 'lcp' => '', + ]; + check_ajax_referer( 'rocket_beacon', 'rocket_beacon_nonce' ); if ( ! $this->context->is_allowed() ) { - wp_send_json_error( 'not allowed' ); - return; // @phpstan-ignore-line - Needed to prevent further execution. + $payload['lcp'] = 'not allowed'; + + return $payload; } $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; @@ -106,8 +113,9 @@ public function add_data(): void { $row = $this->query->get_row( $url, $is_mobile ); if ( ! empty( $row ) ) { - wp_send_json_error( 'item already in the database' ); - return; // @phpstan-ignore-line - Needed to prevent further execution. + $payload['lcp'] = 'item already in the database'; + + return $payload; } $status = isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : ''; @@ -126,36 +134,13 @@ public function add_data(): void { $result = $this->query->add_item( $item ); if ( ! $result ) { - wp_send_json_error( 'error when adding the entry to the database' ); - return; // @phpstan-ignore-line - Needed to prevent further execution. - } - - wp_send_json_success( $item ); - } + $payload['lcp'] = 'error when adding the entry to the database'; - /** - * Get status code and message to be saved into the database - * - * @param string $status Current status code from $_POST. - * @return array - */ - private function get_status_code_message( $status ) { - $status_code = 'success' !== $status ? 'failed' : 'completed'; - $status_message = ''; - - switch ( $status ) { - case 'script_error': - $status_message = esc_html__( 'Script error', 'rocket' ); - break; - case 'timeout': - $status_message = esc_html__( 'Script timeout', 'rocket' ); - break; + return $payload; } - return [ - $status_code, - $status_message, - ]; + $payload['lcp'] = $item; + return $payload; } /** @@ -266,14 +251,18 @@ private function sanitize_image_url( string $url ) { * If the data exists, it returns a JSON success response with true. If the data does not exist, it returns a JSON success response with false. * If the context is not allowed, it returns a JSON error response with false. * - * @return void + * @return array */ - public function check_data(): void { + public function check_data(): array { + $payload = [ + 'lcp' => false, + ]; + check_ajax_referer( 'rocket_beacon', 'rocket_beacon_nonce' ); if ( ! $this->context->is_allowed() ) { - wp_send_json_error( false ); - return; // @phpstan-ignore-line - Needed to prevent further execution. + $payload['lcp'] = true; + return $payload; } $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; @@ -282,11 +271,11 @@ public function check_data(): void { $row = $this->query->get_row( $url, $is_mobile ); if ( ! empty( $row ) ) { - wp_send_json_success( 'data already exists' ); - return; // @phpstan-ignore-line - Needed to prevent further execution. + $payload['lcp'] = true; + return $payload; } - wp_send_json_error( 'data does not exist' ); + return $payload; } /** diff --git a/inc/Engine/Media/ImageDimensions/Subscriber.php b/inc/Engine/Media/ImageDimensions/Subscriber.php index e895bd9e26..132906fb43 100755 --- a/inc/Engine/Media/ImageDimensions/Subscriber.php +++ b/inc/Engine/Media/ImageDimensions/Subscriber.php @@ -2,7 +2,6 @@ namespace WP_Rocket\Engine\Media\ImageDimensions; -use WP_Rocket\Buffer\Tests; use WP_Rocket\Event_Management\Subscriber_Interface; /** @@ -19,22 +18,13 @@ class Subscriber implements Subscriber_Interface { */ private $dimensions; - /** - * Buffer tests to run against current page, to decide if we can start the buffer or not. - * - * @var Tests - */ - private $buffer_tests; - /** * Subscriber constructor. * * @param ImageDimensions $dimensions Images dimensions class that handles all business logic. - * @param Tests $buffer_tests Buffer tests instance. */ - public function __construct( ImageDimensions $dimensions, Tests $buffer_tests ) { - $this->dimensions = $dimensions; - $this->buffer_tests = $buffer_tests; + public function __construct( ImageDimensions $dimensions ) { + $this->dimensions = $dimensions; } /** @@ -44,9 +34,8 @@ public function __construct( ImageDimensions $dimensions, Tests $buffer_tests ) */ public static function get_subscribed_events() { return [ - 'rocket_buffer' => [ 'specify_image_dimensions', 17 ], - 'template_redirect' => [ 'start_image_dimensions_buffer', 3 ], - 'rocket_critical_image_saas_visit_buffer' => 'specify_image_dimensions', + 'rocket_buffer' => [ 'specify_image_dimensions', 17 ], + 'rocket_performance_hints_buffer' => 'image_dimensions_query_string', ]; } @@ -66,36 +55,19 @@ public function specify_image_dimensions( $buffer ) { } /** - * Update images that have no width/height with real dimensions for the SaaS + * Add image dimensions if the query string is in the URL. * * @param string $buffer Page HTML content. * - * @return string Page HTML content after update. + * @return string */ - public function prepare_critical_image_saas_visit( $buffer ) { - if ( ! isset( $_GET['wpr_imagedimensions'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended - return $buffer; - } - - return apply_filters( 'rocket_critical_image_saas_visit_buffer', $buffer ); - } - - /** - * Start image dimensions buffer to add - * - * @return void - */ - public function start_image_dimensions_buffer() { + public function image_dimensions_query_string( $buffer ): string { if ( empty( $_GET['wpr_imagedimensions'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended - return; - } - - if ( ! $this->buffer_tests->can_process_any_buffer() ) { - return; + return $buffer; } add_filter( 'rocket_specify_image_dimensions', '__return_true' ); - ob_start( [ $this, 'prepare_critical_image_saas_visit' ] ); + return $this->dimensions->specify_image_dimensions( $buffer ); } } diff --git a/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php b/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php new file mode 100644 index 0000000000..5039086d9c --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php @@ -0,0 +1,140 @@ +query = $query; + $this->context = $context; + } + + /** + * Add LRC data to the database + * + * @return array + */ + public function add_data(): array { + $payload = []; + check_ajax_referer( 'rocket_beacon', 'rocket_beacon_nonce' ); + + if ( ! $this->context->is_allowed() ) { + $payload['lrc'] = 'not allowed'; + + return $payload; + } + + $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; + $is_mobile = isset( $_POST['is_mobile'] ) ? filter_var( wp_unslash( $_POST['is_mobile'] ), FILTER_VALIDATE_BOOLEAN ) : false; + $results = isset( $_POST['results'] ) ? json_decode( wp_unslash( $_POST['results'] ) ) : (object) [ 'lrc' => [] ]; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $hashes = $results->lrc ?? []; + $below_the_fold = []; + + /** + * Filters the maximum number of LRC hashes being saved into the database. + * + * @param int $max_number Maximum number to allow. + * @param string $url Current page url. + * @param string[]|array $hashes Current list of LRC hashes. + */ + $max_lrc_hashes_number = wpm_apply_filters_typed( 'integer', 'rocket_lrc_hashes_number', 20, $url, $hashes ); + if ( 0 >= $max_lrc_hashes_number ) { + $max_lrc_hashes_number = 1; + } + + foreach ( (array) $hashes as $hash ) { + $below_the_fold[] = sanitize_text_field( wp_unslash( $hash ) ); + --$max_lrc_hashes_number; + } + + $row = $this->query->get_row( $url, $is_mobile ); + if ( ! empty( $row ) ) { + $payload['lrc'] = 'item already in the database'; + + return $payload; + } + + $status = isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : ''; + list( $status_code, $status_message ) = $this->get_status_code_message( $status ); + + $item = [ + 'url' => $url, + 'is_mobile' => $is_mobile, + 'status' => $status_code, + 'error_message' => $status_message, + 'below_the_fold' => ( is_array( $below_the_fold ) || is_object( $below_the_fold ) ) ? wp_json_encode( $below_the_fold ) : $below_the_fold, + 'last_accessed' => current_time( 'mysql', true ), + 'created_at' => current_time( 'mysql', true ), + ]; + + $result = $this->query->add_item( $item ); + $payload['lrc'] = $item; + + if ( ! $result ) { + $payload['lrc'] = 'error when adding the entry to the database'; + } + + return $payload; + } + + /** + * Checks if there is existing data for the current URL and device type from the beacon script. + * + * This method is called via AJAX. It checks if there is existing LRC data for the current URL and device type. + * If the data exists, it returns a JSON success response with true. If the data does not exist, it returns a JSON success response with false. + * If the context is not allowed, it returns a JSON error response with false. + * + * @return array + */ + public function check_data(): array { + $payload = [ + 'lrc' => false, + ]; + check_ajax_referer( 'rocket_beacon', 'rocket_beacon_nonce' ); + + if ( ! $this->context->is_allowed() ) { + $payload['lrc'] = true; + return $payload; + } + + $url = isset( $_POST['url'] ) ? untrailingslashit( esc_url_raw( wp_unslash( $_POST['url'] ) ) ) : ''; + $is_mobile = isset( $_POST['is_mobile'] ) ? filter_var( wp_unslash( $_POST['is_mobile'] ), FILTER_VALIDATE_BOOLEAN ) : false; + + $row = $this->query->get_row( $url, $is_mobile ); + + if ( ! empty( $row ) ) { + $payload['lrc'] = true; + } + + return $payload; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory.php b/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory.php new file mode 100644 index 0000000000..4ae349d4e4 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory.php @@ -0,0 +1,35 @@ +context = $context; + } + + /** + * Provides a Context object. + * + * @return ContextInterface + */ + public function get_context(): ContextInterface { + return $this->context; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Context/Context.php b/inc/Engine/Optimization/LazyRenderContent/Context/Context.php new file mode 100644 index 0000000000..8d68819bbc --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Context/Context.php @@ -0,0 +1,27 @@ +get_db(); + + // Bail if no database interface is available. + if ( ! $db ) { + return false; + } + + /** + * Filters the interval (in months) to determine when Below The Fold entry is considered 'old'. + * Old LRC entries are eligible for deletion. By default, LRC entry is considered old if it hasn't been accessed in the last month. + * + * @param int $delete_interval The interval in months after which LRC entry is considered old. Default is 1 month. + */ + $delete_interval = (int) apply_filters( 'rocket_lrc_cleanup_interval', 1 ); + + if ( $delete_interval <= 0 ) { + return false; + } + + $prefixed_table_name = $db->prefix . $this->table_name; + $query = "DELETE FROM `$prefixed_table_name` WHERE status = 'failed' OR `last_accessed` <= date_sub(now(), interval $delete_interval month)"; + + return $db->query( $query ); + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Database/Rows/LazyRenderContent.php b/inc/Engine/Optimization/LazyRenderContent/Database/Rows/LazyRenderContent.php new file mode 100644 index 0000000000..65f9ec73e3 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Database/Rows/LazyRenderContent.php @@ -0,0 +1,112 @@ +id = (int) $this->id; + $this->url = (string) $this->url; + $this->is_mobile = (bool) $this->is_mobile; + $this->below_the_fold = (string) $this->below_the_fold; + $this->error_message = (string) $this->error_message; + $this->status = (string) $this->status; + $this->modified = empty( $this->modified ) ? 0 : strtotime( (string) $this->modified ); + $this->last_accessed = empty( $this->last_accessed ) ? 0 : strtotime( (string) $this->last_accessed ); + $this->created_at = empty( $this->created_at ) ? 0 : strtotime( (string) $this->created_at ); + } + + /** + * Checks if the object has a valid LRC (Lazy Render Content) value. + * + * @return bool Returns true if the object's status is 'completed' and the Below the fold value is not empty or '[]', false otherwise. + */ + public function has_lrc() { + if ( 'completed' !== $this->status ) { + return false; + } + + if ( empty( $this->below_the_fold ) ) { + return false; + } + + if ( '[]' === $this->below_the_fold ) { + return false; + } + + return true; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Database/Schema/LazyRenderContent.php b/inc/Engine/Optimization/LazyRenderContent/Database/Schema/LazyRenderContent.php new file mode 100644 index 0000000000..60d14c861b --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Database/Schema/LazyRenderContent.php @@ -0,0 +1,110 @@ + 'id', + 'type' => 'bigint', + 'length' => '20', + 'unsigned' => true, + 'extra' => 'auto_increment', + 'primary' => true, + 'sortable' => true, + ], + + // URL column. + [ + 'name' => 'url', + 'type' => 'varchar', + 'length' => '2000', + 'default' => '', + 'cache_key' => true, + 'searchable' => true, + 'sortable' => true, + ], + + // Below the fold column. + [ + 'name' => 'below_the_fold', + 'type' => 'longtext', + 'default' => '', + 'cache_key' => false, + 'searchable' => true, + 'sortable' => true, + ], + + // IS_MOBILE column. + [ + 'name' => 'is_mobile', + 'type' => 'tinyint', + 'length' => '1', + 'default' => 0, + 'cache_key' => true, + 'searchable' => true, + 'sortable' => true, + ], + + // error_message column. + [ + 'name' => 'error_message', + 'type' => 'longtext', + 'default' => null, + 'cache_key' => false, + 'searchable' => true, + 'sortable' => true, + ], + + // STATUS column. + [ + 'name' => 'status', + 'type' => 'varchar', + 'length' => '255', + 'default' => null, + 'cache_key' => true, + 'searchable' => true, + 'sortable' => false, + ], + + // MODIFIED column. + [ + 'name' => 'modified', + 'type' => 'timestamp', + 'default' => '0000-00-00 00:00:00', + 'created' => true, + 'date_query' => true, + 'sortable' => true, + ], + + // LAST_ACCESSED column. + [ + 'name' => 'last_accessed', + 'type' => 'timestamp', + 'default' => '0000-00-00 00:00:00', + 'created' => true, + 'date_query' => true, + 'sortable' => true, + ], + + // CREATED_AT column. + [ + 'name' => 'created_at', + 'type' => 'timestamp', + 'default' => null, + 'created' => true, + 'date_query' => true, + 'sortable' => true, + ], + ]; +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Database/Table/LazyRenderContent.php b/inc/Engine/Optimization/LazyRenderContent/Database/Table/LazyRenderContent.php new file mode 100644 index 0000000000..6c97245867 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Database/Table/LazyRenderContent.php @@ -0,0 +1,57 @@ + value array of versions => methods. + * + * @var array + */ + protected $upgrades = []; + + /** + * Table schema data. + * + * @var string + */ + protected $schema_data = " + id bigint(20) unsigned NOT NULL AUTO_INCREMENT, + url varchar(2000) NOT NULL default '', + is_mobile tinyint(1) NOT NULL default 0, + below_the_fold longtext default '', + error_message longtext default '', + status varchar(255) NOT NULL default '', + modified timestamp NOT NULL default '0000-00-00 00:00:00', + last_accessed timestamp NOT NULL default '0000-00-00 00:00:00', + created_at timestamp NULL, + PRIMARY KEY (id), + KEY url (url(150), is_mobile), + KEY modified (modified), + KEY last_accessed (last_accessed), + INDEX `status_index` (`status`(191))"; +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Factory.php b/inc/Engine/Optimization/LazyRenderContent/Factory.php new file mode 100644 index 0000000000..7466ea6bd7 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Factory.php @@ -0,0 +1,112 @@ +context = $context; + $this->table = $table; + $this->queries = $queries; + $this->ajax_controller = $ajax_controller; + $this->frontend_controller = $frontend_controller; + } + + /** + * Provides an Ajax controller object. + * + * @return AjaxControllerInterface + */ + public function get_ajax_controller(): AjaxControllerInterface { + return $this->ajax_controller; + } + + /** + * Provides a Frontend object. + * + * @return FrontendControllerInterface + */ + public function get_frontend_controller(): FrontendControllerInterface { + return $this->frontend_controller; + } + + /** + * Provides a Table object. + * + * @return TableInterface + */ + public function table(): TableInterface { + return $this->table; + } + + /** + * Provides a Queries object. + * + * @return QueriesInterface + */ + public function queries(): QueriesInterface { + return $this->queries; + } + + /** + * Provides a Context object. + * + * @return ContextInterface + */ + public function get_context(): ContextInterface { + return $this->context; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller.php new file mode 100644 index 0000000000..6815b6f3cd --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller.php @@ -0,0 +1,173 @@ +processor = $processor; + $this->context = $context; + } + + /** + * Applies optimization. + * + * @param string $html HTML content. + * @param object $row Database Row. + * + * @return string + */ + public function optimize( string $html, $row ): string { + if ( ! $row->has_lrc() ) { + return $this->remove_hashes( $html ); + } + + $hashes = json_decode( $row->below_the_fold ); + + if ( ! is_array( $hashes ) ) { + return $this->remove_hashes( $html ); + } + + $result = preg_replace( '/data-rocket-location-hash="(?:' . implode( '|', $hashes ) . ')"/i', 'data-wpr-lazyrender="1"', $html, -1, $count ); + + if ( + null === $result + || + 0 === $count + ) { + return $this->remove_hashes( $html ); + } + + $html = $result; + $html = $this->remove_hashes( $html ); + + return $this->add_css( $html ); + } + + /** + * Remove hashes from the HTML content. + * + * @param string $html The HTML content. + * + * @return string + */ + private function remove_hashes( $html ) { + $result = preg_replace( '/data-rocket-location-hash="[^"]*"/i', '', $html ); + + if ( null === $result ) { + return $html; + } + + return $result; + } + + /** + * Add CSS to the HTML content. + * + * @param string $html The HTML content. + * + * @return string + */ + private function add_css( $html ) { + $css = ''; + + $result = preg_replace( '/<\/head>/i', $css . '', $html, 1 ); + + if ( null === $result ) { + return $html; + } + + return $result; + } + + /** + * Add hashes to the HTML elements if allowed + * + * @param string $html The HTML content. + * + * @return string + */ + public function add_hashes_when_allowed( $html ) { + if ( ! $this->context->is_allowed() ) { + return $html; + } + + return $this->add_hashes( $html ); + } + + /** + * Add hashes to the HTML elements + * + * @param string $html The HTML content. + * + * @return string + */ + public function add_hashes( $html ) { + if ( ! $this->context->is_allowed() ) { + return $html; + } + + if ( empty( $html ) ) { + return $html; + } + + /** + * Filters the Lazy Render Content processor to use. + * + * @since 3.17 + * + * @param string $processor The processor to use. + */ + $processor = wpm_apply_filters_typed( 'string', 'rocket_lrc_processor', 'dom' ); + + $this->processor->set_processor( $processor ); + + return $this->processor->get_processor()->add_hashes( $html ); + } + + /** + * Add custom data like the List of elements to be considered for optimization. + * + * @param array $data Array of data passed in beacon. + * + * @return array + */ + public function add_custom_data( array $data ): array { + $data['status']['lrc'] = $this->context->is_allowed(); + + /** + * Filters the LRC threshold + * + * @since 3.17 + * + * @param int $threshold The LRC threshold value. + */ + $data['lrc_threshold'] = wpm_apply_filters_typed( 'integer', 'rocket_lrc_threshold', 1800 ); + + return $data; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom.php new file mode 100644 index 0000000000..f846a1f462 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom.php @@ -0,0 +1,138 @@ +loadHTML( $html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD ) ) { + foreach ( libxml_get_errors() as $error ) { + Logger::error( $error->message, [ 'LazyRenderContent' ] ); + } + + libxml_clear_errors(); + + return $html; + } + + libxml_use_internal_errors( $internal_errors ); + + // Get the body element. + $body = $dom->getElementsByTagName( 'body' )->item( 0 ); + + if ( ! $body ) { + Logger::error( 'Body element not found in the HTML content.', [ 'LazyRenderContent' ] ); + + return $html; + } + + $this->max_hashes = $this->get_max_tags(); + $this->count = 0; + + return $this->add_hash_to_element( $body, $this->get_depth(), $html ); + } + + /** + * Add a hash to the element and its children. + * + * @param \DOMElement $element The element to add the hash to. + * @param int $depth The depth of the recursion. + * @param string $html The HTML content. + * + * @return string + */ + private function add_hash_to_element( $element, $depth, $html ) { + if ( $depth < 0 ) { + return $html; + } + + $processed_tags = $this->get_processed_tags(); + + foreach ( $element->childNodes as $child ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + + if ( $this->count >= $this->max_hashes ) { + Logger::warning( 'Stopping LRC hash injection as max_hashes is reached.', [ 'LazyRenderContent' ] ); + return $html; + } + + if ( ! $child instanceof \DOMElement ) { + continue; + } + + if ( + XML_ELEMENT_NODE !== $child->nodeType // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + || + ! in_array( strtoupper( $child->tagName ), $processed_tags, true ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + ) { + continue; + } + + // Calculate the hash of the opening tag. + $child_html = $child->ownerDocument->saveHTML( $child ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + $opening_tag_html = strstr( $child_html, '>', true ) . '>'; + + $hash = md5( $opening_tag_html . $this->count ); + + ++$this->count; + + // Inject the hash as an attribute in the opening tag. + $replace = preg_replace( '/' . $child->tagName . '/is', '$0 data-rocket-location-hash="' . $hash . '"', $opening_tag_html, 1 ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + if ( is_null( $replace ) ) { + continue; + } + // Replace the opening tag in the HTML by the manipulated one + // If DOMDocument automatically modified the original element, we might not find it in the HTML. + // Known issue: if there is an element with the exact same opening tag before in the HTML that did not receive a hash, it will replaced instead of the correct element in the HTML. + $element_replacements = 0; + $modified_html = preg_replace( '/' . preg_quote( $opening_tag_html, '/' ) . '/', $replace, $html, 1, $element_replacements ); + if ( $element_replacements < 1 ) { + Logger::warning( 'Opening tag from DOMDocument not found in original HTML.', [ 'LazyRenderContent' ] ); + } + if ( is_null( $modified_html ) ) { + continue; + } + $html = $modified_html; + + // Recursively process child elements. + $html = $this->add_hash_to_element( $child, $depth - 1, $html ); + } + + return $html; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/HelperTrait.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/HelperTrait.php new file mode 100644 index 0000000000..15103c1234 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/HelperTrait.php @@ -0,0 +1,73 @@ +processor = new Dom(); + break; + case 'simplehtmldom': + $this->processor = new SimpleHtmlDom(); + break; + case 'regex': + $this->processor = new Regex(); + break; + default: + $this->processor = new Dom(); + } + } + + /** + * Get the processor. + * + * @return ProcessorInterface + */ + public function get_processor(): ProcessorInterface { + return $this->processor; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/ProcessorInterface.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/ProcessorInterface.php new file mode 100644 index 0000000000..1a071cee7b --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/ProcessorInterface.php @@ -0,0 +1,15 @@ +]*>)(?>.*?<\/body>)/is', $html, $matches ); + + if ( ! $result ) { + Logger::error( 'Body element not found in the HTML content.', [ 'LazyRenderContent' ] ); + + return $html; + } + + $this->max_hashes = $this->get_max_tags(); + $this->count = 0; + + return $this->add_hash_to_element( $html, $matches[0] ); + } + + /** + * Add a hash to the element and its children. + * + * @param string $html The HTML content. + * @param string $element The element to add the hash to. + * + * @return string + */ + private function add_hash_to_element( $html, $element ) { + $processed_tags = $this->get_processed_tags(); + + $result = preg_match_all( '/(?><(' . implode( '|', $processed_tags ) . ')[^>]*>)/is', $element, $matches, PREG_SET_ORDER ); + + if ( ! $result ) { + Logger::error( 'No elements found in the HTML content.', [ 'LazyRenderContent' ] ); + + return $html; + } + + foreach ( $matches as $child ) { + + if ( $this->count >= $this->max_hashes ) { + Logger::warning( 'Stopping LRC hash injection as max_hashes is reached.', [ 'LazyRenderContent' ] ); + return $html; + } + + // Calculate the hash of the opening tag. + $opening_tag_html = strstr( $child[0], '>', true ) . '>'; + + $hash = md5( $opening_tag_html . $this->count ); + + ++$this->count; + + // Add the data-rocket-location-hash attribute. + $replace = preg_replace( '/' . $child[1] . '/is', '$0 data-rocket-location-hash="' . $hash . '"', $child[0], 1 ); + + $html = preg_replace( '/' . preg_quote( $child[0], '/' ) . '/', $replace, $html, 1 ); + } + + return $html; + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom.php new file mode 100644 index 0000000000..746a9300a7 --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom.php @@ -0,0 +1,98 @@ +getElementByTagName( 'body' ); + + if ( $body instanceof SimpleHtmlDomBlank ) { + Logger::error( 'Body element not found in the HTML content.', [ 'LazyRenderContent' ] ); + + return $html; + } + + $this->max_hashes = $this->get_max_tags(); + $this->count = 0; + + $this->add_hash_to_element( $body, $this->get_depth() ); + + return $dom->save(); + } + + /** + * Add a hash to the element and its children. + * + * @param SimpleHtmlDomInterface $element The element to add the hash to. + * @param int $depth The depth of the recursion. + */ + private function add_hash_to_element( $element, $depth ) { + if ( $depth < 0 ) { + return; + } + + $processed_tags = $this->get_processed_tags(); + + foreach ( $element->childNodes() as $child ) { + + if ( $this->count >= $this->max_hashes ) { + Logger::warning( 'Stopping LRC hash injection as max_hashes is reached.', [ 'LazyRenderContent' ] ); + return; + } + + if ( ! in_array( strtoupper( $child->getTag() ), $processed_tags, true ) ) { + continue; + } + + // Calculate the hash of the opening tag. + $child_html = $child->html(); + $opening_tag_html = strstr( $child_html, '>', true ) . '>'; + + $hash = md5( $opening_tag_html . $this->count ); + + ++$this->count; + + // Add the data-rocket-location-hash attribute. + $child->setAttribute( 'data-rocket-location-hash', $hash ); + + // Recursively process child elements. + $this->add_hash_to_element( $child, $depth - 1 ); + } + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber.php b/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber.php new file mode 100644 index 0000000000..66082e88dd --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber.php @@ -0,0 +1,58 @@ +controller = $controller; + } + + /** + * Returns an array of events that this subscriber wants to listen to. + * + * @return array + */ + public static function get_subscribed_events(): array { + return [ + 'rocket_buffer' => [ 'add_hashes_when_allowed', 16 ], + 'rocket_performance_hints_buffer' => [ 'add_hashes', 16 ], + ]; + } + + /** + * Add hashes to the HTML elements if allowed + * + * @param string $html The HTML content. + * + * @return string + */ + public function add_hashes_when_allowed( $html ) { + return $this->controller->add_hashes_when_allowed( $html ); + } + + /** + * Add hashes to the HTML elements + * + * @param string $html The HTML content. + * + * @return string + */ + public function add_hashes( $html ) { + return $this->controller->add_hashes( $html ); + } +} diff --git a/inc/Engine/Optimization/LazyRenderContent/ServiceProvider.php b/inc/Engine/Optimization/LazyRenderContent/ServiceProvider.php new file mode 100644 index 0000000000..023710553e --- /dev/null +++ b/inc/Engine/Optimization/LazyRenderContent/ServiceProvider.php @@ -0,0 +1,89 @@ +provides, true ); + } + + /** + * Registers the classes in the container + * + * @return void + */ + public function register(): void { + $this->getContainer()->add( 'lrc_context', Context::class ); + $this->getContainer()->addShared( 'lrc_table', LRCTable::class ); + $this->getContainer()->add( 'lrc_query', LRCQuery::class ); + + $this->getContainer()->add( 'lrc_ajax_controller', AJAXController::class ) + ->addArguments( + [ + $this->getContainer()->get( 'lrc_query' ), + $this->getContainer()->get( 'lrc_context' ), + ] + ); + $this->getContainer()->add( 'lrc_frontend_processor', Processor::class ); + $this->getContainer()->add( 'lrc_frontend_controller', FrontController::class ) + ->addArguments( + [ + $this->getContainer()->get( 'lrc_frontend_processor' ), + $this->getContainer()->get( 'lrc_context' ), + ] + ); + $this->getContainer()->addShared( 'lrc_frontend_subscriber', FrontSubscriber::class ) + ->addArguments( + [ + $this->getContainer()->get( 'lrc_frontend_controller' ), + ] + ); + + $this->getContainer()->addShared( 'lrc_factory', Factory::class ) + ->addArguments( + [ + $this->getContainer()->get( 'lrc_context' ), + $this->getContainer()->get( 'lrc_table' ), + $this->getContainer()->get( 'lrc_query' ), + $this->getContainer()->get( 'lrc_ajax_controller' ), + $this->getContainer()->get( 'lrc_frontend_controller' ), + ] + ); + } +} diff --git a/inc/Engine/Saas/Admin/AdminBar.php b/inc/Engine/Saas/Admin/AdminBar.php index 72805b42a4..54c266918d 100644 --- a/inc/Engine/Saas/Admin/AdminBar.php +++ b/inc/Engine/Saas/Admin/AdminBar.php @@ -6,9 +6,12 @@ use WP_Admin_Bar; use WP_Rocket\Abstract_Render; use WP_Rocket\Admin\Options_Data; +use WP_Rocket\Engine\Admin\Settings\AdminBarMenuTrait; use WP_Rocket\Engine\Common\Context\ContextInterface; class AdminBar extends Abstract_Render { + use AdminBarMenuTrait; + /** * Options data instance. * @@ -16,13 +19,6 @@ class AdminBar extends Abstract_Render { */ private $options; - /** - * ATF context. - * - * @var ContextInterface - */ - private $atf_context; - /** * RUCSS optimize url context. * @@ -34,15 +30,13 @@ class AdminBar extends Abstract_Render { * Constructor * * @param Options_Data $options Options data instance. - * @param ContextInterface $atf_context ATF context. * @param ContextInterface $rucss_url_context RUCSS optimize url context. * @param string $template_path Template path. */ - public function __construct( Options_Data $options, ContextInterface $atf_context, ContextInterface $rucss_url_context, $template_path ) { + public function __construct( Options_Data $options, ContextInterface $rucss_url_context, $template_path ) { parent::__construct( $template_path ); $this->options = $options; - $this->atf_context = $atf_context; $this->rucss_url_context = $rucss_url_context; } @@ -54,7 +48,10 @@ public function __construct( Options_Data $options, ContextInterface $atf_contex * @return void */ public function add_clean_saas_menu_item( $wp_admin_bar ) { - if ( ! rocket_valid_key() ) { + $title = __( 'Clear Used CSS', 'rocket' ); + $action = 'rocket_clean_saas'; + + if ( 'local' === wp_get_environment_type() ) { return; } @@ -66,43 +63,15 @@ public function add_clean_saas_menu_item( $wp_admin_bar ) { return; } - if ( ! is_admin() ) { + if ( ! (bool) $this->options->get( 'remove_unused_css', 0 ) ) { return; } - if ( - ! $this->atf_context->is_allowed() - && - ! (bool) $this->options->get( 'remove_unused_css', 0 ) - ) { - return; - } - - $title = __( 'Clear Critical Images', 'rocket' ); - - if ( - (bool) $this->options->get( 'remove_unused_css', 0 ) - && - current_user_can( 'rocket_remove_unused_css' ) - ) { - $title = __( 'Clear Used CSS', 'rocket' ); - } - - $referer = ''; - $action = 'rocket_clean_saas'; - - if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { - $referer_url = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ); - $referer = '&_wp_http_referer=' . rawurlencode( remove_query_arg( 'fl_builder', $referer_url ) ); - } - - $wp_admin_bar->add_menu( - [ - 'parent' => 'wp-rocket', - 'id' => 'clean-saas', - 'title' => $title, - 'href' => wp_nonce_url( admin_url( "admin-post.php?action={$action}{$referer}" ), $action ), - ] + $this->add_menu_to_admin_bar( + $wp_admin_bar, + 'clean-saas', + $title, + $action ); } @@ -114,34 +83,11 @@ public function add_clean_saas_menu_item( $wp_admin_bar ) { * @return void */ public function add_clean_url_menu_item( WP_Admin_Bar $wp_admin_bar ) { - global $post; - - if ( - 'local' === wp_get_environment_type() - && - $this->rucss_url_context->is_allowed() - ) { + if ( 'local' === wp_get_environment_type() && $this->rucss_url_context->is_allowed() ) { return; } - if ( is_admin() ) { - return; - } - - if ( - $post - && - ! rocket_can_display_options() - ) { - return; - } - - if ( ! $this->atf_context->is_allowed() - && - ! $this->rucss_url_context->is_allowed() - ) { - return; - } + global $post; /** * Filters the rocket `clear used css of this url` option on admin bar menu. @@ -151,37 +97,20 @@ public function add_clean_url_menu_item( WP_Admin_Bar $wp_admin_bar ) { * @param bool $should_skip Should skip adding `clear used css of this url` option in admin bar. * @param type $post Post object. */ - if ( apply_filters( 'rocket_skip_admin_bar_clear_used_css_option', false, $post ) ) { + if ( wpm_apply_filters_typed( 'boolean', 'rocket_skip_admin_bar_clear_used_css_option', false, $post ) ) { return; } - $referer = ''; - $action = 'rocket_clean_saas_url'; + $action = 'rocket_clean_saas_url'; - if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { - $referer_url = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ); + $title = __( 'Clear Used CSS of this URL', 'rocket' ); - /** - * Filters to act on the referer url for the admin bar. - * - * @param string $uri Current uri. - */ - $referer = (string) apply_filters( 'rocket_admin_bar_referer', esc_url( $referer_url ) ); - $referer = '&_wp_http_referer=' . rawurlencode( remove_query_arg( 'fl_builder', $referer ) ); - } - $title = __( 'Clear Critical Images of this URL', 'rocket' ); - - if ( $this->rucss_url_context->is_allowed() ) { - $title = __( 'Clear Used CSS of this URL', 'rocket' ); - } - - $wp_admin_bar->add_menu( - [ - 'parent' => 'wp-rocket', - 'id' => 'clear-saas-url', - 'title' => $title, - 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . $referer ), $action ), - ] + $this->add_url_menu_item_to_admin_bar( + $wp_admin_bar, + 'clear-saas-url', + $title, + $action, + $this->rucss_url_context->is_allowed() ); } @@ -199,27 +128,12 @@ public function display_dashboard_button() { return; } - if ( ! $this->atf_context->is_allowed() - && - ! $this->rucss_url_context->is_allowed() - ) { - return; - } - - $title = __( 'Critical Images Cache', 'rocket' ); - $label = esc_html__( 'Clear Critical Images', 'rocket' ); - - if ( $this->rucss_url_context->is_allowed() ) { - $title = __( 'Remove Used CSS Cache', 'rocket' ); - $label = esc_html__( 'Clear Used CSS', 'rocket' ); - } - - $data = [ - 'action' => 'rocket_clean_saas', - 'title' => $title, - 'label' => $label, - ]; - - echo $this->generate( 'sections/clean-section', $data ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $this->dashboard_button( + $this->rucss_url_context->is_allowed(), + __( 'Used CSS', 'rocket' ), + esc_html__( 'Clear', 'rocket' ), + 'rocket_clean_saas', + esc_html__( 'This action will clear the used CSS files.', 'rocket' ) + ); } } diff --git a/inc/Engine/Saas/Admin/Clean.php b/inc/Engine/Saas/Admin/Clean.php index 413e1c764c..25dbf42f5e 100644 --- a/inc/Engine/Saas/Admin/Clean.php +++ b/inc/Engine/Saas/Admin/Clean.php @@ -4,8 +4,11 @@ namespace WP_Rocket\Engine\Saas\Admin; use WP_Rocket\Admin\Options_Data; +use WP_Rocket\Engine\Admin\Settings\DataClearingTrait; class Clean { + use DataClearingTrait; + /** * Truncate SaaS tables when clicking on the dashboard button * @@ -23,33 +26,9 @@ public function clean_saas() { * * @param array $clean An array containing the status and message. */ - $clean = apply_filters( 'rocket_saas_clean_all', [] ); - - if ( - empty( $clean ) - || - 'die' === $clean['status'] - ) { - wp_safe_redirect( esc_url_raw( wp_get_referer() ) ); - rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; - } - - if ( 'error' === $clean['status'] ) { - wp_safe_redirect( esc_url_raw( wp_get_referer() ) ); - rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; - } + $clean = wpm_apply_filters_typed( 'array', 'rocket_saas_clean_all', [] ); - rocket_clean_domain(); - - rocket_dismiss_box( 'rocket_warning_plugin_modification' ); - - set_transient( - 'rocket_saas_clean_message', - $clean - ); - - wp_safe_redirect( esc_url_raw( wp_get_referer() ) ); - rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ? wp_die() : exit; + $this->clean_data( $clean, 'rocket_saas_clean_message' ); } /** diff --git a/inc/Engine/Saas/Admin/Notices.php b/inc/Engine/Saas/Admin/Notices.php index bfcdc937e9..fe08953e45 100644 --- a/inc/Engine/Saas/Admin/Notices.php +++ b/inc/Engine/Saas/Admin/Notices.php @@ -22,24 +22,15 @@ class Notices { */ private $beacon; - /** - * Context instance - * - * @var ContextInterface - */ - private $atf_context; - /** * Constructor * - * @param Options_Data $options Options_Data instance. - * @param Beacon $beacon Beacon instance. - * @param ContextInterface $atf_context ATF context instance. + * @param Options_Data $options Options_Data instance. + * @param Beacon $beacon Beacon instance. */ - public function __construct( Options_Data $options, Beacon $beacon, ContextInterface $atf_context ) { - $this->options = $options; - $this->beacon = $beacon; - $this->atf_context = $atf_context; + public function __construct( Options_Data $options, Beacon $beacon ) { + $this->options = $options; + $this->beacon = $beacon; } /** @@ -52,11 +43,7 @@ public function clean_saas_result() { return; } - if ( - ! $this->options->get( 'remove_unused_css', 0 ) - && - ! $this->atf_context->is_allowed() - ) { + if ( ! $this->options->get( 'remove_unused_css', 0 ) ) { return; } @@ -207,11 +194,7 @@ public function add_localize_script_data( $data ): array { $data = (array) $data; } - if ( - ! $this->options->get( 'remove_unused_css', 0 ) - && - ! $this->atf_context->is_allowed() - ) { + if ( ! $this->options->get( 'remove_unused_css', 0 ) ) { return $data; } diff --git a/inc/Engine/Saas/ServiceProvider.php b/inc/Engine/Saas/ServiceProvider.php index 9b59335b51..784c0e3a78 100644 --- a/inc/Engine/Saas/ServiceProvider.php +++ b/inc/Engine/Saas/ServiceProvider.php @@ -42,14 +42,12 @@ public function provides( string $id ): bool { public function register(): void { $this->getContainer()->add( 'sass_admin_bar', Adminbar::class ) ->addArgument( $this->getContainer()->get( 'options' ) ) - ->addArgument( $this->getContainer()->get( 'atf_context' ) ) ->addArgument( $this->getContainer()->get( 'rucss_optimize_context' ) ) ->addArgument( $this->getContainer()->get( 'template_path' ) . '/settings' ); $this->getContainer()->add( 'sass_clean', Clean::class ); $this->getContainer()->add( 'sass_notices', Notices::class ) ->addArgument( $this->getContainer()->get( 'options' ) ) - ->addArgument( $this->getContainer()->get( 'beacon' ) ) - ->addArgument( $this->getContainer()->get( 'atf_context' ) ); + ->addArgument( $this->getContainer()->get( 'beacon' ) ); $this->getContainer()->addShared( 'saas_admin_subscriber', Subscriber::class ) ->addArgument( $this->getContainer()->get( 'sass_admin_bar' ) ) ->addArgument( $this->getContainer()->get( 'sass_clean' ) ) diff --git a/inc/Engine/WPRocketUninstall.php b/inc/Engine/WPRocketUninstall.php index 25598ffabc..d611cc563d 100644 --- a/inc/Engine/WPRocketUninstall.php +++ b/inc/Engine/WPRocketUninstall.php @@ -4,6 +4,7 @@ use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS; use WP_Rocket\Engine\Preload\Database\Tables\Cache; use WP_Rocket\Engine\Media\AboveTheFold\Database\Tables\AboveTheFold; +use WP_Rocket\Engine\Optimization\LazyRenderContent\Database\Table\LazyRenderContent; /** * Manages the deletion of WP Rocket data and files on uninstall. @@ -141,19 +142,28 @@ class WPRocketUninstall { /** * Constructor. * - * @param string $cache_path Path to the cache folder. - * @param string $config_path Path to the config folder. - * @param UsedCSS $rucss_usedcss_table RUCSS used_css table. - * @param Cache $rocket_cache Preload rocket_cache table. - * @param AboveTheFold $atf_table Above the fold table. + * @param string $cache_path Path to the cache folder. + * @param string $config_path Path to the config folder. + * @param UsedCSS $rucss_usedcss_table RUCSS used_css table. + * @param Cache $rocket_cache Preload rocket_cache table. + * @param AboveTheFold $atf_table Above the fold table. + * @param LazyRenderContent $lrc_table Lazy Render content table. */ - public function __construct( $cache_path, $config_path, $rucss_usedcss_table, $rocket_cache, $atf_table ) { + public function __construct( + $cache_path, + $config_path, + $rucss_usedcss_table, + $rocket_cache, + $atf_table, + $lrc_table + ) { $this->cache_path = trailingslashit( $cache_path ); $this->config_path = $config_path; $this->tables = [ $rucss_usedcss_table, $rocket_cache, $atf_table, + $lrc_table, ]; } diff --git a/inc/Plugin.php b/inc/Plugin.php index c88b323be6..eccb82bf5f 100644 --- a/inc/Plugin.php +++ b/inc/Plugin.php @@ -52,6 +52,7 @@ use WP_Rocket\Engine\Debug\Resolver as DebugResolver; use WP_Rocket\Engine\Debug\ServiceProvider as DebugServiceProvider; use WP_Rocket\Engine\Common\PerformanceHints\ServiceProvider as PerformanceHintsServiceProvider; +use WP_Rocket\Engine\Optimization\LazyRenderContent\ServiceProvider as LRCServiceProvider; /** * Plugin Manager. @@ -306,6 +307,7 @@ private function init_common_subscribers() { $this->container->addServiceProvider( new JobManagerServiceProvider() ); $this->container->addServiceProvider( new SaasAdminServiceProvider() ); $this->container->addServiceProvider( new PerformanceHintsServiceProvider() ); + $this->container->addServiceProvider( new LRCServiceProvider() ); $common_subscribers = [ 'license_subscriber', @@ -397,6 +399,7 @@ private function init_common_subscribers() { 'performance_hints_cron_subscriber', 'performance_hints_warmup_subscriber', 'performance_hints_admin_subscriber', + 'lrc_frontend_subscriber', ]; $host_type = HostResolver::get_host_service(); diff --git a/inc/classes/class-abstract-render.php b/inc/classes/class-abstract-render.php index c804996549..07320360c8 100644 --- a/inc/classes/class-abstract-render.php +++ b/inc/classes/class-abstract-render.php @@ -125,6 +125,7 @@ public function render_action_button( $type, $action, $args = [] ) { case 'rocket_generate_critical_css': case 'rocket_purge_rocketcdn': case 'rocket_clean_saas': + case 'rocket_clean_performance_hints': $referer = ''; if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { diff --git a/inc/common/admin-bar.php b/inc/common/admin-bar.php index 342b97ce1e..eb42177741 100755 --- a/inc/common/admin-bar.php +++ b/inc/common/admin-bar.php @@ -88,7 +88,7 @@ function rocket_admin_bar( $wp_admin_bar ) { [ 'parent' => 'wp-rocket', 'id' => 'purge-all', - 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), + 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and Preload Cache', 'rocket' ) : __( 'Clear Cache', 'rocket' ), ] ); @@ -151,7 +151,7 @@ function rocket_admin_bar( $wp_admin_bar ) { [ 'parent' => 'wp-rocket', 'id' => 'purge-all', - 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), + 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and Preload Cache', 'rocket' ) : __( 'Clear Cache', 'rocket' ), 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . '&type=all' . $referer ), $action . '_all' ), ] ); diff --git a/languages/rocket-fa_IR.po b/languages/rocket-fa_IR.po index 9a88faab94..b5bd934ee3 100644 --- a/languages/rocket-fa_IR.po +++ b/languages/rocket-fa_IR.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha1\n" +"Project-Id-Version: WP Rocket 3.17-alpha4\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" -"POT-Creation-Date: 2024-04-29T20:40:45+00:00\n" +"POT-Creation-Date: 2024-09-13T17:57:31+00:00\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Mohammad Yousefzadeh , 2024\n" "Language-Team: Persian (Iran) (https://app.transifex.com/wp-media/teams/18133/fa_IR/)\n" @@ -48,9 +48,9 @@ msgstr "https://wp-media.me" #: inc/ThirdParty/Hostings/Godaddy.php:63 #: inc/ThirdParty/Hostings/O2Switch.php:49 #: inc/ThirdParty/Hostings/OneCom.php:137 -#: inc/ThirdParty/Hostings/Pressidium.php:49 +#: inc/ThirdParty/Hostings/Pressidium.php:50 #: inc/ThirdParty/Hostings/ProIsp.php:51 inc/ThirdParty/Hostings/Savvii.php:50 -#: inc/ThirdParty/Hostings/WPEngine.php:47 +#: inc/ThirdParty/Hostings/WPEngine.php:46 #: inc/ThirdParty/Hostings/WPXCloud.php:51 msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for " @@ -181,41 +181,31 @@ msgstr "سطح کش CloudFlare به %s تنظیم شد" #. translators: %s is the message returned by the CloudFlare API. #: inc/Addon/Cloudflare/Subscriber.php:368 -msgid "Cloudflare minification error: %s" -msgstr "خطای فشرده‌سازی Cloudflare: %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:375 -msgid "Cloudflare minification %s" -msgstr "فشرده سازی %s Cloudflare" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare rocket loader error: %s" msgstr "خطای بارگذار موشک Cloudflare: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:400 +#: inc/Addon/Cloudflare/Subscriber.php:375 msgid "Cloudflare rocket loader %s" msgstr "بارگذار موشک Cloudflare %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:418 +#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare browser cache error: %s" msgstr "CloudFlare خطای کش مرورگر: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:425 +#: inc/Addon/Cloudflare/Subscriber.php:400 msgid "Cloudflare browser cache set to %s" msgstr "کش مرورگر کلادفلیر تنظیم شده به%s" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:536 +#: inc/Addon/Cloudflare/Subscriber.php:507 msgid "%1$sWP Rocket:%2$s Optimal settings activated for Cloudflare:" msgstr "%1$sموشک وردپرس:%2$sتنظیمات مناسب برای کلادفلیر فعال شد:" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:545 +#: inc/Addon/Cloudflare/Subscriber.php:516 msgid "" "%1$sWP Rocket:%2$s Optimal settings deactivated for Cloudflare, reverted to " "previous settings:" @@ -223,7 +213,7 @@ msgstr "" "%1$sموشک وردپرس:%2$sتنظیمات مناسب برای کلادفلیر غیرفعال شد و به تنظیمات قبلی" " بازگشت:" -#: inc/Addon/Cloudflare/Subscriber.php:661 inc/admin/options.php:165 +#: inc/Addon/Cloudflare/Subscriber.php:632 inc/admin/options.php:165 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 msgid "WP Rocket: " msgstr "راکت وردپرس: " @@ -369,7 +359,7 @@ msgid "Settings" msgstr "تنظیمات" #: inc/admin/admin.php:96 inc/admin/admin.php:117 inc/deprecated/3.5.php:898 -#: inc/Engine/Cache/AdminSubscriber.php:134 +#: inc/Engine/Cache/AdminSubscriber.php:135 msgid "Clear this cache" msgstr "خالی کردن این کش" @@ -402,17 +392,17 @@ msgstr "درون ریزی تنظیمات انجام نشد: محتوای فای msgid "Settings imported and saved." msgstr "تنظیمات درون‌ریزی و ذخیره شد." -#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:571 +#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:551 msgid "Excluded CSS Files" msgstr "فایل‌های CSS مستثنی شده" -#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:725 +#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:699 msgid "Excluded Inline JavaScript" msgstr "حذف جاوا اسکریپت داخلی" -#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:743 -#: inc/Engine/Admin/Settings/Page.php:776 -#: inc/Engine/Admin/Settings/Page.php:823 +#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:717 +#: inc/Engine/Admin/Settings/Page.php:750 +#: inc/Engine/Admin/Settings/Page.php:797 msgid "Excluded JavaScript Files" msgstr "مستثنی کردن فایل‌های جاوا اسکریپت" @@ -424,19 +414,19 @@ msgstr "به تعویق انداختن فایل های جاوا اسکریپت" msgid "Excluded Delay JavaScript Files" msgstr "فایل‌های جاوا اسکریپت تاخیری حذف شدند" -#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1229 +#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1203 msgid "Never Cache URL(s)" msgstr "آدرس‌(هایی) که هرگز کش نخواهند شد" -#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1243 +#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1217 msgid "Never Cache User Agent(s)" msgstr "عامل‌(های) کاربری هرگز کش نخواهند شد" -#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1249 +#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1223 msgid "Always Purge URL(s)" msgstr "URL (هایی) که همیشه پاک‌سازی شوند" -#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1530 +#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1504 msgid "Exclude files from CDN" msgstr "مستثنی کردن فایل‌ها از CDN" @@ -456,8 +446,6 @@ msgid "More info" msgstr "اطلاعات بیشتر" #: inc/admin/ui/meta-boxes.php:37 inc/admin/ui/notices.php:671 -#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 msgid "Clear cache" msgstr "پاک کردن کش" @@ -632,16 +620,15 @@ msgstr "%s: کش شرط پاک شد." msgid "%s: User cache cleared." msgstr "%s: کش کاربر پاک شد." -#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:32 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:42 -#: inc/Engine/License/views/renewal-expired-banner.php:30 -#: views/settings/page-sections/dashboard.php:46 +#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:38 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:34 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:44 +#: inc/Engine/License/views/renewal-expired-banner.php:32 +#: views/settings/page-sections/dashboard.php:47 msgid "Dismiss this notice" msgstr "نادیده گرفتن این پیام." -#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:80 -#: inc/Engine/Saas/Admin/AdminBar.php:198 +#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:51 msgid "Clear Used CSS" msgstr "پاکسازی CSSهای استفاده شده" @@ -720,8 +707,8 @@ msgstr "نصب دوباره نسخه %s" #: inc/classes/class-wp-rocket-requirements-check.php:203 #: inc/classes/class-wp-rocket-requirements-check.php:214 #: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 -#: inc/Engine/Plugin/UpdaterSubscriber.php:483 -#: inc/Engine/Plugin/UpdaterSubscriber.php:497 +#: inc/Engine/Plugin/UpdaterSubscriber.php:477 +#: inc/Engine/Plugin/UpdaterSubscriber.php:491 msgid "%s Update Rollback" msgstr "%s بازگشتن به نسخه قبلی" @@ -745,10 +732,13 @@ msgstr "" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" #: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 -msgid "Clear and preload cache" +msgid "Clear and Preload Cache" msgstr "حذف و پیش بارگذاری مجدد کش" +#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 +msgid "Clear Cache" +msgstr "پاک کردن کش" + #: inc/common/admin-bar.php:131 inc/functions/i18n.php:20 msgid "All languages" msgstr "همه‌ی زبان‌ها" @@ -773,7 +763,7 @@ msgstr "تخلیه کش RocketCDN" msgid "Documentation" msgstr "مستندات" -#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 +#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:107 msgid "Activate Imagify" msgstr "فعال‌سازی Imagify" @@ -913,7 +903,7 @@ msgstr "" " توانید این گزینه را برای بارگذاری اولیه آن تیک بزنید." #. translators: 1 and 3 are link openings, 2 is a link closing. -#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:520 +#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:514 msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "%1$sبازگشت به موشک وردپرس%2$sیا %3$s رفتن به برگه افزونه‌ها%2$s" @@ -993,7 +983,7 @@ msgstr "قبل از بارگذاری فایل درون‌ریزی باید خط msgid "Choose a file from your computer (maximum size: %s)" msgstr "انتخاب فایل از رایانه شما (حداکثر حجم: %s)" -#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:422 +#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:469 msgid "Upload file and import settings" msgstr "بارگذاری فایل و درون‌ریزی تنظیمات" @@ -1076,8 +1066,8 @@ msgstr "پایه" msgid "Static Files" msgstr "فایل‌های استاتیک" -#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1500 -#: inc/Engine/Admin/Settings/Page.php:1511 +#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1485 #: inc/Engine/CDN/Admin/Subscriber.php:28 msgid "CDN" msgstr "شبکه تحویل محتوا CDN" @@ -1086,22 +1076,22 @@ msgstr "شبکه تحویل محتوا CDN" msgid "Advanced" msgstr "پیشرفته" -#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1345 +#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1319 msgid "Database" msgstr "پایگاه داده" -#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1051 +#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1025 msgid "Preload" msgstr "پیش بارگذاری" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:170 +#: inc/Engine/Admin/Settings/Subscriber.php:173 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "ابزارها" -#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:357 -#: views/settings/page-sections/dashboard.php:80 +#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:368 +#: views/settings/page-sections/dashboard.php:81 msgid "License" msgstr "کد لایسنس" @@ -1142,27 +1132,27 @@ msgid "weekly" msgstr "هفتگی" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1389 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Revisions" msgstr "بازبینی‌ها" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1373 msgid "Auto Drafts" msgstr "پیش نویس خودکار" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1409 +#: inc/Engine/Admin/Settings/Page.php:1383 msgid "Trashed Posts" msgstr "نوشته‌های داخل زباله دان" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1393 msgid "Spam Comments" msgstr "دیدگاه‌های اسپم" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1429 +#: inc/Engine/Admin/Settings/Page.php:1403 msgid "Trashed Comments" msgstr "دیدگاه‌های زباله‌دان" @@ -1214,63 +1204,46 @@ msgstr "" msgid "Regenerate WP Rocket configuration files now" msgstr "بازسازی مجدد تنظیمات پرونده های راکت وردپرس" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Save Changes" msgstr "ذخیره تغییرات" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Validate License" msgstr "اعتبار لایسنس" -#: inc/Engine/Admin/Settings/Page.php:279 -#: inc/Engine/Admin/Settings/Page.php:280 inc/functions/admin.php:550 +#: inc/Engine/Admin/Settings/Page.php:278 +#: inc/Engine/Admin/Settings/Page.php:279 inc/functions/admin.php:550 msgid "Unavailable" msgstr "دردسترس نیست" -#: inc/Engine/Admin/Settings/Page.php:374 +#: inc/Engine/Admin/Settings/Page.php:385 msgid "API key" msgstr "کلید API" -#: inc/Engine/Admin/Settings/Page.php:389 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Email address" msgstr "ایمیل" -#: inc/Engine/Admin/Settings/Page.php:415 +#: inc/Engine/Admin/Settings/Page.php:426 msgid "Dashboard" msgstr "پیشخوان" -#: inc/Engine/Admin/Settings/Page.php:416 +#: inc/Engine/Admin/Settings/Page.php:427 msgid "Get help, account info" msgstr "دریافت راهنمایی، اطلاعات حساب کاربری" -#: inc/Engine/Admin/Settings/Page.php:425 -msgid "My Status" -msgstr "وضعیت من" - -#: inc/Engine/Admin/Settings/Page.php:435 views/settings/page.php:75 -msgid "Rocket Analytics" -msgstr "تجزیه و تحلیل موشک" - -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:437 -msgid "" -"I agree to share anonymous data with the development team to help improve WP" -" Rocket. %1$sWhat info will we collect?%2$s" -msgstr "" -"من با اشتراک گذاری داده‌های ناشناس با تیم توسعه برای گسترش موشک وردپرس " -"موافقم. %1$sچه اطلاعاتی را جمع آوری می‌کنیم؟%2$s" - -#: inc/Engine/Admin/Settings/Page.php:489 +#: inc/Engine/Admin/Settings/Page.php:475 msgid "File Optimization" msgstr "بهینه‌سازی فایل" -#: inc/Engine/Admin/Settings/Page.php:490 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Optimize CSS & JS" msgstr "بهینه‌سازی CSS و JS" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:498 +#: inc/Engine/Admin/Settings/Page.php:484 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable this option in Autoptimize." @@ -1279,17 +1252,17 @@ msgstr "" "اگر مایل به استفاده از فشرده‌ساز %2$s هستید، گزینه‌های آن را در بهینه‌ساز " "خودکار غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:508 +#: inc/Engine/Admin/Settings/Page.php:494 msgid "CSS Files" msgstr "فایل‌های CSS" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:503 msgid "JavaScript Files" msgstr "فایل‌های جاوا اسکریپت" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:524 +#: inc/Engine/Admin/Settings/Page.php:510 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable those options in Autoptimize." @@ -1298,7 +1271,7 @@ msgstr "" "اگر مایل به استفاده از فشرده‌ساز %2$s هستید، گزینه‌های آن را در بهینه‌ساز " "خودکار غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:529 +#: inc/Engine/Admin/Settings/Page.php:515 msgid "" "If you have problems after activating this option, copy and paste the " "default exclusions to quickly resolve issues:" @@ -1307,14 +1280,14 @@ msgstr "" " جای‌گذاری کنید تا مشکلات به سرعت حل شوند:" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:519 msgid "" "Also, please check our %1$sdocumentation%2$s for a list of compatibility " "exclusions." msgstr "" "همچنین، لطفاً%1$sاسناد%2$sما را برای فهرستی از استثناهای سازگاری بررسی کنید." -#: inc/Engine/Admin/Settings/Page.php:538 +#: inc/Engine/Admin/Settings/Page.php:524 msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " "take full advantage of this option." @@ -1323,53 +1296,31 @@ msgstr "" "استفاده کامل از این گزینه، آنها را حذف کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:527 msgid "" "If this causes trouble, restore the default exclusions, found %1$shere%2$s" msgstr "" "اگر این باعث مشکل می شود، موارد استثنای پیش فرض پیدا شده را بازیابی کنید " "%1$s اینجا %2$s" -#: inc/Engine/Admin/Settings/Page.php:550 +#: inc/Engine/Admin/Settings/Page.php:536 msgid "Minify CSS files" msgstr "فشرده‌سازی فایل‌های CSS" -#: inc/Engine/Admin/Settings/Page.php:551 +#: inc/Engine/Admin/Settings/Page.php:537 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "فشرده‌سازی فایل‌های CSS حجم را با استفاده از حذف کامنت‌ها و فضاهای خالی کاهش" " می‌دهد." -#: inc/Engine/Admin/Settings/Page.php:564 -#: inc/Engine/Admin/Settings/Page.php:628 -#: inc/Engine/Admin/Settings/Page.php:694 -#: inc/Engine/Admin/Settings/Page.php:718 -msgid "This could break things!" -msgstr "این ممکن است بعضی چیزها را خراب کند!" - -#: inc/Engine/Admin/Settings/Page.php:565 -#: inc/Engine/Admin/Settings/Page.php:629 -#: inc/Engine/Admin/Settings/Page.php:695 -#: inc/Engine/Admin/Settings/Page.php:719 -msgid "" -"If you notice any errors on your website after having activated this " -"setting, just deactivate it again, and your site will be back to normal." -msgstr "" -"اگر پس از فعال‌سازی این تنظیمات در سایت خود با خطایی مواجه شدید، فقط آن " -"تنظیم را غیرفعال کرده تا سایت به وضعیت عادی بازگردد." - -#: inc/Engine/Admin/Settings/Page.php:566 -msgid "Activate minify CSS" -msgstr "فعال‌سازی فشرده‌ساز CSS" - -#: inc/Engine/Admin/Settings/Page.php:572 +#: inc/Engine/Admin/Settings/Page.php:552 msgid "" "Specify URLs of CSS files to be excluded from minification (one per line)." msgstr "" "آدرس استایل های CSS برای صرف نظر از فشرده سازی را وارد کنید ( هر آدرس در یک " "خط)." -#: inc/Engine/Admin/Settings/Page.php:573 +#: inc/Engine/Admin/Settings/Page.php:553 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -1379,7 +1330,7 @@ msgstr "" "همه فایل های CSS که در یک مسیر خاص قرار دارند ، از (.*). css استفاده کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:575 +#: inc/Engine/Admin/Settings/Page.php:555 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external CSS. %1$sMore info%2$s" @@ -1387,12 +1338,12 @@ msgstr "" "شخص 3rd:برای حذف CSS خارجی ، از مسیر URL کامل یا فقط از نام" " دامنه استفاده کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:588 -#: inc/Engine/Admin/Settings/Page.php:610 +#: inc/Engine/Admin/Settings/Page.php:568 +#: inc/Engine/Admin/Settings/Page.php:590 msgid "Optimize CSS delivery" msgstr "بهینه‌سازی تحویل CSS" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1402,7 +1353,7 @@ msgstr "" "فقط یک روش را می توان انتخاب کرد. برای عملکرد مطلوب حذف CSS استفاده نشده " "توصیه می شود. اما فقط محدود برای افرادی است که لایسنس فعال دارند." -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1413,20 +1364,19 @@ msgstr "" "توصیه می شود." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:603 +#: inc/Engine/Admin/Settings/Page.php:583 msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" " more%2$s" msgstr "" "ویژگی بهینه سازی تحویل CSS در محیط محلی غیرفعال است.%1$sبیشتر بخوانید%2$s" -#: inc/Engine/Admin/Settings/Page.php:623 -#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 -msgid "Remove Unused CSS" -msgstr "حذف CSS بدون استفاده" +#: inc/Engine/Admin/Settings/Page.php:603 +msgid "Remove Unused CSS (RUCSS)" +msgstr "حذف CSS بدون استفاده (RUCSS)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:606 msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." " Recommended for best performance. Test thoroughly! %1$sMore info%2$s" @@ -1434,15 +1384,29 @@ msgstr "" "حذف CSS بلااستفاده در هر برگه و کمک به کاهش حجم و درخواست HTTP صفحه. توصیه " "شده برای عملکرد بهتر. امتحان کنید.%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:630 +#: inc/Engine/Admin/Settings/Page.php:608 +#: inc/Engine/Admin/Settings/Page.php:692 +msgid "This could break things!" +msgstr "این ممکن است بعضی چیزها را خراب کند!" + +#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"If you notice any errors on your website after having activated this " +"setting, just deactivate it again, and your site will be back to normal." +msgstr "" +"اگر پس از فعال‌سازی این تنظیمات در سایت خود با خطایی مواجه شدید، فقط آن " +"تنظیم را غیرفعال کرده تا سایت به وضعیت عادی بازگردد." + +#: inc/Engine/Admin/Settings/Page.php:610 msgid "Activate Remove Unused CSS" msgstr "حذف CSS های بدون استفاده را فعال کنید" -#: inc/Engine/Admin/Settings/Page.php:636 +#: inc/Engine/Admin/Settings/Page.php:616 msgid "CSS safelist" msgstr "لیست بدون خطر CSS" -#: inc/Engine/Admin/Settings/Page.php:637 +#: inc/Engine/Admin/Settings/Page.php:617 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -1450,13 +1414,13 @@ msgstr "" "نام فایل های CSS ، شناسه ها یا کلاس هایی را که نباید حذف شوند (یکی در هر خط)" " مشخص کنید." -#: inc/Engine/Admin/Settings/Page.php:652 -#: inc/Engine/CriticalPath/Admin/Subscriber.php:200 +#: inc/Engine/Admin/Settings/Page.php:632 +#: inc/Engine/CriticalPath/Admin/Subscriber.php:201 msgid "Load CSS asynchronously" msgstr "CSS را به صورت غیر همزمان بارگذاری کنید" #. translators: %1$s = plugin name. -#: inc/Engine/Admin/Settings/Page.php:655 +#: inc/Engine/Admin/Settings/Page.php:635 msgctxt "WP Critical CSS compatibility" msgid "" "Load CSS asynchronously is currently handled by the %1$s plugin. If you want" @@ -1467,19 +1431,19 @@ msgstr "" "غیرفعال کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:657 +#: inc/Engine/Admin/Settings/Page.php:637 msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" "مسیر بحرانی CSS را ایجاد می کند و CSS را به صورت نا همزمان بارگذاری می " "کند.%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:663 +#: inc/Engine/Admin/Settings/Page.php:643 msgid "Fallback critical CSS" msgstr "CSSهای معوق بحرانی" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:645 msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " "%1$sMore info%2$s" @@ -1487,22 +1451,18 @@ msgstr "" "اگر مسیرهای بحرانی تولید شده خودکار CSS ناقص بود، یک تعویق ارائه دهید " "%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:680 +#: inc/Engine/Admin/Settings/Page.php:660 msgid "Minify JavaScript files" msgstr "فشرده‌سازی فایل‌های جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:681 +#: inc/Engine/Admin/Settings/Page.php:661 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "فشرده‌سازی فایل‌های جاوا اسکریپت حجم را با استفاده از حذف کامنت‌ها و فضاهای " "خالی کاهش می‌دهد." -#: inc/Engine/Admin/Settings/Page.php:696 -msgid "Activate minify JavaScript" -msgstr "فعال‌سازی فشرده‌سازی جاوا اسکریپت" - -#: inc/Engine/Admin/Settings/Page.php:701 +#: inc/Engine/Admin/Settings/Page.php:675 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" @@ -1510,7 +1470,7 @@ msgstr "" "جاوا اسکریپت را فعال کنید)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:703 +#: inc/Engine/Admin/Settings/Page.php:677 msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" " JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " @@ -1520,8 +1480,7 @@ msgstr "" "درخواست های HTTP را کاهش می دهد. اگر سایت شما از HTTP/2 استفاده می کند توصیه" " نمی شود. %1$sراهنمایی%2$s" -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:704 +#: inc/Engine/Admin/Settings/Page.php:678 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -1529,12 +1488,12 @@ msgstr "" "برای سازگاری و بهترین نتایج ، این گزینه با فعال کردن تأخیر در اجرای جاوا " "اسکریپت غیرفعال می شود." -#: inc/Engine/Admin/Settings/Page.php:720 +#: inc/Engine/Admin/Settings/Page.php:694 msgid "Activate combine JavaScript" msgstr "فعال‌سازی ادغام جاوا اسکریپت" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:701 msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" " per line). %1$sMore info%2$s" @@ -1542,7 +1501,7 @@ msgstr "" "برای مستثنی کردن فایل‌های جاوا اسکریپت از ادغام و فشرده سازی، آدرس آن را " "اینجا وارد کنید.(هرخط یک آدرس).%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:744 +#: inc/Engine/Admin/Settings/Page.php:718 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -1550,7 +1509,7 @@ msgstr "" "نشانی های وب فایلهای جاوا اسکریپت را مشخص کنید تا از کوچک سازی و اتصال (یکی " "در هر خط) حذف شوند." -#: inc/Engine/Admin/Settings/Page.php:745 +#: inc/Engine/Admin/Settings/Page.php:719 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -1560,7 +1519,7 @@ msgstr "" "js برای حذف تمام فایل های JS واقع در یک مسیر خاص استفاده کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:747 +#: inc/Engine/Admin/Settings/Page.php:721 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external JS. %1$sMore info%2$s" @@ -1568,13 +1527,13 @@ msgstr "" "شخص 3rd :برای حذف JS خارجی ، از مسیر URL کامل یا فقط نام " "دامنه استفاده کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:763 +#: inc/Engine/Admin/Settings/Page.php:737 #: inc/Engine/Optimization/DeferJS/AdminSubscriber.php:76 msgid "Load JavaScript deferred" msgstr "بارگذاری جاوا اسکریپت به صورت تاخیری" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:765 +#: inc/Engine/Admin/Settings/Page.php:739 msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " "improve load time. %1$sMore info%2$s" @@ -1584,7 +1543,7 @@ msgstr "" " بیشتر%2$s" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:778 +#: inc/Engine/Admin/Settings/Page.php:752 msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " "per line). %1$sMore info%2$s" @@ -1592,13 +1551,13 @@ msgstr "" "برای مستثنی کردن فایل‌های جاوا اسکریپت از تعویق، آدرس آن را اینجا وارد " "کنید(هرخط یک آدرس).%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:768 #: inc/Engine/Optimization/DelayJS/Admin/Subscriber.php:210 msgid "Delay JavaScript execution" msgstr "تاخیر اجرای جاوا اسکریپت" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:796 +#: inc/Engine/Admin/Settings/Page.php:770 msgid "" "Improves performance by delaying the loading of JavaScript files until user " "interaction (e.g. scroll, click). %1$sMore info%2$s" @@ -1606,11 +1565,11 @@ msgstr "" "با تأخیر در بارگذاری فایل های جاوا اسکریپت تا تعامل کاربر (به عنوان مثال " "پیمایش ، کلیک) ، عملکرد را بهبود می بخشد.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:805 +#: inc/Engine/Admin/Settings/Page.php:779 msgid "One-click exclusions" msgstr "موارد استثنا با یک کلیک" -#: inc/Engine/Admin/Settings/Page.php:806 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "" "When using the Delay JavaScript Execution, you might experience delay " "loading elements located in the viewport that need to appear immediately - " @@ -1620,7 +1579,7 @@ msgstr "" "واقع در ویوپورت را تجربه کنید که باید فورا ظاهر شوند - به عنوان مثال: " "اسلایدر، سربرگ، فهرست." -#: inc/Engine/Admin/Settings/Page.php:807 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "If you need instant visibility, click below on files that should NOT be " "delayed. This selection will help users interact with the elements straight " @@ -1630,7 +1589,7 @@ msgstr "" "کلیک کنید. این انتخاب به کاربران کمک می کند تا فوراً با عناصر تعامل داشته " "باشند." -#: inc/Engine/Admin/Settings/Page.php:824 +#: inc/Engine/Admin/Settings/Page.php:798 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -1638,24 +1597,24 @@ msgstr "" "نشانی های اینترنتی یا کلمات کلیدی را مشخص کنید که بتوانند درون خطی یا فایل " "های جاوا اسکریپت را شناسایی کنند تا از تأخیر اجرا حذف شوند (یکی در هر خط)." -#: inc/Engine/Admin/Settings/Page.php:856 +#: inc/Engine/Admin/Settings/Page.php:830 msgid "Media" msgstr "رسانه" -#: inc/Engine/Admin/Settings/Page.php:857 +#: inc/Engine/Admin/Settings/Page.php:831 msgid "LazyLoad, image dimensions" msgstr "بارگذاری تنبل، ابعاد تصویر" -#: inc/Engine/Admin/Settings/Page.php:866 +#: inc/Engine/Admin/Settings/Page.php:840 msgid "Autoptimize" msgstr "بهینه‌سازی خودکار" -#: inc/Engine/Admin/Settings/Page.php:920 +#: inc/Engine/Admin/Settings/Page.php:894 msgid "LazyLoad" msgstr "بارگزاری تنبل" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:923 +#: inc/Engine/Admin/Settings/Page.php:897 msgid "" "It can improve actual and perceived loading time as images, iframes, and " "videos will be loaded only as they enter (or about to enter) the viewport " @@ -1667,7 +1626,7 @@ msgstr "" "%1$sاطلاعات بیشتر%2$s" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:930 +#: inc/Engine/Admin/Settings/Page.php:904 msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " "LazyLoad, disable this option in %2$s." @@ -1675,12 +1634,12 @@ msgstr "" "بارگذاری تنبل در حال حاضر فعال است در%2$s. اگر می خواهید از بارگذاری تنبل " "موشک وردپرس استفاده کنید، این گزینه %2$s را غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:933 +#: inc/Engine/Admin/Settings/Page.php:907 msgid "Image Dimensions" msgstr "ابعاد تصویر" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:910 msgid "" "Add missing width and height attributes to images. Helps prevent layout " "shifts and improve the reading experience for your visitors. %1$sMore " @@ -1689,12 +1648,12 @@ msgstr "" "ویژگی های عرض و ارتفاع را به تصاویر بدون آن اضافه کنید. به جلوگیری از تغییر " "چیدمان و بهبود تجربه خواندن برای بازدیدکنندگان کمک می کند.%1$s راهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:955 +#: inc/Engine/Admin/Settings/Page.php:929 msgid "Enable for images" msgstr "فعال‌سازی برای تصاویر" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:967 +#: inc/Engine/Admin/Settings/Page.php:941 msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " "%1$s’s LazyLoad, disable this option in %2$s." @@ -1702,25 +1661,25 @@ msgstr "" "در حال حاضر بارگذاری تنبل تصاویر در %2$s فعال است. اگر می خواهید از " "%1$sبارگذاری تنبل استفاده کنید. این گزینه را در %2$s غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:975 +#: inc/Engine/Admin/Settings/Page.php:949 msgid "Enable for CSS background images" msgstr "فعالسازی برای تصاویر پس ضمینه CSS" -#: inc/Engine/Admin/Settings/Page.php:990 +#: inc/Engine/Admin/Settings/Page.php:964 msgid "Enable for iframes and videos" msgstr "فعال سازی برای آی‌فریم‌ها و ویدیوها" -#: inc/Engine/Admin/Settings/Page.php:1005 +#: inc/Engine/Admin/Settings/Page.php:979 msgid "Replace YouTube iframe with preview image" msgstr "جایگزینی آی‌فریم یوتیوب با تصویر پیش‌نمایش" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "جایگزین iframe YouTube با تصویر پیش نمایش با %2$s سازگار نیست." #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -1728,12 +1687,12 @@ msgstr "" "در صورتی که تعداد زیادی ویدیو از یوتیوب داخل صفحه خود داشته باشید، این گزینه" " به طور قابل ملاحظه‌ای سرعت شما را افزایش خواهد داد." -#: inc/Engine/Admin/Settings/Page.php:1022 +#: inc/Engine/Admin/Settings/Page.php:996 msgid "Excluded images or iframes" msgstr "تصاویر یا iframe های مستثنی شده" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1024 +#: inc/Engine/Admin/Settings/Page.php:998 msgid "" "Specify keywords (e.g. image filename, CSS filename, CSS class, domain) from" " the image or iframe code to be excluded (one per line). %1$sMore info%2$s" @@ -1741,20 +1700,20 @@ msgstr "" "کلمات کلیدی (مانند نام فایل تصویر ، کلاس CSS ، دامنه) را از تصویر یا کد " "iframe حذف کنید (یکی در هر خط) مشخص کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1032 +#: inc/Engine/Admin/Settings/Page.php:1006 msgid "Add missing image dimensions" msgstr "افزودن ابعاد به تصاویر بدون ابعاد" -#: inc/Engine/Admin/Settings/Page.php:1052 +#: inc/Engine/Admin/Settings/Page.php:1026 msgid "Generate cache files, preload fonts" msgstr "ایجاد فایل کش، پیش بارگذاری فونت‌ها" -#: inc/Engine/Admin/Settings/Page.php:1064 +#: inc/Engine/Admin/Settings/Page.php:1038 msgid "Preload Cache" msgstr "پیش‌بارگذاری کش" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1067 +#: inc/Engine/Admin/Settings/Page.php:1041 msgid "" "When you enable preloading WP Rocket will automatically detect your sitemaps" " and save all URLs to the database. The plugin will make sure that your " @@ -1764,12 +1723,12 @@ msgstr "" " را شناسایی می کند و همه URL ها را در پایگاه داده ذخیره می کند. این افزونه " "مطمئن می شود که کش شما همیشه از قبل بارگذاری شده است." -#: inc/Engine/Admin/Settings/Page.php:1075 +#: inc/Engine/Admin/Settings/Page.php:1049 msgid "Preload Links" msgstr "لینک‌های پیش بارگذاری" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1052 msgid "" "Link preloading improves the perceived load time by downloading a page when " "a user hovers over the link. %1$sMore info%2$s" @@ -1777,11 +1736,11 @@ msgstr "" "پیش بارگذاری لینک با بارگیری صفحه ای که کاربر روی لینک موس خود را قرار می " "دهد ، زمان بارگذاری را بهبود می بخشد. %1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1086 +#: inc/Engine/Admin/Settings/Page.php:1060 msgid "Prefetch DNS Requests" msgstr "پیش‌دریافت درخواست DNS" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1789,12 +1748,12 @@ msgstr "" "پیش‌دریافت درخواست DNS باعث افزایش سرعت بارگذاری فایل‌های خارجی به خصوص بر " "روی شبکه‌های موبایلی خواهد شد" -#: inc/Engine/Admin/Settings/Page.php:1093 +#: inc/Engine/Admin/Settings/Page.php:1067 msgid "Preload Fonts" msgstr "پیش بارگذاری فونت‌ها" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1096 +#: inc/Engine/Admin/Settings/Page.php:1070 msgid "" "Improves performance by helping browsers discover fonts in CSS files. " "%1$sMore info%2$s" @@ -1802,16 +1761,16 @@ msgstr "" "با کمک به مرورگرها برای کشف فونت در فایل های CSS ، عملکرد را بهبود می " "بخشد.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1084 msgid "Activate Preloading" msgstr "فعالسازی پیش پارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1121 +#: inc/Engine/Admin/Settings/Page.php:1095 msgid "Exclude URLs" msgstr "مستثنی کردن URL ها" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1126 +#: inc/Engine/Admin/Settings/Page.php:1100 msgid "" "Specify URLs to be excluded from the preload feature (one per line). " "%1$sMore info%2$s" @@ -1819,11 +1778,11 @@ msgstr "" "برای مستثنی کردن URLها از پیش بارگذاری وارد کنید (یکی در هر خط).%1$sاطلاعات " "بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:1137 +#: inc/Engine/Admin/Settings/Page.php:1111 msgid "URLs to prefetch" msgstr "آدرس‌ها برای پیش‌دریافت" -#: inc/Engine/Admin/Settings/Page.php:1138 +#: inc/Engine/Admin/Settings/Page.php:1112 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1831,11 +1790,11 @@ msgstr "" "میزبان‌های خارجی را برای واکشی مشخص کنید(بدونhttp:، یکی درهر " "خط)" -#: inc/Engine/Admin/Settings/Page.php:1147 +#: inc/Engine/Admin/Settings/Page.php:1121 msgid "Fonts to preload" msgstr "فونت‌ها برای پیش بارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1122 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1844,7 +1803,7 @@ msgstr "" "کنید.فونت ها باید در دامنه خود یا دامنه ای که در برگه CDN مشخص کرده اید " "میزبانی شوند." -#: inc/Engine/Admin/Settings/Page.php:1149 +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1852,51 +1811,51 @@ msgstr "" "بخش دامنه URL به طور خودکار برداشته می شود.
پسوند فونت های مجاز شامل: " "otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1132 msgid "Enable link preloading" msgstr "پیش بارگذاری لینک را فعال کنید" -#: inc/Engine/Admin/Settings/Page.php:1177 +#: inc/Engine/Admin/Settings/Page.php:1151 msgid "Advanced Rules" msgstr "قوانین پیشرفته" -#: inc/Engine/Admin/Settings/Page.php:1178 +#: inc/Engine/Admin/Settings/Page.php:1152 msgid "Fine-tune cache rules" msgstr "قوانین کش دقیق" -#: inc/Engine/Admin/Settings/Page.php:1191 +#: inc/Engine/Admin/Settings/Page.php:1165 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "برگه‌های حساس مثل ورود\\خروج باید از کش مستثنی شوند." -#: inc/Engine/Admin/Settings/Page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1168 msgctxt "plugin name" msgid "WooCommerce" msgstr "ووکامرس" -#: inc/Engine/Admin/Settings/Page.php:1196 +#: inc/Engine/Admin/Settings/Page.php:1170 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "دانلود آسان دیجیتال EDD" -#: inc/Engine/Admin/Settings/Page.php:1198 +#: inc/Engine/Admin/Settings/Page.php:1172 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1200 +#: inc/Engine/Admin/Settings/Page.php:1174 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1202 +#: inc/Engine/Admin/Settings/Page.php:1176 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" #. translators: %1$s = opening tag, %2$s = plugin name, %3$s closing #. tag. -#: inc/Engine/Admin/Settings/Page.php:1208 +#: inc/Engine/Admin/Settings/Page.php:1182 msgid "" "
Cart, checkout and \"my account\" pages set in " "%1$s%2$s%3$s will be detected and never cached by default." @@ -1905,12 +1864,12 @@ msgstr "" "%1$s%2$s%3$s تعیین شده‌اند تشخیص داده خواهند شد و به صورت " "پیش‌فرض هرگز کش نخواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1192 msgid "Cache Lifespan" msgstr "طول عمر کش" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1221 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " "%1$spreloading%2$s for the cache to be rebuilt automatically after lifespan " @@ -1919,16 +1878,16 @@ msgstr "" "فایل های کش قدیمی تر از طول عمر مشخص شده حذف می شوند.
فعال کردن%1$sپیش " "بارگذاری%2$s برای کش باعث ایجاد خودکار آن بعد از دوره پایان عمر آن می شود." -#: inc/Engine/Admin/Settings/Page.php:1237 +#: inc/Engine/Admin/Settings/Page.php:1211 msgid "Never Cache Cookies" msgstr "کوکی‌هایی که هرگز کش نخواهند شد" -#: inc/Engine/Admin/Settings/Page.php:1255 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "Cache Query String(s)" msgstr "کش کردن کوئری استرینگ‌(ها)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1232 msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " "GET parameters." @@ -1936,14 +1895,14 @@ msgstr "" "%1$sکش کردن کوئری استرینگ‌ها%2$s باعث می‌شوند که پارامترهای متد GET به اجبار" " کش شوند." -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1243 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "مدت زمانی که بعد از آن کش عمومی پاک می‌شود را تعیین کنید
(0 = نامحدود)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1271 +#: inc/Engine/Admin/Settings/Page.php:1245 msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" " periodically. %1$sWhy?%2$s" @@ -1951,27 +1910,27 @@ msgstr "" "اگر به طور متناوب خطاهایی را مشاهده می‌کنید طول عمر کش را به 10 ساعت یا کمتر" " کاهش دهید. %1$sچرا؟%2$s" -#: inc/Engine/Admin/Settings/Page.php:1277 -#: inc/Engine/License/views/promo-banner.php:30 -#: inc/Engine/License/views/renewal-soon-banner.php:13 +#: inc/Engine/Admin/Settings/Page.php:1251 +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 msgid "Hours" msgstr "ساعت‌" -#: inc/Engine/Admin/Settings/Page.php:1278 -#: inc/Engine/License/views/promo-banner.php:29 -#: inc/Engine/License/views/renewal-soon-banner.php:12 +#: inc/Engine/Admin/Settings/Page.php:1252 +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 msgid "Days" msgstr "روزها" -#: inc/Engine/Admin/Settings/Page.php:1283 +#: inc/Engine/Admin/Settings/Page.php:1257 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "آدرس برگه‌ها یا نوشته‌هایی که هرگز نباید کش شوند را تعیین کنید (در هر خط " "یکی)" -#: inc/Engine/Admin/Settings/Page.php:1284 -#: inc/Engine/Admin/Settings/Page.php:1312 +#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1286 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -1979,7 +1938,7 @@ msgstr "" "قسمت نام دامنه آدرس به صورت خودکار حذف خواهد شد.
از (.*) برای تعیین چند" " آدرس از یک مسیر استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1293 +#: inc/Engine/Admin/Settings/Page.php:1267 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -1987,18 +1946,18 @@ msgstr "" "شناسه های کامل یا جزئی کوکی ها را مشخص کنید که وقتی در مرورگر بازدیدکننده " "تنظیم می شوند ، از ذخیره شدن صفحه جلوگیری شود (یکی در هر خط)" -#: inc/Engine/Admin/Settings/Page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1275 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "رشته‌های user agentی که هرگز نباید صفحات را کش شده مشاهده کنند را تعیین کنید" " (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1302 +#: inc/Engine/Admin/Settings/Page.php:1276 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "برای تشخص قسمت‌های مختلف رشته user agent از (.*)استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1285 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -2006,19 +1965,19 @@ msgstr "" "آدرس‌هایی که مایل هستید فارغ از اینکه نوشته یا برگه‌ای بروزرسانی شده، همیشه " "از کش حذف شوند را تعیین کنید (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1320 +#: inc/Engine/Admin/Settings/Page.php:1294 msgid "Specify query strings for caching (one per line)" msgstr "کوئری استرینگ‌ها برای کش شدن را تعیین کنید (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1320 msgid "Optimize, reduce bloat" msgstr "بهینه‌سازی، کاهش نفخ" -#: inc/Engine/Admin/Settings/Page.php:1353 +#: inc/Engine/Admin/Settings/Page.php:1327 msgid "Post Cleanup" msgstr "پاک‌سازی نوشته" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1329 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -2026,19 +1985,19 @@ msgstr "" "نوشته‌های بازبینی و پیش‌نویس به طور دائم حذف خواهند شد. اگر به نگه‌داری " "بازبینی‌ها و پیش‌نویس‌ها نیاز دارید این گزینه را استفاده نکنید." -#: inc/Engine/Admin/Settings/Page.php:1360 +#: inc/Engine/Admin/Settings/Page.php:1334 msgid "Comments Cleanup" msgstr "پاک‌سازی دیدگاه‌ها" -#: inc/Engine/Admin/Settings/Page.php:1362 +#: inc/Engine/Admin/Settings/Page.php:1336 msgid "Spam and trashed comments will be permanently deleted." msgstr "دیدگا‌ه‌های اسپم و داخل زباله‌دان به طور دائم حذف خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1366 +#: inc/Engine/Admin/Settings/Page.php:1340 msgid "Transients Cleanup" msgstr "پاک‌سازی داده‌های گذرا" -#: inc/Engine/Admin/Settings/Page.php:1368 +#: inc/Engine/Admin/Settings/Page.php:1342 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -2046,21 +2005,21 @@ msgstr "" "داده‌های گذرا تنظیمات موقتی هستند. حذف آن‌ها ایمن است. در صورتی که افزونه‌ها" " به این داده‌ها نیاز داشته باشند به صورت خودکار ایجاد خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1346 msgid "Database Cleanup" msgstr "پاک‌سازی پایگاه داده" -#: inc/Engine/Admin/Settings/Page.php:1374 +#: inc/Engine/Admin/Settings/Page.php:1348 msgid "Reduces overhead of database tables" msgstr "بهینه سازی جداول دیتابیس" -#: inc/Engine/Admin/Settings/Page.php:1378 +#: inc/Engine/Admin/Settings/Page.php:1352 msgid "Automatic Cleanup" msgstr "پاک‌سازی خودکار" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1391 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "%s بازبینی در پایگاه داده شما وجود دارد." @@ -2068,7 +2027,7 @@ msgstr[1] "%s بازبینی در پایگاه داده شما وجود دارد #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1401 +#: inc/Engine/Admin/Settings/Page.php:1375 msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "%s پیش‌نویس در پایگاه داده شما وجود دارد." @@ -2076,7 +2035,7 @@ msgstr[1] "%s پیش‌نویس در پایگاه داده شما وجود دا #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1411 +#: inc/Engine/Admin/Settings/Page.php:1385 msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "%s نوشته داخل زباله‌دان در پایگاه داده شما وجود دارد." @@ -2084,7 +2043,7 @@ msgstr[1] "%s نوشته داخل زباله‌دان در پایگاه داده #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1395 msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "%s دیدگاه اسپم در پایگاه داده شما وجود دارد." @@ -2092,61 +2051,61 @@ msgstr[1] "%s دیدگاه اسپم در پایگاه داده شما وجود #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1405 msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "%s دیدگاه در زباله‌دان شما وجود دارد." msgstr[1] "%s دیدگاه در زباله‌دان شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1439 +#: inc/Engine/Admin/Settings/Page.php:1413 msgid "All transients" msgstr "همه داده‌های گذرا" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1441 +#: inc/Engine/Admin/Settings/Page.php:1415 msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "%s داده گذرا در پایگاه داده شما وجود دارد." msgstr[1] "%s داده گذرا در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1449 +#: inc/Engine/Admin/Settings/Page.php:1423 msgid "Optimize Tables" msgstr "بهینه‌سازی جدول‌ها" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1451 +#: inc/Engine/Admin/Settings/Page.php:1425 msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "%s جدول برای بهینه‌سازی در پایگاه داده شما وجود دارد." msgstr[1] "%s جدول برای بهینه‌سازی در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1436 msgid "Schedule Automatic Cleanup" msgstr "برنامه‌ریزی پاک‌سازی خودکار" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1448 msgid "Frequency" msgstr "دوره تکرار" -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1456 msgid "Daily" msgstr "روزانه" -#: inc/Engine/Admin/Settings/Page.php:1483 +#: inc/Engine/Admin/Settings/Page.php:1457 msgid "Weekly" msgstr "هفتگی" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1458 msgid "Monthly" msgstr "ماهیانه" -#: inc/Engine/Admin/Settings/Page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1475 msgid "Integrate your CDN" msgstr "CDN خود را سازگار کنید" -#: inc/Engine/Admin/Settings/Page.php:1513 +#: inc/Engine/Admin/Settings/Page.php:1487 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -2155,7 +2114,7 @@ msgstr "" "شما تعیین کرده‌اید بازنویسی خواهند شد." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1489 msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " "available %1$sAdd-ons%2$s." @@ -2165,7 +2124,7 @@ msgstr "" #. translators: %1$s = opening em tag, %2$l = list of add-on name(s), %3$s = #. closing em tag. -#: inc/Engine/Admin/Settings/Page.php:1561 +#: inc/Engine/Admin/Settings/Page.php:1533 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -2179,28 +2138,28 @@ msgstr[1] "" "%1$s%2$l افزودنی%3$s اکنون فعال است. پیکربندی تنظیمات CDN برای %2$l ضروری " "نیست." -#: inc/Engine/Admin/Settings/Page.php:1587 +#: inc/Engine/Admin/Settings/Page.php:1559 msgid "Enable Content Delivery Network" msgstr "فعالسازی شبکه تحویل محتوا" -#: inc/Engine/Admin/Settings/Page.php:1596 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:159 +#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:162 msgid "CDN CNAME(s)" msgstr "CNAME (های) CDN" -#: inc/Engine/Admin/Settings/Page.php:1597 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:160 +#: inc/Engine/Admin/Settings/Page.php:1569 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:163 msgid "Specify the CNAME(s) below" msgstr "CNAME (ها) را اینجا تعیین کنید" -#: inc/Engine/Admin/Settings/Page.php:1604 +#: inc/Engine/Admin/Settings/Page.php:1576 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "آدرس فایل‌(هایی) که نباید از طریق CDN بارگذاری شوند را تعیین کنید.(هرخط یک " "آدرس)" -#: inc/Engine/Admin/Settings/Page.php:1605 +#: inc/Engine/Admin/Settings/Page.php:1577 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -2209,16 +2168,16 @@ msgstr "" "قسمت نام دامنه آدرس به صورت خودکار حذف خواهد شد.
برای مستثنی کردن همه " "فایل‌های هم نوع موجود در یک مسیر از (.*) استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1628 -#: inc/Engine/Admin/Settings/Page.php:1636 +#: inc/Engine/Admin/Settings/Page.php:1600 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Heartbeat" msgstr "ضربان Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1601 msgid "Control WordPress Heartbeat API" msgstr "کنترل API سرویس WordPress Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1637 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -2226,11 +2185,11 @@ msgstr "" "کاهش یا غیرفعال کردن فعالیت Heartbeat API می تواند به ذخیره برخی از منابع " "سرور شما کمک کند." -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1615 msgid "Reduce or disable Heartbeat activity" msgstr "کاهش یا غیرفعال کردن فعالیت Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -2238,55 +2197,55 @@ msgstr "" "با کاهش فعالیت ، فرکانس Heartbeat از یک ضربه در هر دقیقه به یک ضربه در هر 2 " "دقیقه تغییر می کند." -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "با غیرفعال کردن کامل Heartbeat ممکن است افزونه ها و قالب ها با استفاده از " "این API خراب شوند." -#: inc/Engine/Admin/Settings/Page.php:1658 +#: inc/Engine/Admin/Settings/Page.php:1630 msgid "Do not limit" msgstr "محدود نکنید" -#: inc/Engine/Admin/Settings/Page.php:1659 +#: inc/Engine/Admin/Settings/Page.php:1631 msgid "Reduce activity" msgstr "کاهش فعالیت" -#: inc/Engine/Admin/Settings/Page.php:1660 +#: inc/Engine/Admin/Settings/Page.php:1632 msgid "Disable" msgstr "غیرفعال‌سازی" -#: inc/Engine/Admin/Settings/Page.php:1668 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Control Heartbeat" msgstr "کنترل Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1677 +#: inc/Engine/Admin/Settings/Page.php:1649 msgid "Behavior in backend" msgstr "رفتار در پس زمینه" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1656 msgid "Behavior in post editor" msgstr "رفتار در ویرایشگر نوشته" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Behavior in frontend" msgstr "رفتار در frontend" -#: inc/Engine/Admin/Settings/Page.php:1709 +#: inc/Engine/Admin/Settings/Page.php:1681 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "افزودنی‌ها" -#: inc/Engine/Admin/Settings/Page.php:1710 +#: inc/Engine/Admin/Settings/Page.php:1682 msgid "Add more features" msgstr "افزودن ویژگی‌های بیشتر" -#: inc/Engine/Admin/Settings/Page.php:1717 +#: inc/Engine/Admin/Settings/Page.php:1689 msgid "One-click Rocket Add-ons" msgstr "افزودنی‌های موشک با یک کلیک" -#: inc/Engine/Admin/Settings/Page.php:1718 +#: inc/Engine/Admin/Settings/Page.php:1690 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -2295,21 +2254,21 @@ msgstr "" "به تنظیمات جدید گسترش می‌دهند. برای فعال‌سازی گزینه \"فعال\" را از این صفحه " "فعال کنید." -#: inc/Engine/Admin/Settings/Page.php:1728 +#: inc/Engine/Admin/Settings/Page.php:1700 msgid "Rocket Add-ons" msgstr "افزودنی‌های موشک" -#: inc/Engine/Admin/Settings/Page.php:1729 +#: inc/Engine/Admin/Settings/Page.php:1701 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "افزودنی‌های موشک ویژگی‌های تکمیلی هستند که گزینه‌های موجود فعلی را گسترش " "می‌دهند." -#: inc/Engine/Admin/Settings/Page.php:1740 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "User Cache" msgstr "کش کاربر" -#: inc/Engine/Admin/Settings/Page.php:1746 +#: inc/Engine/Admin/Settings/Page.php:1718 msgid "" "If you need to create a dedicated set of cache files for each logged-in " "WordPress user, you must activate this add-on." @@ -2318,7 +2277,7 @@ msgstr "" " وردپرس دارید، باید این افزونه را فعال کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "User cache is great when you have user-specific or restricted content on " "your website.
%1$sLearn more%2$s" @@ -2326,16 +2285,16 @@ msgstr "" "حافظه پنهان کاربر زمانی عالی است که محتوای خاص کاربر یا محدود شده در وب سایت" " خود داشته باشید.
%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:1761 -#: inc/Engine/Admin/Settings/Page.php:1930 +#: inc/Engine/Admin/Settings/Page.php:1733 +#: inc/Engine/Admin/Settings/Page.php:1902 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1767 +#: inc/Engine/Admin/Settings/Page.php:1739 msgid "Integrate your Cloudflare account with this add-on." msgstr "حساب کاربری Cloudflare خود را با این افزودنی ادغام کنید." -#: inc/Engine/Admin/Settings/Page.php:1768 +#: inc/Engine/Admin/Settings/Page.php:1740 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -2346,7 +2305,7 @@ msgstr "" "تعیین کنید." #. translators: %1$s = opening span tag, %2$s = closing span tag. -#: inc/Engine/Admin/Settings/Page.php:1771 +#: inc/Engine/Admin/Settings/Page.php:1743 msgid "" "%1$sPlanning on using Automatic Platform Optimization (APO)?%2$s Just " "activate the official Cloudflare plugin and configure it. WP Rocket will " @@ -2356,17 +2315,17 @@ msgstr "" "پلاگین رسمی کلادفلیر را فعال کرده و آن را پیکربندی کنید. موشک وردپرس به طور " "خودکار سازگاری را فعال می کند." -#: inc/Engine/Admin/Settings/Page.php:1819 +#: inc/Engine/Admin/Settings/Page.php:1791 msgid "Varnish" msgstr "وارنیش" -#: inc/Engine/Admin/Settings/Page.php:1825 +#: inc/Engine/Admin/Settings/Page.php:1797 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" "اگر بر روی سرور شما وارنیش اجرا شده است، باید این افزودنی را فعال کنید." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1827 +#: inc/Engine/Admin/Settings/Page.php:1799 msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" @@ -2374,16 +2333,16 @@ msgstr "" "هر بار که موشک وردپرس کش خود را پاک‌سازی می‌کند، کش وارنیش هم به منظور " "اطمینان از به روز بودن محتوا، پاک خواهد شد.
%1$sکسب اطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:1834 msgid "WebP Compatibility" msgstr "سازگاری WebP" -#: inc/Engine/Admin/Settings/Page.php:1868 +#: inc/Engine/Admin/Settings/Page.php:1840 msgid "Improve browser compatibility for WebP images." msgstr "بهبود سازگاری مرورگر با تصاویر WebP." #. translators: %1$s and %3$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1872 +#: inc/Engine/Admin/Settings/Page.php:1844 msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " "compatible browsers. Please note that WP Rocket cannot create WebP images " @@ -2395,11 +2354,11 @@ msgstr "" "WebP را برای شما ایجاد کند. برای ایجاد تصاویر WebP توصیه می کنیم از " "%1$sImagify%2$s استفاده کنید. %3$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1892 +#: inc/Engine/Admin/Settings/Page.php:1864 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "کش Sucuri را حذف کن هنگامی که کش موشک وردپرس را حذف می کنید." -#: inc/Engine/Admin/Settings/Page.php:1895 +#: inc/Engine/Admin/Settings/Page.php:1867 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -2407,49 +2366,49 @@ msgstr "" "کلید API خود را برای پاک کردن کش Sucuri هنگام پاک شدن کش موشک وردپرس ارائه " "دهید." -#: inc/Engine/Admin/Settings/Page.php:1903 -#: inc/Engine/Admin/Settings/Page.php:2047 +#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:2019 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1909 +#: inc/Engine/Admin/Settings/Page.php:1881 msgid "Synchronize Sucuri cache with this add-on." msgstr "با این افزونه کش Sucuri را همگام سازی کنید." -#: inc/Engine/Admin/Settings/Page.php:1947 +#: inc/Engine/Admin/Settings/Page.php:1919 msgid "Cloudflare credentials" msgstr "اعتبارهای Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1956 +#: inc/Engine/Admin/Settings/Page.php:1928 msgid "Cloudflare settings" msgstr "تنظیمات Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1970 +#: inc/Engine/Admin/Settings/Page.php:1942 msgctxt "Cloudflare" msgid "Global API key:" msgstr "کلید API عمومی:" -#: inc/Engine/Admin/Settings/Page.php:1971 +#: inc/Engine/Admin/Settings/Page.php:1943 msgctxt "Cloudflare" msgid "Find your API key" msgstr "پیدا کردن کلید API شما" -#: inc/Engine/Admin/Settings/Page.php:1983 +#: inc/Engine/Admin/Settings/Page.php:1955 msgctxt "Cloudflare" msgid "Account email" msgstr "ایمیل حساب کاربری" -#: inc/Engine/Admin/Settings/Page.php:1992 +#: inc/Engine/Admin/Settings/Page.php:1964 msgctxt "Cloudflare" msgid "Zone ID" msgstr "شناسه ناحیه" -#: inc/Engine/Admin/Settings/Page.php:2002 +#: inc/Engine/Admin/Settings/Page.php:1974 msgid "Development mode" msgstr "حالت توسعه" #. translators: %1$s = link opening tag, %2$s = link closing tag. -#: inc/Engine/Admin/Settings/Page.php:2004 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" @@ -2457,21 +2416,21 @@ msgstr "" "حالت توسعه به طور موقت بر روی وبسایت خود فعال کنید. این تنظیم بعد از گذشت 3 " "ساعت غیرفعال خواهد شد. %1$sکسب اطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:2012 +#: inc/Engine/Admin/Settings/Page.php:1984 msgid "Optimal settings" msgstr "تنظیمات بهینه‌سازی" -#: inc/Engine/Admin/Settings/Page.php:2013 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." msgstr "افزایش خودکار تنظیمات Cloudflare جهت سرعت، بهره‌وری و هماهنگی بیشتر." -#: inc/Engine/Admin/Settings/Page.php:2021 +#: inc/Engine/Admin/Settings/Page.php:1993 msgid "Relative protocol" msgstr "پروتکل نسبی" -#: inc/Engine/Admin/Settings/Page.php:2022 +#: inc/Engine/Admin/Settings/Page.php:1994 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -2481,11 +2440,11 @@ msgstr "" "(CSS, JS, images) جهت استفاده از // به جای http:// یا https:// بازنویسی " "خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:2060 +#: inc/Engine/Admin/Settings/Page.php:2032 msgid "Sucuri credentials" msgstr "اعتبارهای Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2073 +#: inc/Engine/Admin/Settings/Page.php:2045 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -2494,11 +2453,22 @@ msgstr "" "شناسه API فایروال (برای افزونه)، باید در فرمت {32 characters}/{32 " "characters}:" -#: inc/Engine/Admin/Settings/Page.php:2074 +#: inc/Engine/Admin/Settings/Page.php:2046 msgctxt "Sucuri" msgid "Find your API key" msgstr "پیدا کردن کلید API شما" +#. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: +#. opening a tag, %4$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2251 +msgid "" +"%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New " +"feature: %3$sLazy Render Content%4$s. Check out our documentation to learn " +"more about it." +msgstr "" +"%1$sراکت وردپرس:%2$sبه نسخه 3.17 بروزرسانی شد. ویژگی جدید:%3$sرندر تنبل " +"محتوا%4$s. مستندات ما را برای راهنمایی بیشتر مطالعه کنید." + #: inc/Engine/Admin/Settings/Settings.php:361 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format " @@ -2515,25 +2485,25 @@ msgstr "" "متاسفیم! افزودن/(.*) در قوانین پیشرفته > هرگز کش نکن URL(s) ذخیره نشد به " "دلیل اینکه کش و بهینه سازی برای هر برگه در سایت شما غیرفعال است." -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:174 msgid "Import, Export, Rollback" msgstr "درون‌ریزی، برون‌ریزی، عقب‌گرد" -#: inc/Engine/Admin/Settings/Subscriber.php:196 +#: inc/Engine/Admin/Settings/Subscriber.php:199 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "بهینه‌سازی تصویر" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:200 msgid "Compress your images" msgstr "تصاویر خود را فشرده کنید" -#: inc/Engine/Admin/Settings/Subscriber.php:214 +#: inc/Engine/Admin/Settings/Subscriber.php:217 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "آموزش‌ها" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:218 msgid "Getting started and how to videos" msgstr "شروع به کار و نحوه فیلمبرداری" @@ -2541,53 +2511,53 @@ msgstr "شروع به کار و نحوه فیلمبرداری" msgid "WP Rocket Expired Cache Interval" msgstr "مدت زمان کش موشک وردپرس به اتمام رسیده است" -#: inc/Engine/Cache/WPCache.php:337 +#: inc/Engine/Cache/WPCache.php:338 msgid "WP_CACHE value" msgstr "مقدار WP_CACHE" -#: inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Cache/WPCache.php:355 msgid "Cache" msgstr "کش" -#: inc/Engine/Cache/WPCache.php:358 +#: inc/Engine/Cache/WPCache.php:359 msgid "" "The WP_CACHE constant needs to be set to true for WP Rocket cache to work " "properly" msgstr "مقدار WP_CACHE باید true باشد تا کش موشک وردپرس به درستی کار کند" -#: inc/Engine/Cache/WPCache.php:367 +#: inc/Engine/Cache/WPCache.php:368 msgid "WP_CACHE is set to true" msgstr "مقدار WP_CACHE به true تنظیم شده است" -#: inc/Engine/Cache/WPCache.php:375 +#: inc/Engine/Cache/WPCache.php:376 msgid "WP_CACHE is not set" msgstr "مقدار WP_CACHE تنظیم نشده است" -#: inc/Engine/Cache/WPCache.php:383 +#: inc/Engine/Cache/WPCache.php:384 msgid "WP_CACHE is set to false" msgstr "مقدار WP_CACHE به false تنظیم شده است" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:96 msgid "Next Billing Date" msgstr "تاریخ صورتحساب بعدی" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:99 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:103 msgid "No Subscription" msgstr "بدون اشتراک" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:135 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:138 msgid "Your RocketCDN subscription is currently active." msgstr "اشتراک RocketCDN شما اکنون فعال است." #. translators: %1$s = opening tag, %2$s = CDN URL, %3$s = closing #. tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:141 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:144 msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "" "برای استفاده از RocketCDN ، بجای CNAME خود از %1$s%2$s%3$s استفاده کنید." #. translators: %1$is = opening link tag, %2$s = closing link tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:152 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:155 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:230 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:334 msgid "%1$sMore Info%2$s" @@ -2649,29 +2619,29 @@ msgstr "RocketCDN غیرفعال شد" #. Translators: %s = date formatted using date_i18n() and get_option( #. 'date_format' ). -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:29 msgid "Valid until %s only!" msgstr "تا %s معتبر است!" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:38 msgid "Speed up your website thanks to:" msgstr "سرعت بخشیدن به وب سایت شما به لطف:" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:44 msgid "" "High performance Content Delivery Network (CDN) with %1$sunlimited " "bandwidth%2$s" msgstr "بیشترین عملکرد شبکه توزیع محتوا (CDN) با%1$s پهنای باند نامحدود%2$s" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:50 msgid "" "Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "پیکربند آسنا:%1$sبهترین تنظیمات CDN %2$s بطور خودکار اعمال می شود" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:56 msgid "" "WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in" " our plugin" @@ -2679,12 +2649,12 @@ msgstr "" "ادغام موشک وردپرس: گزینه CDN بصورت خودکار%1$sپیکربندی می شود%2$s در افزونه " "ما" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:60 msgid "Learn more about RocketCDN" msgstr "اطلاعات بیشتر راجع به RocketCDN" #. translators: %1$s = discounted price, %2$s = regular price. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:67 msgid "" "*$%1$s/month for 12 months then $%2$s/month. You can cancel your " "subscription at any time." @@ -2692,34 +2662,34 @@ msgstr "" "*$%1$s/ماه برای 12 ماه آنگاه $%2$s/ماه. شما می توانید اشتراک خود را هرگاه که" " خواستید لغو کنید." -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:88 msgid "Billed monthly" msgstr "صورتحساب ماهانه" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:89 msgid "Get Started" msgstr "شروع کنید" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:94 msgid "Reduce this banner" msgstr "حذف این بنر" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:19 msgid "" "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "" "با RocketCDN، شبکه تحویل محتوای WP Rocket سرعت سایت خود را افزایش دهید." -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:22 #: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 msgid "Learn More" msgstr "ادامه مطلب" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:24 msgid "RocketCDN is unavailable on local domains and staging sites." msgstr "سرویس RocketCDN در دامنه محلی و سایت های آزمایشی دردسترس نیست." -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:33 msgid "Get RocketCDN" msgstr "خرید RocketCDN" @@ -2733,23 +2703,76 @@ msgid "" msgstr "" "با RocketCDN، شبکه تحویل محتوای WP Rocket سرعت سایت خود را افزایش دهید!" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:180 +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:68 +msgid "Too many requests." +msgstr "درخواست های خیلی زیاد." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:85 +msgid "Not valid response." +msgstr "پاسخ معتبر نیست" + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:151 +msgid "Not valid request type." +msgstr "نوع درخواست معتبر نیست." + +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "WP Rocket کارهای معلق را پردازش می کند" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:194 +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:204 msgid "WP Rocket clear failed jobs" msgstr "WP Rocket کارهای ناموفق را پاک کرد" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:206 +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:221 msgid "WP Rocket process on submit jobs" msgstr "فرآیند WP Rocket در ارسال کارها" -#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:265 +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:44 +msgid "Clear Priority Elements" +msgstr "پاک کردن عناصر اولویت" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:79 +msgid "Clear Priority Elements of this URL" +msgstr "عناصر اولویت این URL را پاک کنید" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:100 +msgid "Priority Elements" +msgstr "عناصر اولویت" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:101 +#: inc/Engine/Saas/Admin/AdminBar.php:134 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear" +msgstr "پاک کردن" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:103 +msgid "" +"This action will clear the Critical Images and Lazily Rendered Content." +msgstr "این عمل تصاویر بحرانی و محتوای رندر تنبل شده را پاک می کند." + +#. translators: %1$s = plugin name. +#: inc/Engine/Common/PerformanceHints/Admin/Controller.php:135 +msgid "%1$s: Critical images and Lazy Render data was cleared!" +msgstr "%1$s:تصاویر بحرانی و داده رندر تنبل پاکسازی شد!" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:19 +msgid "Script error" +msgstr "خطای اسکریپت" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:22 +msgid "Script timeout" +msgstr "وقفه اسکریپت" + +#. Translators: %s is the exception message. +#: inc/Engine/Common/Queue/Cleaner.php:87 +msgid "It was not possible to determine a valid cut-off time: %s." +msgstr "تعیین یک زمان قطع معتبر ممکن نبود:%s." + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:269 msgid "Every minute" msgstr "هر دقیقه" -#: inc/Engine/CriticalPath/Admin/Admin.php:264 +#: inc/Engine/CriticalPath/Admin/Admin.php:265 msgid "Regenerate Critical Path CSS" msgstr "بازسازی مسیر بحرانی CSS" @@ -2776,7 +2799,6 @@ msgstr "%l برای استفاده از این ویژگی." msgid "Publish the %s" msgstr "انتشار %s" -#. translators: %s = post type. #: inc/Engine/CriticalPath/Admin/Post.php:223 msgid "Enable Load CSS asynchronously in WP Rocket settings" msgstr "فعالسازی بارگیری CSS بصورت نابهنگام توسط تنظیمات موشک وردپرس" @@ -2791,7 +2813,7 @@ msgid "Critical CSS for %1$s not generated. Error: %2$s" msgstr "CSS بحرانی برای %1$s تولید نشده است. خطا: %2$s" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:170 +#: inc/Engine/CriticalPath/APIClient.php:174 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "empty response." @@ -2799,26 +2821,26 @@ msgstr "" "CSS بحرانی برای %1$s موبایل ایجاد نشده است. خطا: API پاسخ خالی بر می گرداند." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:173 +#: inc/Engine/CriticalPath/APIClient.php:177 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an empty " "response." msgstr "CSS بحرانی برای %1$s تولید نشده است خطا: API پاسخ خالی بر می گرداند." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:185 +#: inc/Engine/CriticalPath/APIClient.php:189 msgid "Critical CSS for %1$s on mobile not generated." msgstr "CSS بحرانی برای %1$s در موبایل تولید شد." #. translators: %s = item URL. #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/APIClient.php:187 -#: inc/Engine/CriticalPath/ProcessorService.php:194 +#: inc/Engine/CriticalPath/APIClient.php:191 +#: inc/Engine/CriticalPath/ProcessorService.php:196 msgid "Critical CSS for %1$s not generated." msgstr "CSS بحرانی برای %1$s. تولید نشد." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:195 +#: inc/Engine/CriticalPath/APIClient.php:199 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "invalid response code." @@ -2827,7 +2849,7 @@ msgstr "" "گرداند." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:197 +#: inc/Engine/CriticalPath/APIClient.php:201 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an invalid " "response code." @@ -2835,8 +2857,8 @@ msgstr "" "CSS بحرانی برای %1$s تولید نشده است.خطا: API پاسخ نامعتبر بر می گرداند." #. translators: %1$s = error message. -#: inc/Engine/CriticalPath/APIClient.php:205 -#: inc/Engine/CriticalPath/ProcessorService.php:201 +#: inc/Engine/CriticalPath/APIClient.php:209 +#: inc/Engine/CriticalPath/ProcessorService.php:203 msgid "Error: %1$s" msgstr "خطا: %1$s" @@ -2920,36 +2942,36 @@ msgid "Critical CSS file cannot be deleted" msgstr "CSS بحرانی نمی تواند حذف شود" #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:189 msgid "Mobile Critical CSS for %1$s not generated." msgstr "CSS بحرانی موبایل برای %1$s تولید نشد." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:228 +#: inc/Engine/CriticalPath/ProcessorService.php:230 msgid "Critical CSS for %s in progress." msgstr "CSS بحرانی برای %s در حال پردازش است." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:262 +#: inc/Engine/CriticalPath/ProcessorService.php:264 msgid "Mobile Critical CSS for %s generated." msgstr "CSS بحرانی موبایل برای %s ایجاد شد." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:273 +#: inc/Engine/CriticalPath/ProcessorService.php:275 msgid "Critical CSS for %s generated." msgstr "CSS بحرانی برای %s. تولید شد." -#: inc/Engine/CriticalPath/ProcessorService.php:295 +#: inc/Engine/CriticalPath/ProcessorService.php:297 msgid "Critical CSS file deleted successfully." msgstr "CSS بحرانی با موفقیت حذف شد." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:317 +#: inc/Engine/CriticalPath/ProcessorService.php:319 msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "استایل CSS بحرانی موباید برای %1$s متوقف شد. مجدد تلاش کنید." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:330 +#: inc/Engine/CriticalPath/ProcessorService.php:332 msgid "Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "CSS بحرانی برای %1$s وقفه افتاده است. لطفا کمی بعدتر مجدد امتحان کنید." @@ -3075,39 +3097,39 @@ msgid "Unlimited" msgstr "نامحدود" #. translators: %s = promotion discount percentage. -#: inc/Engine/License/views/promo-banner.php:16 +#: inc/Engine/License/views/promo-banner.php:18 msgid "%s off" msgstr "%s تخفیف" #. translators: %s = promotion name. -#: inc/Engine/License/views/promo-banner.php:21 +#: inc/Engine/License/views/promo-banner.php:23 msgid "%s promotion is live!" msgstr "%s پیشنهاد زنده است!" -#: inc/Engine/License/views/promo-banner.php:27 +#: inc/Engine/License/views/promo-banner.php:29 msgid "Hurry Up! Deal ends in:" msgstr "عجله کنید! تخفیف پایان میابد در:" -#: inc/Engine/License/views/promo-banner.php:31 -#: inc/Engine/License/views/renewal-soon-banner.php:14 +#: inc/Engine/License/views/promo-banner.php:33 +#: inc/Engine/License/views/renewal-soon-banner.php:16 msgid "Minutes" msgstr "دقایق" -#: inc/Engine/License/views/promo-banner.php:32 -#: inc/Engine/License/views/renewal-soon-banner.php:15 +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/renewal-soon-banner.php:17 msgid "Seconds" msgstr "ثانیه" -#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/promo-banner.php:36 #: inc/Engine/License/views/upgrade-section.php:11 msgid "Upgrade now" msgstr "اکنون ارتقاء دهید" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:13 msgid "The Optimize CSS Delivery feature is disabled." msgstr "ویژگی Optimize CSS Delivery غیرفعال است." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:17 msgid "" "You can no longer use the Remove Unused CSS or Load CSS asynchronously " "options." @@ -3116,7 +3138,7 @@ msgstr "" "استفاده کنید." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:22 msgid "" "You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " "which addresses a PageSpeed Insights recommendation and improves your page " @@ -3125,25 +3147,25 @@ msgstr "" "شما به %1$sلایسنس فعال%2$sبرای قابلیت Optimize CSS Delivery نیاز دارید،که به" " توصیه PageSpeed Insights پرداخته و عملکرد صفحه شما را بهبود می بخشد." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:29 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:39 -#: inc/Engine/License/views/renewal-expired-banner.php:27 -#: inc/Engine/License/views/renewal-soon-banner.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:41 +#: inc/Engine/License/views/renewal-expired-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:33 msgid "Renew now" msgstr "تمدید کنید" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:13 msgid "You will soon lose access to some features." msgstr "به زودی دسترسی به برخی از ویژگی ها را از دست خواهید داد." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:20 msgid "" "You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" "شما به لایسنس%1$sفعال نیاز دارید تا بهینه سازی تحویل css ادامه یابد%2$s." -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:26 msgid "" "The Remove Unused CSS and Load CSS asynchronously features are great options" " to address the PageSpeed Insights recommendations and improve your website " @@ -3154,16 +3176,16 @@ msgstr "" "هستند." #. translators: %1$s = , %2$s = , %3$s = date. -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:31 msgid "These features will be %1$sautomatically disabled on %3$s%2$s." msgstr "این ویژگی ها%1$s به طور خودکار غیرفعال می شوند در%3$s%2$s." -#: inc/Engine/License/views/renewal-expired-banner.php:11 +#: inc/Engine/License/views/renewal-expired-banner.php:13 msgid "Your WP Rocket license is expired!" msgstr "لایسنس شما نامعتبر است!" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner.php:18 +#: inc/Engine/License/views/renewal-expired-banner.php:20 msgid "" "Your website could be much faster if it could take advantage of our %1$snew " "features and enhancements%2$s. 🚀" @@ -3172,7 +3194,7 @@ msgstr "" "سازی%2$s. 🚀" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-soon-banner.php:22 +#: inc/Engine/License/views/renewal-soon-banner.php:24 msgid "" "Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access" " to product updates and support." @@ -3180,12 +3202,12 @@ msgstr "" "لایسنس%1$s افزونه شما در حال انقضاء%2$sاست: به زودی دسترسی به بروزرسانی " "محصول و پشتیبانی را نخواهید داشت." -#: inc/Engine/License/views/upgrade-popin.php:12 +#: inc/Engine/License/views/upgrade-popin.php:14 msgid "Speed Up More Websites" msgstr "سایت های بیشتری را پرسرعت کنید" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:19 +#: inc/Engine/License/views/upgrade-popin.php:21 msgid "" "You can use WP Rocket on more websites by upgrading your license. To " "upgrade, simply pay the %1$sprice difference%2$s between your current and " @@ -3196,23 +3218,23 @@ msgstr "" "پرداخت نمایید." #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:25 +#: inc/Engine/License/views/upgrade-popin.php:27 msgid "" "%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "%1$sN.B.%2$s: ارتقاء لایسنس شما تفاوتی در تاریخ انقضاء ایجاد نمی کند" #. translators: %s = price. -#: inc/Engine/License/views/upgrade-popin.php:35 +#: inc/Engine/License/views/upgrade-popin.php:37 msgid "Save $%s" msgstr "ذخیره$%s" #. translators: %s = number of websites. -#: inc/Engine/License/views/upgrade-popin.php:48 +#: inc/Engine/License/views/upgrade-popin.php:50 msgid "%s websites" msgstr "%s سایت" #. translators: %s = license name. -#: inc/Engine/License/views/upgrade-popin.php:54 +#: inc/Engine/License/views/upgrade-popin.php:56 msgid "Upgrade to %s" msgstr "ارتقاء به %s" @@ -3224,11 +3246,6 @@ msgstr "" "می توانید با ارتقاء لایسنس از موشک وردپرس در وب سایت های بیشتری استفاده کنید" " (فقط تفاوت قیمت بین لایسنس های فعلی و جدید خود را پرداخت خواهید کرد)." -#. translators: %1$s = plugin name. -#: inc/Engine/Media/AboveTheFold/Admin/Controller.php:143 -msgid "%1$s: Critical images cleared!" -msgstr "%1$s:تصاویر بحرانی حذف شدند!" - #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "باگذاری با تاخیر تصاویر" @@ -3241,15 +3258,15 @@ msgstr "بارگذاری با تاخیر آی‌‌فریم‌ها\\ویدیوه msgid "LazyLoad CSS backgrounds" msgstr "بارگذاری تنبل پس ضمینه CSS" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:195 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:194 msgid "Analytics & Ads" msgstr "آنالیتیکس / تبلیغات" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:200 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:199 msgid "Plugins" msgstr "افزونه ها" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:205 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:204 msgid "Themes" msgstr "قالب ها" @@ -3296,17 +3313,20 @@ msgstr "فشرده کردن/ترکیب جاوا اسکریپت" msgid "Minify CSS" msgstr "فشرده‌سازی CSS" +#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 +msgid "Remove Unused CSS" +msgstr "حذف CSS بدون استفاده" + #. translators: %1$s = plugin name, %2$s = table name, %3$s = open tag, #. %4$s = closing tag. #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:253 msgid "" "%1$s: Could not create the %2$s table in the database which is necessary for" -" the Remove Unused CSS feature to work. Please reach out to %3$sour " -"support%4$s." +" the Remove Unused CSS feature to work. Please check our " +"%3$sdocumentation%4$s." msgstr "" -"%1$s: نمی تواند ایجاد شود%2$s جدول در پایگاه داده که نیاز است برای حذف CSS " -"های بلا استفاده برای کارکرد صحیح آن. لطفا برای اطلاعات بیشتر%3$sپشتیبانی " -"ما%4$sتماس بگیرید." +"%1$s:نمی تواند ایجاد کند%2$s جدول در پایگاه داده که برای حذف CSS بلااستفاده " +"کار کند. لطفا مستندات%3$sدراینجا%4$sبررسی کنید." #. translators: %1$s = plugin name. #: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:274 @@ -3314,7 +3334,7 @@ msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: کش CSS استفاده شده پاک شد!" #. translators: %1$s = plugin name. -#: inc/Engine/Preload/Admin/Settings.php:57 +#: inc/Engine/Preload/Admin/Settings.php:76 msgid "" "%1$s: The preload service is now active. After the initial preload it will " "continue to cache all your pages whenever they are purged. No further action" @@ -3332,29 +3352,20 @@ msgstr "کارهای معلق پیش بارگذاری" msgid "WP Rocket Preload revert stuck failed jobs" msgstr "پیش بارگذاری برگرداندن کارهای ناموفق گیر کرده است" -#: inc/Engine/Saas/Admin/AdminBar.php:73 -#: inc/Engine/Saas/Admin/AdminBar.php:194 -msgid "Clear Critical Images" -msgstr "پاکسازی تصاویر بحرانی" - -#: inc/Engine/Saas/Admin/AdminBar.php:160 -msgid "Clear Critical Images of this URL" -msgstr "پاکسازی تصاویر این url" - -#: inc/Engine/Saas/Admin/AdminBar.php:163 +#: inc/Engine/Saas/Admin/AdminBar.php:106 msgid "Clear Used CSS of this URL" msgstr "پاکسازی CSS استفاده شده برای این URL" -#: inc/Engine/Saas/Admin/AdminBar.php:193 -msgid "Critical Images Cache" -msgstr "کش تصاویر بحرانی" +#: inc/Engine/Saas/Admin/AdminBar.php:133 +msgid "Used CSS" +msgstr "CSS استفاده شده" -#: inc/Engine/Saas/Admin/AdminBar.php:197 -msgid "Remove Used CSS Cache" -msgstr "حذف کش CSS استفاده شده" +#: inc/Engine/Saas/Admin/AdminBar.php:136 +msgid "This action will clear the used CSS files." +msgstr "این عمل همه فایل های CSS استفاده شده را حذف می کند." #. translators: %1$s = plugin name, %2$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:104 +#: inc/Engine/Saas/Admin/Notices.php:91 msgid "" "%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing " "your pages, the plugin is optimizing LCP and the images above the fold." @@ -3364,7 +3375,7 @@ msgstr "" #. translators: %1$s = plugin name, %2$s = number of URLs, %3$s = number of #. seconds. -#: inc/Engine/Saas/Admin/Notices.php:147 +#: inc/Engine/Saas/Admin/Notices.php:134 msgid "" "%1$s: The LCP element has been optimized, and the images above the fold were excluded from lazyload. The Used CSS of your homepage has been processed.\n" "\t\t\t WP Rocket will continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." @@ -3373,16 +3384,16 @@ msgstr "" "\t\t\tWP Rocket به تولید CSS استفاده شده تا حداکثر ادامه خواهد داد%2$surlها هر%3$sثانیه()." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:160 +#: inc/Engine/Saas/Admin/Notices.php:157 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "ما پیشنهاد می کنیم %1$sپیش بارگذاری%2$s برای نتایج سریعتر فعال کنید." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:167 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "برای یادگیری پروسه %1$sمستندات%2$s مارا بخوانید." -#: inc/Engine/Saas/Admin/Notices.php:236 +#: inc/Engine/Saas/Admin/Notices.php:229 msgid "" "We couldn't generate the used CSS because you're using a nulled version of " "WP Rocket. You need an active license to use the Remove Unused CSS feature " @@ -3393,12 +3404,12 @@ msgstr "" "بیشتر عملکرد وب سایت خود، به یک مجوز فعال نیاز دارید." #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:239 +#: inc/Engine/Saas/Admin/Notices.php:232 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "برای دریافت لایسنس %1$sتخفیفی اینجا کلیک کنید!" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:292 +#: inc/Engine/Saas/Admin/Notices.php:285 msgid "" "It seems a security plugin or the server's firewall prevents WP Rocket from " "accessing the SaaS features. IPs listed %1$shere in our documentation%2$s " @@ -3408,11 +3419,11 @@ msgstr "" "های SaaS جلوگیری می کند. لیست آیپی ها%1$sمستندات اینجا%2$sباید به لیست " "مجازتان اضافله شود:" -#: inc/Engine/Saas/Admin/Notices.php:297 +#: inc/Engine/Saas/Admin/Notices.php:290 msgid "- In the security plugin, if you are using one" msgstr "- در افزونه امنیت، اگر شما از یکی از آن ها استفاده کنید" -#: inc/Engine/Saas/Admin/Notices.php:298 +#: inc/Engine/Saas/Admin/Notices.php:291 msgid "- In the server's firewall. Your host can help you with this" msgstr "- در فایروال سرور. شرکت هاست شما کمکتان می کند" @@ -3782,7 +3793,7 @@ msgstr[0] "لطفا گزینه %s را برای تداخل با ویژگی ها msgstr[1] "لطفا گزینه %s را برای تداخل با ویژگی های موشک وردپرس غیرفعال کنید:" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:156 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" @@ -3791,7 +3802,7 @@ msgstr "" "ایموجی%3$s" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:192 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " @@ -3800,7 +3811,7 @@ msgstr "" "%1$s %2$sGZIP compression%3$s تداخل با موشک وردپرس %2$sGZIP compression%3$s" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:228 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " @@ -3809,14 +3820,14 @@ msgstr "" "%1$s %2$sbrowser caching%3$sتداخل با موشک وردپرس %2$sbrowser caching%3$s" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:260 msgctxt "Hummingbird notice" msgid "" "%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" msgstr "%1$s %2$spage caching%3$s تداخل با موشک وردپرس %2$spage caching%3$s" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:294 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " @@ -4086,7 +4097,6 @@ msgstr "CDN CNAME" msgid "Purges RocketCDN cached resources for your website. %s" msgstr "تخلیه منابع کش شده RocketCDN برای وب سایت شما.%s" -#. translators: %s is a "Learn more" link. #: views/settings/fields/rocket-cdn.php:63 #: views/settings/page-sections/cloudflare.php:36 #: views/settings/page-sections/sucuri.php:37 @@ -4123,7 +4133,6 @@ msgstr "کش Cloudflare" msgid "Purges cached resources for your website. %s" msgstr "پاک‌سازی منابع کش شده برای وب‌سایت شما. %s" -#. translators: %s is a "Learn more" link. #: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" @@ -4132,19 +4141,19 @@ msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" msgid "Clear all Cloudflare cache files" msgstr "پاک‌سازی فایل‌های کش Cloudflare" -#: views/settings/page-sections/dashboard.php:38 +#: views/settings/page-sections/dashboard.php:39 msgid "Congratulations!" msgstr "تبریک می‌گوییم!" -#: views/settings/page-sections/dashboard.php:40 +#: views/settings/page-sections/dashboard.php:41 msgid "WP Rocket is now activated and already working for you." msgstr "راکت وردپرس با موفیت فعال شده و بطور کامل کار می کند." -#: views/settings/page-sections/dashboard.php:42 +#: views/settings/page-sections/dashboard.php:43 msgid "Your website should be loading faster now!" msgstr "وب سایت شما باید سریعتر بارگیری شود!" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "To guarantee fast websites, WP Rocket automatically applies 80% of web " "performance best practices." @@ -4152,64 +4161,89 @@ msgstr "" "گارانتی سرعت بالای سایت،موشک وردپرس خودکار 80% o عملکرد سایت را بهبود می " "بخشد." -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "We also enable options that provide immediate benefits to your website." msgstr "" "ما همچنین گزینه هایی را که مزایای فوری وب سایت شما را ارائه می دهند فعال می " "کنیم." -#: views/settings/page-sections/dashboard.php:45 +#: views/settings/page-sections/dashboard.php:46 msgid "Continue to the options to further optimize your site!" msgstr "گزینه‌ها را برای بهینه سازی بیشتر وبسایت خود مشاهده نمایید!" -#: views/settings/page-sections/dashboard.php:62 +#: views/settings/page-sections/dashboard.php:63 msgid "My Account" msgstr "حساب من" -#: views/settings/page-sections/dashboard.php:68 +#: views/settings/page-sections/dashboard.php:69 msgid "Refresh info" msgstr "نوسازی اطلاعات" -#: views/settings/page-sections/dashboard.php:86 +#: views/settings/page-sections/dashboard.php:87 msgid "with" msgstr "با" -#: views/settings/page-sections/dashboard.php:100 +#: views/settings/page-sections/dashboard.php:101 msgid "Expiration Date" msgstr "تاریخ انقضا" -#: views/settings/page-sections/dashboard.php:110 +#: views/settings/page-sections/dashboard.php:111 msgid "View my account" msgstr "مشاهده حساب من" +#: views/settings/page-sections/dashboard.php:131 views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "تجزیه و تحلیل موشک" + +#. translators: %1$s = opening tag, %2$s = closing tag. #: views/settings/page-sections/dashboard.php:137 +msgid "" +"I agree to share anonymous data with the development team to help improve WP" +" Rocket. %1$sWhat info will we collect?%2$s" +msgstr "" +"من با اشتراک گذاری داده‌های ناشناس با تیم توسعه برای گسترش موشک وردپرس " +"موافقم. %1$sچه اطلاعاتی را جمع آوری می‌کنیم؟%2$s" + +#: views/settings/page-sections/dashboard.php:155 msgid "Quick Actions" msgstr "عملیات سریع" -#: views/settings/page-sections/dashboard.php:144 -msgid "Remove all cached files" -msgstr "حذف همه فایل‌های کش شده" +#: views/settings/page-sections/dashboard.php:162 +msgid "Cache files" +msgstr "فایل های کش شده" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear and preload all the cache files." +msgstr "این عمل فایل های کش شده و پیش بارگذاری را حذف می کند." -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear all the cache files." +msgstr "این عمل همه فایل های کش شده را حذف می کند." + +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear and preload" +msgstr "پاکسازی و پیش بارگذاری" + +#: views/settings/page-sections/dashboard.php:183 +#: views/settings/page-sections/dashboard.php:189 msgid "Regenerate Critical CSS" msgstr "بازسازی مسیر قطعی CSS" -#: views/settings/page-sections/dashboard.php:196 +#: views/settings/page-sections/dashboard.php:215 msgid "Frequently Asked Questions" msgstr "سوالات متداول" -#: views/settings/page-sections/dashboard.php:210 +#: views/settings/page-sections/dashboard.php:229 msgid "Still cannot find a solution?" msgstr "هنوز مشکل شما حل نشده است؟" -#: views/settings/page-sections/dashboard.php:211 +#: views/settings/page-sections/dashboard.php:230 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "تیکی ارسال کنید و از پشتیبان‌های با دانش ما کمک بگیرید." -#: views/settings/page-sections/dashboard.php:219 +#: views/settings/page-sections/dashboard.php:238 msgid "Ask support" msgstr "درخواست پشتیبانی" @@ -4227,39 +4261,55 @@ msgstr "" msgid "Save Changes and Optimize" msgstr "ذخیره تغییرات و بهینه سازی" -#. Translators: %1$s = , %2$s = , %3$s = , %4$s = . -#: views/settings/page-sections/imagify.php:21 -msgid "" -"%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image " -"optimization.%2$s" -msgstr "" -"%1$sموشک وردپرس%2$sساخته شده%3$sIMAGIFY%4$s %1$sبرای بهینه سازی تصاویر.%2$s" - -#: views/settings/page-sections/imagify.php:24 +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:22 msgid "" -"Compress image to make your website faster, all while maintaining image " -"quality." +"%1$sWP Rocket created IMAGIFY to give your website an extra speed boost!%2$s" msgstr "" -"فشرده سازی تصویر برای سریعتر شدن وب سایت شما ، در عین حفظ کیفیت تصویر." - -#: views/settings/page-sections/imagify.php:25 -msgid "More on Imagify:" -msgstr "بیشتر در Imagify:" - -#: views/settings/page-sections/imagify.php:27 -msgid "Imagify Plugin Page" -msgstr "برگه افزونه Imagify" +"%1$sراکت وردپرس IMAGIFY ایجاد کرد تا به سایت شما سرعت مضاعفی بدهد!%2$s" #: views/settings/page-sections/imagify.php:28 -msgid "Imagify Website" -msgstr "سایت Imagify" - -#: views/settings/page-sections/imagify.php:29 -msgid "Review of Image Compression Plugins" -msgstr "نقدوبررسی افزونه فشرده سازی تصویر" - -#: views/settings/page-sections/imagify.php:38 +msgid "Images can account for 50% of your loading time!" +msgstr "تصاویر می توانند 50 درصد از زمان بارگذاری شما را تشکیل دهند!" + +#: views/settings/page-sections/imagify.php:31 +msgid "" +"Imagify automatically optimizes all your images, helping your website gain " +"precious seconds while saving you time. With just one click, it resizes, " +"compresses, and converts your images to WebP and AVIF formats without " +"sacrificing quality." +msgstr "" +"Imagify به طور خودکار تمام تصاویر شما را بهینه می کند و به وب سایت شما کمک " +"می کند تا ثانیه های ارزشمندی را بدست آورد و در عین حال در زمان شما صرفه جویی" +" کند. تنها با یک کلیک، تصاویر شما را بدون افت کیفیت به فرمت های WebP و AVIF " +"تغییر اندازه، فشرده و تبدیل می کند." + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:41 +msgid "%1$sCompress%2$s all your images in one click" +msgstr "%1$sفشرده%2$sهمه تصاویر با یک کلیک" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:49 +msgid "%1$sConvert%2$s images to WebP and Avif" +msgstr "%1$sتبدیل%2$sتصاویر به WebP و Avif" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:57 +msgid "%1$sResize%2$s your images on the fly" +msgstr "%1$sتغییرسایز%2$sتصاویر شما" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:65 +msgid "%1$sFree plan%2$s includes 20MB/month (around 200 images)" +msgstr "%1$sپلن رایگان%2$sشامل 20مگ/ماهانه (حدود 200 تصویر)" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:83 +msgid "%1$sInstall Imagify, the Easiest WordPress Image Optimizer%2$s" +msgstr "%1$sنصب Imagify، راحترین بهینه سازی تصویر وردپرس%2$s" + +#: views/settings/page-sections/imagify.php:110 msgid "Install Imagify" msgstr "نصب Imagify" diff --git a/languages/rocket-fr_FR.po b/languages/rocket-fr_FR.po index 2e0d07ff4a..445940680f 100644 --- a/languages/rocket-fr_FR.po +++ b/languages/rocket-fr_FR.po @@ -6,9 +6,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha2\n" -"Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2024-05-06T13:28:35+03:00\n" +"Project-Id-Version: WP Rocket 3.17-alpha4\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" +"POT-Creation-Date: 2024-09-13T17:57:31+00:00\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Romain • WP Rocket , 2024\n" "Language-Team: French (France) (https://app.transifex.com/wp-media/teams/18133/fr_FR/)\n" @@ -18,7 +18,7 @@ msgstr "" "Language: fr_FR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "X-Domain: rocket\n" -"X-Generator: WP-CLI 2.7.1\n" +"X-Generator: WP-CLI 2.4.0\n" #. Plugin Name of the plugin msgid "WP Rocket" @@ -49,9 +49,9 @@ msgstr "https://wp-media.me" #: inc/ThirdParty/Hostings/Godaddy.php:63 #: inc/ThirdParty/Hostings/O2Switch.php:49 #: inc/ThirdParty/Hostings/OneCom.php:137 -#: inc/ThirdParty/Hostings/Pressidium.php:49 +#: inc/ThirdParty/Hostings/Pressidium.php:50 #: inc/ThirdParty/Hostings/ProIsp.php:51 inc/ThirdParty/Hostings/Savvii.php:50 -#: inc/ThirdParty/Hostings/WPEngine.php:47 +#: inc/ThirdParty/Hostings/WPEngine.php:46 #: inc/ThirdParty/Hostings/WPXCloud.php:51 msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for " @@ -182,41 +182,31 @@ msgstr "Niveau de cache de Cloudflare défini à %s" #. translators: %s is the message returned by the CloudFlare API. #: inc/Addon/Cloudflare/Subscriber.php:368 -msgid "Cloudflare minification error: %s" -msgstr "Erreur de la minification CloudFlare : %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:375 -msgid "Cloudflare minification %s" -msgstr "Minification CloudFlare %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare rocket loader error: %s" msgstr "Erreur du Rocket Loader de CloudFlare : %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:400 +#: inc/Addon/Cloudflare/Subscriber.php:375 msgid "Cloudflare rocket loader %s" msgstr "Rocket Loader de CloudFlare %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:418 +#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare browser cache error: %s" msgstr "Erreur du cache navigateur CloudFlare : %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:425 +#: inc/Addon/Cloudflare/Subscriber.php:400 msgid "Cloudflare browser cache set to %s" msgstr "Cache navigateur de Cloudflare réglé sur %s " #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:536 +#: inc/Addon/Cloudflare/Subscriber.php:507 msgid "%1$sWP Rocket:%2$s Optimal settings activated for Cloudflare:" msgstr "%1$sWP Rocket :%2$s Réglages optimaux activés pour Cloudflare :" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:545 +#: inc/Addon/Cloudflare/Subscriber.php:516 msgid "" "%1$sWP Rocket:%2$s Optimal settings deactivated for Cloudflare, reverted to " "previous settings:" @@ -224,7 +214,7 @@ msgstr "" "%1$sWP Rocket :%2$s Réglages optimaux désactivés pour Cloudflare, retour aux" " réglages précédents :" -#: inc/Addon/Cloudflare/Subscriber.php:661 inc/admin/options.php:165 +#: inc/Addon/Cloudflare/Subscriber.php:632 inc/admin/options.php:165 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 msgid "WP Rocket: " msgstr "WP Rocket :" @@ -384,7 +374,7 @@ msgid "Settings" msgstr "Réglages" #: inc/admin/admin.php:96 inc/admin/admin.php:117 inc/deprecated/3.5.php:898 -#: inc/Engine/Cache/AdminSubscriber.php:134 +#: inc/Engine/Cache/AdminSubscriber.php:135 msgid "Clear this cache" msgstr "Vider ce cache" @@ -418,17 +408,17 @@ msgstr "L'import des réglages a échoué : type de fichier incorrect." msgid "Settings imported and saved." msgstr "Réglages importés et sauvegardés." -#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:571 +#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:551 msgid "Excluded CSS Files" msgstr "Fichiers CSS à exclure" -#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:725 +#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:699 msgid "Excluded Inline JavaScript" msgstr "JavaScript inline exclu" -#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:743 -#: inc/Engine/Admin/Settings/Page.php:776 -#: inc/Engine/Admin/Settings/Page.php:823 +#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:717 +#: inc/Engine/Admin/Settings/Page.php:750 +#: inc/Engine/Admin/Settings/Page.php:797 msgid "Excluded JavaScript Files" msgstr "Fichiers JavaScript exclus" @@ -440,19 +430,19 @@ msgstr "Charger le JavaScript en différé" msgid "Excluded Delay JavaScript Files" msgstr "Fichiers JavaScript exclus du report de l'éxecution" -#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1229 +#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1203 msgid "Never Cache URL(s)" msgstr "Ne jamais mettre en cache ces URL(s)" -#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1243 +#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1217 msgid "Never Cache User Agent(s)" msgstr "Ne jamais mettre en cache ces User Agents" -#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1249 +#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1223 msgid "Always Purge URL(s)" msgstr "Toujours purger ces URL(s)" -#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1530 +#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1504 msgid "Exclude files from CDN" msgstr "Exclure des fichiers du CDN" @@ -473,8 +463,6 @@ msgid "More info" msgstr "Plus d'infos" #: inc/admin/ui/meta-boxes.php:37 inc/admin/ui/notices.php:671 -#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 msgid "Clear cache" msgstr "Vider le cache" @@ -657,16 +645,15 @@ msgstr "%s : Cache Terme vidé." msgid "%s: User cache cleared." msgstr "%s : Cache Utilisateur vidé." -#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:32 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:42 -#: inc/Engine/License/views/renewal-expired-banner.php:30 -#: views/settings/page-sections/dashboard.php:46 +#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:38 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:34 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:44 +#: inc/Engine/License/views/renewal-expired-banner.php:32 +#: views/settings/page-sections/dashboard.php:47 msgid "Dismiss this notice" msgstr "Ne pas tenir compte de cet avertissement." -#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:84 -#: inc/Engine/Saas/Admin/AdminBar.php:202 +#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:51 msgid "Clear Used CSS" msgstr "Purger le CSS utilisé" @@ -748,8 +735,8 @@ msgstr "Réinstaller la version %s" #: inc/classes/class-wp-rocket-requirements-check.php:203 #: inc/classes/class-wp-rocket-requirements-check.php:214 #: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 -#: inc/Engine/Plugin/UpdaterSubscriber.php:483 -#: inc/Engine/Plugin/UpdaterSubscriber.php:497 +#: inc/Engine/Plugin/UpdaterSubscriber.php:477 +#: inc/Engine/Plugin/UpdaterSubscriber.php:491 msgid "%s Update Rollback" msgstr "Retour à la version %s" @@ -781,10 +768,13 @@ msgstr "" "pas/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" #: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 -msgid "Clear and preload cache" +msgid "Clear and Preload Cache" msgstr "Vider et précharger le cache" +#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 +msgid "Clear Cache" +msgstr "Vider le cache" + #: inc/common/admin-bar.php:131 inc/functions/i18n.php:20 msgid "All languages" msgstr "Toutes les langues" @@ -809,7 +799,7 @@ msgstr "Purger le cache de RocketCDN" msgid "Documentation" msgstr "Documentation" -#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 +#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:107 msgid "Activate Imagify" msgstr "Activer Imagify" @@ -955,7 +945,7 @@ msgstr "" "Vous pouvez cocher l'option pour l'inclure dans le préchargement." #. translators: 1 and 3 are link openings, 2 is a link closing. -#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:520 +#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:514 msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "%1$sRetour à WP Rocket%2$s ou %3$sà la page des Plugins%2$s" @@ -1037,7 +1027,7 @@ msgstr "" msgid "Choose a file from your computer (maximum size: %s)" msgstr "Choisissez un fichier sur votre ordinateur (taille maximum : %s)" -#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:422 +#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:469 msgid "Upload file and import settings" msgstr "Envoyer le fichier et importer les réglages" @@ -1120,8 +1110,8 @@ msgstr "Options de base" msgid "Static Files" msgstr "Fichiers Statiques" -#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1500 -#: inc/Engine/Admin/Settings/Page.php:1511 +#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1485 #: inc/Engine/CDN/Admin/Subscriber.php:28 msgid "CDN" msgstr "CDN" @@ -1130,22 +1120,22 @@ msgstr "CDN" msgid "Advanced" msgstr "Options avancées" -#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1345 +#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1319 msgid "Database" msgstr "Base de données" -#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1051 +#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1025 msgid "Preload" msgstr "Préchargement" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:173 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "Outils" -#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:357 -#: views/settings/page-sections/dashboard.php:80 +#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:368 +#: views/settings/page-sections/dashboard.php:81 msgid "License" msgstr "Licence" @@ -1188,27 +1178,27 @@ msgid "weekly" msgstr "hebdomadaire" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1389 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Revisions" msgstr "Révisions" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1373 msgid "Auto Drafts" msgstr "Brouillons auto" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1409 +#: inc/Engine/Admin/Settings/Page.php:1383 msgid "Trashed Posts" msgstr "Contenus dans la corbeille" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1393 msgid "Spam Comments" msgstr "Commentaires indésirables" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1429 +#: inc/Engine/Admin/Settings/Page.php:1403 msgid "Trashed Comments" msgstr "Commentaires à la corbeille" @@ -1262,64 +1252,46 @@ msgstr "" msgid "Regenerate WP Rocket configuration files now" msgstr "Regénérer les fichiers de configuration de WP Rocket maintenant" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Save Changes" msgstr "Enregistrer les modifications" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Validate License" msgstr "Valider la licence" -#: inc/Engine/Admin/Settings/Page.php:279 -#: inc/Engine/Admin/Settings/Page.php:280 inc/functions/admin.php:550 +#: inc/Engine/Admin/Settings/Page.php:278 +#: inc/Engine/Admin/Settings/Page.php:279 inc/functions/admin.php:550 msgid "Unavailable" msgstr "Indisponible" -#: inc/Engine/Admin/Settings/Page.php:374 +#: inc/Engine/Admin/Settings/Page.php:385 msgid "API key" msgstr "Clé API" -#: inc/Engine/Admin/Settings/Page.php:389 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Email address" msgstr "Adresse e-mail" -#: inc/Engine/Admin/Settings/Page.php:415 +#: inc/Engine/Admin/Settings/Page.php:426 msgid "Dashboard" msgstr "Tableau de bord" -#: inc/Engine/Admin/Settings/Page.php:416 +#: inc/Engine/Admin/Settings/Page.php:427 msgid "Get help, account info" msgstr "Aide, info du compte" -#: inc/Engine/Admin/Settings/Page.php:425 -msgid "My Status" -msgstr "Ma situation" - -#: inc/Engine/Admin/Settings/Page.php:435 views/settings/page.php:75 -msgid "Rocket Analytics" -msgstr "Rocket Analytics" - -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:437 -msgid "" -"I agree to share anonymous data with the development team to help improve WP" -" Rocket. %1$sWhat info will we collect?%2$s" -msgstr "" -"J'accepte de partager des données anonymes avec l'équipe de développement " -"pour aider à améliorer WP Rocket. %1$sQuelles informations collecterons-nous" -" ?%2$s" - -#: inc/Engine/Admin/Settings/Page.php:489 +#: inc/Engine/Admin/Settings/Page.php:475 msgid "File Optimization" msgstr "Optimisation des fichiers" -#: inc/Engine/Admin/Settings/Page.php:490 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Optimize CSS & JS" msgstr "Optimisez CSS & JS" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:498 +#: inc/Engine/Admin/Settings/Page.php:484 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable this option in Autoptimize." @@ -1328,17 +1300,17 @@ msgstr "" "Autoptimize. Si vous souhaitez utiliser la minification de " "%2$s, désactivez ces options dans Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:508 +#: inc/Engine/Admin/Settings/Page.php:494 msgid "CSS Files" msgstr "Fichiers CSS" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:503 msgid "JavaScript Files" msgstr "Fichiers JavaScript" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:524 +#: inc/Engine/Admin/Settings/Page.php:510 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable those options in Autoptimize." @@ -1347,7 +1319,7 @@ msgstr "" "Autoptimize. Si vous souhaitez utiliser la minification de " "%2$s, désactivez ces options dans Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:529 +#: inc/Engine/Admin/Settings/Page.php:515 msgid "" "If you have problems after activating this option, copy and paste the " "default exclusions to quickly resolve issues:" @@ -1356,7 +1328,7 @@ msgstr "" "collez les exclusions par défaut pour résoudre rapidement les problèmes :" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:519 msgid "" "Also, please check our %1$sdocumentation%2$s for a list of compatibility " "exclusions." @@ -1364,7 +1336,7 @@ msgstr "" "Veuillez également consulter notre %1$sdocumentation%2$s pour une liste " "d'exclusions de compatibilité." -#: inc/Engine/Admin/Settings/Page.php:538 +#: inc/Engine/Admin/Settings/Page.php:524 msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " "take full advantage of this option." @@ -1373,53 +1345,30 @@ msgstr "" "Supprimez-les pour profiter pleinement de cette option." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:527 msgid "" "If this causes trouble, restore the default exclusions, found %1$shere%2$s" msgstr "" "En cas de problème, rétablissez les exclusions par défaut que vous trouverez" " %1$sici%2$s" -#: inc/Engine/Admin/Settings/Page.php:550 +#: inc/Engine/Admin/Settings/Page.php:536 msgid "Minify CSS files" msgstr "Minifier les fichiers CSS" -#: inc/Engine/Admin/Settings/Page.php:551 +#: inc/Engine/Admin/Settings/Page.php:537 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "Supprime les espace et les commentaires afin de réduire la taille des " "fichiers CSS." -#: inc/Engine/Admin/Settings/Page.php:564 -#: inc/Engine/Admin/Settings/Page.php:628 -#: inc/Engine/Admin/Settings/Page.php:694 -#: inc/Engine/Admin/Settings/Page.php:718 -msgid "This could break things!" -msgstr "Ceci pourrait casser des choses sur votre site !" - -#: inc/Engine/Admin/Settings/Page.php:565 -#: inc/Engine/Admin/Settings/Page.php:629 -#: inc/Engine/Admin/Settings/Page.php:695 -#: inc/Engine/Admin/Settings/Page.php:719 -msgid "" -"If you notice any errors on your website after having activated this " -"setting, just deactivate it again, and your site will be back to normal." -msgstr "" -"Si vous remarquez des problèmes sur votre site Web après avoir activé cette " -"option, il vous suffit simplement de la désactiver et votre site sera de " -"nouveau normal." - -#: inc/Engine/Admin/Settings/Page.php:566 -msgid "Activate minify CSS" -msgstr "Activer la minification CSS" - -#: inc/Engine/Admin/Settings/Page.php:572 +#: inc/Engine/Admin/Settings/Page.php:552 msgid "" "Specify URLs of CSS files to be excluded from minification (one per line)." msgstr "" "Indiquez l’URL des fichiers CSS à exclure de la minification (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:573 +#: inc/Engine/Admin/Settings/Page.php:553 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -1430,7 +1379,7 @@ msgstr "" " fichiers CSS pour un chemin donné." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:575 +#: inc/Engine/Admin/Settings/Page.php:555 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external CSS. %1$sMore info%2$s" @@ -1439,12 +1388,12 @@ msgstr "" "le nom de domaine, pour exclure les fichiers CSS externes. %1$sPlus " "d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:588 -#: inc/Engine/Admin/Settings/Page.php:610 +#: inc/Engine/Admin/Settings/Page.php:568 +#: inc/Engine/Admin/Settings/Page.php:590 msgid "Optimize CSS delivery" msgstr "Optimiser le chargement du CSS" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1454,7 +1403,7 @@ msgstr "" "site Web. Une seule méthode peut être sélectionnée. La méthode Supprimer les" " CSS inutilisés est recommandée pour des performances optimales." -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1465,7 +1414,7 @@ msgstr "" "les CSS inutilisés est recommandée pour des performances optimales." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:603 +#: inc/Engine/Admin/Settings/Page.php:583 msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" " more%2$s" @@ -1473,13 +1422,12 @@ msgstr "" "Les options Optimiser le chargement CSS sont désactivées en local. %1$sEn " "savoir plus%2$s" -#: inc/Engine/Admin/Settings/Page.php:623 -#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 -msgid "Remove Unused CSS" -msgstr "Supprimer les ressources CSS inutilisées" +#: inc/Engine/Admin/Settings/Page.php:603 +msgid "Remove Unused CSS (RUCSS)" +msgstr "Supprimer les ressources CSS inutilisées (RUCSS)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:606 msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." " Recommended for best performance. Test thoroughly! %1$sMore info%2$s" @@ -1488,15 +1436,30 @@ msgstr "" "pages et les requêtes HTTP. Recommandé pour de meilleures performances. " "Testez-le rigoureusement ! %1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:630 +#: inc/Engine/Admin/Settings/Page.php:608 +#: inc/Engine/Admin/Settings/Page.php:692 +msgid "This could break things!" +msgstr "Ceci pourrait casser des choses sur votre site !" + +#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"If you notice any errors on your website after having activated this " +"setting, just deactivate it again, and your site will be back to normal." +msgstr "" +"Si vous remarquez des problèmes sur votre site Web après avoir activé cette " +"option, il vous suffit simplement de la désactiver et votre site sera de " +"nouveau normal." + +#: inc/Engine/Admin/Settings/Page.php:610 msgid "Activate Remove Unused CSS" msgstr "Activer Supprimer les ressources CSS inutilisées" -#: inc/Engine/Admin/Settings/Page.php:636 +#: inc/Engine/Admin/Settings/Page.php:616 msgid "CSS safelist" msgstr "Liste des exceptions CSS" -#: inc/Engine/Admin/Settings/Page.php:637 +#: inc/Engine/Admin/Settings/Page.php:617 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -1504,13 +1467,13 @@ msgstr "" "Indiquez les noms de fichiers CSS, les ID ou les classes qui ne doivent pas " "être supprimés (un par ligne)." -#: inc/Engine/Admin/Settings/Page.php:652 -#: inc/Engine/CriticalPath/Admin/Subscriber.php:200 +#: inc/Engine/Admin/Settings/Page.php:632 +#: inc/Engine/CriticalPath/Admin/Subscriber.php:201 msgid "Load CSS asynchronously" msgstr "Chargement asynchrone du CSS" #. translators: %1$s = plugin name. -#: inc/Engine/Admin/Settings/Page.php:655 +#: inc/Engine/Admin/Settings/Page.php:635 msgctxt "WP Critical CSS compatibility" msgid "" "Load CSS asynchronously is currently handled by the %1$s plugin. If you want" @@ -1521,19 +1484,19 @@ msgstr "" "Rocket, désactivez le plugin %1$s." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:657 +#: inc/Engine/Admin/Settings/Page.php:637 msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" "Génère le Critical Path CSS et charge les CSS de manière asynchrone. " "%1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:663 +#: inc/Engine/Admin/Settings/Page.php:643 msgid "Fallback critical CSS" msgstr "Critical CSS de secours" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:645 msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " "%1$sMore info%2$s" @@ -1541,22 +1504,18 @@ msgstr "" "Fourni un critical path CSS de secours si celui auto-généré est " "incomplet.%1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:680 +#: inc/Engine/Admin/Settings/Page.php:660 msgid "Minify JavaScript files" msgstr "Minifier les fichiers JS" -#: inc/Engine/Admin/Settings/Page.php:681 +#: inc/Engine/Admin/Settings/Page.php:661 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "Supprime les espace et les commentaires afin de réduire la taille des " "fichiers JS." -#: inc/Engine/Admin/Settings/Page.php:696 -msgid "Activate minify JavaScript" -msgstr "Activer la minification JavaScript" - -#: inc/Engine/Admin/Settings/Page.php:701 +#: inc/Engine/Admin/Settings/Page.php:675 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" @@ -1564,7 +1523,7 @@ msgstr "" "pouvoir séléctionner)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:703 +#: inc/Engine/Admin/Settings/Page.php:677 msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" " JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " @@ -1574,8 +1533,7 @@ msgstr "" "seul fichier, réduisant le nombre de requêtes HTTP. Ces réglages ne sont pas" " recommandés si votre site utilise HTTP/2. %1$sPlus d'infos%2$s" -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:704 +#: inc/Engine/Admin/Settings/Page.php:678 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -1584,12 +1542,12 @@ msgstr "" "cette option est désactivée lorsque l'option Reporter l'exécution JavaScript" " est activée." -#: inc/Engine/Admin/Settings/Page.php:720 +#: inc/Engine/Admin/Settings/Page.php:694 msgid "Activate combine JavaScript" msgstr "Activer la combinaison JavaScript" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:701 msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" " per line). %1$sMore info%2$s" @@ -1597,7 +1555,7 @@ msgstr "" "Indiquez les patterns du code JavaScript inline à exclure de la " "concaténation (un par ligne).%1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:744 +#: inc/Engine/Admin/Settings/Page.php:718 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -1605,7 +1563,7 @@ msgstr "" "Indiquez l’URL des fichiers JavaScript à exclure de la minification et de la" " concaténation (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:745 +#: inc/Engine/Admin/Settings/Page.php:719 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -1616,7 +1574,7 @@ msgstr "" "fichiers JS pour un chemin donné." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:747 +#: inc/Engine/Admin/Settings/Page.php:721 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external JS. %1$sMore info%2$s" @@ -1625,13 +1583,13 @@ msgstr "" "le nom de domaine, pour exclure les fichiers JS externes. %1$sPlus " "d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:763 +#: inc/Engine/Admin/Settings/Page.php:737 #: inc/Engine/Optimization/DeferJS/AdminSubscriber.php:76 msgid "Load JavaScript deferred" msgstr "Charger le JavaScript en différé" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:765 +#: inc/Engine/Admin/Settings/Page.php:739 msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " "improve load time. %1$sMore info%2$s" @@ -1640,7 +1598,7 @@ msgstr "" "chargement perçu. %1$sPlus d'infos%2$s" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:778 +#: inc/Engine/Admin/Settings/Page.php:752 msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " "per line). %1$sMore info%2$s" @@ -1648,13 +1606,13 @@ msgstr "" "Indiquez les URLs ou des mots-clés des fichiers JavaScript à exclure du " "chargement différé (une par ligne). %1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:768 #: inc/Engine/Optimization/DelayJS/Admin/Subscriber.php:210 msgid "Delay JavaScript execution" msgstr "Reporter l'exécution JavaScript" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:796 +#: inc/Engine/Admin/Settings/Page.php:770 msgid "" "Improves performance by delaying the loading of JavaScript files until user " "interaction (e.g. scroll, click). %1$sMore info%2$s" @@ -1663,11 +1621,11 @@ msgstr "" " jusqu'à l'interaction avec l'utilisateur (ex: défilement, clic). %1$sPlus " "d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:805 +#: inc/Engine/Admin/Settings/Page.php:779 msgid "One-click exclusions" msgstr "Exclusions en un clic" -#: inc/Engine/Admin/Settings/Page.php:806 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "" "When using the Delay JavaScript Execution, you might experience delay " "loading elements located in the viewport that need to appear immediately - " @@ -1677,7 +1635,7 @@ msgstr "" "peut que le chargement d'éléments qui doivent apparaître immédiatement soit " "retardé - ex. : un slider, un en-tête, un menu." -#: inc/Engine/Admin/Settings/Page.php:807 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "If you need instant visibility, click below on files that should NOT be " "delayed. This selection will help users interact with the elements straight " @@ -1687,7 +1645,7 @@ msgstr "" "fichiers qui ne doivent PAS être reportés. Cela permettra aux utilisateurs " "d'interagir immédiatement avec ces éléments." -#: inc/Engine/Admin/Settings/Page.php:824 +#: inc/Engine/Admin/Settings/Page.php:798 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -1695,24 +1653,24 @@ msgstr "" "Indiquez les URLs ou les mots-clés qui permettent d'identifier les fichiers " "JavaScript ou le JS inline à exclure du report d'exécution (un par ligne)." -#: inc/Engine/Admin/Settings/Page.php:856 +#: inc/Engine/Admin/Settings/Page.php:830 msgid "Media" msgstr "Média" -#: inc/Engine/Admin/Settings/Page.php:857 +#: inc/Engine/Admin/Settings/Page.php:831 msgid "LazyLoad, image dimensions" msgstr "LazyLoad, dimensions des images" -#: inc/Engine/Admin/Settings/Page.php:866 +#: inc/Engine/Admin/Settings/Page.php:840 msgid "Autoptimize" msgstr "Autoptimize" -#: inc/Engine/Admin/Settings/Page.php:920 +#: inc/Engine/Admin/Settings/Page.php:894 msgid "LazyLoad" msgstr "LazyLoad" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:923 +#: inc/Engine/Admin/Settings/Page.php:897 msgid "" "It can improve actual and perceived loading time as images, iframes, and " "videos will be loaded only as they enter (or about to enter) the viewport " @@ -1724,7 +1682,7 @@ msgstr "" "HTTP.%1$sPlus d'infos%2$s" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:930 +#: inc/Engine/Admin/Settings/Page.php:904 msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " "LazyLoad, disable this option in %2$s." @@ -1732,12 +1690,12 @@ msgstr "" "Le Lazyload est actuellement activé dans %2$s. Si vous souhaitez utiliser le" " Lazyload de WP Rocket, désactivez cette option dans %2$s." -#: inc/Engine/Admin/Settings/Page.php:933 +#: inc/Engine/Admin/Settings/Page.php:907 msgid "Image Dimensions" msgstr "Dimensions des images" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:910 msgid "" "Add missing width and height attributes to images. Helps prevent layout " "shifts and improve the reading experience for your visitors. %1$sMore " @@ -1747,12 +1705,12 @@ msgstr "" "d'éviter les changements de mise en page et d'améliorer l'expérience de " "lecture de vos visiteurs. %1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:955 +#: inc/Engine/Admin/Settings/Page.php:929 msgid "Enable for images" msgstr "Activer pour les images" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:967 +#: inc/Engine/Admin/Settings/Page.php:941 msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " "%1$s’s LazyLoad, disable this option in %2$s." @@ -1760,27 +1718,27 @@ msgstr "" "Le Lazyload est actuellement activé dans %2$s. Si vous souhaitez utiliser le" " Lazyload de %1$s, désactivez cette option dans %2$s." -#: inc/Engine/Admin/Settings/Page.php:975 +#: inc/Engine/Admin/Settings/Page.php:949 msgid "Enable for CSS background images" msgstr "Activer pour les images background CSS" -#: inc/Engine/Admin/Settings/Page.php:990 +#: inc/Engine/Admin/Settings/Page.php:964 msgid "Enable for iframes and videos" msgstr "Activer sur les iframes et vidéos" -#: inc/Engine/Admin/Settings/Page.php:1005 +#: inc/Engine/Admin/Settings/Page.php:979 msgid "Replace YouTube iframe with preview image" msgstr "Remplacer l'iframe Youtube par une image d'aperçu" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "Remplacer l'iframe Youtube par une image d’aperçu n’est pas compatible avec " "%2$s." #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -1788,12 +1746,12 @@ msgstr "" "Cela peut considérablement améliorer votre chargement si vous avez beaucoup " "de vidéos Youtube sur une page." -#: inc/Engine/Admin/Settings/Page.php:1022 +#: inc/Engine/Admin/Settings/Page.php:996 msgid "Excluded images or iframes" msgstr "Images ou iframes exclues" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1024 +#: inc/Engine/Admin/Settings/Page.php:998 msgid "" "Specify keywords (e.g. image filename, CSS filename, CSS class, domain) from" " the image or iframe code to be excluded (one per line). %1$sMore info%2$s" @@ -1802,20 +1760,20 @@ msgstr "" "images ou le code de l'iframe à exclure (une par ligne). %1$sPlus " "d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:1032 +#: inc/Engine/Admin/Settings/Page.php:1006 msgid "Add missing image dimensions" msgstr "Ajouter les dimensions d'image manquantes" -#: inc/Engine/Admin/Settings/Page.php:1052 +#: inc/Engine/Admin/Settings/Page.php:1026 msgid "Generate cache files, preload fonts" msgstr "Générez le cache, préchargez les polices" -#: inc/Engine/Admin/Settings/Page.php:1064 +#: inc/Engine/Admin/Settings/Page.php:1038 msgid "Preload Cache" msgstr "Préchargement du cache" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1067 +#: inc/Engine/Admin/Settings/Page.php:1041 msgid "" "When you enable preloading WP Rocket will automatically detect your sitemaps" " and save all URLs to the database. The plugin will make sure that your " @@ -1825,12 +1783,12 @@ msgstr "" " sitemaps et enregistre toutes les URLs dans la base de données. L'extension" " s'assurera que votre cache est toujours préchargé." -#: inc/Engine/Admin/Settings/Page.php:1075 +#: inc/Engine/Admin/Settings/Page.php:1049 msgid "Preload Links" msgstr "Préchargement des liens" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1052 msgid "" "Link preloading improves the perceived load time by downloading a page when " "a user hovers over the link. %1$sMore info%2$s" @@ -1839,11 +1797,11 @@ msgstr "" "téléchargeant une page lorsqu'un utilisateur survole le lien. %1$sPlus " "d'info%2$s" -#: inc/Engine/Admin/Settings/Page.php:1086 +#: inc/Engine/Admin/Settings/Page.php:1060 msgid "Prefetch DNS Requests" msgstr "Préchargement des requêtes DNS" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1851,12 +1809,12 @@ msgstr "" "Le préchargement des requêtes DNS peut permettre aux ressources externes de " "charger plus rapidement, surtout sur les réseaux mobiles." -#: inc/Engine/Admin/Settings/Page.php:1093 +#: inc/Engine/Admin/Settings/Page.php:1067 msgid "Preload Fonts" msgstr "Préchargement des polices" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1096 +#: inc/Engine/Admin/Settings/Page.php:1070 msgid "" "Improves performance by helping browsers discover fonts in CSS files. " "%1$sMore info%2$s" @@ -1864,16 +1822,16 @@ msgstr "" "Améliore les performances en aidant les navigateurs à découvrir les polices " "contenues dans les fichiers CSS. %1$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1084 msgid "Activate Preloading" msgstr "Activer le préchargement" -#: inc/Engine/Admin/Settings/Page.php:1121 +#: inc/Engine/Admin/Settings/Page.php:1095 msgid "Exclude URLs" msgstr "URLs à exclure" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1126 +#: inc/Engine/Admin/Settings/Page.php:1100 msgid "" "Specify URLs to be excluded from the preload feature (one per line). " "%1$sMore info%2$s" @@ -1881,11 +1839,11 @@ msgstr "" "Indiquez les URL à exclure du préchargement (une par ligne). %1$sPlus " "d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:1137 +#: inc/Engine/Admin/Settings/Page.php:1111 msgid "URLs to prefetch" msgstr "URLs à précharger" -#: inc/Engine/Admin/Settings/Page.php:1138 +#: inc/Engine/Admin/Settings/Page.php:1112 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1893,11 +1851,11 @@ msgstr "" "Indiquez les hôtes externes à précharger (sans http:, un par " "ligne)" -#: inc/Engine/Admin/Settings/Page.php:1147 +#: inc/Engine/Admin/Settings/Page.php:1121 msgid "Fonts to preload" msgstr "Polices à précharger" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1122 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1906,7 +1864,7 @@ msgstr "" "polices doivent être hébergées sur votre propre domaine, ou le domaine que " "vous avez spécifié dans l'onglet CDN." -#: inc/Engine/Admin/Settings/Page.php:1149 +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1914,53 +1872,53 @@ msgstr "" "Le nom de domaine sera supprimé automatiquement de l’URL.
Extensions de " "police autorisées : otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1132 msgid "Enable link preloading" msgstr "Activer le préchargement des liens" -#: inc/Engine/Admin/Settings/Page.php:1177 +#: inc/Engine/Admin/Settings/Page.php:1151 msgid "Advanced Rules" msgstr "Règles avancées" -#: inc/Engine/Admin/Settings/Page.php:1178 +#: inc/Engine/Admin/Settings/Page.php:1152 msgid "Fine-tune cache rules" msgstr "Affinez les règles du cache" -#: inc/Engine/Admin/Settings/Page.php:1191 +#: inc/Engine/Admin/Settings/Page.php:1165 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "Les pages sensibles telles que les URLs de connexion / déconnexion " "personnalisées doivent être exclues du cache." -#: inc/Engine/Admin/Settings/Page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1168 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1196 +#: inc/Engine/Admin/Settings/Page.php:1170 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1198 +#: inc/Engine/Admin/Settings/Page.php:1172 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1200 +#: inc/Engine/Admin/Settings/Page.php:1174 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1202 +#: inc/Engine/Admin/Settings/Page.php:1176 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" #. translators: %1$s = opening tag, %2$s = plugin name, %3$s closing #. tag. -#: inc/Engine/Admin/Settings/Page.php:1208 +#: inc/Engine/Admin/Settings/Page.php:1182 msgid "" "
Cart, checkout and \"my account\" pages set in " "%1$s%2$s%3$s will be detected and never cached by default." @@ -1969,12 +1927,12 @@ msgstr "" "%1$s%2$s%3$s seront automatiquement détectées et exclues du" " cache par défaut." -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1192 msgid "Cache Lifespan" msgstr "Délai de nettoyage du cache" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1221 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " "%1$spreloading%2$s for the cache to be rebuilt automatically after lifespan " @@ -1984,16 +1942,16 @@ msgstr "" "supprimés.
Activez %1$sle préchargement%2$s pour que le cache soit " "rechargé automatiquement après ce délai." -#: inc/Engine/Admin/Settings/Page.php:1237 +#: inc/Engine/Admin/Settings/Page.php:1211 msgid "Never Cache Cookies" msgstr "Ne jamais mettre en cache ces Cookies" -#: inc/Engine/Admin/Settings/Page.php:1255 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "Cache Query String(s)" msgstr "Cacher les Query String(s)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1232 msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " "GET parameters." @@ -2001,7 +1959,7 @@ msgstr "" "%1$sCacher les Query Strings%2$s vous permet de forcer la mise en cache de " "paramètres GET spécifiques." -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1243 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" @@ -2009,7 +1967,7 @@ msgstr "" "illimité)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1271 +#: inc/Engine/Admin/Settings/Page.php:1245 msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" " periodically. %1$sWhy?%2$s" @@ -2017,27 +1975,27 @@ msgstr "" "Réduisez ce délai à 10 heures ou moins si vous remarquez des problèmes " "apparaissant seulement périodiquement.%1$sPourquoi ?%2$s" -#: inc/Engine/Admin/Settings/Page.php:1277 -#: inc/Engine/License/views/promo-banner.php:30 -#: inc/Engine/License/views/renewal-soon-banner.php:13 +#: inc/Engine/Admin/Settings/Page.php:1251 +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 msgid "Hours" msgstr "Heures" -#: inc/Engine/Admin/Settings/Page.php:1278 -#: inc/Engine/License/views/promo-banner.php:29 -#: inc/Engine/License/views/renewal-soon-banner.php:12 +#: inc/Engine/Admin/Settings/Page.php:1252 +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 msgid "Days" msgstr "Jours" -#: inc/Engine/Admin/Settings/Page.php:1283 +#: inc/Engine/Admin/Settings/Page.php:1257 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Indiquez les URLs des pages ou des articles qui doivent être exclues de la " "mise en cache (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:1284 -#: inc/Engine/Admin/Settings/Page.php:1312 +#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1286 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -2046,7 +2004,7 @@ msgstr "" "expressions régulières (.*) pour exclure plusieurs URLs pour un chemin " "donné." -#: inc/Engine/Admin/Settings/Page.php:1293 +#: inc/Engine/Admin/Settings/Page.php:1267 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -2054,20 +2012,20 @@ msgstr "" "Indiquez les IDs des cookies qui, lorsqu'ils sont déposés dans le navigateur" " du visiteur, devraient empêcher la mise en cache de la page (un par ligne)" -#: inc/Engine/Admin/Settings/Page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1275 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Indiquez les chaînes de user agent qui ne devraient jamais voir les pages " "mises en cache (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:1302 +#: inc/Engine/Admin/Settings/Page.php:1276 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "Utilisez les expressions régulières (.*) détecter les parties des chaînes " "des UA." -#: inc/Engine/Admin/Settings/Page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1285 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -2075,20 +2033,20 @@ msgstr "" "Indiquez les URLs dont vous voulez systématiquement vider le cache lorsque " "vous mettez à jour n'importe quel article ou page (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:1320 +#: inc/Engine/Admin/Settings/Page.php:1294 msgid "Specify query strings for caching (one per line)" msgstr "" "Indiquez les query strings qui peuvent être mises en cache (une par ligne)" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1320 msgid "Optimize, reduce bloat" msgstr "Optimisez & nettoyez" -#: inc/Engine/Admin/Settings/Page.php:1353 +#: inc/Engine/Admin/Settings/Page.php:1327 msgid "Post Cleanup" msgstr "Nettoyage des contenus" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1329 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -2096,19 +2054,19 @@ msgstr "" "Les révisions et les brouillons seront supprimés définitivement. N'utilisez " "pas cette option si vous souhaitez conserver vos révisions et brouillons." -#: inc/Engine/Admin/Settings/Page.php:1360 +#: inc/Engine/Admin/Settings/Page.php:1334 msgid "Comments Cleanup" msgstr "Nettoyage des commentaires" -#: inc/Engine/Admin/Settings/Page.php:1362 +#: inc/Engine/Admin/Settings/Page.php:1336 msgid "Spam and trashed comments will be permanently deleted." msgstr "Les Spams et les commentaires mis à la corbeille seront supprimés" -#: inc/Engine/Admin/Settings/Page.php:1366 +#: inc/Engine/Admin/Settings/Page.php:1340 msgid "Transients Cleanup" msgstr "Nettoyage des transients" -#: inc/Engine/Admin/Settings/Page.php:1368 +#: inc/Engine/Admin/Settings/Page.php:1342 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -2117,21 +2075,21 @@ msgstr "" "risque. Elles seront automatiquement régénérées si vos plugins en ont " "besoin." -#: inc/Engine/Admin/Settings/Page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1346 msgid "Database Cleanup" msgstr "Nettoyage de la base de données" -#: inc/Engine/Admin/Settings/Page.php:1374 +#: inc/Engine/Admin/Settings/Page.php:1348 msgid "Reduces overhead of database tables" msgstr "Réduit les tables de la base de données" -#: inc/Engine/Admin/Settings/Page.php:1378 +#: inc/Engine/Admin/Settings/Page.php:1352 msgid "Automatic Cleanup" msgstr "Nettoyage automatique" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1391 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "%s révision dans votre base de données." @@ -2140,7 +2098,7 @@ msgstr[2] "%s révisions dans votre base de données." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1401 +#: inc/Engine/Admin/Settings/Page.php:1375 msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "%s brouillon dans votre base de données." @@ -2149,7 +2107,7 @@ msgstr[2] "%s brouillons dans votre base de données." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1411 +#: inc/Engine/Admin/Settings/Page.php:1385 msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "%s contenu à la corbeille dans votre base de données." @@ -2158,7 +2116,7 @@ msgstr[2] "%s contenus à la corbeille dans votre base de données." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1395 msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "%s commentaire indésirable dans votre base de données." @@ -2167,64 +2125,64 @@ msgstr[2] "%s commentaires indésirables dans votre base de données." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1405 msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "%s commentaire mis à la corbeille dans votre base de données." msgstr[1] "%s commentaires mis à la corbeille dans votre base de données." msgstr[2] "%s commentaires mis à la corbeille dans votre base de données." -#: inc/Engine/Admin/Settings/Page.php:1439 +#: inc/Engine/Admin/Settings/Page.php:1413 msgid "All transients" msgstr "Tous les transients" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1441 +#: inc/Engine/Admin/Settings/Page.php:1415 msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "%s transient dans votre base de données." msgstr[1] "%s transients dans votre base de données." msgstr[2] "%s transients dans votre base de données." -#: inc/Engine/Admin/Settings/Page.php:1449 +#: inc/Engine/Admin/Settings/Page.php:1423 msgid "Optimize Tables" msgstr "Optimiser les tables" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1451 +#: inc/Engine/Admin/Settings/Page.php:1425 msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "%s table à optimiser dans votre base de données." msgstr[1] "%s tables à optimiser dans votre base de données." msgstr[2] "%s tables à optimiser dans votre base de données." -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1436 msgid "Schedule Automatic Cleanup" msgstr "Planifier le nettoyage automatique" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1448 msgid "Frequency" msgstr "Fréquence" -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1456 msgid "Daily" msgstr "Journalier" -#: inc/Engine/Admin/Settings/Page.php:1483 +#: inc/Engine/Admin/Settings/Page.php:1457 msgid "Weekly" msgstr "Hebdomadaire" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1458 msgid "Monthly" msgstr "Mensuel" -#: inc/Engine/Admin/Settings/Page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1475 msgid "Integrate your CDN" msgstr "Intégrez votre CDN" -#: inc/Engine/Admin/Settings/Page.php:1513 +#: inc/Engine/Admin/Settings/Page.php:1487 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -2233,7 +2191,7 @@ msgstr "" "écrites avec le CNAME fourni." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1489 msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " "available %1$sAdd-ons%2$s." @@ -2243,7 +2201,7 @@ msgstr "" #. translators: %1$s = opening em tag, %2$l = list of add-on name(s), %3$s = #. closing em tag. -#: inc/Engine/Admin/Settings/Page.php:1561 +#: inc/Engine/Admin/Settings/Page.php:1533 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -2262,28 +2220,28 @@ msgstr[2] "" "paramètres CDN n’est pas nécessaire pour que %2$l fonctionnent sur votre " "site." -#: inc/Engine/Admin/Settings/Page.php:1587 +#: inc/Engine/Admin/Settings/Page.php:1559 msgid "Enable Content Delivery Network" msgstr "Activer le Content Delivery Network." -#: inc/Engine/Admin/Settings/Page.php:1596 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:159 +#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:162 msgid "CDN CNAME(s)" msgstr "CNAME(s) CDN" -#: inc/Engine/Admin/Settings/Page.php:1597 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:160 +#: inc/Engine/Admin/Settings/Page.php:1569 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:163 msgid "Specify the CNAME(s) below" msgstr "Indiquez le(s) CNAME(s) ci-dessous" -#: inc/Engine/Admin/Settings/Page.php:1604 +#: inc/Engine/Admin/Settings/Page.php:1576 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "Indiquez les URLs des fichiers qui ne doivent pas être servies par le CDN " "(une par ligne)." -#: inc/Engine/Admin/Settings/Page.php:1605 +#: inc/Engine/Admin/Settings/Page.php:1577 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -2293,16 +2251,16 @@ msgstr "" "expressions régulières (.*) pour exclure plusieurs URLs pour un chemin " "donné." -#: inc/Engine/Admin/Settings/Page.php:1628 -#: inc/Engine/Admin/Settings/Page.php:1636 +#: inc/Engine/Admin/Settings/Page.php:1600 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Heartbeat" msgstr "Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1601 msgid "Control WordPress Heartbeat API" msgstr "Contrôlez l'API WordPress Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1637 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -2310,11 +2268,11 @@ msgstr "" "Réduire ou désactiver l’activité de l’API Heartbeat peut permettre " "d’économiser certaines ressources de votre serveur." -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1615 msgid "Reduce or disable Heartbeat activity" msgstr "Réduire ou désactiver l'activité Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -2322,55 +2280,55 @@ msgstr "" "La réduction de l'activité fera passer la fréquence Heartbeat d'un coup " "toutes les minutes à un coup toutes les 2 minutes." -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "La désactivation complète de Heartbeat peut endommager les plugins et les " "thèmes utilisant cette API." -#: inc/Engine/Admin/Settings/Page.php:1658 +#: inc/Engine/Admin/Settings/Page.php:1630 msgid "Do not limit" msgstr "Ne pas limiter" -#: inc/Engine/Admin/Settings/Page.php:1659 +#: inc/Engine/Admin/Settings/Page.php:1631 msgid "Reduce activity" msgstr "Réduire l'activité" -#: inc/Engine/Admin/Settings/Page.php:1660 +#: inc/Engine/Admin/Settings/Page.php:1632 msgid "Disable" msgstr "Désactiver" -#: inc/Engine/Admin/Settings/Page.php:1668 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Control Heartbeat" msgstr "Contrôler Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1677 +#: inc/Engine/Admin/Settings/Page.php:1649 msgid "Behavior in backend" msgstr "Comportement en Backend" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1656 msgid "Behavior in post editor" msgstr "Comportement dans l’éditeur d'article" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Behavior in frontend" msgstr "Comportement en Frontend" -#: inc/Engine/Admin/Settings/Page.php:1709 +#: inc/Engine/Admin/Settings/Page.php:1681 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Add-ons" -#: inc/Engine/Admin/Settings/Page.php:1710 +#: inc/Engine/Admin/Settings/Page.php:1682 msgid "Add more features" msgstr "Ajoutez des fonctionnalités" -#: inc/Engine/Admin/Settings/Page.php:1717 +#: inc/Engine/Admin/Settings/Page.php:1689 msgid "One-click Rocket Add-ons" msgstr "One-click Rocket Add-ons" -#: inc/Engine/Admin/Settings/Page.php:1718 +#: inc/Engine/Admin/Settings/Page.php:1690 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -2379,21 +2337,21 @@ msgstr "" "disponibles sans besoin de configuration. Mettez l'option sur \"ON\" pour " "l'activer depuis cet écran." -#: inc/Engine/Admin/Settings/Page.php:1728 +#: inc/Engine/Admin/Settings/Page.php:1700 msgid "Rocket Add-ons" msgstr "Rocket Add-ons" -#: inc/Engine/Admin/Settings/Page.php:1729 +#: inc/Engine/Admin/Settings/Page.php:1701 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Ce sont de simples fonctionnalités complémentaires étendant les option déjà " "disponibles." -#: inc/Engine/Admin/Settings/Page.php:1740 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "User Cache" msgstr "Cache utilisateur" -#: inc/Engine/Admin/Settings/Page.php:1746 +#: inc/Engine/Admin/Settings/Page.php:1718 msgid "" "If you need to create a dedicated set of cache files for each logged-in " "WordPress user, you must activate this add-on." @@ -2402,7 +2360,7 @@ msgstr "" "chaque utilisateur connecté à WordPress, vous devez activer cet add-on." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "User cache is great when you have user-specific or restricted content on " "your website.
%1$sLearn more%2$s" @@ -2410,16 +2368,16 @@ msgstr "" "Le cache utilisateur est parfait si vous avez du contenu spécifique ou " "restreint pour les utilisateurs de votre site.
%1$sEn savoir plus%2$s" -#: inc/Engine/Admin/Settings/Page.php:1761 -#: inc/Engine/Admin/Settings/Page.php:1930 +#: inc/Engine/Admin/Settings/Page.php:1733 +#: inc/Engine/Admin/Settings/Page.php:1902 msgid "Cloudflare" msgstr "CloudFlare" -#: inc/Engine/Admin/Settings/Page.php:1767 +#: inc/Engine/Admin/Settings/Page.php:1739 msgid "Integrate your Cloudflare account with this add-on." msgstr "Intégrez votre compte Cloudflare avec cet add-on" -#: inc/Engine/Admin/Settings/Page.php:1768 +#: inc/Engine/Admin/Settings/Page.php:1740 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -2430,7 +2388,7 @@ msgstr "" "réglages optimaux pour WP Rocket." #. translators: %1$s = opening span tag, %2$s = closing span tag. -#: inc/Engine/Admin/Settings/Page.php:1771 +#: inc/Engine/Admin/Settings/Page.php:1743 msgid "" "%1$sPlanning on using Automatic Platform Optimization (APO)?%2$s Just " "activate the official Cloudflare plugin and configure it. WP Rocket will " @@ -2440,16 +2398,16 @@ msgstr "" " suffit d'activer le plugin officiel Cloudflare et de le configurer. WP " "Rocket activera automatiquement la compatibilité." -#: inc/Engine/Admin/Settings/Page.php:1819 +#: inc/Engine/Admin/Settings/Page.php:1791 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1825 +#: inc/Engine/Admin/Settings/Page.php:1797 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "Si votre serveur utilise Varnish, vous devez activer cet add-on" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1827 +#: inc/Engine/Admin/Settings/Page.php:1799 msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" @@ -2458,16 +2416,16 @@ msgstr "" "pour vous assurer que le contenu soit toujours à jour.
%1$sEn savoir " "plus%2$s" -#: inc/Engine/Admin/Settings/Page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:1834 msgid "WebP Compatibility" msgstr "Compatibilité WebP" -#: inc/Engine/Admin/Settings/Page.php:1868 +#: inc/Engine/Admin/Settings/Page.php:1840 msgid "Improve browser compatibility for WebP images." msgstr "Améliore la compatibilité des navigateurs pour les images WebP." #. translators: %1$s and %3$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1872 +#: inc/Engine/Admin/Settings/Page.php:1844 msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " "compatible browsers. Please note that WP Rocket cannot create WebP images " @@ -2479,11 +2437,11 @@ msgstr "" "d'images WebP pour vous. Pour créer des images WebP, nous vous recommandons " "%1$sImagify%2$s. %3$sPlus d'infos%2$s" -#: inc/Engine/Admin/Settings/Page.php:1892 +#: inc/Engine/Admin/Settings/Page.php:1864 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "Effacez le cache Sucuri lorsque le cache de WP Rocket est effacé." -#: inc/Engine/Admin/Settings/Page.php:1895 +#: inc/Engine/Admin/Settings/Page.php:1867 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -2491,49 +2449,49 @@ msgstr "" "Fournissez votre clé API pour vider le cache Sucuri lorsque le cache de WP " "Rocket est effacé." -#: inc/Engine/Admin/Settings/Page.php:1903 -#: inc/Engine/Admin/Settings/Page.php:2047 +#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:2019 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1909 +#: inc/Engine/Admin/Settings/Page.php:1881 msgid "Synchronize Sucuri cache with this add-on." msgstr "Synchronisez le cache Sucuri avec cet add-on." -#: inc/Engine/Admin/Settings/Page.php:1947 +#: inc/Engine/Admin/Settings/Page.php:1919 msgid "Cloudflare credentials" msgstr "Accès CloudFlare" -#: inc/Engine/Admin/Settings/Page.php:1956 +#: inc/Engine/Admin/Settings/Page.php:1928 msgid "Cloudflare settings" msgstr "Réglages CloudFlare" -#: inc/Engine/Admin/Settings/Page.php:1970 +#: inc/Engine/Admin/Settings/Page.php:1942 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Clé API globale :" -#: inc/Engine/Admin/Settings/Page.php:1971 +#: inc/Engine/Admin/Settings/Page.php:1943 msgctxt "Cloudflare" msgid "Find your API key" msgstr "Trouver votre clé API" -#: inc/Engine/Admin/Settings/Page.php:1983 +#: inc/Engine/Admin/Settings/Page.php:1955 msgctxt "Cloudflare" msgid "Account email" msgstr "E-mail du compte" -#: inc/Engine/Admin/Settings/Page.php:1992 +#: inc/Engine/Admin/Settings/Page.php:1964 msgctxt "Cloudflare" msgid "Zone ID" msgstr "Zone ID" -#: inc/Engine/Admin/Settings/Page.php:2002 +#: inc/Engine/Admin/Settings/Page.php:1974 msgid "Development mode" msgstr "Mode développement" #. translators: %1$s = link opening tag, %2$s = link closing tag. -#: inc/Engine/Admin/Settings/Page.php:2004 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" @@ -2541,11 +2499,11 @@ msgstr "" "Active temporairement le mode développement sur votre site. Ce réglage se " "désactivera automatiquement après 3 heures. %1$sEn savoir plus%2$s" -#: inc/Engine/Admin/Settings/Page.php:2012 +#: inc/Engine/Admin/Settings/Page.php:1984 msgid "Optimal settings" msgstr "Réglages optimaux" -#: inc/Engine/Admin/Settings/Page.php:2013 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -2553,11 +2511,11 @@ msgstr "" "Améliore automatiquement votre configuration Cloudflare pour le temps de " "chargement, les notes de performance et la compatibilité." -#: inc/Engine/Admin/Settings/Page.php:2021 +#: inc/Engine/Admin/Settings/Page.php:1993 msgid "Relative protocol" msgstr "Protocol relatif" -#: inc/Engine/Admin/Settings/Page.php:2022 +#: inc/Engine/Admin/Settings/Page.php:1994 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -2567,11 +2525,11 @@ msgstr "" "URLs de vos fichiers statiques (CSS, JS, images) seront ré-écrites pour " "utiliser // au lieu de http:// ou https:// ." -#: inc/Engine/Admin/Settings/Page.php:2060 +#: inc/Engine/Admin/Settings/Page.php:2032 msgid "Sucuri credentials" msgstr "Accès Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2073 +#: inc/Engine/Admin/Settings/Page.php:2045 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -2580,24 +2538,22 @@ msgstr "" "La clé API du pare-feu (pour cette extension) doit être au format {32 " "caractères}/{32 caractères} :" -#: inc/Engine/Admin/Settings/Page.php:2074 +#: inc/Engine/Admin/Settings/Page.php:2046 msgctxt "Sucuri" msgid "Find your API key" msgstr "Trouver votre clé API" #. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: -#. opening a tag, %4$s: option a tag, %5$s: opening a tag. -#: inc/Engine/Admin/Settings/Page.php:2295 +#. opening a tag, %4$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2251 msgid "" -"%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our " -"brand new feature %3$sOptimize critical images%5$s is automatically " -"activated now! Also, the Cache tab was removed but the existing features " -"will remain working, %4$ssee more here%5$s." +"%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New " +"feature: %3$sLazy Render Content%4$s. Check out our documentation to learn " +"more about it." msgstr "" -"%1$sWP Rocket :%2$s le plugin a été mis à jour vers la version 3.16. Notre " -"nouvelle fonctionnalité %3$sOptimiser les images essentielles%5$s est " -"automatiquement activée ! L'onglet Cache a également été supprimé, mais les " -"fonctionnalités habituelles sont toujours présentes, %4$sen savoir plus%5$s." +"%1$sWP Rocket :%2$s le plugin a été mis à jour vers la version 3.17. " +"Nouvelle fonctionnalité : %3$s Rendu différé automatique %4$s. Consultez " +"notre documentation pour en savoir plus." #: inc/Engine/Admin/Settings/Settings.php:361 msgid "" @@ -2616,25 +2572,25 @@ msgstr "" "ces URL(s) n'a pas été sauvegardé car cette valeur désactive le cache et les" " optimisations sur toutes les pages du site." -#: inc/Engine/Admin/Settings/Subscriber.php:172 +#: inc/Engine/Admin/Settings/Subscriber.php:174 msgid "Import, Export, Rollback" msgstr "Importez, exportez, restaurez" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:199 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "Optimisation des images" -#: inc/Engine/Admin/Settings/Subscriber.php:198 +#: inc/Engine/Admin/Settings/Subscriber.php:200 msgid "Compress your images" msgstr "Compressez vos images" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:217 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "Tutoriels" -#: inc/Engine/Admin/Settings/Subscriber.php:216 +#: inc/Engine/Admin/Settings/Subscriber.php:218 msgid "Getting started and how to videos" msgstr "Prise en main et tutos vidéos" @@ -2642,15 +2598,15 @@ msgstr "Prise en main et tutos vidéos" msgid "WP Rocket Expired Cache Interval" msgstr "Intervalle de cache de WP Rocket expiré" -#: inc/Engine/Cache/WPCache.php:337 +#: inc/Engine/Cache/WPCache.php:338 msgid "WP_CACHE value" msgstr "valeur de WP_CACHE" -#: inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Cache/WPCache.php:355 msgid "Cache" msgstr "Cache" -#: inc/Engine/Cache/WPCache.php:358 +#: inc/Engine/Cache/WPCache.php:359 msgid "" "The WP_CACHE constant needs to be set to true for WP Rocket cache to work " "properly" @@ -2658,38 +2614,38 @@ msgstr "" "La constante WP_CACHE doit être définie à true pour que le cache de WP " "Rocket fonctionne correctement" -#: inc/Engine/Cache/WPCache.php:367 +#: inc/Engine/Cache/WPCache.php:368 msgid "WP_CACHE is set to true" msgstr "WP_CACHE est réglée sur true" -#: inc/Engine/Cache/WPCache.php:375 +#: inc/Engine/Cache/WPCache.php:376 msgid "WP_CACHE is not set" msgstr "WP_CACHE n’est pas définie" -#: inc/Engine/Cache/WPCache.php:383 +#: inc/Engine/Cache/WPCache.php:384 msgid "WP_CACHE is set to false" msgstr "WP_CACHE est réglée sur false" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:96 msgid "Next Billing Date" msgstr "Prochaine date de facturation" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:99 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:103 msgid "No Subscription" msgstr "Pas d'abonnement" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:135 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:138 msgid "Your RocketCDN subscription is currently active." msgstr "Votre abonnement RocketCDN est actuellement actif." #. translators: %1$s = opening tag, %2$s = CDN URL, %3$s = closing #. tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:141 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:144 msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "Pour utiliser RocketCDN, remplacez votre CNAME par %1$s%2$s%3$s." #. translators: %1$is = opening link tag, %2$s = closing link tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:152 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:155 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:230 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:334 msgid "%1$sMore Info%2$s" @@ -2759,16 +2715,16 @@ msgstr "RocketCDN désactivé" #. Translators: %s = date formatted using date_i18n() and get_option( #. 'date_format' ). -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:29 msgid "Valid until %s only!" msgstr "Valable uniquement jusqu'au %s !" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:38 msgid "Speed up your website thanks to:" msgstr "Accélérez votre site web grâce à :" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:44 msgid "" "High performance Content Delivery Network (CDN) with %1$sunlimited " "bandwidth%2$s" @@ -2777,7 +2733,7 @@ msgstr "" "illimitée%2$s" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:50 msgid "" "Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "" @@ -2785,7 +2741,7 @@ msgstr "" "automatiquement appliqués" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:56 msgid "" "WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in" " our plugin" @@ -2793,12 +2749,12 @@ msgstr "" "Intégration à WP Rocket : l'option CDN est %1$sautomatiquement " "configurée%2$s dans notre plugin" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:60 msgid "Learn more about RocketCDN" msgstr "En savoir plus sur RocketCDN" #. translators: %1$s = discounted price, %2$s = regular price. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:67 msgid "" "*$%1$s/month for 12 months then $%2$s/month. You can cancel your " "subscription at any time." @@ -2806,33 +2762,33 @@ msgstr "" "*%1$s$/mois pour 12 mois puis %2$s$/mois. Vous pouvez résilier votre " "abonnement à tout moment." -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:88 msgid "Billed monthly" msgstr "Facturation mensuelle" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:89 msgid "Get Started" msgstr "S'abonner" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:94 msgid "Reduce this banner" msgstr "Réduire cette bannière" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:19 msgid "" "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "Accélérez votre site web grâce à RocketCDN, le CDN de WP Rocket." -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:22 #: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 msgid "Learn More" msgstr "En savoir plus" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:24 msgid "RocketCDN is unavailable on local domains and staging sites." msgstr "RocketCDN n'est pas disponible en local et sur les sites tests." -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:33 msgid "Get RocketCDN" msgstr "Obtenir RocketCDN" @@ -2845,6 +2801,18 @@ msgid "" "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network!" msgstr "Accélérez votre site web grâce à RocketCDN, le CDN de WP Rocket." +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:68 +msgid "Too many requests." +msgstr "Trop de requêtes." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:85 +msgid "Not valid response." +msgstr "Réponse non valide." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:151 +msgid "Not valid request type." +msgstr "Type de requête non valide." + #: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "WP Rocket traite les tâches en attente" @@ -2857,11 +2825,52 @@ msgstr "WP Rocket efface les tâches qui ont échoué" msgid "WP Rocket process on submit jobs" msgstr "WP Rocket traite les tâches en cours" -#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:265 +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:44 +msgid "Clear Priority Elements" +msgstr "Vider les Éléments prioritaires" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:79 +msgid "Clear Priority Elements of this URL" +msgstr "Vider les Éléments prioritaires pour cet URL" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:100 +msgid "Priority Elements" +msgstr "Éléments prioritaires" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:101 +#: inc/Engine/Saas/Admin/AdminBar.php:134 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear" +msgstr "Vider" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:103 +msgid "" +"This action will clear the Critical Images and Lazily Rendered Content." +msgstr "Cette action videra les Images critiques et le Rendu différé." + +#. translators: %1$s = plugin name. +#: inc/Engine/Common/PerformanceHints/Admin/Controller.php:135 +msgid "%1$s: Critical images and Lazy Render data was cleared!" +msgstr "%1$s : Images Critiques et Rendu différé effacés !" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:19 +msgid "Script error" +msgstr "Erreur du script" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:22 +msgid "Script timeout" +msgstr "Timeout du script" + +#. Translators: %s is the exception message. +#: inc/Engine/Common/Queue/Cleaner.php:87 +msgid "It was not possible to determine a valid cut-off time: %s." +msgstr "Il n'a pas été possible de déterminer une échéance valable : %s." + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:269 msgid "Every minute" msgstr "Chaque minute" -#: inc/Engine/CriticalPath/Admin/Admin.php:264 +#: inc/Engine/CriticalPath/Admin/Admin.php:265 msgid "Regenerate Critical Path CSS" msgstr "Régénérer Critical path CSS" @@ -2890,7 +2899,6 @@ msgstr "%l pour utiliser cette fonction." msgid "Publish the %s" msgstr "Publié le %s" -#. translators: %s = post type. #: inc/Engine/CriticalPath/Admin/Post.php:223 msgid "Enable Load CSS asynchronously in WP Rocket settings" msgstr "Activez Chargement Asynchrone du CSS dans les réglages de WP Rocket" @@ -2905,7 +2913,7 @@ msgid "Critical CSS for %1$s not generated. Error: %2$s" msgstr "Le Critical CSS pour %1$s n'a pas été généré. Erreur : %2$s" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:170 +#: inc/Engine/CriticalPath/APIClient.php:174 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "empty response." @@ -2914,7 +2922,7 @@ msgstr "" "réponse vide." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:173 +#: inc/Engine/CriticalPath/APIClient.php:177 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an empty " "response." @@ -2923,19 +2931,19 @@ msgstr "" "réponse vide." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:185 +#: inc/Engine/CriticalPath/APIClient.php:189 msgid "Critical CSS for %1$s on mobile not generated." msgstr "Le Critical CSS pour %1$s sur mobile n'a pas été généré." #. translators: %s = item URL. #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/APIClient.php:187 -#: inc/Engine/CriticalPath/ProcessorService.php:194 +#: inc/Engine/CriticalPath/APIClient.php:191 +#: inc/Engine/CriticalPath/ProcessorService.php:196 msgid "Critical CSS for %1$s not generated." msgstr "Le Critical CSS pour %1$s n'a pas été généré." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:195 +#: inc/Engine/CriticalPath/APIClient.php:199 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "invalid response code." @@ -2944,7 +2952,7 @@ msgstr "" "renvoyé une réponse vide." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:197 +#: inc/Engine/CriticalPath/APIClient.php:201 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an invalid " "response code." @@ -2953,8 +2961,8 @@ msgstr "" "réponse vide." #. translators: %1$s = error message. -#: inc/Engine/CriticalPath/APIClient.php:205 -#: inc/Engine/CriticalPath/ProcessorService.php:201 +#: inc/Engine/CriticalPath/APIClient.php:209 +#: inc/Engine/CriticalPath/ProcessorService.php:203 msgid "Error: %1$s" msgstr "Erreur : %1$s" @@ -3043,38 +3051,38 @@ msgid "Critical CSS file cannot be deleted" msgstr "Le fichier Critical CSS ne peut être supprimé" #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:189 msgid "Mobile Critical CSS for %1$s not generated." msgstr "Le Critical CSS mobile pour %1$s n'a pas été généré." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:228 +#: inc/Engine/CriticalPath/ProcessorService.php:230 msgid "Critical CSS for %s in progress." msgstr "Critical CSS pour %s en cours." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:262 +#: inc/Engine/CriticalPath/ProcessorService.php:264 msgid "Mobile Critical CSS for %s generated." msgstr "Critical CSS mobile pour %s généré." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:273 +#: inc/Engine/CriticalPath/ProcessorService.php:275 msgid "Critical CSS for %s generated." msgstr "Critical CSS pour %s généré." -#: inc/Engine/CriticalPath/ProcessorService.php:295 +#: inc/Engine/CriticalPath/ProcessorService.php:297 msgid "Critical CSS file deleted successfully." msgstr "Le fichier Critical CSS a bien été supprimé." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:317 +#: inc/Engine/CriticalPath/ProcessorService.php:319 msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "Timeout pour le Critical CSS mobile de%1$s. Veuillez réessayer un peu plus " "tard." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:330 +#: inc/Engine/CriticalPath/ProcessorService.php:332 msgid "Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "Timeout pour le Critical CSS de%1$s. Veuillez réessayer un peu plus tard." @@ -3209,39 +3217,39 @@ msgid "Unlimited" msgstr "Illimité" #. translators: %s = promotion discount percentage. -#: inc/Engine/License/views/promo-banner.php:16 +#: inc/Engine/License/views/promo-banner.php:18 msgid "%s off" msgstr "- %s" #. translators: %s = promotion name. -#: inc/Engine/License/views/promo-banner.php:21 +#: inc/Engine/License/views/promo-banner.php:23 msgid "%s promotion is live!" msgstr "La promo %s est en ligne !" -#: inc/Engine/License/views/promo-banner.php:27 +#: inc/Engine/License/views/promo-banner.php:29 msgid "Hurry Up! Deal ends in:" msgstr "Dépêchez-vous ! Le deal se termine dans :" -#: inc/Engine/License/views/promo-banner.php:31 -#: inc/Engine/License/views/renewal-soon-banner.php:14 +#: inc/Engine/License/views/promo-banner.php:33 +#: inc/Engine/License/views/renewal-soon-banner.php:16 msgid "Minutes" msgstr "Minutes" -#: inc/Engine/License/views/promo-banner.php:32 -#: inc/Engine/License/views/renewal-soon-banner.php:15 +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/renewal-soon-banner.php:17 msgid "Seconds" msgstr "secondes" -#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/promo-banner.php:36 #: inc/Engine/License/views/upgrade-section.php:11 msgid "Upgrade now" msgstr "Mettez à niveau maintenant" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:13 msgid "The Optimize CSS Delivery feature is disabled." msgstr "L'option Optimiser le chargement du CSS est désactivée." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:17 msgid "" "You can no longer use the Remove Unused CSS or Load CSS asynchronously " "options." @@ -3250,7 +3258,7 @@ msgstr "" "inutilisées ou Chargement asynchrone du CSS." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:22 msgid "" "You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " "which addresses a PageSpeed Insights recommendation and improves your page " @@ -3260,26 +3268,26 @@ msgstr "" "chargement de votre CSS, ce qui répond à une recommandation de PageSpeed " "Insights et améliore les performances de vos pages." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:29 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:39 -#: inc/Engine/License/views/renewal-expired-banner.php:27 -#: inc/Engine/License/views/renewal-soon-banner.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:41 +#: inc/Engine/License/views/renewal-expired-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:33 msgid "Renew now" msgstr "Renouveler maintenant" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:13 msgid "You will soon lose access to some features." msgstr "Vous perdrez bientôt l'accès à certaines options." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:20 msgid "" "You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" "Vous avez besoin d'une %1$slicence active pour continuer à optimiser le " "chargement de votre CSS%2$s." -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:26 msgid "" "The Remove Unused CSS and Load CSS asynchronously features are great options" " to address the PageSpeed Insights recommendations and improve your website " @@ -3291,16 +3299,16 @@ msgstr "" " site Web." #. translators: %1$s = , %2$s = , %3$s = date. -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:31 msgid "These features will be %1$sautomatically disabled on %3$s%2$s." msgstr "Ces options seront %1$sautomatiquement désactivées le %3$s%2$s." -#: inc/Engine/License/views/renewal-expired-banner.php:11 +#: inc/Engine/License/views/renewal-expired-banner.php:13 msgid "Your WP Rocket license is expired!" msgstr "Votre licence WP Rocket est expirée !" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner.php:18 +#: inc/Engine/License/views/renewal-expired-banner.php:20 msgid "" "Your website could be much faster if it could take advantage of our %1$snew " "features and enhancements%2$s. 🚀" @@ -3309,7 +3317,7 @@ msgstr "" "nos %1$s nouvelles fonctionnalités et améliorations%2$s.🚀" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-soon-banner.php:22 +#: inc/Engine/License/views/renewal-soon-banner.php:24 msgid "" "Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access" " to product updates and support." @@ -3317,12 +3325,12 @@ msgstr "" "Votre %1$slicence WP Rocket est sur le point d'expirer%2$s : vous perdrez " "bientôt l'accès aux mises à jour et au support." -#: inc/Engine/License/views/upgrade-popin.php:12 +#: inc/Engine/License/views/upgrade-popin.php:14 msgid "Speed Up More Websites" msgstr "Accélérez plus de sites web" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:19 +#: inc/Engine/License/views/upgrade-popin.php:21 msgid "" "You can use WP Rocket on more websites by upgrading your license. To " "upgrade, simply pay the %1$sprice difference%2$s between your current and " @@ -3333,7 +3341,7 @@ msgstr "" "entre votre licence actuelle et la nouvelle, comme indiqué ci-dessous." #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:25 +#: inc/Engine/License/views/upgrade-popin.php:27 msgid "" "%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "" @@ -3341,17 +3349,17 @@ msgstr "" "d'expiration" #. translators: %s = price. -#: inc/Engine/License/views/upgrade-popin.php:35 +#: inc/Engine/License/views/upgrade-popin.php:37 msgid "Save $%s" msgstr "Économisez %s$" #. translators: %s = number of websites. -#: inc/Engine/License/views/upgrade-popin.php:48 +#: inc/Engine/License/views/upgrade-popin.php:50 msgid "%s websites" msgstr "%s sites" #. translators: %s = license name. -#: inc/Engine/License/views/upgrade-popin.php:54 +#: inc/Engine/License/views/upgrade-popin.php:56 msgid "Upgrade to %s" msgstr "Mettez à niveau vers %s" @@ -3364,19 +3372,6 @@ msgstr "" "mettant à niveau votre licence (vous ne paierez que la différence de prix " "entre votre licence actuelle et la nouvelle)." -#. translators: %1$s = plugin name. -#: inc/Engine/Media/AboveTheFold/Admin/Controller.php:143 -msgid "%1$s: Critical images cleared!" -msgstr "%1$s : Images Critiques effacées !" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:131 -msgid "Script error" -msgstr "Erreur du script" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:134 -msgid "Script timeout" -msgstr "Timeout du script" - #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "LazyLoad sur les images" @@ -3389,15 +3384,15 @@ msgstr "LazyLoad sur les iframes et vidéos" msgid "LazyLoad CSS backgrounds" msgstr "LazyLoad background CSS" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:195 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:194 msgid "Analytics & Ads" msgstr "Analyses & publicités" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:200 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:199 msgid "Plugins" msgstr "Extensions" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:205 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:204 msgid "Themes" msgstr "Thèmes" @@ -3445,17 +3440,21 @@ msgstr "Minifier / Combiner le JavaScript" msgid "Minify CSS" msgstr "Minifier les fichiers CSS" +#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 +msgid "Remove Unused CSS" +msgstr "Supprimer les ressources CSS inutilisées" + #. translators: %1$s = plugin name, %2$s = table name, %3$s = open tag, #. %4$s = closing tag. #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:253 msgid "" "%1$s: Could not create the %2$s table in the database which is necessary for" -" the Remove Unused CSS feature to work. Please reach out to %3$sour " -"support%4$s." +" the Remove Unused CSS feature to work. Please check our " +"%3$sdocumentation%4$s." msgstr "" "%1$s: Impossible de créer la %2$s table nécessaire au fonctionnement de " -"Supprimer les Ressources CSS inutilisées dans la base de données. " -"%3$sVeuillez contacter notre support%4$s." +"Supprimer les Ressources CSS inutilisées dans la base de données. Veuillez " +"consulter %3$snotre documentation%4$s." #. translators: %1$s = plugin name. #: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:274 @@ -3463,7 +3462,7 @@ msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: Cache du CSS utilisé vidée !" #. translators: %1$s = plugin name. -#: inc/Engine/Preload/Admin/Settings.php:57 +#: inc/Engine/Preload/Admin/Settings.php:76 msgid "" "%1$s: The preload service is now active. After the initial preload it will " "continue to cache all your pages whenever they are purged. No further action" @@ -3482,40 +3481,31 @@ msgid "WP Rocket Preload revert stuck failed jobs" msgstr "" "Le Prechargement de WP Rocket rétablit les tâches bloquées qui ont échoué" -#: inc/Engine/Saas/Admin/AdminBar.php:77 -#: inc/Engine/Saas/Admin/AdminBar.php:198 -msgid "Clear Critical Images" -msgstr "Effacer les images critiques" - -#: inc/Engine/Saas/Admin/AdminBar.php:164 -msgid "Clear Critical Images of this URL" -msgstr "Effacer les images critiques pour cette URL" - -#: inc/Engine/Saas/Admin/AdminBar.php:167 +#: inc/Engine/Saas/Admin/AdminBar.php:106 msgid "Clear Used CSS of this URL" msgstr "Nettoyer le CSS utilisé pour cet URL" -#: inc/Engine/Saas/Admin/AdminBar.php:197 -msgid "Critical Images Cache" -msgstr "Cache des images essentielles" +#: inc/Engine/Saas/Admin/AdminBar.php:133 +msgid "Used CSS" +msgstr "CSS utilisé" -#: inc/Engine/Saas/Admin/AdminBar.php:201 -msgid "Remove Used CSS Cache" -msgstr "Supprimer le cache du CSS utilisé" +#: inc/Engine/Saas/Admin/AdminBar.php:136 +msgid "This action will clear the used CSS files." +msgstr "Cette action effacera les fichiers CSS utilisés." #. translators: %1$s = plugin name, %2$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:104 +#: inc/Engine/Saas/Admin/Notices.php:91 msgid "" "%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing " "your pages, the plugin is optimizing LCP and the images above the fold." msgstr "" -"%1$s : Veuillez patienter %2$s scrondes. La Suppression des ressources CSS " +"%1$s : Veuillez patienter %2$s secondes. La Suppression des ressources CSS " "inutilisées traite vos pages, le plugin optimise le LCP et les images au-" "dessus de la ligne de flottaison." #. translators: %1$s = plugin name, %2$s = number of URLs, %3$s = number of #. seconds. -#: inc/Engine/Saas/Admin/Notices.php:147 +#: inc/Engine/Saas/Admin/Notices.php:134 msgid "" "%1$s: The LCP element has been optimized, and the images above the fold were excluded from lazyload. The Used CSS of your homepage has been processed.\n" "\t\t\t WP Rocket will continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." @@ -3524,19 +3514,19 @@ msgstr "" "\t\t\tWP Rocket continuera à générer les CSS utilisés pour un maximum de %2$s URL par %3$s seconde(s)." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:157 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "" "Nous vous suggérons d'activer le %1$sPréchargement%2$s pour obtenir des " "résultats plus rapides." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:180 +#: inc/Engine/Saas/Admin/Notices.php:167 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" "Pour en savoir plus sur le processus, consultez notre %1$sdocumentation%2$s." -#: inc/Engine/Saas/Admin/Notices.php:246 +#: inc/Engine/Saas/Admin/Notices.php:229 msgid "" "We couldn't generate the used CSS because you're using a nulled version of " "WP Rocket. You need an active license to use the Remove Unused CSS feature " @@ -3548,13 +3538,13 @@ msgstr "" "performances de votre site Web." #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:249 +#: inc/Engine/Saas/Admin/Notices.php:232 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "" "Cliquez ici pour obtenir une licence Single de WP Rocket à moins %1$s !" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:302 +#: inc/Engine/Saas/Admin/Notices.php:285 msgid "" "It seems a security plugin or the server's firewall prevents WP Rocket from " "accessing the SaaS features. IPs listed %1$shere in our documentation%2$s " @@ -3564,11 +3554,11 @@ msgstr "" "Rocket d'accéder aux options SaaS. Les IP répertoriées %1$sdans notre " "documentation%2$s doivent être autorisées :" -#: inc/Engine/Saas/Admin/Notices.php:307 +#: inc/Engine/Saas/Admin/Notices.php:290 msgid "- In the security plugin, if you are using one" msgstr "- Dans le plugin de sécurité, si vous en utilisez un" -#: inc/Engine/Saas/Admin/Notices.php:308 +#: inc/Engine/Saas/Admin/Notices.php:291 msgid "- In the server's firewall. Your host can help you with this" msgstr "" "- Dans le pare-feu du serveur. Votre hébergeur peut vous aider à le faire" @@ -3962,7 +3952,7 @@ msgstr[2] "" " fonctions de WP Rocket :" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:156 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" @@ -3971,7 +3961,7 @@ msgstr "" " emojis%3$s de WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:192 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " @@ -3981,7 +3971,7 @@ msgstr "" "Gzip%3$s de WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:228 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " @@ -3991,7 +3981,7 @@ msgstr "" "navigateur %3$s de WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:260 msgctxt "Hummingbird notice" msgid "" "%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" @@ -4000,7 +3990,7 @@ msgstr "" " cache de page %3$s de WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:294 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " @@ -4284,7 +4274,6 @@ msgstr "CNAME CDN" msgid "Purges RocketCDN cached resources for your website. %s" msgstr "Purge les ressources mises en cache de votre RocketCDN. %s" -#. translators: %s is a "Learn more" link. #: views/settings/fields/rocket-cdn.php:63 #: views/settings/page-sections/cloudflare.php:36 #: views/settings/page-sections/sucuri.php:37 @@ -4321,7 +4310,6 @@ msgstr "Cache de CloudFlare" msgid "Purges cached resources for your website. %s" msgstr "Purge les ressources mises en cache de votre site web. %s" -#. translators: %s is a "Learn more" link. #: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" @@ -4330,19 +4318,19 @@ msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" msgid "Clear all Cloudflare cache files" msgstr "Vider le cache CloudFlare" -#: views/settings/page-sections/dashboard.php:38 +#: views/settings/page-sections/dashboard.php:39 msgid "Congratulations!" msgstr "Félicitations !" -#: views/settings/page-sections/dashboard.php:40 +#: views/settings/page-sections/dashboard.php:41 msgid "WP Rocket is now activated and already working for you." msgstr "WP Rocket est maintenant activé et travaille déjà pour vous." -#: views/settings/page-sections/dashboard.php:42 +#: views/settings/page-sections/dashboard.php:43 msgid "Your website should be loading faster now!" msgstr "Votre site devrait être déjà plus rapide !" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "To guarantee fast websites, WP Rocket automatically applies 80% of web " "performance best practices." @@ -4350,67 +4338,93 @@ msgstr "" "Pour des sites web plus rapides, WP Rocket applique automatiquement 80 % des" " bonnes pratiques en matière de performance web." -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "We also enable options that provide immediate benefits to your website." msgstr "" "Nous activons aussi les options qui profitent immédiatement à votre site." -#: views/settings/page-sections/dashboard.php:45 +#: views/settings/page-sections/dashboard.php:46 msgid "Continue to the options to further optimize your site!" msgstr "" "Continuez avec les options si vous souhaitez optimiser encore plus votre " "site !" -#: views/settings/page-sections/dashboard.php:62 +#: views/settings/page-sections/dashboard.php:63 msgid "My Account" msgstr "Mon compte" -#: views/settings/page-sections/dashboard.php:68 +#: views/settings/page-sections/dashboard.php:69 msgid "Refresh info" msgstr "Actualiser" -#: views/settings/page-sections/dashboard.php:86 +#: views/settings/page-sections/dashboard.php:87 msgid "with" msgstr "avec" -#: views/settings/page-sections/dashboard.php:100 +#: views/settings/page-sections/dashboard.php:101 msgid "Expiration Date" msgstr "Date d'expiration" -#: views/settings/page-sections/dashboard.php:110 +#: views/settings/page-sections/dashboard.php:111 msgid "View my account" msgstr "Mon compte" +#: views/settings/page-sections/dashboard.php:131 views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "Rocket Analytics" + +#. translators: %1$s = opening tag, %2$s = closing tag. #: views/settings/page-sections/dashboard.php:137 +msgid "" +"I agree to share anonymous data with the development team to help improve WP" +" Rocket. %1$sWhat info will we collect?%2$s" +msgstr "" +"J'accepte de partager des données anonymes avec l'équipe de développement " +"pour aider à améliorer WP Rocket. %1$sQuelles informations collecterons-nous" +" ?%2$s" + +#: views/settings/page-sections/dashboard.php:155 msgid "Quick Actions" msgstr "Actions rapides" -#: views/settings/page-sections/dashboard.php:144 -msgid "Remove all cached files" -msgstr "Supprimer tous les fichiers du cache" +#: views/settings/page-sections/dashboard.php:162 +msgid "Cache files" +msgstr "Fichiers de cache" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear and preload all the cache files." +msgstr "Cette action effacera et préchargera tous les fichiers du cache." + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear all the cache files." +msgstr "Cette action effacera tous les fichiers du cache." + +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear and preload" +msgstr "Vider et précharger" -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:183 +#: views/settings/page-sections/dashboard.php:189 msgid "Regenerate Critical CSS" msgstr "Régénérer le Critical CSS" -#: views/settings/page-sections/dashboard.php:196 +#: views/settings/page-sections/dashboard.php:215 msgid "Frequently Asked Questions" msgstr "Foire aux questions" -#: views/settings/page-sections/dashboard.php:210 +#: views/settings/page-sections/dashboard.php:229 msgid "Still cannot find a solution?" msgstr "Toujours pas trouvé de solution ?" -#: views/settings/page-sections/dashboard.php:211 +#: views/settings/page-sections/dashboard.php:230 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" "Envoyez un ticket ci-dessous et obtenez l'aide de nos sympathiques " "Rocketeers." -#: views/settings/page-sections/dashboard.php:219 +#: views/settings/page-sections/dashboard.php:238 msgid "Ask support" msgstr "Demandez au Support" @@ -4427,41 +4441,58 @@ msgstr "Toute optimisation faite de la base de donnée est irréversible." msgid "Save Changes and Optimize" msgstr "Sauvegarder et optimiser" -#. Translators: %1$s = , %2$s = , %3$s = , %4$s = . -#: views/settings/page-sections/imagify.php:21 +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:22 msgid "" -"%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image " -"optimization.%2$s" +"%1$sWP Rocket created IMAGIFY to give your website an extra speed boost!%2$s" msgstr "" -"%1$sWP ROCKET%2$s a créé %3$sIMAGIFY%4$s %1$spour une optimisation d'image " -"de première classe.%2$s" +"%1$sWP Rocket a créé IMAGIFY pour donner un coup de pouce à la vitesse de " +"votre site web !%2$s" -#: views/settings/page-sections/imagify.php:24 +#: views/settings/page-sections/imagify.php:28 +msgid "Images can account for 50% of your loading time!" +msgstr "Les images peuvent représenter 50 % du temps de chargement !" + +#: views/settings/page-sections/imagify.php:31 msgid "" -"Compress image to make your website faster, all while maintaining image " -"quality." +"Imagify automatically optimizes all your images, helping your website gain " +"precious seconds while saving you time. With just one click, it resizes, " +"compresses, and converts your images to WebP and AVIF formats without " +"sacrificing quality." msgstr "" -"Compressez vos images pour rendre votre site Web plus rapide, tout en " -"maintenant leurs qualités." +"Imagify optimise automatiquement toutes vos images, permettant ainsi à votre" +" site web de gagner de précieuses secondes tout en vous faisant gagner du " +"temps. En un seul clic, il redimensionne, compresse et convertit vos images " +"aux formats WebP et AVIF sans sacrifier la qualité." -#: views/settings/page-sections/imagify.php:25 -msgid "More on Imagify:" -msgstr "Plus sur Imagify :" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:41 +msgid "%1$sCompress%2$s all your images in one click" +msgstr "%1$sCompresser%2$s toutes vos images en un seul clic" -#: views/settings/page-sections/imagify.php:27 -msgid "Imagify Plugin Page" -msgstr "Page du plugin" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:49 +msgid "%1$sConvert%2$s images to WebP and Avif" +msgstr "%1$sConvertir%2$s images vers WebP et Avif" -#: views/settings/page-sections/imagify.php:28 -msgid "Imagify Website" -msgstr "Site web Imagify" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:57 +msgid "%1$sResize%2$s your images on the fly" +msgstr "%1$sRedimensionner%2$s vos images à la volée" -#: views/settings/page-sections/imagify.php:29 -msgid "Review of Image Compression Plugins" -msgstr "Comparatif des plugins de compression d'images" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:65 +msgid "%1$sFree plan%2$s includes 20MB/month (around 200 images)" +msgstr "%1$sPlan gratuit%2$s comprend 20MB/mois (environ 200 images)" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:83 +msgid "%1$sInstall Imagify, the Easiest WordPress Image Optimizer%2$s" +msgstr "" +"%1$sInstaller Imagify, le plus simple des optimiseurs d'images pour " +"WordPress%2$s" -#: views/settings/page-sections/imagify.php:38 +#: views/settings/page-sections/imagify.php:110 msgid "Install Imagify" msgstr "Installer Imagify" diff --git a/languages/rocket-pt_BR.po b/languages/rocket-pt_BR.po index 233e371ac4..b246d1fdae 100644 --- a/languages/rocket-pt_BR.po +++ b/languages/rocket-pt_BR.po @@ -10,9 +10,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha1\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" -"POT-Creation-Date: 2024-04-29T20:40:45+00:00\n" +"Project-Id-Version: WP Rocket 3.16-alpha2\n" +"Report-Msgid-Bugs-To: http://wp-rocket.me/\n" +"POT-Creation-Date: 2024-05-06T13:28:35+03:00\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Fabio Fava , 2024\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/wp-media/teams/18133/pt_BR/)\n" @@ -22,7 +22,7 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "X-Domain: rocket\n" -"X-Generator: WP-CLI 2.4.0\n" +"X-Generator: WP-CLI 2.7.1\n" #. Plugin Name of the plugin msgid "WP Rocket" @@ -672,8 +672,8 @@ msgstr "%s: Cache de usuário limpo." msgid "Dismiss this notice" msgstr "Descartar essa notificação" -#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:80 -#: inc/Engine/Saas/Admin/AdminBar.php:198 +#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:84 +#: inc/Engine/Saas/Admin/AdminBar.php:202 msgid "Clear Used CSS" msgstr "Limpar CSS usado" @@ -1140,7 +1140,7 @@ msgid "Preload" msgstr "Pré-Carregar" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:170 +#: inc/Engine/Admin/Settings/Subscriber.php:171 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "Ferramentas" @@ -2578,6 +2578,20 @@ msgctxt "Sucuri" msgid "Find your API key" msgstr "Encontre a sua chave da API" +#. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: +#. opening a tag, %4$s: option a tag, %5$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2295 +msgid "" +"%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our " +"brand new feature %3$sOptimize critical images%5$s is automatically " +"activated now! Also, the Cache tab was removed but the existing features " +"will remain working, %4$ssee more here%5$s." +msgstr "" +"%1$sWP Rocket:%2$s o plugin foi atualizado para a versão 3.16. Nosso " +"novíssimo recurso %3$sOtimizar imagens críticas%5$s já foi automaticamente " +"ativado! Além disso, a aba Cache foi removida mas os recursos existentes " +"continuarão funcionando, %4$ssaiba mais aqui%5$s." + #: inc/Engine/Admin/Settings/Settings.php:361 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format " @@ -2595,25 +2609,25 @@ msgstr "" "foi salva porque ela desativa o armazenamento em cache e as otimizações para" " cada página do seu site." -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:172 msgid "Import, Export, Rollback" msgstr "Importar, Exportar, Reverter" -#: inc/Engine/Admin/Settings/Subscriber.php:196 +#: inc/Engine/Admin/Settings/Subscriber.php:197 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "Otimizar Imagens" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:198 msgid "Compress your images" msgstr "Comprima as suas imagens" -#: inc/Engine/Admin/Settings/Subscriber.php:214 +#: inc/Engine/Admin/Settings/Subscriber.php:215 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "Tutoriais" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:216 msgid "Getting started and how to videos" msgstr "Comece a usar e vídeos didáticos" @@ -2827,15 +2841,15 @@ msgstr "" "Acelere o seu site com a RocketCDN, a Rede de Distribuição de Conteúdo do WP" " Rocket!" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:180 +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "O WP Rocket processa os jobs pendentes" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:194 +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:204 msgid "WP Rocket clear failed jobs" msgstr "O WP Rocket limpa os jobs que falharem" -#: inc/Engine/Common/JobManager/Cron/Subscriber.php:206 +#: inc/Engine/Common/JobManager/Cron/Subscriber.php:221 msgid "WP Rocket process on submit jobs" msgstr "O WP Rocket processa os jobs no envio" @@ -3343,6 +3357,14 @@ msgstr "" msgid "%1$s: Critical images cleared!" msgstr "%1$s: Imagens críticas esvaziadas!" +#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:131 +msgid "Script error" +msgstr "Erro de script" + +#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:134 +msgid "Script timeout" +msgstr "Tempo-limite do script" + #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "LazyLoad para imagens" @@ -3447,24 +3469,24 @@ msgstr "Trabalhos pendentes do Pré-carregamento do WP Rocket" msgid "WP Rocket Preload revert stuck failed jobs" msgstr "O pré-carregamento do WP Rocket reverte jobs empacados que falharam" -#: inc/Engine/Saas/Admin/AdminBar.php:73 -#: inc/Engine/Saas/Admin/AdminBar.php:194 +#: inc/Engine/Saas/Admin/AdminBar.php:77 +#: inc/Engine/Saas/Admin/AdminBar.php:198 msgid "Clear Critical Images" msgstr "Esvaziar Imagens Críticas" -#: inc/Engine/Saas/Admin/AdminBar.php:160 +#: inc/Engine/Saas/Admin/AdminBar.php:164 msgid "Clear Critical Images of this URL" msgstr "Esvaziar as Imagens Críticas deste URL" -#: inc/Engine/Saas/Admin/AdminBar.php:163 +#: inc/Engine/Saas/Admin/AdminBar.php:167 msgid "Clear Used CSS of this URL" msgstr "Limpar o CSS usado deste URL" -#: inc/Engine/Saas/Admin/AdminBar.php:193 +#: inc/Engine/Saas/Admin/AdminBar.php:197 msgid "Critical Images Cache" msgstr "Cache de Imagens Críticas" -#: inc/Engine/Saas/Admin/AdminBar.php:197 +#: inc/Engine/Saas/Admin/AdminBar.php:201 msgid "Remove Used CSS Cache" msgstr "Remover o cache de CSS usado" @@ -3489,18 +3511,18 @@ msgstr "" "\t\t\t O WP Rocket continuará gerando CSS Usado para até %2$s URLs a cada %3$s segundo(s)." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:160 +#: inc/Engine/Saas/Admin/Notices.php:170 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "" "Sugerimos ativar o %1$sPré-carregamento%2$s para resultados mais rápidos." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:180 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" "Para aprender mais sobre o processo veja a nossa %1$sdocumentação%2$s." -#: inc/Engine/Saas/Admin/Notices.php:236 +#: inc/Engine/Saas/Admin/Notices.php:246 msgid "" "We couldn't generate the used CSS because you're using a nulled version of " "WP Rocket. You need an active license to use the Remove Unused CSS feature " @@ -3512,13 +3534,13 @@ msgstr "" "seu site." #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:239 +#: inc/Engine/Saas/Admin/Notices.php:249 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "" "Clique aqui para obter uma licença única do WP Rocket com %1$s de desconto!" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:292 +#: inc/Engine/Saas/Admin/Notices.php:302 msgid "" "It seems a security plugin or the server's firewall prevents WP Rocket from " "accessing the SaaS features. IPs listed %1$shere in our documentation%2$s " @@ -3528,11 +3550,11 @@ msgstr "" " WP Rocket de acessar os recursos SaaS. Os IPs listados %1$saqui em nossa " "documentação%2$s devem ser adicionados à sua lista de permitidos:" -#: inc/Engine/Saas/Admin/Notices.php:297 +#: inc/Engine/Saas/Admin/Notices.php:307 msgid "- In the security plugin, if you are using one" msgstr "- No plugin de segurança, se estiver usando um." -#: inc/Engine/Saas/Admin/Notices.php:298 +#: inc/Engine/Saas/Admin/Notices.php:308 msgid "- In the server's firewall. Your host can help you with this" msgstr "" "- No firewall do servidor. Sua compania de hospedagem poderá te ajudar com " diff --git a/languages/rocket-pt_PT.po b/languages/rocket-pt_PT.po index eb87b05e85..9e1930db42 100644 --- a/languages/rocket-pt_PT.po +++ b/languages/rocket-pt_PT.po @@ -5,9 +5,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha2\n" -"Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2024-05-06T13:28:35+03:00\n" +"Project-Id-Version: WP Rocket 3.17-alpha4\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" +"POT-Creation-Date: 2024-09-13T17:57:31+00:00\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Pedro Mendonça , 2024\n" "Language-Team: Portuguese (Portugal) (https://app.transifex.com/wp-media/teams/18133/pt_PT/)\n" @@ -17,7 +17,7 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "X-Domain: rocket\n" -"X-Generator: WP-CLI 2.7.1\n" +"X-Generator: WP-CLI 2.4.0\n" #. Plugin Name of the plugin msgid "WP Rocket" @@ -48,9 +48,9 @@ msgstr "https://wp-media.me" #: inc/ThirdParty/Hostings/Godaddy.php:63 #: inc/ThirdParty/Hostings/O2Switch.php:49 #: inc/ThirdParty/Hostings/OneCom.php:137 -#: inc/ThirdParty/Hostings/Pressidium.php:49 +#: inc/ThirdParty/Hostings/Pressidium.php:50 #: inc/ThirdParty/Hostings/ProIsp.php:51 inc/ThirdParty/Hostings/Savvii.php:50 -#: inc/ThirdParty/Hostings/WPEngine.php:47 +#: inc/ThirdParty/Hostings/WPEngine.php:46 #: inc/ThirdParty/Hostings/WPXCloud.php:51 msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for " @@ -182,41 +182,31 @@ msgstr "Nível de cache da Cloudflare definido para %s" #. translators: %s is the message returned by the CloudFlare API. #: inc/Addon/Cloudflare/Subscriber.php:368 -msgid "Cloudflare minification error: %s" -msgstr "Erro na minificação da Cloudflare: %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:375 -msgid "Cloudflare minification %s" -msgstr "Minificação da Cloudflare %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare rocket loader error: %s" msgstr "Erro no Rocket Loader da Cloudflare: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:400 +#: inc/Addon/Cloudflare/Subscriber.php:375 msgid "Cloudflare rocket loader %s" msgstr "Rocket Loader da Cloudflare %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:418 +#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare browser cache error: %s" msgstr "Erro na cache do navegador da Cloudflare: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:425 +#: inc/Addon/Cloudflare/Subscriber.php:400 msgid "Cloudflare browser cache set to %s" msgstr "Cache do navegador da Cloudflare definida como %s" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:536 +#: inc/Addon/Cloudflare/Subscriber.php:507 msgid "%1$sWP Rocket:%2$s Optimal settings activated for Cloudflare:" msgstr "%1$sWP Rocket:%2$s Opções ideais activadas para a Cloudflare:" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:545 +#: inc/Addon/Cloudflare/Subscriber.php:516 msgid "" "%1$sWP Rocket:%2$s Optimal settings deactivated for Cloudflare, reverted to " "previous settings:" @@ -224,7 +214,7 @@ msgstr "" "%1$sWP Rocket:%2$s Opções ideais desactivadas para a Cloudflare, foram " "revertidas as opções anteriores:" -#: inc/Addon/Cloudflare/Subscriber.php:661 inc/admin/options.php:165 +#: inc/Addon/Cloudflare/Subscriber.php:632 inc/admin/options.php:165 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 msgid "WP Rocket: " msgstr "WP Rocket: " @@ -383,7 +373,7 @@ msgid "Settings" msgstr "Opções" #: inc/admin/admin.php:96 inc/admin/admin.php:117 inc/deprecated/3.5.php:898 -#: inc/Engine/Cache/AdminSubscriber.php:134 +#: inc/Engine/Cache/AdminSubscriber.php:135 msgid "Clear this cache" msgstr "Limpar esta cache" @@ -415,17 +405,17 @@ msgstr "Falhou ao importar as opções: Ficheiro com conteúdo inesperado." msgid "Settings imported and saved." msgstr "As opções foram importadas e guardadas." -#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:571 +#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:551 msgid "Excluded CSS Files" msgstr "Ficheiros de CSS excluídos" -#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:725 +#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:699 msgid "Excluded Inline JavaScript" msgstr "JavaScript em linha excluído" -#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:743 -#: inc/Engine/Admin/Settings/Page.php:776 -#: inc/Engine/Admin/Settings/Page.php:823 +#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:717 +#: inc/Engine/Admin/Settings/Page.php:750 +#: inc/Engine/Admin/Settings/Page.php:797 msgid "Excluded JavaScript Files" msgstr "Ficheiros de JavaScript excluídos" @@ -437,19 +427,19 @@ msgstr "Diferir ficheiros de JavaScript" msgid "Excluded Delay JavaScript Files" msgstr "Ficheiros de JavaScript excluídos do diferimento" -#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1229 +#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1203 msgid "Never Cache URL(s)" msgstr "Nunca criar cache dos URL" -#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1243 +#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1217 msgid "Never Cache User Agent(s)" msgstr "Nunca criar cache de agentes de utilizador" -#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1249 +#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1223 msgid "Always Purge URL(s)" msgstr "Limpar sempre os URL" -#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1530 +#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1504 msgid "Exclude files from CDN" msgstr "Excluir ficheiros da CDN" @@ -470,8 +460,6 @@ msgid "More info" msgstr "Mais informações" #: inc/admin/ui/meta-boxes.php:37 inc/admin/ui/notices.php:671 -#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 msgid "Clear cache" msgstr "Limpar cache" @@ -656,16 +644,15 @@ msgstr "%s: A cache do termo foi limpa." msgid "%s: User cache cleared." msgstr "%s: A cache do utilizador foi limpa." -#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:32 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:42 -#: inc/Engine/License/views/renewal-expired-banner.php:30 -#: views/settings/page-sections/dashboard.php:46 +#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:38 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:34 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:44 +#: inc/Engine/License/views/renewal-expired-banner.php:32 +#: views/settings/page-sections/dashboard.php:47 msgid "Dismiss this notice" msgstr "Descartar esta notificação" -#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:84 -#: inc/Engine/Saas/Admin/AdminBar.php:202 +#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:51 msgid "Clear Used CSS" msgstr "Limpar CSS utilizado" @@ -746,8 +733,8 @@ msgstr "Reinstalar a versão %s" #: inc/classes/class-wp-rocket-requirements-check.php:203 #: inc/classes/class-wp-rocket-requirements-check.php:214 #: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 -#: inc/Engine/Plugin/UpdaterSubscriber.php:483 -#: inc/Engine/Plugin/UpdaterSubscriber.php:497 +#: inc/Engine/Plugin/UpdaterSubscriber.php:477 +#: inc/Engine/Plugin/UpdaterSubscriber.php:491 msgid "%s Update Rollback" msgstr "Reversão da actualização do %s" @@ -775,10 +762,13 @@ msgstr "" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" #: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 -msgid "Clear and preload cache" +msgid "Clear and Preload Cache" msgstr "Limpar e pré-carregar cache" +#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 +msgid "Clear Cache" +msgstr "Limpar cache" + #: inc/common/admin-bar.php:131 inc/functions/i18n.php:20 msgid "All languages" msgstr "Todos os idiomas" @@ -803,7 +793,7 @@ msgstr "Limpar a cache da RocketCDN" msgid "Documentation" msgstr "Documentação" -#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 +#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:107 msgid "Activate Imagify" msgstr "Activar o Imagify" @@ -951,7 +941,7 @@ msgstr "" "seleccionar a opção para o pré-carregar." #. translators: 1 and 3 are link openings, 2 is a link closing. -#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:520 +#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:514 msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "%1$sVolte para o WP Rocket%2$s ou %3$svá para a página de plugins%2$s" @@ -1033,7 +1023,7 @@ msgstr "" msgid "Choose a file from your computer (maximum size: %s)" msgstr "Escolha um ficheiro do seu computador (tamanho máximo: %s)" -#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:422 +#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:469 msgid "Upload file and import settings" msgstr "Carregar ficheiro e importar opções" @@ -1116,8 +1106,8 @@ msgstr "Básico" msgid "Static Files" msgstr "Ficheiros estáticos" -#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1500 -#: inc/Engine/Admin/Settings/Page.php:1511 +#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1485 #: inc/Engine/CDN/Admin/Subscriber.php:28 msgid "CDN" msgstr "CDN" @@ -1126,22 +1116,22 @@ msgstr "CDN" msgid "Advanced" msgstr "Avançado" -#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1345 +#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1319 msgid "Database" msgstr "Base de dados" -#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1051 +#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1025 msgid "Preload" msgstr "Pré-carregamento" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:173 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "Ferramentas" -#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:357 -#: views/settings/page-sections/dashboard.php:80 +#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:368 +#: views/settings/page-sections/dashboard.php:81 msgid "License" msgstr "Licença" @@ -1183,27 +1173,27 @@ msgid "weekly" msgstr "semanalmente" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1389 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Revisions" msgstr "Revisões" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1373 msgid "Auto Drafts" msgstr "Rascunhos automáticos" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1409 +#: inc/Engine/Admin/Settings/Page.php:1383 msgid "Trashed Posts" msgstr "Conteúdos no lixo" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1393 msgid "Spam Comments" msgstr "Comentários de spam" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1429 +#: inc/Engine/Admin/Settings/Page.php:1403 msgid "Trashed Comments" msgstr "Comentários no lixo" @@ -1258,63 +1248,46 @@ msgstr "" msgid "Regenerate WP Rocket configuration files now" msgstr "Regenere agora os ficheiros de configuração do WP Rocket" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Save Changes" msgstr "Guardar alterações" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Validate License" msgstr "Validar licença" -#: inc/Engine/Admin/Settings/Page.php:279 -#: inc/Engine/Admin/Settings/Page.php:280 inc/functions/admin.php:550 +#: inc/Engine/Admin/Settings/Page.php:278 +#: inc/Engine/Admin/Settings/Page.php:279 inc/functions/admin.php:550 msgid "Unavailable" msgstr "Indisponível" -#: inc/Engine/Admin/Settings/Page.php:374 +#: inc/Engine/Admin/Settings/Page.php:385 msgid "API key" msgstr "Chave de API" -#: inc/Engine/Admin/Settings/Page.php:389 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Email address" msgstr "Endereço de email" -#: inc/Engine/Admin/Settings/Page.php:415 +#: inc/Engine/Admin/Settings/Page.php:426 msgid "Dashboard" msgstr "Painel" -#: inc/Engine/Admin/Settings/Page.php:416 +#: inc/Engine/Admin/Settings/Page.php:427 msgid "Get help, account info" msgstr "Obter ajuda, informações da conta" -#: inc/Engine/Admin/Settings/Page.php:425 -msgid "My Status" -msgstr "O meu estado" - -#: inc/Engine/Admin/Settings/Page.php:435 views/settings/page.php:75 -msgid "Rocket Analytics" -msgstr "Rocket Analytics" - -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:437 -msgid "" -"I agree to share anonymous data with the development team to help improve WP" -" Rocket. %1$sWhat info will we collect?%2$s" -msgstr "" -"Concordo em partilhar informações anónimas com a equipa de desenvolvimento " -"para ajudar a melhorar o WP Rocket. %1$sQue informações recolhemos?%2$s" - -#: inc/Engine/Admin/Settings/Page.php:489 +#: inc/Engine/Admin/Settings/Page.php:475 msgid "File Optimization" msgstr "Optimizar ficheiros" -#: inc/Engine/Admin/Settings/Page.php:490 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Optimize CSS & JS" msgstr "Optimize o CSS e JS" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:498 +#: inc/Engine/Admin/Settings/Page.php:484 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable this option in Autoptimize." @@ -1323,17 +1296,17 @@ msgstr "" "Autoptimize. Se quiser usar a minificação do %2$s, " "desactive esta opção no Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:508 +#: inc/Engine/Admin/Settings/Page.php:494 msgid "CSS Files" msgstr "Ficheiros de CSS" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:503 msgid "JavaScript Files" msgstr "Ficheiros de JavaScript" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:524 +#: inc/Engine/Admin/Settings/Page.php:510 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable those options in Autoptimize." @@ -1342,7 +1315,7 @@ msgstr "" "Autoptimize. Se quiser usar a minificação do %2$s, " "desactive esta opção no Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:529 +#: inc/Engine/Admin/Settings/Page.php:515 msgid "" "If you have problems after activating this option, copy and paste the " "default exclusions to quickly resolve issues:" @@ -1351,7 +1324,7 @@ msgstr "" "exclusões por omissão para corrigir os erros rapidamente:" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:519 msgid "" "Also, please check our %1$sdocumentation%2$s for a list of compatibility " "exclusions." @@ -1359,7 +1332,7 @@ msgstr "" "Além disto, por favor consulte a nossa %1$sdocumentação%2$s para uma lista " "de exclusões compatíveis." -#: inc/Engine/Admin/Settings/Page.php:538 +#: inc/Engine/Admin/Settings/Page.php:524 msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " "take full advantage of this option." @@ -1368,52 +1341,30 @@ msgstr "" "Remova-os para tirar total partido desta opção." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:527 msgid "" "If this causes trouble, restore the default exclusions, found %1$shere%2$s" msgstr "" "Se isto criar algum problema, recupere as exclusões por omissão %1$saqui%2$s" -#: inc/Engine/Admin/Settings/Page.php:550 +#: inc/Engine/Admin/Settings/Page.php:536 msgid "Minify CSS files" msgstr "Minificar ficheiros de CSS" -#: inc/Engine/Admin/Settings/Page.php:551 +#: inc/Engine/Admin/Settings/Page.php:537 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "A minificação do CSS remove espaços em branco e comentários para reduzir o " "tamanho do ficheiro." -#: inc/Engine/Admin/Settings/Page.php:564 -#: inc/Engine/Admin/Settings/Page.php:628 -#: inc/Engine/Admin/Settings/Page.php:694 -#: inc/Engine/Admin/Settings/Page.php:718 -msgid "This could break things!" -msgstr "Isto poderá danificar alguma coisa!" - -#: inc/Engine/Admin/Settings/Page.php:565 -#: inc/Engine/Admin/Settings/Page.php:629 -#: inc/Engine/Admin/Settings/Page.php:695 -#: inc/Engine/Admin/Settings/Page.php:719 -msgid "" -"If you notice any errors on your website after having activated this " -"setting, just deactivate it again, and your site will be back to normal." -msgstr "" -"Se notar quaisquer erros no seu site depois de activar esta opção, basta " -"desactivar de novo para o seu site voltar ao normal." - -#: inc/Engine/Admin/Settings/Page.php:566 -msgid "Activate minify CSS" -msgstr "Activar minificação do CSS" - -#: inc/Engine/Admin/Settings/Page.php:572 +#: inc/Engine/Admin/Settings/Page.php:552 msgid "" "Specify URLs of CSS files to be excluded from minification (one per line)." msgstr "" "Especifique os URL de ficheiros de CSS a excluir da minificação (um por " "linha)." -#: inc/Engine/Admin/Settings/Page.php:573 +#: inc/Engine/Admin/Settings/Page.php:553 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -1424,7 +1375,7 @@ msgstr "" "num caminho específico." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:575 +#: inc/Engine/Admin/Settings/Page.php:555 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external CSS. %1$sMore info%2$s" @@ -1432,12 +1383,12 @@ msgstr "" "Terceiros: Use o caminho completo do URL ou apenas o nome " "do domínio, para excluir CSS externo. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:588 -#: inc/Engine/Admin/Settings/Page.php:610 +#: inc/Engine/Admin/Settings/Page.php:568 +#: inc/Engine/Admin/Settings/Page.php:590 msgid "Optimize CSS delivery" msgstr "Optimizar entrega do CSS" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1448,7 +1399,7 @@ msgstr "" "recomendado Remover CSS não utilizado, mas apenas para utilizadores com uma " "licença activa." -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1459,7 +1410,7 @@ msgstr "" "recomendado Remover CSS não utilizado." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:603 +#: inc/Engine/Admin/Settings/Page.php:583 msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" " more%2$s" @@ -1467,13 +1418,12 @@ msgstr "" "As funcionalidades de optimizar entrega do CSS estão desactivadas em " "ambientes locais. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:623 -#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 -msgid "Remove Unused CSS" -msgstr "Remover CSS não utilizado" +#: inc/Engine/Admin/Settings/Page.php:603 +msgid "Remove Unused CSS (RUCSS)" +msgstr "Remover CSS não utilizado (RUCSS)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:606 msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." " Recommended for best performance. Test thoroughly! %1$sMore info%2$s" @@ -1482,15 +1432,29 @@ msgstr "" "página e os pedidos HTTP. Recomendado para um melhor desempenho. Teste com " "cuidado! %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:630 +#: inc/Engine/Admin/Settings/Page.php:608 +#: inc/Engine/Admin/Settings/Page.php:692 +msgid "This could break things!" +msgstr "Isto poderá danificar alguma coisa!" + +#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"If you notice any errors on your website after having activated this " +"setting, just deactivate it again, and your site will be back to normal." +msgstr "" +"Se notar quaisquer erros no seu site depois de activar esta opção, basta " +"desactivar de novo para o seu site voltar ao normal." + +#: inc/Engine/Admin/Settings/Page.php:610 msgid "Activate Remove Unused CSS" msgstr "Activar a remoção de CSS não utilizado" -#: inc/Engine/Admin/Settings/Page.php:636 +#: inc/Engine/Admin/Settings/Page.php:616 msgid "CSS safelist" msgstr "CSS a não remover" -#: inc/Engine/Admin/Settings/Page.php:637 +#: inc/Engine/Admin/Settings/Page.php:617 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -1498,13 +1462,13 @@ msgstr "" "Especifique os ficheiros, ID ou classes CSS que não devem ser removidos (um " "por linha)." -#: inc/Engine/Admin/Settings/Page.php:652 -#: inc/Engine/CriticalPath/Admin/Subscriber.php:200 +#: inc/Engine/Admin/Settings/Page.php:632 +#: inc/Engine/CriticalPath/Admin/Subscriber.php:201 msgid "Load CSS asynchronously" msgstr "Carregamento assíncrono de CSS" #. translators: %1$s = plugin name. -#: inc/Engine/Admin/Settings/Page.php:655 +#: inc/Engine/Admin/Settings/Page.php:635 msgctxt "WP Critical CSS compatibility" msgid "" "Load CSS asynchronously is currently handled by the %1$s plugin. If you want" @@ -1514,19 +1478,19 @@ msgstr "" "usar o carregamento assíncrono de CSS do WP Rocket, desactive o plugin %1$s." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:657 +#: inc/Engine/Admin/Settings/Page.php:637 msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" "Gera CSS do caminho crítico e carrega o CSS de modo assíncrono. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:663 +#: inc/Engine/Admin/Settings/Page.php:643 msgid "Fallback critical CSS" msgstr "Alternativa ao CSS crítico" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:645 msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " "%1$sMore info%2$s" @@ -1534,22 +1498,18 @@ msgstr "" "Fornece uma alternativa caso o CSS do caminho crítico gerado automaticamente" " esteja incompleto. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:680 +#: inc/Engine/Admin/Settings/Page.php:660 msgid "Minify JavaScript files" msgstr "Minificar ficheiros de JavaScript" -#: inc/Engine/Admin/Settings/Page.php:681 +#: inc/Engine/Admin/Settings/Page.php:661 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "A minificação do JavaScript remove espaços em branco e comentários para " "reduzir o tamanho do ficheiro." -#: inc/Engine/Admin/Settings/Page.php:696 -msgid "Activate minify JavaScript" -msgstr "Activar minificação do JavaScript" - -#: inc/Engine/Admin/Settings/Page.php:701 +#: inc/Engine/Admin/Settings/Page.php:675 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" @@ -1557,7 +1517,7 @@ msgstr "" "JavaScript para poder seleccionar)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:703 +#: inc/Engine/Admin/Settings/Page.php:677 msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" " JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " @@ -1567,8 +1527,7 @@ msgstr "" "terceiros, reduzindo os pedidos HTTP. Não é recomendado se o seu site " "utilizar HTTP/2. %1$sMais informações%2$s" -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:704 +#: inc/Engine/Admin/Settings/Page.php:678 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -1576,12 +1535,12 @@ msgstr "" "Para compatibilidade e melhores resultados, esta opção é desactivada ao " "activar a opção de diferir a execução de JavaScript." -#: inc/Engine/Admin/Settings/Page.php:720 +#: inc/Engine/Admin/Settings/Page.php:694 msgid "Activate combine JavaScript" msgstr "Activar combinação do JavaScript" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:701 msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" " per line). %1$sMore info%2$s" @@ -1589,7 +1548,7 @@ msgstr "" "Especifique padrões de JavaScript em linha a excluir da concatenação (um por" " linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:744 +#: inc/Engine/Admin/Settings/Page.php:718 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -1597,7 +1556,7 @@ msgstr "" "Especifique os URL de ficheiros de JavaScript a excluir da minificação e " "concatenação (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:745 +#: inc/Engine/Admin/Settings/Page.php:719 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -1608,7 +1567,7 @@ msgstr "" "caminho específico." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:747 +#: inc/Engine/Admin/Settings/Page.php:721 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external JS. %1$sMore info%2$s" @@ -1616,13 +1575,13 @@ msgstr "" "Terceiros: Use o caminho completo do URL ou apenas o nome " "do domínio, para excluir JS externo. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:763 +#: inc/Engine/Admin/Settings/Page.php:737 #: inc/Engine/Optimization/DeferJS/AdminSubscriber.php:76 msgid "Load JavaScript deferred" msgstr "Diferir carregamento de JavaScript" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:765 +#: inc/Engine/Admin/Settings/Page.php:739 msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " "improve load time. %1$sMore info%2$s" @@ -1632,7 +1591,7 @@ msgstr "" "informações%2$s" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:778 +#: inc/Engine/Admin/Settings/Page.php:752 msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " "per line). %1$sMore info%2$s" @@ -1640,13 +1599,13 @@ msgstr "" "Especifique os URL ou palavras-chave de ficheiros de JavaScript a excluir do" " diferimento (um por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:768 #: inc/Engine/Optimization/DelayJS/Admin/Subscriber.php:210 msgid "Delay JavaScript execution" msgstr "Diferir execução de JavaScript" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:796 +#: inc/Engine/Admin/Settings/Page.php:770 msgid "" "Improves performance by delaying the loading of JavaScript files until user " "interaction (e.g. scroll, click). %1$sMore info%2$s" @@ -1655,11 +1614,11 @@ msgstr "" "até interacção do utilizador (como scroll ou clique). %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:805 +#: inc/Engine/Admin/Settings/Page.php:779 msgid "One-click exclusions" msgstr "Exclusões com um clique" -#: inc/Engine/Admin/Settings/Page.php:806 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "" "When using the Delay JavaScript Execution, you might experience delay " "loading elements located in the viewport that need to appear immediately - " @@ -1669,7 +1628,7 @@ msgstr "" " no carregamento de elementos localizados na área visível do ecrã que devam " "ser mostrados de imediato, como por exemplo, slider, cabeçalho ou menu." -#: inc/Engine/Admin/Settings/Page.php:807 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "If you need instant visibility, click below on files that should NOT be " "delayed. This selection will help users interact with the elements straight " @@ -1679,7 +1638,7 @@ msgstr "" "devem ser diferidos. Esta selecção ajudará os utilizadores a interagir de " "imediato com os elementos." -#: inc/Engine/Admin/Settings/Page.php:824 +#: inc/Engine/Admin/Settings/Page.php:798 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -1687,24 +1646,24 @@ msgstr "" "Especifique os URL ou palavras-chave que possam identificar o JavaScript em " "linha ou em ficheiros a excluir da execução em diferido (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:856 +#: inc/Engine/Admin/Settings/Page.php:830 msgid "Media" msgstr "Multimédia" -#: inc/Engine/Admin/Settings/Page.php:857 +#: inc/Engine/Admin/Settings/Page.php:831 msgid "LazyLoad, image dimensions" msgstr "Carregamento diferido, dimensões de imagens" -#: inc/Engine/Admin/Settings/Page.php:866 +#: inc/Engine/Admin/Settings/Page.php:840 msgid "Autoptimize" msgstr "Autoptimize" -#: inc/Engine/Admin/Settings/Page.php:920 +#: inc/Engine/Admin/Settings/Page.php:894 msgid "LazyLoad" msgstr "Carregamento diferido" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:923 +#: inc/Engine/Admin/Settings/Page.php:897 msgid "" "It can improve actual and perceived loading time as images, iframes, and " "videos will be loaded only as they enter (or about to enter) the viewport " @@ -1716,7 +1675,7 @@ msgstr "" "informações%2$s" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:930 +#: inc/Engine/Admin/Settings/Page.php:904 msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " "LazyLoad, disable this option in %2$s." @@ -1724,12 +1683,12 @@ msgstr "" "De momento o carregamento diferido está activado em %2$s. Se quiser usar o " "carregamento diferido do WP Rocket, desactive esta opção em %2$s." -#: inc/Engine/Admin/Settings/Page.php:933 +#: inc/Engine/Admin/Settings/Page.php:907 msgid "Image Dimensions" msgstr "Dimensões das imagens" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:910 msgid "" "Add missing width and height attributes to images. Helps prevent layout " "shifts and improve the reading experience for your visitors. %1$sMore " @@ -1739,12 +1698,12 @@ msgstr "" "evitar alterações de layout e melhora a experiência de leitura dos seus " "visitantes. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:955 +#: inc/Engine/Admin/Settings/Page.php:929 msgid "Enable for images" msgstr "Activar para imagens" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:967 +#: inc/Engine/Admin/Settings/Page.php:941 msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " "%1$s’s LazyLoad, disable this option in %2$s." @@ -1752,27 +1711,27 @@ msgstr "" "De momento o carregamento diferido de imagens está activado em %2$s. Se " "quiser usar o carregamento diferido do %1$s, desactive esta opção em %2$s." -#: inc/Engine/Admin/Settings/Page.php:975 +#: inc/Engine/Admin/Settings/Page.php:949 msgid "Enable for CSS background images" msgstr "Activar para imagens de fundo CSS" -#: inc/Engine/Admin/Settings/Page.php:990 +#: inc/Engine/Admin/Settings/Page.php:964 msgid "Enable for iframes and videos" msgstr "Activar para iframes e vídeos" -#: inc/Engine/Admin/Settings/Page.php:1005 +#: inc/Engine/Admin/Settings/Page.php:979 msgid "Replace YouTube iframe with preview image" msgstr "Substituir iframes do YouTube por imagens de pré-visualização" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "A substituição de iframes do YouTube por imagens de pré-visualização não é " "compatível com %2$s." #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -1780,12 +1739,12 @@ msgstr "" "Isto pode melhorar significativamente o tempo de carregamento se tiver " "muitos vídeos do YouTube numa só página." -#: inc/Engine/Admin/Settings/Page.php:1022 +#: inc/Engine/Admin/Settings/Page.php:996 msgid "Excluded images or iframes" msgstr "Imagens ou iframes excluídos" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1024 +#: inc/Engine/Admin/Settings/Page.php:998 msgid "" "Specify keywords (e.g. image filename, CSS filename, CSS class, domain) from" " the image or iframe code to be excluded (one per line). %1$sMore info%2$s" @@ -1794,20 +1753,20 @@ msgstr "" "ficheiro CSS, classe CSS, domínio) das imagens ou dos códigos de iframe a " "excluir (uma por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1032 +#: inc/Engine/Admin/Settings/Page.php:1006 msgid "Add missing image dimensions" msgstr "Adicionar dimensões em falta das imagens" -#: inc/Engine/Admin/Settings/Page.php:1052 +#: inc/Engine/Admin/Settings/Page.php:1026 msgid "Generate cache files, preload fonts" msgstr "Crie ficheiros de cache, pré-carregue tipos de letra" -#: inc/Engine/Admin/Settings/Page.php:1064 +#: inc/Engine/Admin/Settings/Page.php:1038 msgid "Preload Cache" msgstr "Pré-carregamento da cache" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1067 +#: inc/Engine/Admin/Settings/Page.php:1041 msgid "" "When you enable preloading WP Rocket will automatically detect your sitemaps" " and save all URLs to the database. The plugin will make sure that your " @@ -1817,12 +1776,12 @@ msgstr "" "seus sitemaps e guardar todos os URL na base de dados. O plugin assegura que" " a sua cache seja sempre pré-carregada." -#: inc/Engine/Admin/Settings/Page.php:1075 +#: inc/Engine/Admin/Settings/Page.php:1049 msgid "Preload Links" msgstr "Pré-carregamento das ligações" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1052 msgid "" "Link preloading improves the perceived load time by downloading a page when " "a user hovers over the link. %1$sMore info%2$s" @@ -1831,11 +1790,11 @@ msgstr "" "através de descarregar a página assim que o utilizador passa com o rato " "sobre a respectiva ligação. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1086 +#: inc/Engine/Admin/Settings/Page.php:1060 msgid "Prefetch DNS Requests" msgstr "Antecipar pedidos de DNS" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1843,12 +1802,12 @@ msgstr "" "A antecipação do pedido de DNS pode acelerar o carregamento de ficheiros " "externos, especialmente em redes móveis" -#: inc/Engine/Admin/Settings/Page.php:1093 +#: inc/Engine/Admin/Settings/Page.php:1067 msgid "Preload Fonts" msgstr "Pré-carregar tipos de letra" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1096 +#: inc/Engine/Admin/Settings/Page.php:1070 msgid "" "Improves performance by helping browsers discover fonts in CSS files. " "%1$sMore info%2$s" @@ -1856,16 +1815,16 @@ msgstr "" "Melhora o desempenho ao ajudar os navegadores a descobrir tipos de letra em " "ficheiros de CSS. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1084 msgid "Activate Preloading" msgstr "Activar pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1121 +#: inc/Engine/Admin/Settings/Page.php:1095 msgid "Exclude URLs" msgstr "Excluir estes URL" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1126 +#: inc/Engine/Admin/Settings/Page.php:1100 msgid "" "Specify URLs to be excluded from the preload feature (one per line). " "%1$sMore info%2$s" @@ -1873,11 +1832,11 @@ msgstr "" "Especifique os URL a excluir do pré-carregamento (um por linha). %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1137 +#: inc/Engine/Admin/Settings/Page.php:1111 msgid "URLs to prefetch" msgstr "Os URL dos pedidos a antecipar" -#: inc/Engine/Admin/Settings/Page.php:1138 +#: inc/Engine/Admin/Settings/Page.php:1112 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1885,11 +1844,11 @@ msgstr "" "Especifique os servidores externos a antecipar os pedidos (sem " "http:, um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1147 +#: inc/Engine/Admin/Settings/Page.php:1121 msgid "Fonts to preload" msgstr "Tipos de letra a pré-carregar" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1122 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1898,7 +1857,7 @@ msgstr "" "linha). Os tipos de letra devem ser alojados no seu domínio, ou no domínio " "especificado no separador da CDN." -#: inc/Engine/Admin/Settings/Page.php:1149 +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1906,53 +1865,53 @@ msgstr "" "O domínio será removido automaticamente do URL.
Extensões permitidas " "para tipos de letra: otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1132 msgid "Enable link preloading" msgstr "Activar o pré-carregamento de ligações" -#: inc/Engine/Admin/Settings/Page.php:1177 +#: inc/Engine/Admin/Settings/Page.php:1151 msgid "Advanced Rules" msgstr "Regras avançadas" -#: inc/Engine/Admin/Settings/Page.php:1178 +#: inc/Engine/Admin/Settings/Page.php:1152 msgid "Fine-tune cache rules" msgstr "Configure as regras de cache em pormenor" -#: inc/Engine/Admin/Settings/Page.php:1191 +#: inc/Engine/Admin/Settings/Page.php:1165 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "Devem excluir-se da cache os URL personalizados de páginas dinâmicas como as" " de início e terminar sessão." -#: inc/Engine/Admin/Settings/Page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1168 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1196 +#: inc/Engine/Admin/Settings/Page.php:1170 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1198 +#: inc/Engine/Admin/Settings/Page.php:1172 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1200 +#: inc/Engine/Admin/Settings/Page.php:1174 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1202 +#: inc/Engine/Admin/Settings/Page.php:1176 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" #. translators: %1$s = opening tag, %2$s = plugin name, %3$s closing #. tag. -#: inc/Engine/Admin/Settings/Page.php:1208 +#: inc/Engine/Admin/Settings/Page.php:1182 msgid "" "
Cart, checkout and \"my account\" pages set in " "%1$s%2$s%3$s will be detected and never cached by default." @@ -1961,12 +1920,12 @@ msgstr "" "%1$s%2$s%3$s serão detectadas e por omissão nunca serão " "armazenadas em cache." -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1192 msgid "Cache Lifespan" msgstr "Expiração da cache" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1221 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " "%1$spreloading%2$s for the cache to be rebuilt automatically after lifespan " @@ -1976,16 +1935,16 @@ msgstr "" "especificada.
Active o %1$spré-carregamento%2$s para a cache ser " "reconstruída automaticamente após a sua expiração." -#: inc/Engine/Admin/Settings/Page.php:1237 +#: inc/Engine/Admin/Settings/Page.php:1211 msgid "Never Cache Cookies" msgstr "Nunca criar cache de cookies" -#: inc/Engine/Admin/Settings/Page.php:1255 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "Cache Query String(s)" msgstr "Cache de parâmetros de consulta" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1232 msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " "GET parameters." @@ -1993,14 +1952,14 @@ msgstr "" "A %1$scache de parâmetros de consulta%2$s permite forçar a cache de " "parâmetros GET específicos." -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1243 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "Especifique o tempo após o qual a cache global é limpa
(0 = ilimitado)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1271 +#: inc/Engine/Admin/Settings/Page.php:1245 msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" " periodically. %1$sWhy?%2$s" @@ -2008,27 +1967,27 @@ msgstr "" "Reduza a expiração para 10 horas ou menos se notar erros que parecem surgir " "periodicamente. %1$sPorquê?%2$s" -#: inc/Engine/Admin/Settings/Page.php:1277 -#: inc/Engine/License/views/promo-banner.php:30 -#: inc/Engine/License/views/renewal-soon-banner.php:13 +#: inc/Engine/Admin/Settings/Page.php:1251 +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 msgid "Hours" msgstr "Horas" -#: inc/Engine/Admin/Settings/Page.php:1278 -#: inc/Engine/License/views/promo-banner.php:29 -#: inc/Engine/License/views/renewal-soon-banner.php:12 +#: inc/Engine/Admin/Settings/Page.php:1252 +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 msgid "Days" msgstr "Dias" -#: inc/Engine/Admin/Settings/Page.php:1283 +#: inc/Engine/Admin/Settings/Page.php:1257 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Especifique os URL de páginas ou conteúdos que nunca deverão ser guardados " "em cache (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1284 -#: inc/Engine/Admin/Settings/Page.php:1312 +#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1286 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -2036,7 +1995,7 @@ msgstr "" "O domínio será removido automaticamente do URL.
Utilize wildcards (.*) " "para incluir múltiplos URL num determinado caminho." -#: inc/Engine/Admin/Settings/Page.php:1293 +#: inc/Engine/Admin/Settings/Page.php:1267 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -2045,20 +2004,20 @@ msgstr "" " navegador do visitante, deverão impedir uma página de ser guardada em cache" " (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1275 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Especifique strings de agentes de utilizador que nunca devem obter páginas " "em cache (uma por linha)" -#: inc/Engine/Admin/Settings/Page.php:1302 +#: inc/Engine/Admin/Settings/Page.php:1276 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "Utilize wildcards (.*) para detectar partes de strings de agentes de " "utilizador." -#: inc/Engine/Admin/Settings/Page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1285 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -2066,19 +2025,19 @@ msgstr "" "Especifique os URL a limpar da cache sempre que actualizar qualquer conteúdo" " ou página (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1320 +#: inc/Engine/Admin/Settings/Page.php:1294 msgid "Specify query strings for caching (one per line)" msgstr "Especifique parâmetros de consulta a adicionar à cache (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1320 msgid "Optimize, reduce bloat" msgstr "Optimize, reduza a sobrecarga" -#: inc/Engine/Admin/Settings/Page.php:1353 +#: inc/Engine/Admin/Settings/Page.php:1327 msgid "Post Cleanup" msgstr "Limpeza de conteúdos" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1329 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -2086,19 +2045,19 @@ msgstr "" "As revisões e rascunhos de conteúdos serão eliminados permanentemente. Não " "use esta opção se precisar das revisões e dos rascunhos." -#: inc/Engine/Admin/Settings/Page.php:1360 +#: inc/Engine/Admin/Settings/Page.php:1334 msgid "Comments Cleanup" msgstr "Limpeza de comentários" -#: inc/Engine/Admin/Settings/Page.php:1362 +#: inc/Engine/Admin/Settings/Page.php:1336 msgid "Spam and trashed comments will be permanently deleted." msgstr "Os comentários de spam e no lixo serão eliminados permanentemente." -#: inc/Engine/Admin/Settings/Page.php:1366 +#: inc/Engine/Admin/Settings/Page.php:1340 msgid "Transients Cleanup" msgstr "Limpeza de transientes" -#: inc/Engine/Admin/Settings/Page.php:1368 +#: inc/Engine/Admin/Settings/Page.php:1342 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -2106,21 +2065,21 @@ msgstr "" "Os transientes são opções temporárias, é seguro removê-los. Serão " "regenerados automaticamente quando os seus plugins precisarem." -#: inc/Engine/Admin/Settings/Page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1346 msgid "Database Cleanup" msgstr "Limpeza da base de dados" -#: inc/Engine/Admin/Settings/Page.php:1374 +#: inc/Engine/Admin/Settings/Page.php:1348 msgid "Reduces overhead of database tables" msgstr "Reduz a sobrecarga das tabelas da base de dados" -#: inc/Engine/Admin/Settings/Page.php:1378 +#: inc/Engine/Admin/Settings/Page.php:1352 msgid "Automatic Cleanup" msgstr "Limpeza automática" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1391 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "%s revisão na sua base de dados." @@ -2129,7 +2088,7 @@ msgstr[2] "%s revisões na sua base de dados." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1401 +#: inc/Engine/Admin/Settings/Page.php:1375 msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "%s rascunho na sua base de dados." @@ -2138,7 +2097,7 @@ msgstr[2] "%s rascunhos na sua base de dados." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1411 +#: inc/Engine/Admin/Settings/Page.php:1385 msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "%s conteúdo no lixo na sua base de dados." @@ -2147,7 +2106,7 @@ msgstr[2] "%s conteúdos no lixo na sua base de dados." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1395 msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "%s comentário de spam na sua base de dados." @@ -2156,64 +2115,64 @@ msgstr[2] "%s comentários de spam na sua base de dados." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1405 msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "%s comentário no lixo na sua base de dados." msgstr[1] "%s comentários no lixo na sua base de dados." msgstr[2] "%s comentários no lixo na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1439 +#: inc/Engine/Admin/Settings/Page.php:1413 msgid "All transients" msgstr "Todos os transientes" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1441 +#: inc/Engine/Admin/Settings/Page.php:1415 msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "%s transiente na sua base de dados." msgstr[1] "%s transientes na sua base de dados." msgstr[2] "%s transientes na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1449 +#: inc/Engine/Admin/Settings/Page.php:1423 msgid "Optimize Tables" msgstr "Optimizar tabelas" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1451 +#: inc/Engine/Admin/Settings/Page.php:1425 msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "%s tabela a optimizar na sua base de dados." msgstr[1] "%s tabelas a optimizar na sua base de dados." msgstr[2] "%s tabelas a optimizar na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1436 msgid "Schedule Automatic Cleanup" msgstr "Agendar limpeza automática" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1448 msgid "Frequency" msgstr "Frequência" -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1456 msgid "Daily" msgstr "Diariamente" -#: inc/Engine/Admin/Settings/Page.php:1483 +#: inc/Engine/Admin/Settings/Page.php:1457 msgid "Weekly" msgstr "Semanalmente" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1458 msgid "Monthly" msgstr "Mensalmente" -#: inc/Engine/Admin/Settings/Page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1475 msgid "Integrate your CDN" msgstr "Integre a sua CDN" -#: inc/Engine/Admin/Settings/Page.php:1513 +#: inc/Engine/Admin/Settings/Page.php:1487 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -2222,7 +2181,7 @@ msgstr "" "no(s) CNAME(s) que fornecer." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1489 msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " "available %1$sAdd-ons%2$s." @@ -2232,7 +2191,7 @@ msgstr "" #. translators: %1$s = opening em tag, %2$l = list of add-on name(s), %3$s = #. closing em tag. -#: inc/Engine/Admin/Settings/Page.php:1561 +#: inc/Engine/Admin/Settings/Page.php:1533 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -2249,28 +2208,28 @@ msgstr[2] "" "Os %1$smódulos %2$l%3$s estão activos de momento. Não é necessário " "configurar a CDN para os módulos %2$l funcionarem no seu site." -#: inc/Engine/Admin/Settings/Page.php:1587 +#: inc/Engine/Admin/Settings/Page.php:1559 msgid "Enable Content Delivery Network" msgstr "Activar CDN" -#: inc/Engine/Admin/Settings/Page.php:1596 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:159 +#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:162 msgid "CDN CNAME(s)" msgstr "CNAME(s) da CDN" -#: inc/Engine/Admin/Settings/Page.php:1597 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:160 +#: inc/Engine/Admin/Settings/Page.php:1569 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:163 msgid "Specify the CNAME(s) below" msgstr "Especifique o(s) CNAME(s) abaixo" -#: inc/Engine/Admin/Settings/Page.php:1604 +#: inc/Engine/Admin/Settings/Page.php:1576 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "Especifique os URL dos ficheiros que não devem ser servidos pela CDN (um por" " linha)." -#: inc/Engine/Admin/Settings/Page.php:1605 +#: inc/Engine/Admin/Settings/Page.php:1577 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -2280,16 +2239,16 @@ msgstr "" "para excluir todos os ficheiros de um determinado tipo, localizados num " "caminho específico." -#: inc/Engine/Admin/Settings/Page.php:1628 -#: inc/Engine/Admin/Settings/Page.php:1636 +#: inc/Engine/Admin/Settings/Page.php:1600 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Heartbeat" msgstr "Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1601 msgid "Control WordPress Heartbeat API" msgstr "Controle a Heartbeat API do WordPress" -#: inc/Engine/Admin/Settings/Page.php:1637 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -2297,11 +2256,11 @@ msgstr "" "Reduzir ou desactivar a actividade da Hartbeat API pode economizar alguns " "recursos do seu servidor." -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1615 msgid "Reduce or disable Heartbeat activity" msgstr "Reduzir ou desactivar a actividade do Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -2309,55 +2268,55 @@ msgstr "" "A redução de actividade altera a frequência do Heartbeat de um acesso por " "minuto para um acesso a cada 2 minutos." -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "Desactivar completamente o Heartbeat pode prejudicar os plugins e temas que " "usem esta API." -#: inc/Engine/Admin/Settings/Page.php:1658 +#: inc/Engine/Admin/Settings/Page.php:1630 msgid "Do not limit" msgstr "Não limitar" -#: inc/Engine/Admin/Settings/Page.php:1659 +#: inc/Engine/Admin/Settings/Page.php:1631 msgid "Reduce activity" msgstr "Reduzir actividade" -#: inc/Engine/Admin/Settings/Page.php:1660 +#: inc/Engine/Admin/Settings/Page.php:1632 msgid "Disable" msgstr "Desactivar" -#: inc/Engine/Admin/Settings/Page.php:1668 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Control Heartbeat" msgstr "Controlar Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1677 +#: inc/Engine/Admin/Settings/Page.php:1649 msgid "Behavior in backend" msgstr "Comportamento no painel de administração" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1656 msgid "Behavior in post editor" msgstr "Comportamento no editor de conteúdos" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Behavior in frontend" msgstr "Comportamento na interface do site" -#: inc/Engine/Admin/Settings/Page.php:1709 +#: inc/Engine/Admin/Settings/Page.php:1681 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Módulos" -#: inc/Engine/Admin/Settings/Page.php:1710 +#: inc/Engine/Admin/Settings/Page.php:1682 msgid "Add more features" msgstr "Adicione mais funcionalidades" -#: inc/Engine/Admin/Settings/Page.php:1717 +#: inc/Engine/Admin/Settings/Page.php:1689 msgid "One-click Rocket Add-ons" msgstr "Módulos do Rocket com um clique" -#: inc/Engine/Admin/Settings/Page.php:1718 +#: inc/Engine/Admin/Settings/Page.php:1690 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -2366,21 +2325,21 @@ msgstr "" "opções disponíveis sem necessidade de configuração. Ligue as opções para " "activar os módulos neste mesmo ecrã." -#: inc/Engine/Admin/Settings/Page.php:1728 +#: inc/Engine/Admin/Settings/Page.php:1700 msgid "Rocket Add-ons" msgstr "Módulos do Rocket" -#: inc/Engine/Admin/Settings/Page.php:1729 +#: inc/Engine/Admin/Settings/Page.php:1701 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Os módulos do Rocket são funcionalidades complementares que aumentam as " "opções disponíveis." -#: inc/Engine/Admin/Settings/Page.php:1740 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "User Cache" msgstr "Cache de utilizadores" -#: inc/Engine/Admin/Settings/Page.php:1746 +#: inc/Engine/Admin/Settings/Page.php:1718 msgid "" "If you need to create a dedicated set of cache files for each logged-in " "WordPress user, you must activate this add-on." @@ -2389,7 +2348,7 @@ msgstr "" "utilizador do WordPress com sessão iniciada, tem de activar este módulo." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "User cache is great when you have user-specific or restricted content on " "your website.
%1$sLearn more%2$s" @@ -2397,16 +2356,16 @@ msgstr "" "A cache de utilizador é excelente quando tem conteúdo restrito ou específico" " do utilizador no seu site.
%1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:1761 -#: inc/Engine/Admin/Settings/Page.php:1930 +#: inc/Engine/Admin/Settings/Page.php:1733 +#: inc/Engine/Admin/Settings/Page.php:1902 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1767 +#: inc/Engine/Admin/Settings/Page.php:1739 msgid "Integrate your Cloudflare account with this add-on." msgstr "Integre a sua conta da Cloudflare com este módulo." -#: inc/Engine/Admin/Settings/Page.php:1768 +#: inc/Engine/Admin/Settings/Page.php:1740 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -2417,7 +2376,7 @@ msgstr "" "ideal com o WP Rocket." #. translators: %1$s = opening span tag, %2$s = closing span tag. -#: inc/Engine/Admin/Settings/Page.php:1771 +#: inc/Engine/Admin/Settings/Page.php:1743 msgid "" "%1$sPlanning on using Automatic Platform Optimization (APO)?%2$s Just " "activate the official Cloudflare plugin and configure it. WP Rocket will " @@ -2427,16 +2386,16 @@ msgstr "" "activar e o plugin oficial da Cloudflare e configurar. O WP Rocket activará " "a compatibilidade automaticamente." -#: inc/Engine/Admin/Settings/Page.php:1819 +#: inc/Engine/Admin/Settings/Page.php:1791 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1825 +#: inc/Engine/Admin/Settings/Page.php:1797 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "Se utilizar o Varnish no seu servidor, deve activar este módulo." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1827 +#: inc/Engine/Admin/Settings/Page.php:1799 msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" @@ -2444,16 +2403,16 @@ msgstr "" "O cache do Varnish será limpa sempre que limpar a cache do WP Rocket para " "garantir que o conteúdo está sempre actualizado.
%1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:1834 msgid "WebP Compatibility" msgstr "Compatibilidade com WebP" -#: inc/Engine/Admin/Settings/Page.php:1868 +#: inc/Engine/Admin/Settings/Page.php:1840 msgid "Improve browser compatibility for WebP images." msgstr "Melhorar a compatibilidade dos navegadores para imagens WebP." #. translators: %1$s and %3$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1872 +#: inc/Engine/Admin/Settings/Page.php:1844 msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " "compatible browsers. Please note that WP Rocket cannot create WebP images " @@ -2465,11 +2424,11 @@ msgstr "" " por si. Para criar imagens WebP recomendamos o %1$sImagify%2$s. %3$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1892 +#: inc/Engine/Admin/Settings/Page.php:1864 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "Limpar a cache do Sucuri ao limpar a cache do WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1895 +#: inc/Engine/Admin/Settings/Page.php:1867 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -2477,49 +2436,49 @@ msgstr "" "Forneça a sua chave de API para limpar a cache do Sucuri ao limpar a cache " "do WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1903 -#: inc/Engine/Admin/Settings/Page.php:2047 +#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:2019 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1909 +#: inc/Engine/Admin/Settings/Page.php:1881 msgid "Synchronize Sucuri cache with this add-on." msgstr "Sincronize a cache do Sucuri com este módulo." -#: inc/Engine/Admin/Settings/Page.php:1947 +#: inc/Engine/Admin/Settings/Page.php:1919 msgid "Cloudflare credentials" msgstr "Credenciais da Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1956 +#: inc/Engine/Admin/Settings/Page.php:1928 msgid "Cloudflare settings" msgstr "Opções da Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1970 +#: inc/Engine/Admin/Settings/Page.php:1942 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Chave global de API:" -#: inc/Engine/Admin/Settings/Page.php:1971 +#: inc/Engine/Admin/Settings/Page.php:1943 msgctxt "Cloudflare" msgid "Find your API key" msgstr "Consulte a sua chave de API" -#: inc/Engine/Admin/Settings/Page.php:1983 +#: inc/Engine/Admin/Settings/Page.php:1955 msgctxt "Cloudflare" msgid "Account email" msgstr "Email da conta" -#: inc/Engine/Admin/Settings/Page.php:1992 +#: inc/Engine/Admin/Settings/Page.php:1964 msgctxt "Cloudflare" msgid "Zone ID" msgstr "ID da zona" -#: inc/Engine/Admin/Settings/Page.php:2002 +#: inc/Engine/Admin/Settings/Page.php:1974 msgid "Development mode" msgstr "Modo de desenvolvimento" #. translators: %1$s = link opening tag, %2$s = link closing tag. -#: inc/Engine/Admin/Settings/Page.php:2004 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" @@ -2527,11 +2486,11 @@ msgstr "" "Active temporariamente o modo de desenvolvimento no seu site. Esta opção " "desactiva-se automaticamente após 3 horas. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:2012 +#: inc/Engine/Admin/Settings/Page.php:1984 msgid "Optimal settings" msgstr "Configuração ideal" -#: inc/Engine/Admin/Settings/Page.php:2013 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -2539,11 +2498,11 @@ msgstr "" "Melhore automaticamente a sua configuração da Cloudflare para melhor " "velocidade, grau de desempenho e compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:2021 +#: inc/Engine/Admin/Settings/Page.php:1993 msgid "Relative protocol" msgstr "Protocolo relativo" -#: inc/Engine/Admin/Settings/Page.php:2022 +#: inc/Engine/Admin/Settings/Page.php:1994 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -2553,11 +2512,11 @@ msgstr "" "ficheiros estáticos (CSS, JS, imagens) serão reescritos para usar // em vez " "de http:// ou https://." -#: inc/Engine/Admin/Settings/Page.php:2060 +#: inc/Engine/Admin/Settings/Page.php:2032 msgid "Sucuri credentials" msgstr "Credenciais do Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2073 +#: inc/Engine/Admin/Settings/Page.php:2045 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -2566,24 +2525,22 @@ msgstr "" "A chave de API da firewall (do plugin) tem de estar no formato {32 " "caracteres}/{32 caracteres}:" -#: inc/Engine/Admin/Settings/Page.php:2074 +#: inc/Engine/Admin/Settings/Page.php:2046 msgctxt "Sucuri" msgid "Find your API key" msgstr "Consulte a sua chave de API" #. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: -#. opening a tag, %4$s: option a tag, %5$s: opening a tag. -#: inc/Engine/Admin/Settings/Page.php:2295 +#. opening a tag, %4$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2251 msgid "" -"%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our " -"brand new feature %3$sOptimize critical images%5$s is automatically " -"activated now! Also, the Cache tab was removed but the existing features " -"will remain working, %4$ssee more here%5$s." +"%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New " +"feature: %3$sLazy Render Content%4$s. Check out our documentation to learn " +"more about it." msgstr "" -"%1$sWP Rocket:%2$s O plugin foi actualizado para a versão 3.16. A nova " -"funcionalidade de %3$sOptimizar imagens críticas%5$s foi automaticamente " -"activada! Além disto, o separador Cache foi removido, mas as funcionalidades" -" existentes continuarão a funcionar, %4$ssaiba mais aqui%5$s." +"%1$sWP Rocket:%2$s o plugin foi actualizado para a versão 3.17. Noca " +"funcionalidade: %3$sApresentação diferida de conteúdo%4$s. Consulte a nossa " +"documentação saber mais." #: inc/Engine/Admin/Settings/Settings.php:361 msgid "" @@ -2602,25 +2559,25 @@ msgstr "" " URL porque isto desactiva o armazenamento de cache e as optimizações para " "cada página do seu site." -#: inc/Engine/Admin/Settings/Subscriber.php:172 +#: inc/Engine/Admin/Settings/Subscriber.php:174 msgid "Import, Export, Rollback" msgstr "Importar, exportar, reverter" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:199 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "Optimizar imagens" -#: inc/Engine/Admin/Settings/Subscriber.php:198 +#: inc/Engine/Admin/Settings/Subscriber.php:200 msgid "Compress your images" msgstr "Comprima as suas imagens" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:217 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "Tutoriais" -#: inc/Engine/Admin/Settings/Subscriber.php:216 +#: inc/Engine/Admin/Settings/Subscriber.php:218 msgid "Getting started and how to videos" msgstr "Vídeos de introdução e aprendizagem" @@ -2628,15 +2585,15 @@ msgstr "Vídeos de introdução e aprendizagem" msgid "WP Rocket Expired Cache Interval" msgstr "Intervalo de expiração da cache do WP Rocket" -#: inc/Engine/Cache/WPCache.php:337 +#: inc/Engine/Cache/WPCache.php:338 msgid "WP_CACHE value" msgstr "Valor de WP_CACHE" -#: inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Cache/WPCache.php:355 msgid "Cache" msgstr "Cache" -#: inc/Engine/Cache/WPCache.php:358 +#: inc/Engine/Cache/WPCache.php:359 msgid "" "The WP_CACHE constant needs to be set to true for WP Rocket cache to work " "properly" @@ -2644,38 +2601,38 @@ msgstr "" "A constante WP_Cache tem de estar definida como 'true' para que a cache do " "WP Rocket funcione correctamente" -#: inc/Engine/Cache/WPCache.php:367 +#: inc/Engine/Cache/WPCache.php:368 msgid "WP_CACHE is set to true" msgstr "WP_CACHE está definida como true" -#: inc/Engine/Cache/WPCache.php:375 +#: inc/Engine/Cache/WPCache.php:376 msgid "WP_CACHE is not set" msgstr "WP_CACHE não está definida" -#: inc/Engine/Cache/WPCache.php:383 +#: inc/Engine/Cache/WPCache.php:384 msgid "WP_CACHE is set to false" msgstr "WP_CACHE está definida como false" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:96 msgid "Next Billing Date" msgstr "Data da próxima facturação" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:99 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:103 msgid "No Subscription" msgstr "Sem subscrição" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:135 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:138 msgid "Your RocketCDN subscription is currently active." msgstr "A sua assinatura da RocketCDN está activa." #. translators: %1$s = opening tag, %2$s = CDN URL, %3$s = closing #. tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:141 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:144 msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "Para usar a RocketCDN, substitua o seu CNAME por %1$s%2$s%3$s." #. translators: %1$is = opening link tag, %2$s = closing link tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:152 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:155 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:230 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:334 msgid "%1$sMore Info%2$s" @@ -2743,16 +2700,16 @@ msgstr "RocketCDN desactivada" #. Translators: %s = date formatted using date_i18n() and get_option( #. 'date_format' ). -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:29 msgid "Valid until %s only!" msgstr "Válido apenas até %s!" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:38 msgid "Speed up your website thanks to:" msgstr "Acelere o seu site com o seguinte:" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:44 msgid "" "High performance Content Delivery Network (CDN) with %1$sunlimited " "bandwidth%2$s" @@ -2761,7 +2718,7 @@ msgstr "" "ilimitada%2$s" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:50 msgid "" "Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "" @@ -2769,7 +2726,7 @@ msgstr "" "automaticamente" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:56 msgid "" "WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in" " our plugin" @@ -2777,12 +2734,12 @@ msgstr "" "Integração do WP Rocket: A opção da CDN é %1$sconfigurada " "automaticamente%2$s no nosso plugin" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:60 msgid "Learn more about RocketCDN" msgstr "Saiba mais sobre a RocketCDN" #. translators: %1$s = discounted price, %2$s = regular price. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:67 msgid "" "*$%1$s/month for 12 months then $%2$s/month. You can cancel your " "subscription at any time." @@ -2790,34 +2747,34 @@ msgstr "" "*$%1$s por mês durante 12 meses, depois $%2$s por mês. Pode cancelar a sua " "subscrição a qualquer momento." -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:88 msgid "Billed monthly" msgstr "Facturado mensalmente" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:89 msgid "Get Started" msgstr "Começar" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:94 msgid "Reduce this banner" msgstr "Reduzir este banner" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:19 msgid "" "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "" "Acelere o seu site com a RocketCDN, a Content Delivery Network do WP Rocket." -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:22 #: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 msgid "Learn More" msgstr "Saiba mais" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:24 msgid "RocketCDN is unavailable on local domains and staging sites." msgstr "A RocketCDN não funciona em domínios locais e em sites de staging." -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:33 msgid "Get RocketCDN" msgstr "Obter RocketCDN" @@ -2831,6 +2788,18 @@ msgid "" msgstr "" "Acelere o seu site com a RocketCDN, a Content Delivery Network do WP Rocket!" +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:68 +msgid "Too many requests." +msgstr "Demasiados pedidos." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:85 +msgid "Not valid response." +msgstr "Resposta inválida." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:151 +msgid "Not valid request type." +msgstr "Tipo de pedido inválido." + #: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "Tarefas pendentes de processo do WP Rocket" @@ -2843,11 +2812,55 @@ msgstr "Limpar tarefas falhadas do WP Rocket" msgid "WP Rocket process on submit jobs" msgstr "Processo do WP Rocket ao submeter tarefas" -#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:265 +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:44 +msgid "Clear Priority Elements" +msgstr "Limpar elementos prioritários" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:79 +msgid "Clear Priority Elements of this URL" +msgstr " Limpar elementos prioritários deste URL" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:100 +msgid "Priority Elements" +msgstr "Elementos prioritários" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:101 +#: inc/Engine/Saas/Admin/AdminBar.php:134 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear" +msgstr "Limpar" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:103 +msgid "" +"This action will clear the Critical Images and Lazily Rendered Content." +msgstr "" +"Esta acção irá limpar as imagens críticas e os conteúdos de apresentação " +"diferida." + +#. translators: %1$s = plugin name. +#: inc/Engine/Common/PerformanceHints/Admin/Controller.php:135 +msgid "%1$s: Critical images and Lazy Render data was cleared!" +msgstr "" +"%1$s: As imagens críticas e os dados de apresentação diferida foram limpos!" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:19 +msgid "Script error" +msgstr "Erro de script" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:22 +msgid "Script timeout" +msgstr "Tempo limite de script" + +#. Translators: %s is the exception message. +#: inc/Engine/Common/Queue/Cleaner.php:87 +msgid "It was not possible to determine a valid cut-off time: %s." +msgstr "Não foi possível determinar um tempo limite válido: %s." + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:269 msgid "Every minute" msgstr "A cada minuto" -#: inc/Engine/CriticalPath/Admin/Admin.php:264 +#: inc/Engine/CriticalPath/Admin/Admin.php:265 msgid "Regenerate Critical Path CSS" msgstr "Regenerar CSS do caminho crítico" @@ -2875,7 +2888,6 @@ msgstr "%l para usar esta funcionalidade." msgid "Publish the %s" msgstr "Publique o(a) %s" -#. translators: %s = post type. #: inc/Engine/CriticalPath/Admin/Post.php:223 msgid "Enable Load CSS asynchronously in WP Rocket settings" msgstr "Active o carregamento assíncrono do CSS nas opções do WP Rocket" @@ -2890,7 +2902,7 @@ msgid "Critical CSS for %1$s not generated. Error: %2$s" msgstr "O CSS crítico de %1$s não foi gerado. Erro: %2$s" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:170 +#: inc/Engine/CriticalPath/APIClient.php:174 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "empty response." @@ -2899,7 +2911,7 @@ msgstr "" "devolveu uma resposta vazia." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:173 +#: inc/Engine/CriticalPath/APIClient.php:177 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an empty " "response." @@ -2908,19 +2920,19 @@ msgstr "" "vazia." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:185 +#: inc/Engine/CriticalPath/APIClient.php:189 msgid "Critical CSS for %1$s on mobile not generated." msgstr "O CSS crítico de %1$s para dispositivos móveis não foi gerado." #. translators: %s = item URL. #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/APIClient.php:187 -#: inc/Engine/CriticalPath/ProcessorService.php:194 +#: inc/Engine/CriticalPath/APIClient.php:191 +#: inc/Engine/CriticalPath/ProcessorService.php:196 msgid "Critical CSS for %1$s not generated." msgstr "O CSS crítico de %1$s não foi gerado." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:195 +#: inc/Engine/CriticalPath/APIClient.php:199 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "invalid response code." @@ -2929,7 +2941,7 @@ msgstr "" "devolveu um código de resposta inválido." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:197 +#: inc/Engine/CriticalPath/APIClient.php:201 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an invalid " "response code." @@ -2938,8 +2950,8 @@ msgstr "" "resposta inválido." #. translators: %1$s = error message. -#: inc/Engine/CriticalPath/APIClient.php:205 -#: inc/Engine/CriticalPath/ProcessorService.php:201 +#: inc/Engine/CriticalPath/APIClient.php:209 +#: inc/Engine/CriticalPath/ProcessorService.php:203 msgid "Error: %1$s" msgstr "Erro: %1$s" @@ -3026,38 +3038,38 @@ msgid "Critical CSS file cannot be deleted" msgstr "Não foi possível eliminar o ficheiro de CSS crítico" #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:189 msgid "Mobile Critical CSS for %1$s not generated." msgstr "O CSS crítico de %1$s para dispositivos móveis não foi gerado." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:228 +#: inc/Engine/CriticalPath/ProcessorService.php:230 msgid "Critical CSS for %s in progress." msgstr "Está em curso a geração do CSS crítico de %s." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:262 +#: inc/Engine/CriticalPath/ProcessorService.php:264 msgid "Mobile Critical CSS for %s generated." msgstr "O CSS crítico de %s para dispositivos móveis foi gerado." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:273 +#: inc/Engine/CriticalPath/ProcessorService.php:275 msgid "Critical CSS for %s generated." msgstr "O CSS crítico de %s foi gerado." -#: inc/Engine/CriticalPath/ProcessorService.php:295 +#: inc/Engine/CriticalPath/ProcessorService.php:297 msgid "Critical CSS file deleted successfully." msgstr "Ficheiro de CSS crítico eliminado com sucesso." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:317 +#: inc/Engine/CriticalPath/ProcessorService.php:319 msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "Foi ultrapassado o tempo de execução da geração do CSS crítico de %1$s para " "dispositivos móveis. Tente de novo pouco mais tarde." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:330 +#: inc/Engine/CriticalPath/ProcessorService.php:332 msgid "Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "Foi ultrapassado o tempo de execução da geração do CSS crítico de %1$s. " @@ -3189,39 +3201,39 @@ msgid "Unlimited" msgstr "Sem limite de" #. translators: %s = promotion discount percentage. -#: inc/Engine/License/views/promo-banner.php:16 +#: inc/Engine/License/views/promo-banner.php:18 msgid "%s off" msgstr "%s de desconto" #. translators: %s = promotion name. -#: inc/Engine/License/views/promo-banner.php:21 +#: inc/Engine/License/views/promo-banner.php:23 msgid "%s promotion is live!" msgstr "Promoção %s!" -#: inc/Engine/License/views/promo-banner.php:27 +#: inc/Engine/License/views/promo-banner.php:29 msgid "Hurry Up! Deal ends in:" msgstr "Rápido! A oferta termina em:" -#: inc/Engine/License/views/promo-banner.php:31 -#: inc/Engine/License/views/renewal-soon-banner.php:14 +#: inc/Engine/License/views/promo-banner.php:33 +#: inc/Engine/License/views/renewal-soon-banner.php:16 msgid "Minutes" msgstr "Minutos" -#: inc/Engine/License/views/promo-banner.php:32 -#: inc/Engine/License/views/renewal-soon-banner.php:15 +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/renewal-soon-banner.php:17 msgid "Seconds" msgstr "Segundos" -#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/promo-banner.php:36 #: inc/Engine/License/views/upgrade-section.php:11 msgid "Upgrade now" msgstr "Actualize agora" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:13 msgid "The Optimize CSS Delivery feature is disabled." msgstr "A funcionalidade de optimizar entrega do CSS está desactivada." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:17 msgid "" "You can no longer use the Remove Unused CSS or Load CSS asynchronously " "options." @@ -3230,7 +3242,7 @@ msgstr "" "CSS já não podem ser utilizadas." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:22 msgid "" "You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " "which addresses a PageSpeed Insights recommendation and improves your page " @@ -3240,26 +3252,26 @@ msgstr "" "de CSS, para cumprir a recomendação do PageSpeed Insights e melhorar o " "desempenho da sua página." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:29 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:39 -#: inc/Engine/License/views/renewal-expired-banner.php:27 -#: inc/Engine/License/views/renewal-soon-banner.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:41 +#: inc/Engine/License/views/renewal-expired-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:33 msgid "Renew now" msgstr "Renove agora" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:13 msgid "You will soon lose access to some features." msgstr "Em breve irá perder acesso a algumas funcionalidades." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:20 msgid "" "You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" "Precisa de uma %1$slicença activa para continuar a optimizar a entrega do " "CSS%2$s." -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:26 msgid "" "The Remove Unused CSS and Load CSS asynchronously features are great options" " to address the PageSpeed Insights recommendations and improve your website " @@ -3270,17 +3282,17 @@ msgstr "" "Insights e melhorar o desempenho do seu site." #. translators: %1$s = , %2$s = , %3$s = date. -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:31 msgid "These features will be %1$sautomatically disabled on %3$s%2$s." msgstr "" "Estas funcionalidades serão %1$sautomaticamente desactivadas em %3$s%2$s." -#: inc/Engine/License/views/renewal-expired-banner.php:11 +#: inc/Engine/License/views/renewal-expired-banner.php:13 msgid "Your WP Rocket license is expired!" msgstr "A sua licença do WP Rocket está expirada!" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner.php:18 +#: inc/Engine/License/views/renewal-expired-banner.php:20 msgid "" "Your website could be much faster if it could take advantage of our %1$snew " "features and enhancements%2$s. 🚀" @@ -3289,7 +3301,7 @@ msgstr "" "%1$snovas funcionalidades e melhorias%2$s. 🚀" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-soon-banner.php:22 +#: inc/Engine/License/views/renewal-soon-banner.php:24 msgid "" "Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access" " to product updates and support." @@ -3297,12 +3309,12 @@ msgstr "" "A %1$slicença do WP Rocket está prestes a expirar%2$s: em breve deixará de " "ter acesso às actualizações e suporte do produto." -#: inc/Engine/License/views/upgrade-popin.php:12 +#: inc/Engine/License/views/upgrade-popin.php:14 msgid "Speed Up More Websites" msgstr "Acelere mais sites" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:19 +#: inc/Engine/License/views/upgrade-popin.php:21 msgid "" "You can use WP Rocket on more websites by upgrading your license. To " "upgrade, simply pay the %1$sprice difference%2$s between your current and " @@ -3313,24 +3325,24 @@ msgstr "" "actual e a nova, como demostrado abaixo." #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:25 +#: inc/Engine/License/views/upgrade-popin.php:27 msgid "" "%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "" "%1$sAtenção%2$s: Actualizar a licença não altera a sua data de expiração" #. translators: %s = price. -#: inc/Engine/License/views/upgrade-popin.php:35 +#: inc/Engine/License/views/upgrade-popin.php:37 msgid "Save $%s" msgstr "Poupe $%s" #. translators: %s = number of websites. -#: inc/Engine/License/views/upgrade-popin.php:48 +#: inc/Engine/License/views/upgrade-popin.php:50 msgid "%s websites" msgstr "%s sites" #. translators: %s = license name. -#: inc/Engine/License/views/upgrade-popin.php:54 +#: inc/Engine/License/views/upgrade-popin.php:56 msgid "Upgrade to %s" msgstr "Actualizar para %s" @@ -3342,19 +3354,6 @@ msgstr "" "Pode usar o WP Rocket em mais sites ao actualizar a sua licença (apenas paga" " a diferença de preço entre a sua licença actual e a nova)." -#. translators: %1$s = plugin name. -#: inc/Engine/Media/AboveTheFold/Admin/Controller.php:143 -msgid "%1$s: Critical images cleared!" -msgstr "%1$s: As imagens críticas foram limpas!" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:131 -msgid "Script error" -msgstr "Erro de script" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:134 -msgid "Script timeout" -msgstr "Tempo limite de script" - #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "Carregar imagens em diferido" @@ -3367,15 +3366,15 @@ msgstr "Carregar iframes/vídeos em diferido" msgid "LazyLoad CSS backgrounds" msgstr "Carregar fundos CSS em diferido" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:195 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:194 msgid "Analytics & Ads" msgstr "Dados analíticos e anúncios" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:200 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:199 msgid "Plugins" msgstr "Plugins" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:205 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:204 msgid "Themes" msgstr "Temas" @@ -3423,17 +3422,21 @@ msgstr "Minificar/combinar JavaScript" msgid "Minify CSS" msgstr "Minificar CSS" +#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 +msgid "Remove Unused CSS" +msgstr "Remover CSS não utilizado" + #. translators: %1$s = plugin name, %2$s = table name, %3$s = open tag, #. %4$s = closing tag. #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:253 msgid "" "%1$s: Could not create the %2$s table in the database which is necessary for" -" the Remove Unused CSS feature to work. Please reach out to %3$sour " -"support%4$s." +" the Remove Unused CSS feature to work. Please check our " +"%3$sdocumentation%4$s." msgstr "" "%1$s: Não foi possível criar a tabela %2$s na base de dados, necessária para" -" o funcionamento da opção de Remover CSS não utilizado. Por favor contacte o" -" %3$snosso suporte%4$s." +" o funcionamento da opção de Remover CSS não utilizado. Por favor consulte a" +" nossa %3$sdocumentação%4$s." #. translators: %1$s = plugin name. #: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:274 @@ -3441,7 +3444,7 @@ msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: A cache do CSS utilizado foi limpa!" #. translators: %1$s = plugin name. -#: inc/Engine/Preload/Admin/Settings.php:57 +#: inc/Engine/Preload/Admin/Settings.php:76 msgid "" "%1$s: The preload service is now active. After the initial preload it will " "continue to cache all your pages whenever they are purged. No further action" @@ -3460,29 +3463,20 @@ msgstr "Tarefas pendentes do pré-carregamento do WP Rocket" msgid "WP Rocket Preload revert stuck failed jobs" msgstr "Reverter tarefas falhadas de pré-carregamento do WP Rocket" -#: inc/Engine/Saas/Admin/AdminBar.php:77 -#: inc/Engine/Saas/Admin/AdminBar.php:198 -msgid "Clear Critical Images" -msgstr "Limpar imagens críticas" - -#: inc/Engine/Saas/Admin/AdminBar.php:164 -msgid "Clear Critical Images of this URL" -msgstr "Limpar imagens críticas deste URL" - -#: inc/Engine/Saas/Admin/AdminBar.php:167 +#: inc/Engine/Saas/Admin/AdminBar.php:106 msgid "Clear Used CSS of this URL" msgstr "Limpar CSS utilizado deste URL" -#: inc/Engine/Saas/Admin/AdminBar.php:197 -msgid "Critical Images Cache" -msgstr "Cache de imagens críticas" +#: inc/Engine/Saas/Admin/AdminBar.php:133 +msgid "Used CSS" +msgstr "CSS utilizado" -#: inc/Engine/Saas/Admin/AdminBar.php:201 -msgid "Remove Used CSS Cache" -msgstr "Remover cache do CSS utilizado" +#: inc/Engine/Saas/Admin/AdminBar.php:136 +msgid "This action will clear the used CSS files." +msgstr "Esta acção irá limpar os ficheiros de CSS utilizados." #. translators: %1$s = plugin name, %2$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:104 +#: inc/Engine/Saas/Admin/Notices.php:91 msgid "" "%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing " "your pages, the plugin is optimizing LCP and the images above the fold." @@ -3493,7 +3487,7 @@ msgstr "" #. translators: %1$s = plugin name, %2$s = number of URLs, %3$s = number of #. seconds. -#: inc/Engine/Saas/Admin/Notices.php:147 +#: inc/Engine/Saas/Admin/Notices.php:134 msgid "" "%1$s: The LCP element has been optimized, and the images above the fold were excluded from lazyload. The Used CSS of your homepage has been processed.\n" "\t\t\t WP Rocket will continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." @@ -3502,18 +3496,18 @@ msgstr "" "\t\t\t O WP Rocket irá continuar a gerar CSS utilizado até %2$s URL por %3$s segundo(s)." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:157 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "" "Sugerimos activar o %1$spré-carregamento%2$s para resultados mais rápidos." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:180 +#: inc/Engine/Saas/Admin/Notices.php:167 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" "Para saber mais sobre o processo consulte a nossa %1$sdocumentação%2$s." -#: inc/Engine/Saas/Admin/Notices.php:246 +#: inc/Engine/Saas/Admin/Notices.php:229 msgid "" "We couldn't generate the used CSS because you're using a nulled version of " "WP Rocket. You need an active license to use the Remove Unused CSS feature " @@ -3525,13 +3519,13 @@ msgstr "" "desempenho do seu site." #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:249 +#: inc/Engine/Saas/Admin/Notices.php:232 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "" "Clique aqui para obter uma licença Single do WP Rocket com %1$s de desconto!" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:302 +#: inc/Engine/Saas/Admin/Notices.php:285 msgid "" "It seems a security plugin or the server's firewall prevents WP Rocket from " "accessing the SaaS features. IPs listed %1$shere in our documentation%2$s " @@ -3541,11 +3535,11 @@ msgstr "" " acesso do WP Rocket às funcionalidades de SaaS. Os IP listados %1$saqui na " "nossa documentação%2$s devem ser adicionados às suas listas de permissões:" -#: inc/Engine/Saas/Admin/Notices.php:307 +#: inc/Engine/Saas/Admin/Notices.php:290 msgid "- In the security plugin, if you are using one" msgstr "- No plugin de segurança, se estiver a utilizar algum" -#: inc/Engine/Saas/Admin/Notices.php:308 +#: inc/Engine/Saas/Admin/Notices.php:291 msgid "- In the server's firewall. Your host can help you with this" msgstr "" "- Na firewall do servidor. O seu serviço de alojamento pode ajudar nesta " @@ -3933,7 +3927,7 @@ msgstr[2] "" " Rocket:" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:156 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" @@ -3942,7 +3936,7 @@ msgstr "" "%2$sdesactivar emojis%3$s do WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:192 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " @@ -3952,7 +3946,7 @@ msgstr "" "%2$scompressão GZIP%3$s do WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:228 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " @@ -3962,7 +3956,7 @@ msgstr "" "%2$scache do navegador%3$s do WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:260 msgctxt "Hummingbird notice" msgid "" "%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" @@ -3971,7 +3965,7 @@ msgstr "" " de páginas%3$s do WP Rocket" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:294 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " @@ -4257,7 +4251,6 @@ msgstr "CNAME da CDN" msgid "Purges RocketCDN cached resources for your website. %s" msgstr "Limpa os recursos na cache da RocketCDN para o seu site. %s" -#. translators: %s is a "Learn more" link. #: views/settings/fields/rocket-cdn.php:63 #: views/settings/page-sections/cloudflare.php:36 #: views/settings/page-sections/sucuri.php:37 @@ -4294,7 +4287,6 @@ msgstr "Cache da Cloudflare" msgid "Purges cached resources for your website. %s" msgstr "Limpa os recursos da cache do seu site. %s" -#. translators: %s is a "Learn more" link. #: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" @@ -4303,19 +4295,19 @@ msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" msgid "Clear all Cloudflare cache files" msgstr "Limpar todos os ficheiros da cache da Cloudflare" -#: views/settings/page-sections/dashboard.php:38 +#: views/settings/page-sections/dashboard.php:39 msgid "Congratulations!" msgstr "Parabéns!" -#: views/settings/page-sections/dashboard.php:40 +#: views/settings/page-sections/dashboard.php:41 msgid "WP Rocket is now activated and already working for you." msgstr "O WP Rocket já está activo e a funcionar." -#: views/settings/page-sections/dashboard.php:42 +#: views/settings/page-sections/dashboard.php:43 msgid "Your website should be loading faster now!" msgstr "O seu site já deve estar a carregar mais rapidamente!" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "To guarantee fast websites, WP Rocket automatically applies 80% of web " "performance best practices." @@ -4323,65 +4315,90 @@ msgstr "" "Para garantir sites mais rápidos o WP Rocket aplica automaticamente 80% das " "melhores práticas de desempenho da web." -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "We also enable options that provide immediate benefits to your website." msgstr "" "Também activamos opções que permitem benefícios imediatos para o seu site." -#: views/settings/page-sections/dashboard.php:45 +#: views/settings/page-sections/dashboard.php:46 msgid "Continue to the options to further optimize your site!" msgstr "Continue para as opções para optimizar ainda mais o seu site!" -#: views/settings/page-sections/dashboard.php:62 +#: views/settings/page-sections/dashboard.php:63 msgid "My Account" msgstr "A minha conta" -#: views/settings/page-sections/dashboard.php:68 +#: views/settings/page-sections/dashboard.php:69 msgid "Refresh info" msgstr "Actualizar informações" -#: views/settings/page-sections/dashboard.php:86 +#: views/settings/page-sections/dashboard.php:87 msgid "with" msgstr "com" -#: views/settings/page-sections/dashboard.php:100 +#: views/settings/page-sections/dashboard.php:101 msgid "Expiration Date" msgstr "Data de expiração" -#: views/settings/page-sections/dashboard.php:110 +#: views/settings/page-sections/dashboard.php:111 msgid "View my account" msgstr "Ver a minha conta" +#: views/settings/page-sections/dashboard.php:131 views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "Rocket Analytics" + +#. translators: %1$s = opening tag, %2$s = closing tag. #: views/settings/page-sections/dashboard.php:137 +msgid "" +"I agree to share anonymous data with the development team to help improve WP" +" Rocket. %1$sWhat info will we collect?%2$s" +msgstr "" +"Concordo em partilhar informações anónimas com a equipa de desenvolvimento " +"para ajudar a melhorar o WP Rocket. %1$sQue informações recolhemos?%2$s" + +#: views/settings/page-sections/dashboard.php:155 msgid "Quick Actions" msgstr "Acções rápidas" -#: views/settings/page-sections/dashboard.php:144 -msgid "Remove all cached files" -msgstr "Remover todos os ficheiros em cache" +#: views/settings/page-sections/dashboard.php:162 +msgid "Cache files" +msgstr "Ficheiros de cache" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear and preload all the cache files." +msgstr "Esta acção irá limpar e pré-carregar todos os ficheiros da cache." + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear all the cache files." +msgstr "Esta acção irá limpar todos os ficheiros de cache." -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear and preload" +msgstr "Limpar e pré-carregar" + +#: views/settings/page-sections/dashboard.php:183 +#: views/settings/page-sections/dashboard.php:189 msgid "Regenerate Critical CSS" msgstr "Regenerar CSS crítico" -#: views/settings/page-sections/dashboard.php:196 +#: views/settings/page-sections/dashboard.php:215 msgid "Frequently Asked Questions" msgstr "Perguntas frequentes" -#: views/settings/page-sections/dashboard.php:210 +#: views/settings/page-sections/dashboard.php:229 msgid "Still cannot find a solution?" msgstr "Ainda não conseguiu encontrar uma solução?" -#: views/settings/page-sections/dashboard.php:211 +#: views/settings/page-sections/dashboard.php:230 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" "Submeta um ticket e obtenha ajuda dos nossos simpáticos e experientes " "Rocketeers." -#: views/settings/page-sections/dashboard.php:219 +#: views/settings/page-sections/dashboard.php:238 msgid "Ask support" msgstr "Pedir suporte" @@ -4402,41 +4419,59 @@ msgstr "" msgid "Save Changes and Optimize" msgstr "Guardar alterações e optimizar" -#. Translators: %1$s = , %2$s = , %3$s = , %4$s = . -#: views/settings/page-sections/imagify.php:21 +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:22 msgid "" -"%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image " -"optimization.%2$s" +"%1$sWP Rocket created IMAGIFY to give your website an extra speed boost!%2$s" msgstr "" -"O %1$sWP ROCKET%2$s criou o %3$sIMAGIFY%4$s %1$spara obter a melhor " -"optimização de imagens.%2$s" +"%1$sO WP Rocket criou o IMAGIFY para dar ao seu site um aumento extra de " +"velocidade!%2$s" + +#: views/settings/page-sections/imagify.php:28 +msgid "Images can account for 50% of your loading time!" +msgstr "As imagens podem ser responsáveis por 50% do tempo de carregamento!" -#: views/settings/page-sections/imagify.php:24 +#: views/settings/page-sections/imagify.php:31 msgid "" -"Compress image to make your website faster, all while maintaining image " -"quality." +"Imagify automatically optimizes all your images, helping your website gain " +"precious seconds while saving you time. With just one click, it resizes, " +"compresses, and converts your images to WebP and AVIF formats without " +"sacrificing quality." msgstr "" -"Comprima as imagens para tornar o seu site mais rápido, sem comprometer a " -"sua qualidade." +"O Imagify optimiza automaticamente todas as suas imagens, ajudando o seu " +"site a ganhar segundos preciosos e poupando-lhe tempo. Com apenas um clique," +" redimensiona, comprime e converte as suas imagens para os formatos WebP e " +"AVIF sem sacrificar a qualidade." -#: views/settings/page-sections/imagify.php:25 -msgid "More on Imagify:" -msgstr "Mais sobre o Imagify:" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:41 +msgid "%1$sCompress%2$s all your images in one click" +msgstr "%1$sComprima%2$s todas as imagens com um clique" -#: views/settings/page-sections/imagify.php:27 -msgid "Imagify Plugin Page" -msgstr "Página do plugin Imagify" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:49 +msgid "%1$sConvert%2$s images to WebP and Avif" +msgstr "%1$sConverta%2$s imagens para WebP e Avif" -#: views/settings/page-sections/imagify.php:28 -msgid "Imagify Website" -msgstr "Site do Imagify" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:57 +msgid "%1$sResize%2$s your images on the fly" +msgstr "%1$sRedimensione%2$s as suas imagens em tempo real" -#: views/settings/page-sections/imagify.php:29 -msgid "Review of Image Compression Plugins" -msgstr "Comparativo de plugins de compressão de imagens" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:65 +msgid "%1$sFree plan%2$s includes 20MB/month (around 200 images)" +msgstr "" +"%1$sO plano gratuito%2$s inclui 20MB/mês (aproximadamente 200 imagens)" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:83 +msgid "%1$sInstall Imagify, the Easiest WordPress Image Optimizer%2$s" +msgstr "" +"%1$sInstale o Imagify, o optimizador de imagens mais fácil para " +"WordPress%2$s" -#: views/settings/page-sections/imagify.php:38 +#: views/settings/page-sections/imagify.php:110 msgid "Install Imagify" msgstr "Instalar Imagify" diff --git a/languages/rocket-tr_TR.po b/languages/rocket-tr_TR.po index d7361fe653..eac7b902f9 100644 --- a/languages/rocket-tr_TR.po +++ b/languages/rocket-tr_TR.po @@ -8,9 +8,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha2\n" -"Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2024-05-06T13:28:35+03:00\n" +"Project-Id-Version: WP Rocket 3.17-alpha4\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" +"POT-Creation-Date: 2024-09-13T17:57:31+00:00\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: BouRock, 2024\n" "Language-Team: Turkish (Turkey) (https://app.transifex.com/wp-media/teams/18133/tr_TR/)\n" @@ -20,7 +20,7 @@ msgstr "" "Language: tr_TR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Domain: rocket\n" -"X-Generator: WP-CLI 2.7.1\n" +"X-Generator: WP-CLI 2.4.0\n" #. Plugin Name of the plugin msgid "WP Rocket" @@ -51,9 +51,9 @@ msgstr "https://wp-media.me" #: inc/ThirdParty/Hostings/Godaddy.php:63 #: inc/ThirdParty/Hostings/O2Switch.php:49 #: inc/ThirdParty/Hostings/OneCom.php:137 -#: inc/ThirdParty/Hostings/Pressidium.php:49 +#: inc/ThirdParty/Hostings/Pressidium.php:50 #: inc/ThirdParty/Hostings/ProIsp.php:51 inc/ThirdParty/Hostings/Savvii.php:50 -#: inc/ThirdParty/Hostings/WPEngine.php:47 +#: inc/ThirdParty/Hostings/WPEngine.php:46 #: inc/ThirdParty/Hostings/WPXCloud.php:51 msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for " @@ -184,41 +184,31 @@ msgstr "Cloudflare önbellek seviyesi %s olarak ayarlandı" #. translators: %s is the message returned by the CloudFlare API. #: inc/Addon/Cloudflare/Subscriber.php:368 -msgid "Cloudflare minification error: %s" -msgstr "Cloudflare küçültme hatası: %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:375 -msgid "Cloudflare minification %s" -msgstr "Cloudflare küçültme %s" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare rocket loader error: %s" msgstr "Cloudflare rocket yükleyici hatası: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:400 +#: inc/Addon/Cloudflare/Subscriber.php:375 msgid "Cloudflare rocket loader %s" msgstr "Cloudflare rocket yükleyici %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:418 +#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare browser cache error: %s" msgstr "Cloudflare tarayıcı önbelleği hatası: %s" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:425 +#: inc/Addon/Cloudflare/Subscriber.php:400 msgid "Cloudflare browser cache set to %s" msgstr "Cloudflare tarayıcı önbelleği %s olarak ayarlandı" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:536 +#: inc/Addon/Cloudflare/Subscriber.php:507 msgid "%1$sWP Rocket:%2$s Optimal settings activated for Cloudflare:" msgstr "%1$sWP Rocket:%2$s Cloudflare için en uygun ayarlar aktif edildi:" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:545 +#: inc/Addon/Cloudflare/Subscriber.php:516 msgid "" "%1$sWP Rocket:%2$s Optimal settings deactivated for Cloudflare, reverted to " "previous settings:" @@ -226,7 +216,7 @@ msgstr "" "%1$sWP Rocket:%2$s Cloudflare için en uygun ayarlar devre dışı bırakıldı, " "önceki ayarlara geri döndürüldü:" -#: inc/Addon/Cloudflare/Subscriber.php:661 inc/admin/options.php:165 +#: inc/Addon/Cloudflare/Subscriber.php:632 inc/admin/options.php:165 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 msgid "WP Rocket: " msgstr "WP Rocket: " @@ -381,7 +371,7 @@ msgid "Settings" msgstr "Ayarlar" #: inc/admin/admin.php:96 inc/admin/admin.php:117 inc/deprecated/3.5.php:898 -#: inc/Engine/Cache/AdminSubscriber.php:134 +#: inc/Engine/Cache/AdminSubscriber.php:135 msgid "Clear this cache" msgstr "Bu önbelleği temizle" @@ -413,17 +403,17 @@ msgstr "Ayarları içe aktarma başarısız oldu: beklenmeyen dosya içeriği." msgid "Settings imported and saved." msgstr "Ayarlar içe aktarıldı ve kaydedildi." -#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:571 +#: inc/admin/options.php:102 inc/Engine/Admin/Settings/Page.php:551 msgid "Excluded CSS Files" msgstr "Hariç Tutulan CSS Dosyaları" -#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:725 +#: inc/admin/options.php:103 inc/Engine/Admin/Settings/Page.php:699 msgid "Excluded Inline JavaScript" msgstr "Hariç Tutulan Satır İçi JavaScript" -#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:743 -#: inc/Engine/Admin/Settings/Page.php:776 -#: inc/Engine/Admin/Settings/Page.php:823 +#: inc/admin/options.php:104 inc/Engine/Admin/Settings/Page.php:717 +#: inc/Engine/Admin/Settings/Page.php:750 +#: inc/Engine/Admin/Settings/Page.php:797 msgid "Excluded JavaScript Files" msgstr "Hariç Tutulan JavaScript Dosyaları" @@ -435,19 +425,19 @@ msgstr "JavaScript Dosyalarını Ertele" msgid "Excluded Delay JavaScript Files" msgstr "Hariç Tutulan JavaScript Dosyalarını Geciktirme" -#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1229 +#: inc/admin/options.php:107 inc/Engine/Admin/Settings/Page.php:1203 msgid "Never Cache URL(s)" msgstr "Asla Önbelleklenmeyen URL(ler)" -#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1243 +#: inc/admin/options.php:108 inc/Engine/Admin/Settings/Page.php:1217 msgid "Never Cache User Agent(s)" msgstr "Asla Önbelleklenmeyen Kullanıcı Tanıtıcı(ları)sı" -#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1249 +#: inc/admin/options.php:109 inc/Engine/Admin/Settings/Page.php:1223 msgid "Always Purge URL(s)" msgstr "Her Zaman Temizlenen URL(ler)" -#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1530 +#: inc/admin/options.php:110 inc/Engine/Admin/Settings/Page.php:1504 msgid "Exclude files from CDN" msgstr "CDN’den hariç tutulan dosyalar" @@ -467,8 +457,6 @@ msgid "More info" msgstr "Daha fazla bilgi" #: inc/admin/ui/meta-boxes.php:37 inc/admin/ui/notices.php:671 -#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 msgid "Clear cache" msgstr "Önbelleği temizle" @@ -651,16 +639,15 @@ msgstr "%s: Terim önbelleği temizlendi." msgid "%s: User cache cleared." msgstr "%s: Kullanıcı önbelleği temizlendi." -#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:32 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:42 -#: inc/Engine/License/views/renewal-expired-banner.php:30 -#: views/settings/page-sections/dashboard.php:46 +#: inc/admin/ui/notices.php:662 inc/Engine/License/views/promo-banner.php:38 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:34 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:44 +#: inc/Engine/License/views/renewal-expired-banner.php:32 +#: views/settings/page-sections/dashboard.php:47 msgid "Dismiss this notice" msgstr "Bu bildirimi anımsatma" -#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:84 -#: inc/Engine/Saas/Admin/AdminBar.php:202 +#: inc/admin/ui/notices.php:682 inc/Engine/Saas/Admin/AdminBar.php:51 msgid "Clear Used CSS" msgstr "Kullanılan CSS’yi Temizle" @@ -739,8 +726,8 @@ msgstr "%s sürümünü yeniden yükle" #: inc/classes/class-wp-rocket-requirements-check.php:203 #: inc/classes/class-wp-rocket-requirements-check.php:214 #: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 -#: inc/Engine/Plugin/UpdaterSubscriber.php:483 -#: inc/Engine/Plugin/UpdaterSubscriber.php:497 +#: inc/Engine/Plugin/UpdaterSubscriber.php:477 +#: inc/Engine/Plugin/UpdaterSubscriber.php:491 msgid "%s Update Rollback" msgstr "%s Güncellemesi Geri Alma" @@ -768,9 +755,12 @@ msgstr "" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" #: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 -msgid "Clear and preload cache" -msgstr "Önbelleği temizle ve önyükle" +msgid "Clear and Preload Cache" +msgstr "Önbelleği Temizle ve Önyükle" + +#: inc/common/admin-bar.php:91 inc/common/admin-bar.php:154 +msgid "Clear Cache" +msgstr "Önbelleği Temizle" #: inc/common/admin-bar.php:131 inc/functions/i18n.php:20 msgid "All languages" @@ -796,7 +786,7 @@ msgstr "RocketCDN önbelleğini temizle" msgid "Documentation" msgstr "Belgeler" -#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 +#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:107 msgid "Activate Imagify" msgstr "Imagify’ı Etkinleştir" @@ -940,7 +930,7 @@ msgstr "" "Önyüklemek için seçeneği işaretleyebilirsiniz." #. translators: 1 and 3 are link openings, 2 is a link closing. -#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:520 +#: inc/deprecated/3.11.php:279 inc/Engine/Plugin/UpdaterSubscriber.php:514 msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "" "%1$sWP Rocket’a geri dönün%2$s ya da %3$sEklentiler sayfasına gidin%2$s" @@ -1023,7 +1013,7 @@ msgstr "" msgid "Choose a file from your computer (maximum size: %s)" msgstr "Bilgisayarınızdan bir dosya seçin (en fazla boyut: %s)" -#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:422 +#: inc/deprecated/deprecated.php:1294 inc/Engine/Admin/Settings/Render.php:469 msgid "Upload file and import settings" msgstr "Dosyayı gönder ve ayarları içe aktar" @@ -1106,8 +1096,8 @@ msgstr "Temel" msgid "Static Files" msgstr "Sabit Dosyalar" -#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1500 -#: inc/Engine/Admin/Settings/Page.php:1511 +#: inc/deprecated/deprecated.php:1773 inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1485 #: inc/Engine/CDN/Admin/Subscriber.php:28 msgid "CDN" msgstr "CDN" @@ -1116,22 +1106,22 @@ msgstr "CDN" msgid "Advanced" msgstr "Gelişmiş" -#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1345 +#: inc/deprecated/deprecated.php:1775 inc/Engine/Admin/Settings/Page.php:1319 msgid "Database" msgstr "Veritabanı" -#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1051 +#: inc/deprecated/deprecated.php:1776 inc/Engine/Admin/Settings/Page.php:1025 msgid "Preload" msgstr "Önyükleme" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:173 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "Araçlar" -#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:357 -#: views/settings/page-sections/dashboard.php:80 +#: inc/deprecated/deprecated.php:1789 inc/Engine/Admin/Settings/Page.php:368 +#: views/settings/page-sections/dashboard.php:81 msgid "License" msgstr "Lisans" @@ -1174,27 +1164,27 @@ msgid "weekly" msgstr "haftalık" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1389 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Revisions" msgstr "Düzeltmeler" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1373 msgid "Auto Drafts" msgstr "Otomatik Taslaklar" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1409 +#: inc/Engine/Admin/Settings/Page.php:1383 msgid "Trashed Posts" msgstr "Çöpe Atılmış Yazılar" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1393 msgid "Spam Comments" msgstr "İstenmeyen Yorumlar" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1429 +#: inc/Engine/Admin/Settings/Page.php:1403 msgid "Trashed Comments" msgstr "Çöpe Atılmış Yorumlar" @@ -1247,63 +1237,46 @@ msgstr "" msgid "Regenerate WP Rocket configuration files now" msgstr "WP Rocket yapılandırma dosyalarını şimdi yeniden oluştur" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Save Changes" msgstr "Değişiklikleri Kaydet" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Validate License" msgstr "Lisansı Doğrula" -#: inc/Engine/Admin/Settings/Page.php:279 -#: inc/Engine/Admin/Settings/Page.php:280 inc/functions/admin.php:550 +#: inc/Engine/Admin/Settings/Page.php:278 +#: inc/Engine/Admin/Settings/Page.php:279 inc/functions/admin.php:550 msgid "Unavailable" msgstr "Mevcut değil" -#: inc/Engine/Admin/Settings/Page.php:374 +#: inc/Engine/Admin/Settings/Page.php:385 msgid "API key" msgstr "API anahtarı" -#: inc/Engine/Admin/Settings/Page.php:389 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Email address" msgstr "E-posta adresi" -#: inc/Engine/Admin/Settings/Page.php:415 +#: inc/Engine/Admin/Settings/Page.php:426 msgid "Dashboard" msgstr "Panel" -#: inc/Engine/Admin/Settings/Page.php:416 +#: inc/Engine/Admin/Settings/Page.php:427 msgid "Get help, account info" msgstr "Yardım alın, hesap bilgisi" -#: inc/Engine/Admin/Settings/Page.php:425 -msgid "My Status" -msgstr "Durumum" - -#: inc/Engine/Admin/Settings/Page.php:435 views/settings/page.php:75 -msgid "Rocket Analytics" -msgstr "Rocket Çözümsel" - -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:437 -msgid "" -"I agree to share anonymous data with the development team to help improve WP" -" Rocket. %1$sWhat info will we collect?%2$s" -msgstr "" -"WP Rocket’i iyileştirmeye yardımcı olmak için geliştirme ekibiyle isimsiz " -"verileri paylaşmayı kabul ediyorum. %1$sNe tür bilgi toplayacağız?%2$s" - -#: inc/Engine/Admin/Settings/Page.php:489 +#: inc/Engine/Admin/Settings/Page.php:475 msgid "File Optimization" msgstr "Dosyaları İyileştirme" -#: inc/Engine/Admin/Settings/Page.php:490 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Optimize CSS & JS" msgstr "CSS ve JS kodlarını iyileştirin" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:498 +#: inc/Engine/Admin/Settings/Page.php:484 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable this option in Autoptimize." @@ -1312,17 +1285,17 @@ msgstr "" " %2$s’in küçültmesini kullanmak istiyorsanız, Autoptimize içindeki bu " "seçeneği etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:508 +#: inc/Engine/Admin/Settings/Page.php:494 msgid "CSS Files" msgstr "CSS Dosyaları" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:503 msgid "JavaScript Files" msgstr "JavaScript Dosyaları" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP #. Rocket”. -#: inc/Engine/Admin/Settings/Page.php:524 +#: inc/Engine/Admin/Settings/Page.php:510 msgid "" "%1$s Minification is currently activated in Autoptimize. If" " you want to use %2$s’s minification, disable those options in Autoptimize." @@ -1331,7 +1304,7 @@ msgstr "" " %2$s’in küçültmesini kullanmak istiyorsanız, Autoptimize içindeki bu " "seçenekleri etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:529 +#: inc/Engine/Admin/Settings/Page.php:515 msgid "" "If you have problems after activating this option, copy and paste the " "default exclusions to quickly resolve issues:" @@ -1341,7 +1314,7 @@ msgstr "" "yapıştırın:" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:519 msgid "" "Also, please check our %1$sdocumentation%2$s for a list of compatibility " "exclusions." @@ -1349,7 +1322,7 @@ msgstr "" "Ayrıca, uyumluluk istisnaları listesi için lütfen %1$sbelgelerimizi%2$s " "gözden geçirin." -#: inc/Engine/Admin/Settings/Page.php:538 +#: inc/Engine/Admin/Settings/Page.php:524 msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " "take full advantage of this option." @@ -1358,53 +1331,31 @@ msgstr "" "seçenekten tam olarak yararlanmak için bunları kaldırın." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:527 msgid "" "If this causes trouble, restore the default exclusions, found %1$shere%2$s" msgstr "" "Eğer bu, soruna neden olursa, %1$sburada%2$s bulunan varsayılan hariç " "tutulanları geri yükleyin" -#: inc/Engine/Admin/Settings/Page.php:550 +#: inc/Engine/Admin/Settings/Page.php:536 msgid "Minify CSS files" msgstr "CSS dosyalarını küçült" -#: inc/Engine/Admin/Settings/Page.php:551 +#: inc/Engine/Admin/Settings/Page.php:537 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "CSS’yi küçültme, dosya boyutunu düşürmek için boşlukları ve açıklamaları " "kaldırır." -#: inc/Engine/Admin/Settings/Page.php:564 -#: inc/Engine/Admin/Settings/Page.php:628 -#: inc/Engine/Admin/Settings/Page.php:694 -#: inc/Engine/Admin/Settings/Page.php:718 -msgid "This could break things!" -msgstr "Bu birşeyleri bozabilir!" - -#: inc/Engine/Admin/Settings/Page.php:565 -#: inc/Engine/Admin/Settings/Page.php:629 -#: inc/Engine/Admin/Settings/Page.php:695 -#: inc/Engine/Admin/Settings/Page.php:719 -msgid "" -"If you notice any errors on your website after having activated this " -"setting, just deactivate it again, and your site will be back to normal." -msgstr "" -"Bu ayarı aktif ettikten sonra web sitenizde herhangi bir hata fark " -"ederseniz, sadece tekrar devre dışı bırakın, ve siteniz normale dönecektir." - -#: inc/Engine/Admin/Settings/Page.php:566 -msgid "Activate minify CSS" -msgstr "CSS küçültmeyi aktif et" - -#: inc/Engine/Admin/Settings/Page.php:572 +#: inc/Engine/Admin/Settings/Page.php:552 msgid "" "Specify URLs of CSS files to be excluded from minification (one per line)." msgstr "" "Küçültmeden hariç tutulacak CSS dosyalarının URL’lerini belirtin (her satıra" " bir tane)." -#: inc/Engine/Admin/Settings/Page.php:573 +#: inc/Engine/Admin/Settings/Page.php:553 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -1415,7 +1366,7 @@ msgstr "" "tutmak için (.*).css joker karakterlerini kullanın." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:575 +#: inc/Engine/Admin/Settings/Page.php:555 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external CSS. %1$sMore info%2$s" @@ -1423,12 +1374,12 @@ msgstr "" "3. Taraf: Harici CSS dosyalarını dahil etmemek için ya URL " "tam yolunu ya da sadece etki alanı adını kullanın. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:588 -#: inc/Engine/Admin/Settings/Page.php:610 +#: inc/Engine/Admin/Settings/Page.php:568 +#: inc/Engine/Admin/Settings/Page.php:590 msgid "Optimize CSS delivery" msgstr "CSS teslimini iyileştir" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1439,7 +1390,7 @@ msgstr "" "Kullanılmayan CSS’yi Kaldır önerilir, ancak sadece aktif lisansa sahip " "kullanıcılarla sınırlıdır." -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -1450,7 +1401,7 @@ msgstr "" "Kullanılmayan CSS’yi Kaldır önerilir." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:603 +#: inc/Engine/Admin/Settings/Page.php:583 msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" " more%2$s" @@ -1458,13 +1409,12 @@ msgstr "" "CSS teslimini iyileştir özellikleri yerel ortamlarda etkisizleştirilir. " "%1$sDaha fazla bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:623 -#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 -msgid "Remove Unused CSS" -msgstr "Kullanılmayan CSS’yi Kaldır" +#: inc/Engine/Admin/Settings/Page.php:603 +msgid "Remove Unused CSS (RUCSS)" +msgstr "Kullanılmayan CSS’yi (RUCSS) Kaldır" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:606 msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." " Recommended for best performance. Test thoroughly! %1$sMore info%2$s" @@ -1473,15 +1423,29 @@ msgstr "" "isteklerini azaltmaya yardımcı olur. Daha iyi performans için önerilir. " "İyice deneyin! %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:630 +#: inc/Engine/Admin/Settings/Page.php:608 +#: inc/Engine/Admin/Settings/Page.php:692 +msgid "This could break things!" +msgstr "Bu birşeyleri bozabilir!" + +#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"If you notice any errors on your website after having activated this " +"setting, just deactivate it again, and your site will be back to normal." +msgstr "" +"Bu ayarı aktif ettikten sonra web sitenizde herhangi bir hata fark " +"ederseniz, sadece tekrar devre dışı bırakın, ve siteniz normale dönecektir." + +#: inc/Engine/Admin/Settings/Page.php:610 msgid "Activate Remove Unused CSS" msgstr "Kullanılmayan CSS’yi Kaldır’ı aktif et" -#: inc/Engine/Admin/Settings/Page.php:636 +#: inc/Engine/Admin/Settings/Page.php:616 msgid "CSS safelist" msgstr "CSS güvenli listesi" -#: inc/Engine/Admin/Settings/Page.php:637 +#: inc/Engine/Admin/Settings/Page.php:617 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -1489,13 +1453,13 @@ msgstr "" "Kaldırılmaması gereken CSS dosya adlarını, kimliklerini veya sınıfları " "belirtin (her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:652 -#: inc/Engine/CriticalPath/Admin/Subscriber.php:200 +#: inc/Engine/Admin/Settings/Page.php:632 +#: inc/Engine/CriticalPath/Admin/Subscriber.php:201 msgid "Load CSS asynchronously" msgstr "CSS’yi eşzamanlı olmadan yükle" #. translators: %1$s = plugin name. -#: inc/Engine/Admin/Settings/Page.php:655 +#: inc/Engine/Admin/Settings/Page.php:635 msgctxt "WP Critical CSS compatibility" msgid "" "Load CSS asynchronously is currently handled by the %1$s plugin. If you want" @@ -1506,19 +1470,19 @@ msgstr "" "kullanmak istiyorsanız, %1$s eklentisini etkisizleştirin." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:657 +#: inc/Engine/Admin/Settings/Page.php:637 msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" "Önemli Yol CSS’yi oluşturur ve CSS’yi eşzamanlı olmadan yükler. %1$sDaha " "fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:663 +#: inc/Engine/Admin/Settings/Page.php:643 msgid "Fallback critical CSS" msgstr "Son çare önemli CSS" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:645 msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " "%1$sMore info%2$s" @@ -1526,22 +1490,18 @@ msgstr "" "Otomatik oluşturulmuş önemli yol CSS tamamlanmazsa son bir çare sağlar. " "%1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:680 +#: inc/Engine/Admin/Settings/Page.php:660 msgid "Minify JavaScript files" msgstr "JavaScript dosyalarını küçült" -#: inc/Engine/Admin/Settings/Page.php:681 +#: inc/Engine/Admin/Settings/Page.php:661 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "JavaScript’i küçültme, dosya boyutunu düşürmek için boşlukları ve " "açıklamaları kaldırır." -#: inc/Engine/Admin/Settings/Page.php:696 -msgid "Activate minify JavaScript" -msgstr "JavaScript küçültmeyi aktif et" - -#: inc/Engine/Admin/Settings/Page.php:701 +#: inc/Engine/Admin/Settings/Page.php:675 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" @@ -1549,7 +1509,7 @@ msgstr "" "küçült’ü etkinleştirin)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:703 +#: inc/Engine/Admin/Settings/Page.php:677 msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" " JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " @@ -1559,8 +1519,7 @@ msgstr "" "JS dosyalarını birleştirir, HTTP isteklerini azaltır. Siteniz HTTP/2 " "kullanıyorsa önerilmez. %1$sDaha fazla bilgi%2$s" -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:704 +#: inc/Engine/Admin/Settings/Page.php:678 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -1568,12 +1527,12 @@ msgstr "" "Uyumluluk ve en iyi sonuçlar için javascript’i geciktir yürütmesi " "etkinleştirildiğinde bu seçenek etkisizleştirilir." -#: inc/Engine/Admin/Settings/Page.php:720 +#: inc/Engine/Admin/Settings/Page.php:694 msgid "Activate combine JavaScript" msgstr "JavaScript birleştirmeyi aktif et" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:701 msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" " per line). %1$sMore info%2$s" @@ -1581,7 +1540,7 @@ msgstr "" "Birleştirmeden hariç tutulacak satır içi JavaScript dosyalarının örneklerini" " belirtin (her satıra bir tane). %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:744 +#: inc/Engine/Admin/Settings/Page.php:718 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -1589,7 +1548,7 @@ msgstr "" "Küçültmeden ve birleştirmeden hariç tutulacak JavaScript dosyalarının " "URL’lerini belirtin (her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:745 +#: inc/Engine/Admin/Settings/Page.php:719 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -1600,7 +1559,7 @@ msgstr "" "tutmak için (.*).js joker karakterlerini kullanın." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:747 +#: inc/Engine/Admin/Settings/Page.php:721 msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external JS. %1$sMore info%2$s" @@ -1608,13 +1567,13 @@ msgstr "" "3. Taraf: Harici JS dosyalarını dahil etmemek için ya URL " "tam yolunu ya da sadece etki alanı adını kullanın. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:763 +#: inc/Engine/Admin/Settings/Page.php:737 #: inc/Engine/Optimization/DeferJS/AdminSubscriber.php:76 msgid "Load JavaScript deferred" msgstr "Ertelenmiş JavaScript yükle" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:765 +#: inc/Engine/Admin/Settings/Page.php:739 msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " "improve load time. %1$sMore info%2$s" @@ -1624,7 +1583,7 @@ msgstr "" "bilgi%2$s" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:778 +#: inc/Engine/Admin/Settings/Page.php:752 msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " "per line). %1$sMore info%2$s" @@ -1633,13 +1592,13 @@ msgstr "" "anahtar kelimelerini belirtin (her satıra bir tane). %1$sDaha fazla " "bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:768 #: inc/Engine/Optimization/DelayJS/Admin/Subscriber.php:210 msgid "Delay JavaScript execution" msgstr "JavaScript’i Geciktir yürütmesi" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:796 +#: inc/Engine/Admin/Settings/Page.php:770 msgid "" "Improves performance by delaying the loading of JavaScript files until user " "interaction (e.g. scroll, click). %1$sMore info%2$s" @@ -1647,11 +1606,11 @@ msgstr "" "JavaScript dosyalarının yüklenmesini, kullanıcı etkileşimine (örn. kaydırma," " tıklama) kadar geciktirerek performansı artırır. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:805 +#: inc/Engine/Admin/Settings/Page.php:779 msgid "One-click exclusions" msgstr "Tek tıkla hariç tutmalar" -#: inc/Engine/Admin/Settings/Page.php:806 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "" "When using the Delay JavaScript Execution, you might experience delay " "loading elements located in the viewport that need to appear immediately - " @@ -1661,7 +1620,7 @@ msgstr "" "hemen görünmesi gereken öğelerin yüklenmesinde gecikme yaşayabilirsiniz - " "örn. kaydırıcı, başlık, menü." -#: inc/Engine/Admin/Settings/Page.php:807 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "If you need instant visibility, click below on files that should NOT be " "delayed. This selection will help users interact with the elements straight " @@ -1671,7 +1630,7 @@ msgstr "" "dosyalara aşağıdan tıklayın. Bu seçim, kullanıcıların öğelerle hemen " "etkileşim kurmasına yardımcı olacak." -#: inc/Engine/Admin/Settings/Page.php:824 +#: inc/Engine/Admin/Settings/Page.php:798 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -1680,24 +1639,24 @@ msgstr "" "dosyalarını tanımlayabilecek URL’leri veya anahtar kelimeleri belirtin (her " "satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:856 +#: inc/Engine/Admin/Settings/Page.php:830 msgid "Media" msgstr "Ortam" -#: inc/Engine/Admin/Settings/Page.php:857 +#: inc/Engine/Admin/Settings/Page.php:831 msgid "LazyLoad, image dimensions" msgstr "LazyLoad, resim boyutları" -#: inc/Engine/Admin/Settings/Page.php:866 +#: inc/Engine/Admin/Settings/Page.php:840 msgid "Autoptimize" msgstr "Otoiyileştir" -#: inc/Engine/Admin/Settings/Page.php:920 +#: inc/Engine/Admin/Settings/Page.php:894 msgid "LazyLoad" msgstr "LazyLoad" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:923 +#: inc/Engine/Admin/Settings/Page.php:897 msgid "" "It can improve actual and perceived loading time as images, iframes, and " "videos will be loaded only as they enter (or about to enter) the viewport " @@ -1709,7 +1668,7 @@ msgstr "" "Fazla Bilgi%2$s" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:930 +#: inc/Engine/Admin/Settings/Page.php:904 msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " "LazyLoad, disable this option in %2$s." @@ -1717,12 +1676,12 @@ msgstr "" "LazyLoad şu anda %2$s içinde aktif edildi. Eğer WP Rocket’in LazyLoad’ını " "kullanmak istiyorsanız, %2$s içindeki bu seçeneği etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:933 +#: inc/Engine/Admin/Settings/Page.php:907 msgid "Image Dimensions" msgstr "Resim Boyutları" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:910 msgid "" "Add missing width and height attributes to images. Helps prevent layout " "shifts and improve the reading experience for your visitors. %1$sMore " @@ -1732,12 +1691,12 @@ msgstr "" "değişimlerini önlemeye ve ziyaretçileriniz için okuma deneyimini " "iyileştirmeye yardımcı olur. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:955 +#: inc/Engine/Admin/Settings/Page.php:929 msgid "Enable for images" msgstr "Resimler için etkinleştir" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:967 +#: inc/Engine/Admin/Settings/Page.php:941 msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " "%1$s’s LazyLoad, disable this option in %2$s." @@ -1746,26 +1705,26 @@ msgstr "" "LazyLoad’ını kullanmak istiyorsanız, %2$s içindeki bu seçeneği " "etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:975 +#: inc/Engine/Admin/Settings/Page.php:949 msgid "Enable for CSS background images" msgstr "CSS arka plan resimleri için etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:990 +#: inc/Engine/Admin/Settings/Page.php:964 msgid "Enable for iframes and videos" msgstr "Iframe’ler ve görüntüler için etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1005 +#: inc/Engine/Admin/Settings/Page.php:979 msgid "Replace YouTube iframe with preview image" msgstr "Önizleme resmi ile YouTube iframe’ini değiştir" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "Önizleme resmi ile değiştirilen YouTube iframe’i %2$s ile uyumlu değil." #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -1773,12 +1732,12 @@ msgstr "" "Bir sayfada çok sayıda YouTube görüntüsüne sahipseniz bu önemli ölçüde " "yükleme sürenizi iyileştirebilir." -#: inc/Engine/Admin/Settings/Page.php:1022 +#: inc/Engine/Admin/Settings/Page.php:996 msgid "Excluded images or iframes" msgstr "Hariç tutulan resimler veya iframe’ler" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1024 +#: inc/Engine/Admin/Settings/Page.php:998 msgid "" "Specify keywords (e.g. image filename, CSS filename, CSS class, domain) from" " the image or iframe code to be excluded (one per line). %1$sMore info%2$s" @@ -1787,20 +1746,20 @@ msgstr "" "dosya adı, CSS dosya adı, CSS sınıfı, etki alanı) belirtin (her satıra bir " "tane). %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1032 +#: inc/Engine/Admin/Settings/Page.php:1006 msgid "Add missing image dimensions" msgstr "Eksik resim boyutlarını ekle" -#: inc/Engine/Admin/Settings/Page.php:1052 +#: inc/Engine/Admin/Settings/Page.php:1026 msgid "Generate cache files, preload fonts" msgstr "Önbellek dosyalarını oluşturun, yazı tiplerini önyükleyin" -#: inc/Engine/Admin/Settings/Page.php:1064 +#: inc/Engine/Admin/Settings/Page.php:1038 msgid "Preload Cache" msgstr "Önbelleği Önyükle" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1067 +#: inc/Engine/Admin/Settings/Page.php:1041 msgid "" "When you enable preloading WP Rocket will automatically detect your sitemaps" " and save all URLs to the database. The plugin will make sure that your " @@ -1810,12 +1769,12 @@ msgstr "" "otomatik olarak algılayacak ve tüm URL’leri veritabanına kaydedecek. " "Eklenti, önbelleğinizin her zaman önceden yüklendiğinden emin olacak." -#: inc/Engine/Admin/Settings/Page.php:1075 +#: inc/Engine/Admin/Settings/Page.php:1049 msgid "Preload Links" msgstr "Bağlantıları Önyükle" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1052 msgid "" "Link preloading improves the perceived load time by downloading a page when " "a user hovers over the link. %1$sMore info%2$s" @@ -1823,11 +1782,11 @@ msgstr "" "Bağlantı önyükleme, kullanıcı bağlantının üzerine geldiğinde bir sayfa " "indirerek algılanan yükleme süresini iyileştirir. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1086 +#: inc/Engine/Admin/Settings/Page.php:1060 msgid "Prefetch DNS Requests" msgstr "DNS İsteklerini Önceden Getirme" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1835,12 +1794,12 @@ msgstr "" "Önceden DNS getirme, harici dosyaları daha hızlı yüklemeyi sağlayabilir, " "özellikle de mobil ağlarda" -#: inc/Engine/Admin/Settings/Page.php:1093 +#: inc/Engine/Admin/Settings/Page.php:1067 msgid "Preload Fonts" msgstr "Yazı Tiplerini Önyükle" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1096 +#: inc/Engine/Admin/Settings/Page.php:1070 msgid "" "Improves performance by helping browsers discover fonts in CSS files. " "%1$sMore info%2$s" @@ -1848,16 +1807,16 @@ msgstr "" "Tarayıcıların CSS dosyalarındaki yazı tiplerini keşfetmelerine yardımcı " "olarak performansı artırır. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1084 msgid "Activate Preloading" msgstr "Önyüklemeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:1121 +#: inc/Engine/Admin/Settings/Page.php:1095 msgid "Exclude URLs" msgstr "Hariç tutulan URL’ler" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1126 +#: inc/Engine/Admin/Settings/Page.php:1100 msgid "" "Specify URLs to be excluded from the preload feature (one per line). " "%1$sMore info%2$s" @@ -1865,11 +1824,11 @@ msgstr "" "Önyükleme özelliğinden hariç tutulacak URL’leri belirtin (her satıra bir " "tane). %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1137 +#: inc/Engine/Admin/Settings/Page.php:1111 msgid "URLs to prefetch" msgstr "Önceden gertirmek için URL’ler" -#: inc/Engine/Admin/Settings/Page.php:1138 +#: inc/Engine/Admin/Settings/Page.php:1112 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1877,11 +1836,11 @@ msgstr "" "Önceden getirilecek olan harici anamakineleri belirtin (http: " "olmadan, her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1147 +#: inc/Engine/Admin/Settings/Page.php:1121 msgid "Fonts to preload" msgstr "Önyüklenecek yazı tipleri" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1122 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1890,7 +1849,7 @@ msgstr "" "tane). Yazı tipleri kendi etki alanınızda veya CDN sekmesinde belirttiğiniz " "etki alanında barındırılmak zorundadır." -#: inc/Engine/Admin/Settings/Page.php:1149 +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1898,53 +1857,53 @@ msgstr "" "URL’nin etki alanı kısmı otomatik olarak sadeleştirilecektir.
İzin " "verilen yazı tipi uzantıları: otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1132 msgid "Enable link preloading" msgstr "Bağlantı önyüklemeyi etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1177 +#: inc/Engine/Admin/Settings/Page.php:1151 msgid "Advanced Rules" msgstr "Gelişmiş Kurallar" -#: inc/Engine/Admin/Settings/Page.php:1178 +#: inc/Engine/Admin/Settings/Page.php:1152 msgid "Fine-tune cache rules" msgstr "Önbellek kurallarına ince ayar yapın" -#: inc/Engine/Admin/Settings/Page.php:1191 +#: inc/Engine/Admin/Settings/Page.php:1165 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "Özel oturum açma/oturum kapatma URL’leri gibi hassas sayfalar önbellekten " "hariç tutulmalıdır." -#: inc/Engine/Admin/Settings/Page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1168 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1196 +#: inc/Engine/Admin/Settings/Page.php:1170 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1198 +#: inc/Engine/Admin/Settings/Page.php:1172 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1200 +#: inc/Engine/Admin/Settings/Page.php:1174 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1202 +#: inc/Engine/Admin/Settings/Page.php:1176 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" #. translators: %1$s = opening tag, %2$s = plugin name, %3$s closing #. tag. -#: inc/Engine/Admin/Settings/Page.php:1208 +#: inc/Engine/Admin/Settings/Page.php:1182 msgid "" "
Cart, checkout and \"my account\" pages set in " "%1$s%2$s%3$s will be detected and never cached by default." @@ -1953,12 +1912,12 @@ msgstr "" "\"hesabım\" sayfaları algılanacak ve varsayılan olarak asla " "önbelleklenmeyecektir." -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1192 msgid "Cache Lifespan" msgstr "Önbellek Geçerlilik Süresi" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1221 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " "%1$spreloading%2$s for the cache to be rebuilt automatically after lifespan " @@ -1968,16 +1927,16 @@ msgstr "" "silinecektir.
Geçerlilik süresi sona erdikten sonra otomatik olarak " "yeniden oluşturulması için önbellek %1$sönyüklemeyi%2$s etkinleştirin." -#: inc/Engine/Admin/Settings/Page.php:1237 +#: inc/Engine/Admin/Settings/Page.php:1211 msgid "Never Cache Cookies" msgstr "Asla Önbelleklenmeyen Tanımlama Bilgileri" -#: inc/Engine/Admin/Settings/Page.php:1255 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "Cache Query String(s)" msgstr "Önbelleklenen Sorgu Dizgi(leri)si" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1232 msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " "GET parameters." @@ -1985,7 +1944,7 @@ msgstr "" "%1$sSorgu dizgilerini önbelleklemek%2$s belirli GET parametreleri için " "önbelleklemeye zorlamanızı etkinleştirir." -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1243 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" @@ -1993,7 +1952,7 @@ msgstr "" "sınırsız)" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1271 +#: inc/Engine/Admin/Settings/Page.php:1245 msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" " periodically. %1$sWhy?%2$s" @@ -2001,27 +1960,27 @@ msgstr "" "Eğer belirli aralıklarla görünen sorunları fark ederseniz geçerlilik " "süresini 10 saat veya daha azına düşürün. %1$sNeden?%2$s" -#: inc/Engine/Admin/Settings/Page.php:1277 -#: inc/Engine/License/views/promo-banner.php:30 -#: inc/Engine/License/views/renewal-soon-banner.php:13 +#: inc/Engine/Admin/Settings/Page.php:1251 +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 msgid "Hours" msgstr "Saat" -#: inc/Engine/Admin/Settings/Page.php:1278 -#: inc/Engine/License/views/promo-banner.php:29 -#: inc/Engine/License/views/renewal-soon-banner.php:12 +#: inc/Engine/Admin/Settings/Page.php:1252 +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 msgid "Days" msgstr "Gün" -#: inc/Engine/Admin/Settings/Page.php:1283 +#: inc/Engine/Admin/Settings/Page.php:1257 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Asla önbelleklenmemesi gereken sayfa ve yazıların URL’lerini belirtin (her " "satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1284 -#: inc/Engine/Admin/Settings/Page.php:1312 +#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1286 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -2029,7 +1988,7 @@ msgstr "" "URL’nin etki alanı kısmı otomatik olarak sadeleştirilecektir.
Verilen yol" " altında çoklu URL’leri adreslemek için (.*) joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:1293 +#: inc/Engine/Admin/Settings/Page.php:1267 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -2038,20 +1997,20 @@ msgstr "" "engel olması gereken, tanımlama bilgilerinin tam ya da kısmi kimliklerini " "belirtin (satır başına bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1275 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Önbelleklenmiş sayfaları asla görmemesi gereken kullanıcı tanıtıcı dizgisini" " belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1302 +#: inc/Engine/Admin/Settings/Page.php:1276 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "UA dizgilerinin parçalarını algılamak için (.*) joker karakterlerini " "kullanın." -#: inc/Engine/Admin/Settings/Page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1285 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -2059,19 +2018,19 @@ msgstr "" "Herhangi bir yazıyı veya sayfayı her güncellediğinizde daima önbellekten " "temizlenmesini istediğiniz URL’leri belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1320 +#: inc/Engine/Admin/Settings/Page.php:1294 msgid "Specify query strings for caching (one per line)" msgstr "Önbellekleme için sorgu dizgilerini belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1320 msgid "Optimize, reduce bloat" msgstr "İyileştirin, şişmeyi azaltın" -#: inc/Engine/Admin/Settings/Page.php:1353 +#: inc/Engine/Admin/Settings/Page.php:1327 msgid "Post Cleanup" msgstr "Yazı Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1329 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -2079,19 +2038,19 @@ msgstr "" "Yazı incelemeleri ve taslaklar kalıcı olarak silinecektir. İncelemeleri ya " "da taslakları tutmanız gerekiyorsa bu seçeneği kullanmayın." -#: inc/Engine/Admin/Settings/Page.php:1360 +#: inc/Engine/Admin/Settings/Page.php:1334 msgid "Comments Cleanup" msgstr "Yorumları Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1362 +#: inc/Engine/Admin/Settings/Page.php:1336 msgid "Spam and trashed comments will be permanently deleted." msgstr "İstenmeyen mesaj ve çöpe atılmış yorumlar kalıcı olarak silinecektir." -#: inc/Engine/Admin/Settings/Page.php:1366 +#: inc/Engine/Admin/Settings/Page.php:1340 msgid "Transients Cleanup" msgstr "Geçicileri Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1368 +#: inc/Engine/Admin/Settings/Page.php:1342 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -2099,21 +2058,21 @@ msgstr "" "Geçiciler geçici seçeneklerdir; kaldırması güvenlidir. Eklentilerinizin " "gerektirdiklerini otomatik olarak oluşturacaklardır." -#: inc/Engine/Admin/Settings/Page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1346 msgid "Database Cleanup" msgstr "Veritabanı Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1374 +#: inc/Engine/Admin/Settings/Page.php:1348 msgid "Reduces overhead of database tables" msgstr "Veritabanı tablolarının ek yükünü azaltır" -#: inc/Engine/Admin/Settings/Page.php:1378 +#: inc/Engine/Admin/Settings/Page.php:1352 msgid "Automatic Cleanup" msgstr "Otomatik Temizleme" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1391 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "Veritabanınızda %s düzeltme." @@ -2121,7 +2080,7 @@ msgstr[1] "Veritabanınızda %s düzeltme." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1401 +#: inc/Engine/Admin/Settings/Page.php:1375 msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "Veritabanınızda %s taslak." @@ -2129,7 +2088,7 @@ msgstr[1] "Veritabanınızda %s taslak." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1411 +#: inc/Engine/Admin/Settings/Page.php:1385 msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "Veritabanınızda %s çöpe atılmış yazı." @@ -2137,7 +2096,7 @@ msgstr[1] "Veritabanınızda %s çöpe atılmış yazı." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1395 msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "Veritabanınızda %s istenmeyen yorum." @@ -2145,61 +2104,61 @@ msgstr[1] "Veritabanınızda %s istenmeyen yorum." #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1405 msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "Veritabanınızda %s çöpe atılmış yorum." msgstr[1] "Veritabanınızda %s çöpe atılmış yorum." -#: inc/Engine/Admin/Settings/Page.php:1439 +#: inc/Engine/Admin/Settings/Page.php:1413 msgid "All transients" msgstr "Tüm geçiciler" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1441 +#: inc/Engine/Admin/Settings/Page.php:1415 msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "Veritabanınızda %s geçici." msgstr[1] "Veritabanınızda %s geçici." -#: inc/Engine/Admin/Settings/Page.php:1449 +#: inc/Engine/Admin/Settings/Page.php:1423 msgid "Optimize Tables" msgstr "Tabloları iyileştir" #. translators: %s is the number of revisions found in the database. It's a #. formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1451 +#: inc/Engine/Admin/Settings/Page.php:1425 msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "Veritabanınızda iyileştirmek için %s tablo." msgstr[1] "Veritabanınızda iyileştirmek için %s tablo." -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1436 msgid "Schedule Automatic Cleanup" msgstr "Otomatik Temizlemeyi Zamanla" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1448 msgid "Frequency" msgstr "Sıklıkla" -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1456 msgid "Daily" msgstr "Günlük" -#: inc/Engine/Admin/Settings/Page.php:1483 +#: inc/Engine/Admin/Settings/Page.php:1457 msgid "Weekly" msgstr "Haftalık" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1458 msgid "Monthly" msgstr "Aylık" -#: inc/Engine/Admin/Settings/Page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1475 msgid "Integrate your CDN" msgstr "CDN’nizi bütünleştirin" -#: inc/Engine/Admin/Settings/Page.php:1513 +#: inc/Engine/Admin/Settings/Page.php:1487 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -2208,7 +2167,7 @@ msgstr "" "yeniden yazılacaktır." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1489 msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " "available %1$sAdd-ons%2$s." @@ -2218,7 +2177,7 @@ msgstr "" #. translators: %1$s = opening em tag, %2$l = list of add-on name(s), %3$s = #. closing em tag. -#: inc/Engine/Admin/Settings/Page.php:1561 +#: inc/Engine/Admin/Settings/Page.php:1533 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -2232,28 +2191,28 @@ msgstr[1] "" "%1$s%2$l Eklentileri%3$s şu anda etkinleştirildi. CDN ayarlarının " "yapılandırması, sitenizde çalışması amacıyla %2$l için gerekmez." -#: inc/Engine/Admin/Settings/Page.php:1587 +#: inc/Engine/Admin/Settings/Page.php:1559 msgid "Enable Content Delivery Network" msgstr "İçerik Dağıtım Ağını (CDN) etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1596 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:159 +#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:162 msgid "CDN CNAME(s)" msgstr "CDN CNAME(ler)" -#: inc/Engine/Admin/Settings/Page.php:1597 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:160 +#: inc/Engine/Admin/Settings/Page.php:1569 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:163 msgid "Specify the CNAME(s) below" msgstr "Aşağıda CNAME(leri) belirtin" -#: inc/Engine/Admin/Settings/Page.php:1604 +#: inc/Engine/Admin/Settings/Page.php:1576 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "CDN aracılığıyla sunulmaması gereken dosyaların URL(lerini)sini belirtin " "(her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:1605 +#: inc/Engine/Admin/Settings/Page.php:1577 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -2263,16 +2222,16 @@ msgstr "" " yolda bulunan verilen bir dosya türünün tüm dosyalarını hariç tutmak için " "(.*) joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:1628 -#: inc/Engine/Admin/Settings/Page.php:1636 +#: inc/Engine/Admin/Settings/Page.php:1600 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Heartbeat" msgstr "Kalp Atışı" -#: inc/Engine/Admin/Settings/Page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1601 msgid "Control WordPress Heartbeat API" msgstr "WordPress Kalp Atışı API’sini denetleyin" -#: inc/Engine/Admin/Settings/Page.php:1637 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -2280,11 +2239,11 @@ msgstr "" "Kalp Atışı API’si etkinliğini azaltmak veya etkisizleştirmek, sunucunuzun " "kaynaklarının bazılarını kurtarmasına yardımcı olabilir." -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1615 msgid "Reduce or disable Heartbeat activity" msgstr "Kalp Atışı etkinliğini azaltma veya etkisizleştirme" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -2292,55 +2251,55 @@ msgstr "" "Etkinliği azaltmak Kalp Atışı sıklığını, her dakikada bir vuruştan her 2 " "dakikada bir vuruşa değiştirecektir." -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "Kalp Atışı’nın tamamen etkisizleştirilmesi bu API’yi kullanan eklentileri ve" " temaları bozabilir." -#: inc/Engine/Admin/Settings/Page.php:1658 +#: inc/Engine/Admin/Settings/Page.php:1630 msgid "Do not limit" msgstr "Sınırlandırma" -#: inc/Engine/Admin/Settings/Page.php:1659 +#: inc/Engine/Admin/Settings/Page.php:1631 msgid "Reduce activity" msgstr "Etkinliği azalt" -#: inc/Engine/Admin/Settings/Page.php:1660 +#: inc/Engine/Admin/Settings/Page.php:1632 msgid "Disable" msgstr "Etkisizleştir" -#: inc/Engine/Admin/Settings/Page.php:1668 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Control Heartbeat" msgstr "Kalp Atışı’nı denetle" -#: inc/Engine/Admin/Settings/Page.php:1677 +#: inc/Engine/Admin/Settings/Page.php:1649 msgid "Behavior in backend" msgstr "Arka uçtaki davranış" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1656 msgid "Behavior in post editor" msgstr "Yazı düzenleyicideki davranış" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Behavior in frontend" msgstr "Ön uçtaki davranış" -#: inc/Engine/Admin/Settings/Page.php:1709 +#: inc/Engine/Admin/Settings/Page.php:1681 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Eklentiler" -#: inc/Engine/Admin/Settings/Page.php:1710 +#: inc/Engine/Admin/Settings/Page.php:1682 msgid "Add more features" msgstr "Daha fazla özellik ekleyin" -#: inc/Engine/Admin/Settings/Page.php:1717 +#: inc/Engine/Admin/Settings/Page.php:1689 msgid "One-click Rocket Add-ons" msgstr "Tek Tık Rocket Eklentileri" -#: inc/Engine/Admin/Settings/Page.php:1718 +#: inc/Engine/Admin/Settings/Page.php:1690 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -2349,20 +2308,20 @@ msgstr "" "özelliklerdir. Etkinleştirmek için seçeneği bu ekrandan \"açık\" olarak " "değiştirin." -#: inc/Engine/Admin/Settings/Page.php:1728 +#: inc/Engine/Admin/Settings/Page.php:1700 msgid "Rocket Add-ons" msgstr "Rocket Eklentileri" -#: inc/Engine/Admin/Settings/Page.php:1729 +#: inc/Engine/Admin/Settings/Page.php:1701 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Rocket Eklentileri mevcut seçenekleri genişleten tamamlayıcı özelliklerdir." -#: inc/Engine/Admin/Settings/Page.php:1740 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "User Cache" msgstr "Kullanıcı Önbelleği" -#: inc/Engine/Admin/Settings/Page.php:1746 +#: inc/Engine/Admin/Settings/Page.php:1718 msgid "" "If you need to create a dedicated set of cache files for each logged-in " "WordPress user, you must activate this add-on." @@ -2371,7 +2330,7 @@ msgstr "" " kümesi oluşturmanız gerekiyorsa bu eklentiyi etkinleştirmek zorundasınız." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "User cache is great when you have user-specific or restricted content on " "your website.
%1$sLearn more%2$s" @@ -2379,16 +2338,16 @@ msgstr "" "Web sitenizde kullanıcıya özgü ya da kısıtlı içeriğe sahip olduğunuzda " "kullanıcı önbelleği mükemmeldir.
%1$sDaha fazla bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:1761 -#: inc/Engine/Admin/Settings/Page.php:1930 +#: inc/Engine/Admin/Settings/Page.php:1733 +#: inc/Engine/Admin/Settings/Page.php:1902 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1767 +#: inc/Engine/Admin/Settings/Page.php:1739 msgid "Integrate your Cloudflare account with this add-on." msgstr "Bu eklenti ile Cloudflare hesabınızı bütünleştirin." -#: inc/Engine/Admin/Settings/Page.php:1768 +#: inc/Engine/Admin/Settings/Page.php:1740 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -2399,7 +2358,7 @@ msgstr "" "anahtarını ve etki alanını sağlar." #. translators: %1$s = opening span tag, %2$s = closing span tag. -#: inc/Engine/Admin/Settings/Page.php:1771 +#: inc/Engine/Admin/Settings/Page.php:1743 msgid "" "%1$sPlanning on using Automatic Platform Optimization (APO)?%2$s Just " "activate the official Cloudflare plugin and configure it. WP Rocket will " @@ -2409,17 +2368,17 @@ msgstr "" "planlıyorsunuz?%2$s Sadece resmi Cloudflare eklentisini aktif edin ve " "yapılandırın. WP Rocket uyumluluğu otomatik olarak etkinleştirecektir." -#: inc/Engine/Admin/Settings/Page.php:1819 +#: inc/Engine/Admin/Settings/Page.php:1791 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1825 +#: inc/Engine/Admin/Settings/Page.php:1797 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" "Varnish sunucunuzda çalışıyorsa, bu eklentiyi aktif etmek zorundasınız." #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1827 +#: inc/Engine/Admin/Settings/Page.php:1799 msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" @@ -2428,16 +2387,16 @@ msgstr "" "zaman güncel olmasını sağlamak için temizlenecektir.
%1$sDaha fazla bilgi" " edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:1834 msgid "WebP Compatibility" msgstr "WebP Uyumluluğu" -#: inc/Engine/Admin/Settings/Page.php:1868 +#: inc/Engine/Admin/Settings/Page.php:1840 msgid "Improve browser compatibility for WebP images." msgstr "WebP resimleri için tarayıcı uyumluluğunu iyileştirin." #. translators: %1$s and %3$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1872 +#: inc/Engine/Admin/Settings/Page.php:1844 msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " "compatible browsers. Please note that WP Rocket cannot create WebP images " @@ -2449,11 +2408,11 @@ msgstr "" "oluşturamayacağını lütfen unutmayın. WebP resimleri oluşturmak için " "%1$sImagify%2$s öneriyoruz. %3$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1892 +#: inc/Engine/Admin/Settings/Page.php:1864 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "WP Rocket’in önbelleği temizlendiğinde Sucuri önbelleğini temizler." -#: inc/Engine/Admin/Settings/Page.php:1895 +#: inc/Engine/Admin/Settings/Page.php:1867 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -2461,49 +2420,49 @@ msgstr "" "WP Rocket’in önbelleği temizlendiğinde Sucuri önbelleğini temizlemek için " "API anahtarınızı verin." -#: inc/Engine/Admin/Settings/Page.php:1903 -#: inc/Engine/Admin/Settings/Page.php:2047 +#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:2019 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1909 +#: inc/Engine/Admin/Settings/Page.php:1881 msgid "Synchronize Sucuri cache with this add-on." msgstr "Bu eklenti ile Sucuri önbelleğini eşitleyin." -#: inc/Engine/Admin/Settings/Page.php:1947 +#: inc/Engine/Admin/Settings/Page.php:1919 msgid "Cloudflare credentials" msgstr "Cloudflare kimlik bilgileri" -#: inc/Engine/Admin/Settings/Page.php:1956 +#: inc/Engine/Admin/Settings/Page.php:1928 msgid "Cloudflare settings" msgstr "Cloudflare ayarları" -#: inc/Engine/Admin/Settings/Page.php:1970 +#: inc/Engine/Admin/Settings/Page.php:1942 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Genel API anahtarı" -#: inc/Engine/Admin/Settings/Page.php:1971 +#: inc/Engine/Admin/Settings/Page.php:1943 msgctxt "Cloudflare" msgid "Find your API key" msgstr "API anahtarınızı bulun" -#: inc/Engine/Admin/Settings/Page.php:1983 +#: inc/Engine/Admin/Settings/Page.php:1955 msgctxt "Cloudflare" msgid "Account email" msgstr "Hesap e-postası" -#: inc/Engine/Admin/Settings/Page.php:1992 +#: inc/Engine/Admin/Settings/Page.php:1964 msgctxt "Cloudflare" msgid "Zone ID" msgstr "Bölge Kimliği - Zone ID" -#: inc/Engine/Admin/Settings/Page.php:2002 +#: inc/Engine/Admin/Settings/Page.php:1974 msgid "Development mode" msgstr "Geliştirme kipi" #. translators: %1$s = link opening tag, %2$s = link closing tag. -#: inc/Engine/Admin/Settings/Page.php:2004 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" @@ -2511,11 +2470,11 @@ msgstr "" "Web sitenizde geçici olarak geliştirme kipini aktif edin. Bu ayar otomatik " "olarak 3 saat sonra kapanacak. %1$sDaha fazla bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:2012 +#: inc/Engine/Admin/Settings/Page.php:1984 msgid "Optimal settings" msgstr "En uygun ayarlar" -#: inc/Engine/Admin/Settings/Page.php:2013 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -2523,11 +2482,11 @@ msgstr "" "Hız, performans puanı ve uyumluluk için Cloudflare yapılandırmanızı otomatik" " olarak iyileştirir." -#: inc/Engine/Admin/Settings/Page.php:2021 +#: inc/Engine/Admin/Settings/Page.php:1993 msgid "Relative protocol" msgstr "Göreli protokol" -#: inc/Engine/Admin/Settings/Page.php:2022 +#: inc/Engine/Admin/Settings/Page.php:1994 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -2537,11 +2496,11 @@ msgstr "" "dosyaların (CSS, JS, resimler) URL’leri, http:// veya https:// yerine // " "kullanmak için yeniden yazılacaktır." -#: inc/Engine/Admin/Settings/Page.php:2060 +#: inc/Engine/Admin/Settings/Page.php:2032 msgid "Sucuri credentials" msgstr "Sucuri kimlik bilgileri" -#: inc/Engine/Admin/Settings/Page.php:2073 +#: inc/Engine/Admin/Settings/Page.php:2045 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -2550,24 +2509,22 @@ msgstr "" "Güvenlik Duvarı API anahtarı (eklenti için), {32 karakter}/{32 karakter} " "biçiminde olmak zorundadır:" -#: inc/Engine/Admin/Settings/Page.php:2074 +#: inc/Engine/Admin/Settings/Page.php:2046 msgctxt "Sucuri" msgid "Find your API key" msgstr "API anahtarınızı bulun" #. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: -#. opening a tag, %4$s: option a tag, %5$s: opening a tag. -#: inc/Engine/Admin/Settings/Page.php:2295 +#. opening a tag, %4$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2251 msgid "" -"%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our " -"brand new feature %3$sOptimize critical images%5$s is automatically " -"activated now! Also, the Cache tab was removed but the existing features " -"will remain working, %4$ssee more here%5$s." +"%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New " +"feature: %3$sLazy Render Content%4$s. Check out our documentation to learn " +"more about it." msgstr "" -"%1$sWP Rocket:%2$s eklenti 3.16 sürümüne güncellendi. Yepyeni özelliğimiz " -"%3$sÖnemli resimleri iyileştir%5$s artık otomatik olarak etkinleştirildi! " -"Ayrıca, Önbellek sekmesi kaldırıldı ancak varolan özellikler çalışmaya devam" -" edecek, %4$sdaha fazlasına buradan bakın%5$s." +"%1$sWP Rocket:%2$s eklenti 3.17 sürümüne güncellendi. Yeni özellik: %3$sLazy" +" Render İçeriği%4$s. Bu konuda daha fazla bilgi edinmek için belgelerimizi " +"gözden geçirin." #: inc/Engine/Admin/Settings/Settings.php:361 msgid "" @@ -2586,25 +2543,25 @@ msgstr "" "eklemek, sitenizdeki her sayfa için önbelleğe almayı ve iyileştirmeleri " "etkisizleştirdiğinden kaydedilmedi." -#: inc/Engine/Admin/Settings/Subscriber.php:172 +#: inc/Engine/Admin/Settings/Subscriber.php:174 msgid "Import, Export, Rollback" msgstr "İçe aktarın, Dışa aktarın, Geri alın" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:199 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "Resim İyileştirme" -#: inc/Engine/Admin/Settings/Subscriber.php:198 +#: inc/Engine/Admin/Settings/Subscriber.php:200 msgid "Compress your images" msgstr "Resimlerinizi sıkıştırın" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:217 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "Eğitimler" -#: inc/Engine/Admin/Settings/Subscriber.php:216 +#: inc/Engine/Admin/Settings/Subscriber.php:218 msgid "Getting started and how to videos" msgstr "Başlarken ve nasıl yapılır videoları" @@ -2612,15 +2569,15 @@ msgstr "Başlarken ve nasıl yapılır videoları" msgid "WP Rocket Expired Cache Interval" msgstr "WP Roket Süresi Dolmuş Önbellek Aralığı" -#: inc/Engine/Cache/WPCache.php:337 +#: inc/Engine/Cache/WPCache.php:338 msgid "WP_CACHE value" msgstr "WP_CACHE değeri" -#: inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Cache/WPCache.php:355 msgid "Cache" msgstr "Önbellek" -#: inc/Engine/Cache/WPCache.php:358 +#: inc/Engine/Cache/WPCache.php:359 msgid "" "The WP_CACHE constant needs to be set to true for WP Rocket cache to work " "properly" @@ -2628,38 +2585,38 @@ msgstr "" "WP Rocket önbelleğinin düzgün çalışması için WP_CACHE sabitinin true olarak " "ayarlanması gerekir" -#: inc/Engine/Cache/WPCache.php:367 +#: inc/Engine/Cache/WPCache.php:368 msgid "WP_CACHE is set to true" msgstr "WP_CACHE, true olarak ayarlı" -#: inc/Engine/Cache/WPCache.php:375 +#: inc/Engine/Cache/WPCache.php:376 msgid "WP_CACHE is not set" msgstr "WP_CACHE ayarlı değil" -#: inc/Engine/Cache/WPCache.php:383 +#: inc/Engine/Cache/WPCache.php:384 msgid "WP_CACHE is set to false" msgstr "WP_CACHE, false olarak ayarlı" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:96 msgid "Next Billing Date" msgstr "Sonraki Fatura Tarihi" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:99 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:103 msgid "No Subscription" msgstr "Abonelik Yok" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:135 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:138 msgid "Your RocketCDN subscription is currently active." msgstr "RocketCDN aboneliğiniz şu anda etkin." #. translators: %1$s = opening tag, %2$s = CDN URL, %3$s = closing #. tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:141 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:144 msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "RocketCDN’yi kullanmak için CNAME’nizi %1$s%2$s%3$s ile değiştirin." #. translators: %1$is = opening link tag, %2$s = closing link tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:152 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:155 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:230 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:334 msgid "%1$sMore Info%2$s" @@ -2729,16 +2686,16 @@ msgstr "RocketCDN etkisizleştirildi" #. Translators: %s = date formatted using date_i18n() and get_option( #. 'date_format' ). -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:29 msgid "Valid until %s only!" msgstr "Sadece %s tarihine kadar geçerli!" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:38 msgid "Speed up your website thanks to:" msgstr "Şunlar sayesinde web sitenizi hızlandırın:" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:44 msgid "" "High performance Content Delivery Network (CDN) with %1$sunlimited " "bandwidth%2$s" @@ -2747,14 +2704,14 @@ msgstr "" "(CDN)" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:50 msgid "" "Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "" "Kolay yapılandırma: %1$sen iyi CDN ayarları%2$s otomatik olarak uygulanır" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:56 msgid "" "WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in" " our plugin" @@ -2762,12 +2719,12 @@ msgstr "" "WP Rocket bütünleştirmesi: CDN seçeneği eklentimizde %1$sotomatik olarak " "yapılandırılır%2$s" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:60 msgid "Learn more about RocketCDN" msgstr "RocketCDN hakkında daha fazla bilgi edinin" #. translators: %1$s = discounted price, %2$s = regular price. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:67 msgid "" "*$%1$s/month for 12 months then $%2$s/month. You can cancel your " "subscription at any time." @@ -2775,35 +2732,35 @@ msgstr "" "*12 ay için $%1$s/ay ardından $%2$s/ay. Aboneliğinizi istediğiniz zaman " "iptal edebilirsiniz." -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:88 msgid "Billed monthly" msgstr "Aylık faturalandırılır" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:89 msgid "Get Started" msgstr "Başlayın" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:94 msgid "Reduce this banner" msgstr "Bu afişi küçült" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:19 msgid "" "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "" "RocketCDN, WP Rocket’in İçerik Dağıtım Ağı ile web sitenizi hızlandırın." -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:22 #: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 msgid "Learn More" msgstr "Daha Fazla Bilgi Edinin" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:24 msgid "RocketCDN is unavailable on local domains and staging sites." msgstr "" "RocketCDN yerel etki alanlarında ve hazırlık sitelerinde kullanılamaz." -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:33 msgid "Get RocketCDN" msgstr "RocketCDN’yi Al" @@ -2817,6 +2774,18 @@ msgid "" msgstr "" "RocketCDN, WP Rocket’in İçerik Dağıtım Ağı ile web sitenizi hızlandırın!" +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:68 +msgid "Too many requests." +msgstr "Çok fazla istek." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:85 +msgid "Not valid response." +msgstr "Geçerli yanıt değil." + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:151 +msgid "Not valid request type." +msgstr "Geçerli istek türü değil." + #: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "WP Rocket işlemi bekleyen işler" @@ -2829,11 +2798,52 @@ msgstr "WP Rocket başarısız işleri temizledi" msgid "WP Rocket process on submit jobs" msgstr "Gönderme işlerinde WP Roket süreci" -#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:265 +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:44 +msgid "Clear Priority Elements" +msgstr "Öncelikli Öğeleri Temizle" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:79 +msgid "Clear Priority Elements of this URL" +msgstr "Bu URL'nin Öncelikli Öğelerini Temizle" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:100 +msgid "Priority Elements" +msgstr "Öncelikli Öğeler" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:101 +#: inc/Engine/Saas/Admin/AdminBar.php:134 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear" +msgstr "Temizle" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:103 +msgid "" +"This action will clear the Critical Images and Lazily Rendered Content." +msgstr "Bu eylem Önemli Resimleri ve Geç İşlenmiş İçeriği temizleyecek." + +#. translators: %1$s = plugin name. +#: inc/Engine/Common/PerformanceHints/Admin/Controller.php:135 +msgid "%1$s: Critical images and Lazy Render data was cleared!" +msgstr "%1$s: Önemli resimler ve Lazy Render verileri temizlendi!" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:19 +msgid "Script error" +msgstr "Komut kodu hatası" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:22 +msgid "Script timeout" +msgstr "Komut kodu zaman aşımı" + +#. Translators: %s is the exception message. +#: inc/Engine/Common/Queue/Cleaner.php:87 +msgid "It was not possible to determine a valid cut-off time: %s." +msgstr "Geçerli bir kesinti zamanı belirlemek mümkün değildi: %s." + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:269 msgid "Every minute" msgstr "Her dakika" -#: inc/Engine/CriticalPath/Admin/Admin.php:264 +#: inc/Engine/CriticalPath/Admin/Admin.php:265 msgid "Regenerate Critical Path CSS" msgstr "Önemli Yol CSS’yi yeniden oluştur" @@ -2861,7 +2871,6 @@ msgstr "Bu özelliği kullanmak için %l." msgid "Publish the %s" msgstr "%s Yayınla" -#. translators: %s = post type. #: inc/Engine/CriticalPath/Admin/Post.php:223 msgid "Enable Load CSS asynchronously in WP Rocket settings" msgstr "WP Rocket ayarlarında CSS’yi eşzamanlı olmadan yükle’yi etkinleştir" @@ -2876,7 +2885,7 @@ msgid "Critical CSS for %1$s not generated. Error: %2$s" msgstr "%1$s için Önemli CSS oluşturulmadı. Hata: %2$s" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:170 +#: inc/Engine/CriticalPath/APIClient.php:174 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "empty response." @@ -2885,26 +2894,26 @@ msgstr "" "döndürdü." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:173 +#: inc/Engine/CriticalPath/APIClient.php:177 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an empty " "response." msgstr "%1$s için Önemli CSS oluşturulmadı. Hata: API boş bir yanıt döndürdü." #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:185 +#: inc/Engine/CriticalPath/APIClient.php:189 msgid "Critical CSS for %1$s on mobile not generated." msgstr "Mobil üzerinde %1$s için Önemli CSS oluşturulmadı." #. translators: %s = item URL. #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/APIClient.php:187 -#: inc/Engine/CriticalPath/ProcessorService.php:194 +#: inc/Engine/CriticalPath/APIClient.php:191 +#: inc/Engine/CriticalPath/ProcessorService.php:196 msgid "Critical CSS for %1$s not generated." msgstr "%1$s için Önemli CSS oluşturulmadı." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:195 +#: inc/Engine/CriticalPath/APIClient.php:199 msgid "" "Critical CSS for %1$s on mobile not generated. Error: The API returned an " "invalid response code." @@ -2913,7 +2922,7 @@ msgstr "" "yanıt kodu döndürdü." #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:197 +#: inc/Engine/CriticalPath/APIClient.php:201 msgid "" "Critical CSS for %1$s not generated. Error: The API returned an invalid " "response code." @@ -2922,8 +2931,8 @@ msgstr "" "döndürdü." #. translators: %1$s = error message. -#: inc/Engine/CriticalPath/APIClient.php:205 -#: inc/Engine/CriticalPath/ProcessorService.php:201 +#: inc/Engine/CriticalPath/APIClient.php:209 +#: inc/Engine/CriticalPath/ProcessorService.php:203 msgid "Error: %1$s" msgstr "Hata: %1$s" @@ -3008,38 +3017,38 @@ msgid "Critical CSS file cannot be deleted" msgstr "Önemli CSS dosyası silinemez" #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:189 msgid "Mobile Critical CSS for %1$s not generated." msgstr "%1$s için Mobil Önemli CSS oluşturulmadı." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:228 +#: inc/Engine/CriticalPath/ProcessorService.php:230 msgid "Critical CSS for %s in progress." msgstr "%s için Önemli CSS devam ediyor." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:262 +#: inc/Engine/CriticalPath/ProcessorService.php:264 msgid "Mobile Critical CSS for %s generated." msgstr "%s için Mobil Önemli CSS oluşturuldu." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:273 +#: inc/Engine/CriticalPath/ProcessorService.php:275 msgid "Critical CSS for %s generated." msgstr "%s için Önemli CSS oluşturuldu." -#: inc/Engine/CriticalPath/ProcessorService.php:295 +#: inc/Engine/CriticalPath/ProcessorService.php:297 msgid "Critical CSS file deleted successfully." msgstr "Önemli CSS dosyası başarılı olarak silindi." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:317 +#: inc/Engine/CriticalPath/ProcessorService.php:319 msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "%1$s için Mobil Önemli CSS zaman aşımına uğradı. Lütfen biraz sonra yeniden " "deneyin." #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:330 +#: inc/Engine/CriticalPath/ProcessorService.php:332 msgid "Critical CSS for %1$s timeout. Please retry a little later." msgstr "" "%1$s için Önemli CSS zaman aşımına uğradı. Lütfen biraz sonra yeniden " @@ -3169,39 +3178,39 @@ msgid "Unlimited" msgstr "Sınırsız" #. translators: %s = promotion discount percentage. -#: inc/Engine/License/views/promo-banner.php:16 +#: inc/Engine/License/views/promo-banner.php:18 msgid "%s off" msgstr "%s indirim" #. translators: %s = promotion name. -#: inc/Engine/License/views/promo-banner.php:21 +#: inc/Engine/License/views/promo-banner.php:23 msgid "%s promotion is live!" msgstr "%s promosyonu geçerli!" -#: inc/Engine/License/views/promo-banner.php:27 +#: inc/Engine/License/views/promo-banner.php:29 msgid "Hurry Up! Deal ends in:" msgstr "Acele Edin! Anlaşmanın bitiş zamanı:" -#: inc/Engine/License/views/promo-banner.php:31 -#: inc/Engine/License/views/renewal-soon-banner.php:14 +#: inc/Engine/License/views/promo-banner.php:33 +#: inc/Engine/License/views/renewal-soon-banner.php:16 msgid "Minutes" msgstr "Dakika" -#: inc/Engine/License/views/promo-banner.php:32 -#: inc/Engine/License/views/renewal-soon-banner.php:15 +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/renewal-soon-banner.php:17 msgid "Seconds" msgstr "Saniye" -#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/promo-banner.php:36 #: inc/Engine/License/views/upgrade-section.php:11 msgid "Upgrade now" msgstr "Şimdi yükselt" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:13 msgid "The Optimize CSS Delivery feature is disabled." msgstr "CSS teslimini iyileştir özelliği etkisizleştirildi." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:17 msgid "" "You can no longer use the Remove Unused CSS or Load CSS asynchronously " "options." @@ -3210,7 +3219,7 @@ msgstr "" "seçeneklerini kullanamazsınız." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:22 msgid "" "You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " "which addresses a PageSpeed Insights recommendation and improves your page " @@ -3220,26 +3229,26 @@ msgstr "" "önerisini ele alan ve sayfa performansınızı iyileştiren %1$saktif bir " "lisansa%2$s ihtiyacınız var." -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:29 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:39 -#: inc/Engine/License/views/renewal-expired-banner.php:27 -#: inc/Engine/License/views/renewal-soon-banner.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:41 +#: inc/Engine/License/views/renewal-expired-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:33 msgid "Renew now" msgstr "Şimdi yenile" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:13 msgid "You will soon lose access to some features." msgstr "Yakında bazı özelliklere erişiminizi kaybedeceksiniz." #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:20 msgid "" "You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" "%1$sCSS teslimini iyileştirmeye devam etmek için aktif bir lisansa%2$s " "ihtiyacınız var." -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:26 msgid "" "The Remove Unused CSS and Load CSS asynchronously features are great options" " to address the PageSpeed Insights recommendations and improve your website " @@ -3250,17 +3259,17 @@ msgstr "" "artırmak için harika seçeneklerdir." #. translators: %1$s = , %2$s = , %3$s = date. -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:31 msgid "These features will be %1$sautomatically disabled on %3$s%2$s." msgstr "" "Bu özellikler %1$s%3$s tarihinde otomatik olarak etkisizleştirilecektir%2$s." -#: inc/Engine/License/views/renewal-expired-banner.php:11 +#: inc/Engine/License/views/renewal-expired-banner.php:13 msgid "Your WP Rocket license is expired!" msgstr "WP Rocket lisansınızın süresi doldu!" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner.php:18 +#: inc/Engine/License/views/renewal-expired-banner.php:20 msgid "" "Your website could be much faster if it could take advantage of our %1$snew " "features and enhancements%2$s. 🚀" @@ -3269,7 +3278,7 @@ msgstr "" " siteniz çok daha hızlı olabilirdi.🚀" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-soon-banner.php:22 +#: inc/Engine/License/views/renewal-soon-banner.php:24 msgid "" "Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access" " to product updates and support." @@ -3277,12 +3286,12 @@ msgstr "" "%1$sWP Rocket lisansınızın süresi dolmak üzere%2$s: yakında ürün " "güncellemelerine ve desteğine erişiminizi kaybedeceksiniz." -#: inc/Engine/License/views/upgrade-popin.php:12 +#: inc/Engine/License/views/upgrade-popin.php:14 msgid "Speed Up More Websites" msgstr "Daha Fazla Web Sitesini Hızlandırın" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:19 +#: inc/Engine/License/views/upgrade-popin.php:21 msgid "" "You can use WP Rocket on more websites by upgrading your license. To " "upgrade, simply pay the %1$sprice difference%2$s between your current and " @@ -3293,7 +3302,7 @@ msgstr "" "arasındaki %1$sfiyat farkını%2$s, aşağıda gösterildiği gibi ödeyin." #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:25 +#: inc/Engine/License/views/upgrade-popin.php:27 msgid "" "%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "" @@ -3301,17 +3310,17 @@ msgstr "" "değiştirmez" #. translators: %s = price. -#: inc/Engine/License/views/upgrade-popin.php:35 +#: inc/Engine/License/views/upgrade-popin.php:37 msgid "Save $%s" msgstr "$%s dolar tasarruf edin" #. translators: %s = number of websites. -#: inc/Engine/License/views/upgrade-popin.php:48 +#: inc/Engine/License/views/upgrade-popin.php:50 msgid "%s websites" msgstr "%s web sitesi" #. translators: %s = license name. -#: inc/Engine/License/views/upgrade-popin.php:54 +#: inc/Engine/License/views/upgrade-popin.php:56 msgid "Upgrade to %s" msgstr "%s olarak yükselt" @@ -3324,19 +3333,6 @@ msgstr "" "kullanabilirsiniz (sadece şu anki ve yeni lisanslarınız arasındaki fiyat " "farkını ödeyeceksiniz)." -#. translators: %1$s = plugin name. -#: inc/Engine/Media/AboveTheFold/Admin/Controller.php:143 -msgid "%1$s: Critical images cleared!" -msgstr "%1$s: Önemli resimler temizlendi!" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:131 -msgid "Script error" -msgstr "Komut kodu hatası" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:134 -msgid "Script timeout" -msgstr "Komut kodu zaman aşımı" - #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "Resimler için LazyLoad" @@ -3349,15 +3345,15 @@ msgstr "Iframe’ler ve görüntüler için LazyLoad" msgid "LazyLoad CSS backgrounds" msgstr "LazyLoad CSS arka planları" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:195 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:194 msgid "Analytics & Ads" msgstr "Çözümsel ve Reklamlar" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:200 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:199 msgid "Plugins" msgstr "Eklentiler" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:205 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:204 msgid "Themes" msgstr "Temalar" @@ -3405,17 +3401,21 @@ msgstr "JavaScript’i küçült/birleştir" msgid "Minify CSS" msgstr "CSS’yi küçült" +#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 +msgid "Remove Unused CSS" +msgstr "Kullanılmayan CSS’yi Kaldır" + #. translators: %1$s = plugin name, %2$s = table name, %3$s = open tag, #. %4$s = closing tag. #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:253 msgid "" "%1$s: Could not create the %2$s table in the database which is necessary for" -" the Remove Unused CSS feature to work. Please reach out to %3$sour " -"support%4$s." +" the Remove Unused CSS feature to work. Please check our " +"%3$sdocumentation%4$s." msgstr "" -"%1$s: Kullanılmayan CSS'yi Kaldır özelliğinin çalışması için gerekli olan " -"%2$s tablosu veritabanında oluşturulamadı. Lütfen %3$sdestek birimimize%4$s " -"ulaşın." +"%1$s: Kullanılmayan CSS’yi Kaldır özelliğinin çalışması için gerekli olan " +"%2$s tablosu veritabanında oluşturulamadı. Lütfen %3$sbelgelerimizi %4$s " +"gözden geçirin." #. translators: %1$s = plugin name. #: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:274 @@ -3423,7 +3423,7 @@ msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: Kullanılan CSS önbelleği temizlendi!" #. translators: %1$s = plugin name. -#: inc/Engine/Preload/Admin/Settings.php:57 +#: inc/Engine/Preload/Admin/Settings.php:76 msgid "" "%1$s: The preload service is now active. After the initial preload it will " "continue to cache all your pages whenever they are purged. No further action" @@ -3441,29 +3441,20 @@ msgstr "WP Rocket Önyükleme bekleyen işler" msgid "WP Rocket Preload revert stuck failed jobs" msgstr "WP Rocket Önyükleme, sıkışmış başarısız işleri geri alır" -#: inc/Engine/Saas/Admin/AdminBar.php:77 -#: inc/Engine/Saas/Admin/AdminBar.php:198 -msgid "Clear Critical Images" -msgstr "Önemli Resimleri Temizle" - -#: inc/Engine/Saas/Admin/AdminBar.php:164 -msgid "Clear Critical Images of this URL" -msgstr "Bu URL'nin Önemli Resimlerini Temizle" - -#: inc/Engine/Saas/Admin/AdminBar.php:167 +#: inc/Engine/Saas/Admin/AdminBar.php:106 msgid "Clear Used CSS of this URL" msgstr "Bu URL’nin Kullanılan CSS’sini Temizle" -#: inc/Engine/Saas/Admin/AdminBar.php:197 -msgid "Critical Images Cache" -msgstr "Önemli Resimler Önbelleği" +#: inc/Engine/Saas/Admin/AdminBar.php:133 +msgid "Used CSS" +msgstr "Kullanılan CSS" -#: inc/Engine/Saas/Admin/AdminBar.php:201 -msgid "Remove Used CSS Cache" -msgstr "Kullanılan CSS Önbelleğini Kaldır" +#: inc/Engine/Saas/Admin/AdminBar.php:136 +msgid "This action will clear the used CSS files." +msgstr "Bu eylem kullanılan CSS dosyalarını temizleyecek." #. translators: %1$s = plugin name, %2$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:104 +#: inc/Engine/Saas/Admin/Notices.php:91 msgid "" "%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing " "your pages, the plugin is optimizing LCP and the images above the fold." @@ -3474,7 +3465,7 @@ msgstr "" #. translators: %1$s = plugin name, %2$s = number of URLs, %3$s = number of #. seconds. -#: inc/Engine/Saas/Admin/Notices.php:147 +#: inc/Engine/Saas/Admin/Notices.php:134 msgid "" "%1$s: The LCP element has been optimized, and the images above the fold were excluded from lazyload. The Used CSS of your homepage has been processed.\n" "\t\t\t WP Rocket will continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." @@ -3483,19 +3474,19 @@ msgstr "" "\t\t\t WP Rocket, %3$s saniyede %2$s URL’ye kadar Kullanılan CSS oluşturmaya devam edecek." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:157 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "" "En hızlı sonuçlar için %1$sÖnyükleme%2$s’nin etkinleştirilmesini öneririz." #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:180 +#: inc/Engine/Saas/Admin/Notices.php:167 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" "İşlem hakkında daha fazla bilgi edinmek için %1$sbelgelerimizi%2$s gözden " "geçirin." -#: inc/Engine/Saas/Admin/Notices.php:246 +#: inc/Engine/Saas/Admin/Notices.php:229 msgid "" "We couldn't generate the used CSS because you're using a nulled version of " "WP Rocket. You need an active license to use the Remove Unused CSS feature " @@ -3507,12 +3498,12 @@ msgstr "" "ihtiyacınız var." #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:249 +#: inc/Engine/Saas/Admin/Notices.php:232 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "%1$s indirimle WP Rocket tekli lisansı almak için burayı tıklayın!" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:302 +#: inc/Engine/Saas/Admin/Notices.php:285 msgid "" "It seems a security plugin or the server's firewall prevents WP Rocket from " "accessing the SaaS features. IPs listed %1$shere in our documentation%2$s " @@ -3522,11 +3513,11 @@ msgstr "" "özelliklerinin WP Rocket’a erişmesini önlüyor. %1$sBurada belgelerimizde%2$s" " listelenen IP’ler, izinli listelerinize eklenmelidir:" -#: inc/Engine/Saas/Admin/Notices.php:307 +#: inc/Engine/Saas/Admin/Notices.php:290 msgid "- In the security plugin, if you are using one" msgstr "- Güvenlik eklentisinde, eğer bir eklenti kullanıyorsanız" -#: inc/Engine/Saas/Admin/Notices.php:308 +#: inc/Engine/Saas/Admin/Notices.php:291 msgid "- In the server's firewall. Your host can help you with this" msgstr "" "- Sunucunun güvenlik duvarında. Barındırıcınız bu konuda size yardımcı " @@ -3891,7 +3882,7 @@ msgid "" msgstr "" "Bu eklenti, WP Rocket’in önbelleğe alınmasını ve iyileştirmelerini engeller." " Bunu devre dışı bırakın ve bunun yerine %1$sEzoic’in ad sunucusu " -"bütünleştirmesi%2$s'ni kullanın." +"bütünleştirmesi%2$s’ni kullanın." #. Translators: %s = Plugin name. #: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:78 @@ -3910,7 +3901,7 @@ msgstr[1] "" "bırakın:" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:156 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" @@ -3919,7 +3910,7 @@ msgstr "" "etkisizleştirmesi%3$s ile çakışıyor" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:192 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " @@ -3929,7 +3920,7 @@ msgstr "" "çakışıyor" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:228 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " @@ -3939,7 +3930,7 @@ msgstr "" "önbelleklemesi%3$s ile çakışıyor" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:260 msgctxt "Hummingbird notice" msgid "" "%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" @@ -3948,7 +3939,7 @@ msgstr "" "ile çakışıyor" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:294 msgctxt "Hummingbird notice" msgid "" "%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " @@ -4232,7 +4223,6 @@ msgstr "CDN CNAME" msgid "Purges RocketCDN cached resources for your website. %s" msgstr "Web siteniz için RocketCDN önbelleklenmiş kaynaklarını temizler. %s" -#. translators: %s is a "Learn more" link. #: views/settings/fields/rocket-cdn.php:63 #: views/settings/page-sections/cloudflare.php:36 #: views/settings/page-sections/sucuri.php:37 @@ -4269,7 +4259,6 @@ msgstr "Cloudflare Önbelleği" msgid "Purges cached resources for your website. %s" msgstr "Web sitenizin önbelleklenmiş kaynaklarını temizler. %s" -#. translators: %s is a "Learn more" link. #: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" @@ -4278,19 +4267,19 @@ msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" msgid "Clear all Cloudflare cache files" msgstr "Tüm Cloudflare önbellek dosyalarını temizle" -#: views/settings/page-sections/dashboard.php:38 +#: views/settings/page-sections/dashboard.php:39 msgid "Congratulations!" msgstr "Tebrikler!" -#: views/settings/page-sections/dashboard.php:40 +#: views/settings/page-sections/dashboard.php:41 msgid "WP Rocket is now activated and already working for you." msgstr "WP Rocket şu an aktif edildi ve halen sizin için çalışıyor." -#: views/settings/page-sections/dashboard.php:42 +#: views/settings/page-sections/dashboard.php:43 msgid "Your website should be loading faster now!" msgstr "Web siteniz artık daha hızlı yüklenmelidir!" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "To guarantee fast websites, WP Rocket automatically applies 80% of web " "performance best practices." @@ -4298,65 +4287,90 @@ msgstr "" "Hızlı web sitelerini garantilemek için en iyi WP Rocket web performans " "uygulamalarının %80’ini otomatik olarak uygular." -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "" "We also enable options that provide immediate benefits to your website." msgstr "" "Ayrıca web sitenize anında fayda sağlayan seçenekleri etkinleştiriyoruz." -#: views/settings/page-sections/dashboard.php:45 +#: views/settings/page-sections/dashboard.php:46 msgid "Continue to the options to further optimize your site!" msgstr "Sitenizi daha da iyileştirmek için seçeneklere devam edin!" -#: views/settings/page-sections/dashboard.php:62 +#: views/settings/page-sections/dashboard.php:63 msgid "My Account" msgstr "Hesabım" -#: views/settings/page-sections/dashboard.php:68 +#: views/settings/page-sections/dashboard.php:69 msgid "Refresh info" msgstr "Bilgiyi yenile" -#: views/settings/page-sections/dashboard.php:86 +#: views/settings/page-sections/dashboard.php:87 msgid "with" msgstr "birlikte" -#: views/settings/page-sections/dashboard.php:100 +#: views/settings/page-sections/dashboard.php:101 msgid "Expiration Date" msgstr "Bitiş Tarihi" -#: views/settings/page-sections/dashboard.php:110 +#: views/settings/page-sections/dashboard.php:111 msgid "View my account" msgstr "Hesabımı göster" +#: views/settings/page-sections/dashboard.php:131 views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "Rocket Çözümsel" + +#. translators: %1$s = opening tag, %2$s = closing tag. #: views/settings/page-sections/dashboard.php:137 +msgid "" +"I agree to share anonymous data with the development team to help improve WP" +" Rocket. %1$sWhat info will we collect?%2$s" +msgstr "" +"WP Rocket’i iyileştirmeye yardımcı olmak için geliştirme ekibiyle isimsiz " +"verileri paylaşmayı kabul ediyorum. %1$sNe tür bilgi toplayacağız?%2$s" + +#: views/settings/page-sections/dashboard.php:155 msgid "Quick Actions" msgstr "Hızlı Eylemler" -#: views/settings/page-sections/dashboard.php:144 -msgid "Remove all cached files" -msgstr "Tüm önbelleklenen dosyaları kaldırın" +#: views/settings/page-sections/dashboard.php:162 +msgid "Cache files" +msgstr "Önbellek dosyaları" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear and preload all the cache files." +msgstr "Bu eylem tüm önbellek dosyalarını temizleyecek ve önyükleme yapacak." + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear all the cache files." +msgstr "Bu eylem tüm önbellek dosyalarını temizleyecek." + +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear and preload" +msgstr "Temizle ve önyükle" -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:183 +#: views/settings/page-sections/dashboard.php:189 msgid "Regenerate Critical CSS" msgstr "Önemli CSS’yi yeniden oluştur" -#: views/settings/page-sections/dashboard.php:196 +#: views/settings/page-sections/dashboard.php:215 msgid "Frequently Asked Questions" msgstr "Sıkça Sorulan Sorular" -#: views/settings/page-sections/dashboard.php:210 +#: views/settings/page-sections/dashboard.php:229 msgid "Still cannot find a solution?" msgstr "Hala bir çözüm bulamadınız mı?" -#: views/settings/page-sections/dashboard.php:211 +#: views/settings/page-sections/dashboard.php:230 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" "Bir çağrı gönderin ve arkadaş yanlısı ve bilgili Roketçilerimizden yardım " "alın." -#: views/settings/page-sections/dashboard.php:219 +#: views/settings/page-sections/dashboard.php:238 msgid "Ask support" msgstr "Destek iste" @@ -4375,41 +4389,57 @@ msgstr "" msgid "Save Changes and Optimize" msgstr "Değişiklikleri Kaydet ve İyileştir" -#. Translators: %1$s = , %2$s = , %3$s = , %4$s = . -#: views/settings/page-sections/imagify.php:21 +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:22 msgid "" -"%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image " -"optimization.%2$s" +"%1$sWP Rocket created IMAGIFY to give your website an extra speed boost!%2$s" msgstr "" -"%1$sWP ROCKET%2$s, resim iyileştirme için sınıfının en iyisi %3$sIMAGIFY%4$s" -" %1$seklentisini yarattı.%2$s" +"%1$sWP Rocket, web sitenize fazladan hız artışı sağlamak için IMAGIFY’ı " +"yarattı!%2$s" -#: views/settings/page-sections/imagify.php:24 +#: views/settings/page-sections/imagify.php:28 +msgid "Images can account for 50% of your loading time!" +msgstr "Resimler yükleme sürenizin %50’ini oluşturabilir!" + +#: views/settings/page-sections/imagify.php:31 msgid "" -"Compress image to make your website faster, all while maintaining image " -"quality." +"Imagify automatically optimizes all your images, helping your website gain " +"precious seconds while saving you time. With just one click, it resizes, " +"compresses, and converts your images to WebP and AVIF formats without " +"sacrificing quality." msgstr "" -"Tüm resim kalitesini korurken, web sitenizin daha hızlı hale getirmek için " -"resmi sıkıştırın." +"Imagify, tüm görsellerinizi otomatik olarak iyileştirerek web sitenizin " +"zamandan tasarruf ederken değerli saniyeler kazanmasına yardımcı olur. Tek " +"tıklamayla resimlerinizi kaliteden ödün vermeden yeniden boyutlandırır, " +"sıkıştırır ve WebP ve AVIF biçimlerine dönüştürür. " -#: views/settings/page-sections/imagify.php:25 -msgid "More on Imagify:" -msgstr "Imagify’da daha fazlası:" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:41 +msgid "%1$sCompress%2$s all your images in one click" +msgstr "Tüm resimlerinizi tek tıklamayla %1$ssıkıştırın%2$s" -#: views/settings/page-sections/imagify.php:27 -msgid "Imagify Plugin Page" -msgstr "Imagify Eklenti Sayfası" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:49 +msgid "%1$sConvert%2$s images to WebP and Avif" +msgstr "Resimleri WebP ve Avif’e %1$sdönüştürün%2$s" -#: views/settings/page-sections/imagify.php:28 -msgid "Imagify Website" -msgstr "Imagify Web Sitesi" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:57 +msgid "%1$sResize%2$s your images on the fly" +msgstr "Resimlerinizi anında %1$syeniden boyutlandırın%2$s" -#: views/settings/page-sections/imagify.php:29 -msgid "Review of Image Compression Plugins" -msgstr "Resim Sıkıştırma Eklentileri İncelemesi" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:65 +msgid "%1$sFree plan%2$s includes 20MB/month (around 200 images)" +msgstr "%1$sÜcretsiz plan%2$s 20MB/ay içerir (yaklaşık 200 resim)" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:83 +msgid "%1$sInstall Imagify, the Easiest WordPress Image Optimizer%2$s" +msgstr "" +"%1$sEn Kolay WordPress Resim İyileştiricisi olan Imagify’ı Yükleyin%2$s" -#: views/settings/page-sections/imagify.php:38 +#: views/settings/page-sections/imagify.php:110 msgid "Install Imagify" msgstr "Imagify’ı Yükle" diff --git a/languages/rocket.pot b/languages/rocket.pot index d1a6ee8b7e..c520ae0b5f 100644 --- a/languages/rocket.pot +++ b/languages/rocket.pot @@ -2,16 +2,16 @@ # This file is distributed under the same license as the WP Rocket plugin. msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.16-alpha2\n" -"Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"Last-Translator: WP Media (http://wp-rocket.me/)\n" -"Language-Team: WP Media (http://www.transifex.com/projects/p/wp-media/) \n" +"Project-Id-Version: WP Rocket 3.17-alpha4\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-rocket\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2024-05-06T13:28:35+03:00\n" +"POT-Creation-Date: 2024-09-13T17:57:31+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.7.1\n" +"X-Generator: WP-CLI 2.4.0\n" "X-Domain: rocket\n" #. Plugin Name of the plugin @@ -45,10 +45,10 @@ msgstr "" #: inc/ThirdParty/Hostings/Godaddy.php:63 #: inc/ThirdParty/Hostings/O2Switch.php:49 #: inc/ThirdParty/Hostings/OneCom.php:137 -#: inc/ThirdParty/Hostings/Pressidium.php:49 +#: inc/ThirdParty/Hostings/Pressidium.php:50 #: inc/ThirdParty/Hostings/ProIsp.php:51 #: inc/ThirdParty/Hostings/Savvii.php:50 -#: inc/ThirdParty/Hostings/WPEngine.php:47 +#: inc/ThirdParty/Hostings/WPEngine.php:46 #: inc/ThirdParty/Hostings/WPXCloud.php:51 msgid "Your site is hosted on %s, we have enabled Varnish auto-purge for compatibility." msgstr "" @@ -175,45 +175,35 @@ msgstr "" #. translators: %s is the message returned by the CloudFlare API. #: inc/Addon/Cloudflare/Subscriber.php:368 -msgid "Cloudflare minification error: %s" -msgstr "" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:375 -msgid "Cloudflare minification %s" -msgstr "" - -#. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare rocket loader error: %s" msgstr "" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:400 +#: inc/Addon/Cloudflare/Subscriber.php:375 msgid "Cloudflare rocket loader %s" msgstr "" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:418 +#: inc/Addon/Cloudflare/Subscriber.php:393 msgid "Cloudflare browser cache error: %s" msgstr "" #. translators: %s is the message returned by the CloudFlare API. -#: inc/Addon/Cloudflare/Subscriber.php:425 +#: inc/Addon/Cloudflare/Subscriber.php:400 msgid "Cloudflare browser cache set to %s" msgstr "" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:536 +#: inc/Addon/Cloudflare/Subscriber.php:507 msgid "%1$sWP Rocket:%2$s Optimal settings activated for Cloudflare:" msgstr "" #. translators: %1$s = strong opening tag, %2$s = strong closing tag. -#: inc/Addon/Cloudflare/Subscriber.php:545 +#: inc/Addon/Cloudflare/Subscriber.php:516 msgid "%1$sWP Rocket:%2$s Optimal settings deactivated for Cloudflare, reverted to previous settings:" msgstr "" -#: inc/Addon/Cloudflare/Subscriber.php:661 +#: inc/Addon/Cloudflare/Subscriber.php:632 #: inc/admin/options.php:165 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 msgid "WP Rocket: " @@ -319,7 +309,7 @@ msgstr "" #: inc/admin/admin.php:96 #: inc/admin/admin.php:117 #: inc/deprecated/3.5.php:898 -#: inc/Engine/Cache/AdminSubscriber.php:134 +#: inc/Engine/Cache/AdminSubscriber.php:135 msgid "Clear this cache" msgstr "" @@ -352,19 +342,19 @@ msgid "Settings imported and saved." msgstr "" #: inc/admin/options.php:102 -#: inc/Engine/Admin/Settings/Page.php:571 +#: inc/Engine/Admin/Settings/Page.php:551 msgid "Excluded CSS Files" msgstr "" #: inc/admin/options.php:103 -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:699 msgid "Excluded Inline JavaScript" msgstr "" #: inc/admin/options.php:104 -#: inc/Engine/Admin/Settings/Page.php:743 -#: inc/Engine/Admin/Settings/Page.php:776 -#: inc/Engine/Admin/Settings/Page.php:823 +#: inc/Engine/Admin/Settings/Page.php:717 +#: inc/Engine/Admin/Settings/Page.php:750 +#: inc/Engine/Admin/Settings/Page.php:797 msgid "Excluded JavaScript Files" msgstr "" @@ -377,22 +367,22 @@ msgid "Excluded Delay JavaScript Files" msgstr "" #: inc/admin/options.php:107 -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1203 msgid "Never Cache URL(s)" msgstr "" #: inc/admin/options.php:108 -#: inc/Engine/Admin/Settings/Page.php:1243 +#: inc/Engine/Admin/Settings/Page.php:1217 msgid "Never Cache User Agent(s)" msgstr "" #: inc/admin/options.php:109 -#: inc/Engine/Admin/Settings/Page.php:1249 +#: inc/Engine/Admin/Settings/Page.php:1223 msgid "Always Purge URL(s)" msgstr "" #: inc/admin/options.php:110 -#: inc/Engine/Admin/Settings/Page.php:1530 +#: inc/Engine/Admin/Settings/Page.php:1504 msgid "Exclude files from CDN" msgstr "" @@ -413,9 +403,6 @@ msgstr "" #: inc/admin/ui/meta-boxes.php:37 #: inc/admin/ui/notices.php:671 -#: inc/common/admin-bar.php:91 -#: inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 msgid "Clear cache" msgstr "" @@ -541,17 +528,16 @@ msgid "%s: User cache cleared." msgstr "" #: inc/admin/ui/notices.php:662 -#: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:32 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:42 -#: inc/Engine/License/views/renewal-expired-banner.php:30 -#: views/settings/page-sections/dashboard.php:46 +#: inc/Engine/License/views/promo-banner.php:38 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:34 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:44 +#: inc/Engine/License/views/renewal-expired-banner.php:32 +#: views/settings/page-sections/dashboard.php:47 msgid "Dismiss this notice" msgstr "" #: inc/admin/ui/notices.php:682 -#: inc/Engine/Saas/Admin/AdminBar.php:84 -#: inc/Engine/Saas/Admin/AdminBar.php:202 +#: inc/Engine/Saas/Admin/AdminBar.php:51 msgid "Clear Used CSS" msgstr "" @@ -619,8 +605,8 @@ msgstr "" #: inc/classes/class-wp-rocket-requirements-check.php:214 #: inc/deprecated/3.11.php:236 #: inc/deprecated/3.11.php:251 -#: inc/Engine/Plugin/UpdaterSubscriber.php:483 -#: inc/Engine/Plugin/UpdaterSubscriber.php:497 +#: inc/Engine/Plugin/UpdaterSubscriber.php:477 +#: inc/Engine/Plugin/UpdaterSubscriber.php:491 msgid "%s Update Rollback" msgstr "" @@ -638,8 +624,12 @@ msgstr "" #: inc/common/admin-bar.php:91 #: inc/common/admin-bar.php:154 -#: views/settings/page-sections/dashboard.php:150 -msgid "Clear and preload cache" +msgid "Clear and Preload Cache" +msgstr "" + +#: inc/common/admin-bar.php:91 +#: inc/common/admin-bar.php:154 +msgid "Clear Cache" msgstr "" #: inc/common/admin-bar.php:131 @@ -670,7 +660,7 @@ msgid "Documentation" msgstr "" #: inc/deprecated/3.2.php:52 -#: views/settings/page-sections/imagify.php:36 +#: views/settings/page-sections/imagify.php:107 msgid "Activate Imagify" msgstr "" @@ -776,7 +766,7 @@ msgstr "" #. translators: 1 and 3 are link openings, 2 is a link closing. #: inc/deprecated/3.11.php:279 -#: inc/Engine/Plugin/UpdaterSubscriber.php:520 +#: inc/Engine/Plugin/UpdaterSubscriber.php:514 msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "" @@ -856,7 +846,7 @@ msgid "Choose a file from your computer (maximum size: %s)" msgstr "" #: inc/deprecated/deprecated.php:1294 -#: inc/Engine/Admin/Settings/Render.php:422 +#: inc/Engine/Admin/Settings/Render.php:469 msgid "Upload file and import settings" msgstr "" @@ -952,8 +942,8 @@ msgid "Static Files" msgstr "" #: inc/deprecated/deprecated.php:1773 -#: inc/Engine/Admin/Settings/Page.php:1500 -#: inc/Engine/Admin/Settings/Page.php:1511 +#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1485 #: inc/Engine/CDN/Admin/Subscriber.php:28 msgid "CDN" msgstr "" @@ -963,24 +953,24 @@ msgid "Advanced" msgstr "" #: inc/deprecated/deprecated.php:1775 -#: inc/Engine/Admin/Settings/Page.php:1345 +#: inc/Engine/Admin/Settings/Page.php:1319 msgid "Database" msgstr "" #: inc/deprecated/deprecated.php:1776 -#: inc/Engine/Admin/Settings/Page.php:1051 +#: inc/Engine/Admin/Settings/Page.php:1025 msgid "Preload" msgstr "" #: inc/deprecated/deprecated.php:1786 -#: inc/Engine/Admin/Settings/Subscriber.php:171 +#: inc/Engine/Admin/Settings/Subscriber.php:173 #: views/settings/page-sections/tools.php:33 msgid "Tools" msgstr "" #: inc/deprecated/deprecated.php:1789 -#: inc/Engine/Admin/Settings/Page.php:357 -#: views/settings/page-sections/dashboard.php:80 +#: inc/Engine/Admin/Settings/Page.php:368 +#: views/settings/page-sections/dashboard.php:81 msgid "License" msgstr "" @@ -1006,27 +996,27 @@ msgid "weekly" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1389 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Revisions" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1373 msgid "Auto Drafts" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1409 +#: inc/Engine/Admin/Settings/Page.php:1383 msgid "Trashed Posts" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1393 msgid "Spam Comments" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1429 +#: inc/Engine/Admin/Settings/Page.php:1403 msgid "Trashed Comments" msgstr "" @@ -1068,937 +1058,909 @@ msgstr "" msgid "Regenerate WP Rocket configuration files now" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Save Changes" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:223 +#: inc/Engine/Admin/Settings/Page.php:222 msgid "Validate License" msgstr "" +#: inc/Engine/Admin/Settings/Page.php:278 #: inc/Engine/Admin/Settings/Page.php:279 -#: inc/Engine/Admin/Settings/Page.php:280 #: inc/functions/admin.php:550 msgid "Unavailable" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:374 +#: inc/Engine/Admin/Settings/Page.php:385 msgid "API key" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:389 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Email address" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:415 +#: inc/Engine/Admin/Settings/Page.php:426 msgid "Dashboard" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:416 +#: inc/Engine/Admin/Settings/Page.php:427 msgid "Get help, account info" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:425 -msgid "My Status" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:435 -#: views/settings/page.php:75 -msgid "Rocket Analytics" -msgstr "" - -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:437 -msgid "I agree to share anonymous data with the development team to help improve WP Rocket. %1$sWhat info will we collect?%2$s" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:489 +#: inc/Engine/Admin/Settings/Page.php:475 msgid "File Optimization" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:490 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Optimize CSS & JS" msgstr "" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP Rocket”. -#: inc/Engine/Admin/Settings/Page.php:498 +#: inc/Engine/Admin/Settings/Page.php:484 msgid "%1$s Minification is currently activated in Autoptimize. If you want to use %2$s’s minification, disable this option in Autoptimize." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:508 +#: inc/Engine/Admin/Settings/Page.php:494 msgid "CSS Files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:503 msgid "JavaScript Files" msgstr "" #. translators: %1$s = type of minification (HTML, CSS or JS), %2$s = “WP Rocket”. -#: inc/Engine/Admin/Settings/Page.php:524 +#: inc/Engine/Admin/Settings/Page.php:510 msgid "%1$s Minification is currently activated in Autoptimize. If you want to use %2$s’s minification, disable those options in Autoptimize." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:529 +#: inc/Engine/Admin/Settings/Page.php:515 msgid "If you have problems after activating this option, copy and paste the default exclusions to quickly resolve issues:" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:519 msgid "Also, please check our %1$sdocumentation%2$s for a list of compatibility exclusions." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:538 +#: inc/Engine/Admin/Settings/Page.php:524 msgid "Internal scripts are excluded by default to prevent issues. Remove them to take full advantage of this option." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:527 msgid "If this causes trouble, restore the default exclusions, found %1$shere%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:550 +#: inc/Engine/Admin/Settings/Page.php:536 msgid "Minify CSS files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:551 +#: inc/Engine/Admin/Settings/Page.php:537 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:564 -#: inc/Engine/Admin/Settings/Page.php:628 -#: inc/Engine/Admin/Settings/Page.php:694 -#: inc/Engine/Admin/Settings/Page.php:718 -msgid "This could break things!" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:565 -#: inc/Engine/Admin/Settings/Page.php:629 -#: inc/Engine/Admin/Settings/Page.php:695 -#: inc/Engine/Admin/Settings/Page.php:719 -msgid "If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal." -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:566 -msgid "Activate minify CSS" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:572 +#: inc/Engine/Admin/Settings/Page.php:552 msgid "Specify URLs of CSS files to be excluded from minification (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:573 +#: inc/Engine/Admin/Settings/Page.php:553 msgid "Internal: The domain part of the URL will be stripped automatically. Use (.*).css wildcards to exclude all CSS files located at a specific path." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:575 +#: inc/Engine/Admin/Settings/Page.php:555 msgid "3rd Party: Use either the full URL path or only the domain name, to exclude external CSS. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:588 -#: inc/Engine/Admin/Settings/Page.php:610 +#: inc/Engine/Admin/Settings/Page.php:568 +#: inc/Engine/Admin/Settings/Page.php:590 msgid "Optimize CSS delivery" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "Optimize CSS delivery eliminates render-blocking CSS on your website. Only one method can be selected. Remove Unused CSS is recommended for optimal performance, but limited only to the users with active license." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:573 msgid "Optimize CSS delivery eliminates render-blocking CSS on your website. Only one method can be selected. Remove Unused CSS is recommended for optimal performance." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:603 +#: inc/Engine/Admin/Settings/Page.php:583 msgid "Optimize CSS Delivery features are disabled on local environments. %1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:623 -#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 -msgid "Remove Unused CSS" +#: inc/Engine/Admin/Settings/Page.php:603 +msgid "Remove Unused CSS (RUCSS)" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:606 msgid "Removes unused CSS per page and helps to reduce page size and HTTP requests. Recommended for best performance. Test thoroughly! %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:630 +#: inc/Engine/Admin/Settings/Page.php:608 +#: inc/Engine/Admin/Settings/Page.php:692 +msgid "This could break things!" +msgstr "" + +#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal." +msgstr "" + +#: inc/Engine/Admin/Settings/Page.php:610 msgid "Activate Remove Unused CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:636 +#: inc/Engine/Admin/Settings/Page.php:616 msgid "CSS safelist" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:637 +#: inc/Engine/Admin/Settings/Page.php:617 msgid "Specify CSS filenames, IDs or classes that should not be removed (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:652 -#: inc/Engine/CriticalPath/Admin/Subscriber.php:200 +#: inc/Engine/Admin/Settings/Page.php:632 +#: inc/Engine/CriticalPath/Admin/Subscriber.php:201 msgid "Load CSS asynchronously" msgstr "" #. translators: %1$s = plugin name. -#: inc/Engine/Admin/Settings/Page.php:655 +#: inc/Engine/Admin/Settings/Page.php:635 msgctxt "WP Critical CSS compatibility" msgid "Load CSS asynchronously is currently handled by the %1$s plugin. If you want to use WP Rocket’s load CSS asynchronously option, disable the %1$s plugin." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:657 +#: inc/Engine/Admin/Settings/Page.php:637 msgid "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:663 +#: inc/Engine/Admin/Settings/Page.php:643 msgid "Fallback critical CSS" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:645 msgid "Provides a fallback if auto-generated critical path CSS is incomplete. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:680 +#: inc/Engine/Admin/Settings/Page.php:660 msgid "Minify JavaScript files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:681 +#: inc/Engine/Admin/Settings/Page.php:661 msgid "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:696 -msgid "Activate minify JavaScript" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:701 +#: inc/Engine/Admin/Settings/Page.php:675 msgid "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:703 +#: inc/Engine/Admin/Settings/Page.php:677 msgid "Combine JavaScript files combines your site’s internal, 3rd party and inline JS reducing HTTP requests. Not recommended if your site uses HTTP/2. %1$sMore info%2$s" msgstr "" -#. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:704 +#: inc/Engine/Admin/Settings/Page.php:678 msgid "For compatibility and best results, this option is disabled when delay javascript execution is enabled." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:720 +#: inc/Engine/Admin/Settings/Page.php:694 msgid "Activate combine JavaScript" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:701 msgid "Specify patterns of inline JavaScript to be excluded from concatenation (one per line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:744 +#: inc/Engine/Admin/Settings/Page.php:718 msgid "Specify URLs of JavaScript files to be excluded from minification and concatenation (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:745 +#: inc/Engine/Admin/Settings/Page.php:719 msgid "Internal: The domain part of the URL will be stripped automatically. Use (.*).js wildcards to exclude all JS files located at a specific path." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:747 +#: inc/Engine/Admin/Settings/Page.php:721 msgid "3rd Party: Use either the full URL path or only the domain name, to exclude external JS. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:763 +#: inc/Engine/Admin/Settings/Page.php:737 #: inc/Engine/Optimization/DeferJS/AdminSubscriber.php:76 msgid "Load JavaScript deferred" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:765 +#: inc/Engine/Admin/Settings/Page.php:739 msgid "Load JavaScript deferred eliminates render-blocking JS on your site and can improve load time. %1$sMore info%2$s" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:778 +#: inc/Engine/Admin/Settings/Page.php:752 msgid "Specify URLs or keywords of JavaScript files to be excluded from defer (one per line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:768 #: inc/Engine/Optimization/DelayJS/Admin/Subscriber.php:210 msgid "Delay JavaScript execution" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:796 +#: inc/Engine/Admin/Settings/Page.php:770 msgid "Improves performance by delaying the loading of JavaScript files until user interaction (e.g. scroll, click). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:805 +#: inc/Engine/Admin/Settings/Page.php:779 msgid "One-click exclusions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:806 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "When using the Delay JavaScript Execution, you might experience delay loading elements located in the viewport that need to appear immediately - e.g. slider, header, menu." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:807 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "If you need instant visibility, click below on files that should NOT be delayed. This selection will help users interact with the elements straight away." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:824 +#: inc/Engine/Admin/Settings/Page.php:798 msgid "Specify URLs or keywords that can identify inline or JavaScript files to be excluded from delaying execution (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:856 +#: inc/Engine/Admin/Settings/Page.php:830 msgid "Media" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:857 +#: inc/Engine/Admin/Settings/Page.php:831 msgid "LazyLoad, image dimensions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:866 +#: inc/Engine/Admin/Settings/Page.php:840 msgid "Autoptimize" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:920 +#: inc/Engine/Admin/Settings/Page.php:894 msgid "LazyLoad" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:923 +#: inc/Engine/Admin/Settings/Page.php:897 msgid "It can improve actual and perceived loading time as images, iframes, and videos will be loaded only as they enter (or about to enter) the viewport and reduces the number of HTTP requests. %1$sMore Info%2$s" msgstr "" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:930 +#: inc/Engine/Admin/Settings/Page.php:904 msgid "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s LazyLoad, disable this option in %2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:933 +#: inc/Engine/Admin/Settings/Page.php:907 msgid "Image Dimensions" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:910 msgid "Add missing width and height attributes to images. Helps prevent layout shifts and improve the reading experience for your visitors. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:955 +#: inc/Engine/Admin/Settings/Page.php:929 msgid "Enable for images" msgstr "" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin names. -#: inc/Engine/Admin/Settings/Page.php:967 +#: inc/Engine/Admin/Settings/Page.php:941 msgid "LazyLoad for images is currently activated in %2$s. If you want to use %1$s’s LazyLoad, disable this option in %2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:975 +#: inc/Engine/Admin/Settings/Page.php:949 msgid "Enable for CSS background images" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:990 +#: inc/Engine/Admin/Settings/Page.php:964 msgid "Enable for iframes and videos" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1005 +#: inc/Engine/Admin/Settings/Page.php:979 msgid "Replace YouTube iframe with preview image" msgstr "" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" #. translators: %1$s = “WP Rocket”, %2$s = a list of plugin or themes names. -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:981 msgid "This can significantly improve your loading time if you have a lot of YouTube videos on a page." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1022 +#: inc/Engine/Admin/Settings/Page.php:996 msgid "Excluded images or iframes" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1024 +#: inc/Engine/Admin/Settings/Page.php:998 msgid "Specify keywords (e.g. image filename, CSS filename, CSS class, domain) from the image or iframe code to be excluded (one per line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1032 +#: inc/Engine/Admin/Settings/Page.php:1006 msgid "Add missing image dimensions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1052 +#: inc/Engine/Admin/Settings/Page.php:1026 msgid "Generate cache files, preload fonts" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1064 +#: inc/Engine/Admin/Settings/Page.php:1038 msgid "Preload Cache" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1067 +#: inc/Engine/Admin/Settings/Page.php:1041 msgid "When you enable preloading WP Rocket will automatically detect your sitemaps and save all URLs to the database. The plugin will make sure that your cache is always preloaded." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1075 +#: inc/Engine/Admin/Settings/Page.php:1049 msgid "Preload Links" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1052 msgid "Link preloading improves the perceived load time by downloading a page when a user hovers over the link. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1086 +#: inc/Engine/Admin/Settings/Page.php:1060 msgid "Prefetch DNS Requests" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "DNS prefetching can make external files load faster, especially on mobile networks" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1093 +#: inc/Engine/Admin/Settings/Page.php:1067 msgid "Preload Fonts" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1096 +#: inc/Engine/Admin/Settings/Page.php:1070 msgid "Improves performance by helping browsers discover fonts in CSS files. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1084 msgid "Activate Preloading" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1121 +#: inc/Engine/Admin/Settings/Page.php:1095 msgid "Exclude URLs" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1126 +#: inc/Engine/Admin/Settings/Page.php:1100 msgid "Specify URLs to be excluded from the preload feature (one per line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1137 +#: inc/Engine/Admin/Settings/Page.php:1111 msgid "URLs to prefetch" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1138 +#: inc/Engine/Admin/Settings/Page.php:1112 msgid "Specify external hosts to be prefetched (no http:, one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1147 +#: inc/Engine/Admin/Settings/Page.php:1121 msgid "Fonts to preload" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1122 msgid "Specify urls of the font files to be preloaded (one per line). Fonts must be hosted on your own domain, or the domain you have specified on the CDN tab." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1149 +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "The domain part of the URL will be stripped automatically.
Allowed font extensions: otf, ttf, svg, woff, woff2." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1132 msgid "Enable link preloading" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1177 +#: inc/Engine/Admin/Settings/Page.php:1151 msgid "Advanced Rules" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1178 +#: inc/Engine/Admin/Settings/Page.php:1152 msgid "Fine-tune cache rules" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1191 +#: inc/Engine/Admin/Settings/Page.php:1165 msgid "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1168 msgctxt "plugin name" msgid "WooCommerce" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1196 +#: inc/Engine/Admin/Settings/Page.php:1170 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1198 +#: inc/Engine/Admin/Settings/Page.php:1172 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1200 +#: inc/Engine/Admin/Settings/Page.php:1174 msgctxt "plugin name" msgid "Jigoshop" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1202 +#: inc/Engine/Admin/Settings/Page.php:1176 msgctxt "plugin name" msgid "WP-Shop" msgstr "" #. translators: %1$s = opening tag, %2$s = plugin name, %3$s closing tag. -#: inc/Engine/Admin/Settings/Page.php:1208 +#: inc/Engine/Admin/Settings/Page.php:1182 msgid "
Cart, checkout and \"my account\" pages set in %1$s%2$s%3$s will be detected and never cached by default." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1192 msgid "Cache Lifespan" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1221 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "Cache files older than the specified lifespan will be deleted.
Enable %1$spreloading%2$s for the cache to be rebuilt automatically after lifespan expiration." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1237 +#: inc/Engine/Admin/Settings/Page.php:1211 msgid "Never Cache Cookies" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1255 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "Cache Query String(s)" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1232 msgid "%1$sCache for query strings%2$s enables you to force caching for specific GET parameters." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1243 msgid "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1271 +#: inc/Engine/Admin/Settings/Page.php:1245 msgid "Reduce lifespan to 10 hours or less if you notice issues that seem to appear periodically. %1$sWhy?%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1277 -#: inc/Engine/License/views/promo-banner.php:30 -#: inc/Engine/License/views/renewal-soon-banner.php:13 +#: inc/Engine/Admin/Settings/Page.php:1251 +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 msgid "Hours" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1278 -#: inc/Engine/License/views/promo-banner.php:29 -#: inc/Engine/License/views/renewal-soon-banner.php:12 +#: inc/Engine/Admin/Settings/Page.php:1252 +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 msgid "Days" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1283 +#: inc/Engine/Admin/Settings/Page.php:1257 msgid "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1284 -#: inc/Engine/Admin/Settings/Page.php:1312 +#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1286 msgid "The domain part of the URL will be stripped automatically.
Use (.*) wildcards to address multiple URLs under a given path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1293 +#: inc/Engine/Admin/Settings/Page.php:1267 msgid "Specify full or partial IDs of cookies that, when set in the visitor's browser, should prevent a page from getting cached (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1275 msgid "Specify user agent strings that should never see cached pages (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1302 +#: inc/Engine/Admin/Settings/Page.php:1276 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1285 msgid "Specify URLs you always want purged from cache whenever you update any post or page (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1320 +#: inc/Engine/Admin/Settings/Page.php:1294 msgid "Specify query strings for caching (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1320 msgid "Optimize, reduce bloat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1353 +#: inc/Engine/Admin/Settings/Page.php:1327 msgid "Post Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1329 msgid "Post revisions and drafts will be permanently deleted. Do not use this option if you need to retain revisions or drafts." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1360 +#: inc/Engine/Admin/Settings/Page.php:1334 msgid "Comments Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1362 +#: inc/Engine/Admin/Settings/Page.php:1336 msgid "Spam and trashed comments will be permanently deleted." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1366 +#: inc/Engine/Admin/Settings/Page.php:1340 msgid "Transients Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1368 +#: inc/Engine/Admin/Settings/Page.php:1342 msgid "Transients are temporary options; they are safe to remove. They will be automatically regenerated as your plugins require them." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1346 msgid "Database Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1374 +#: inc/Engine/Admin/Settings/Page.php:1348 msgid "Reduces overhead of database tables" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1378 +#: inc/Engine/Admin/Settings/Page.php:1352 msgid "Automatic Cleanup" msgstr "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1391 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "" msgstr[1] "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1401 +#: inc/Engine/Admin/Settings/Page.php:1375 msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "" msgstr[1] "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1411 +#: inc/Engine/Admin/Settings/Page.php:1385 msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "" msgstr[1] "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1395 msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "" msgstr[1] "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1405 msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1439 +#: inc/Engine/Admin/Settings/Page.php:1413 msgid "All transients" msgstr "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1441 +#: inc/Engine/Admin/Settings/Page.php:1415 msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1449 +#: inc/Engine/Admin/Settings/Page.php:1423 msgid "Optimize Tables" msgstr "" #. translators: %s is the number of revisions found in the database. It's a formatted number, don't use %d. -#: inc/Engine/Admin/Settings/Page.php:1451 +#: inc/Engine/Admin/Settings/Page.php:1425 msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1436 msgid "Schedule Automatic Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1448 msgid "Frequency" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1456 msgid "Daily" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1483 +#: inc/Engine/Admin/Settings/Page.php:1457 msgid "Weekly" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1458 msgid "Monthly" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1475 msgid "Integrate your CDN" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1513 +#: inc/Engine/Admin/Settings/Page.php:1487 msgid "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s) you provide." msgstr "" #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1489 msgid "Not required for services like Cloudflare and Sucuri. Please see our available %1$sAdd-ons%2$s." msgstr "" #. translators: %1$s = opening em tag, %2$l = list of add-on name(s), %3$s = closing em tag. -#: inc/Engine/Admin/Settings/Page.php:1561 +#: inc/Engine/Admin/Settings/Page.php:1533 msgid "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings is not required for %2$l to work on your site." msgid_plural "%1$s%2$l Add-ons%3$s are currently enabled. Configuration of the CDN settings is not required for %2$l to work on your site." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1587 +#: inc/Engine/Admin/Settings/Page.php:1559 msgid "Enable Content Delivery Network" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1596 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:159 +#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:162 msgid "CDN CNAME(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1597 -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:160 +#: inc/Engine/Admin/Settings/Page.php:1569 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:163 msgid "Specify the CNAME(s) below" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1604 +#: inc/Engine/Admin/Settings/Page.php:1576 msgid "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1605 +#: inc/Engine/Admin/Settings/Page.php:1577 msgid "The domain part of the URL will be stripped automatically.
Use (.*) wildcards to exclude all files of a given file type located at a specific path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1628 -#: inc/Engine/Admin/Settings/Page.php:1636 +#: inc/Engine/Admin/Settings/Page.php:1600 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Heartbeat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1601 msgid "Control WordPress Heartbeat API" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1637 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "Reducing or disabling the Heartbeat API’s activity can help save some of your server’s resources." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1615 msgid "Reduce or disable Heartbeat activity" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "Reducing activity will change Heartbeat frequency from one hit each minute to one hit every 2 minutes." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1616 msgid "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1658 +#: inc/Engine/Admin/Settings/Page.php:1630 msgid "Do not limit" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1659 +#: inc/Engine/Admin/Settings/Page.php:1631 msgid "Reduce activity" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1660 +#: inc/Engine/Admin/Settings/Page.php:1632 msgid "Disable" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1668 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Control Heartbeat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1677 +#: inc/Engine/Admin/Settings/Page.php:1649 msgid "Behavior in backend" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1656 msgid "Behavior in post editor" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Behavior in frontend" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1709 +#: inc/Engine/Admin/Settings/Page.php:1681 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1710 +#: inc/Engine/Admin/Settings/Page.php:1682 msgid "Add more features" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1717 +#: inc/Engine/Admin/Settings/Page.php:1689 msgid "One-click Rocket Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1718 +#: inc/Engine/Admin/Settings/Page.php:1690 msgid "One-Click Add-ons are features extending available options without configuration needed. Switch the option \"on\" to enable from this screen." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1728 +#: inc/Engine/Admin/Settings/Page.php:1700 msgid "Rocket Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1729 +#: inc/Engine/Admin/Settings/Page.php:1701 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1740 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "User Cache" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1746 +#: inc/Engine/Admin/Settings/Page.php:1718 msgid "If you need to create a dedicated set of cache files for each logged-in WordPress user, you must activate this add-on." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "User cache is great when you have user-specific or restricted content on your website.
%1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1761 -#: inc/Engine/Admin/Settings/Page.php:1930 +#: inc/Engine/Admin/Settings/Page.php:1733 +#: inc/Engine/Admin/Settings/Page.php:1902 msgid "Cloudflare" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1767 +#: inc/Engine/Admin/Settings/Page.php:1739 msgid "Integrate your Cloudflare account with this add-on." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1768 +#: inc/Engine/Admin/Settings/Page.php:1740 msgid "Provide your account email, global API key, and domain to use options such as clearing the Cloudflare cache and enabling optimal settings with WP Rocket." msgstr "" #. translators: %1$s = opening span tag, %2$s = closing span tag. -#: inc/Engine/Admin/Settings/Page.php:1771 +#: inc/Engine/Admin/Settings/Page.php:1743 msgid "%1$sPlanning on using Automatic Platform Optimization (APO)?%2$s Just activate the official Cloudflare plugin and configure it. WP Rocket will automatically enable compatibility." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1819 +#: inc/Engine/Admin/Settings/Page.php:1791 msgid "Varnish" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1825 +#: inc/Engine/Admin/Settings/Page.php:1797 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" #. translators: %1$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1827 +#: inc/Engine/Admin/Settings/Page.php:1799 msgid "Varnish cache will be purged each time WP Rocket clears its cache to ensure content is always up-to-date.
%1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:1834 msgid "WebP Compatibility" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1868 +#: inc/Engine/Admin/Settings/Page.php:1840 msgid "Improve browser compatibility for WebP images." msgstr "" #. translators: %1$s and %3$s = opening tag, %2$s = closing tag. -#: inc/Engine/Admin/Settings/Page.php:1872 +#: inc/Engine/Admin/Settings/Page.php:1844 msgid "Enable this option if you would like WP Rocket to serve WebP images to compatible browsers. Please note that WP Rocket cannot create WebP images for you. To create WebP images we recommend %1$sImagify%2$s. %3$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1892 +#: inc/Engine/Admin/Settings/Page.php:1864 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1895 +#: inc/Engine/Admin/Settings/Page.php:1867 msgid "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1903 -#: inc/Engine/Admin/Settings/Page.php:2047 +#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:2019 msgid "Sucuri" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1909 +#: inc/Engine/Admin/Settings/Page.php:1881 msgid "Synchronize Sucuri cache with this add-on." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1947 +#: inc/Engine/Admin/Settings/Page.php:1919 msgid "Cloudflare credentials" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1956 +#: inc/Engine/Admin/Settings/Page.php:1928 msgid "Cloudflare settings" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1970 +#: inc/Engine/Admin/Settings/Page.php:1942 msgctxt "Cloudflare" msgid "Global API key:" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1971 +#: inc/Engine/Admin/Settings/Page.php:1943 msgctxt "Cloudflare" msgid "Find your API key" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1983 +#: inc/Engine/Admin/Settings/Page.php:1955 msgctxt "Cloudflare" msgid "Account email" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1992 +#: inc/Engine/Admin/Settings/Page.php:1964 msgctxt "Cloudflare" msgid "Zone ID" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2002 +#: inc/Engine/Admin/Settings/Page.php:1974 msgid "Development mode" msgstr "" #. translators: %1$s = link opening tag, %2$s = link closing tag. -#: inc/Engine/Admin/Settings/Page.php:2004 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "Temporarily activate development mode on your website. This setting will automatically turn off after 3 hours. %1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2012 +#: inc/Engine/Admin/Settings/Page.php:1984 msgid "Optimal settings" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2013 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "Automatically enhances your Cloudflare configuration for speed, performance grade and compatibility." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2021 +#: inc/Engine/Admin/Settings/Page.php:1993 msgid "Relative protocol" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2022 +#: inc/Engine/Admin/Settings/Page.php:1994 msgid "Should only be used with Cloudflare's flexible SSL feature. URLs of static files (CSS, JS, images) will be rewritten to use // instead of http:// or https://." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2060 +#: inc/Engine/Admin/Settings/Page.php:2032 msgid "Sucuri credentials" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2073 +#: inc/Engine/Admin/Settings/Page.php:2045 msgctxt "Sucuri" msgid "Firewall API key (for plugin), must be in format {32 characters}/{32 characters}:" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2074 +#: inc/Engine/Admin/Settings/Page.php:2046 msgctxt "Sucuri" msgid "Find your API key" msgstr "" -#. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: opening a tag, %4$s: option a tag, %5$s: opening a tag. -#: inc/Engine/Admin/Settings/Page.php:2295 -msgid "%1$sWP Rocket:%2$s the plugin has been updated to the 3.16 version. Our brand new feature %3$sOptimize critical images%5$s is automatically activated now! Also, the Cache tab was removed but the existing features will remain working, %4$ssee more here%5$s." +#. translators: %1$s: opening strong tag, %2$s: closing strong tag, %3$s: opening a tag, %4$s: opening a tag. +#: inc/Engine/Admin/Settings/Page.php:2251 +msgid "%1$sWP Rocket:%2$s the plugin has been updated to the 3.17 version. New feature: %3$sLazy Render Content%4$s. Check out our documentation to learn more about it." msgstr "" #: inc/Engine/Admin/Settings/Settings.php:361 @@ -2009,25 +1971,25 @@ msgstr "" msgid "Sorry! Adding /(.*) in Advanced Rules > Never Cache URL(s) was not saved because it disables caching and optimizations for every page on your site." msgstr "" -#: inc/Engine/Admin/Settings/Subscriber.php:172 +#: inc/Engine/Admin/Settings/Subscriber.php:174 msgid "Import, Export, Rollback" msgstr "" -#: inc/Engine/Admin/Settings/Subscriber.php:197 +#: inc/Engine/Admin/Settings/Subscriber.php:199 #: views/settings/page-sections/imagify.php:14 msgid "Image Optimization" msgstr "" -#: inc/Engine/Admin/Settings/Subscriber.php:198 +#: inc/Engine/Admin/Settings/Subscriber.php:200 msgid "Compress your images" msgstr "" -#: inc/Engine/Admin/Settings/Subscriber.php:215 +#: inc/Engine/Admin/Settings/Subscriber.php:217 #: views/settings/page-sections/tutorials.php:48 msgid "Tutorials" msgstr "" -#: inc/Engine/Admin/Settings/Subscriber.php:216 +#: inc/Engine/Admin/Settings/Subscriber.php:218 msgid "Getting started and how to videos" msgstr "" @@ -2035,49 +1997,49 @@ msgstr "" msgid "WP Rocket Expired Cache Interval" msgstr "" -#: inc/Engine/Cache/WPCache.php:337 +#: inc/Engine/Cache/WPCache.php:338 msgid "WP_CACHE value" msgstr "" -#: inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Cache/WPCache.php:355 msgid "Cache" msgstr "" -#: inc/Engine/Cache/WPCache.php:358 +#: inc/Engine/Cache/WPCache.php:359 msgid "The WP_CACHE constant needs to be set to true for WP Rocket cache to work properly" msgstr "" -#: inc/Engine/Cache/WPCache.php:367 +#: inc/Engine/Cache/WPCache.php:368 msgid "WP_CACHE is set to true" msgstr "" -#: inc/Engine/Cache/WPCache.php:375 +#: inc/Engine/Cache/WPCache.php:376 msgid "WP_CACHE is not set" msgstr "" -#: inc/Engine/Cache/WPCache.php:383 +#: inc/Engine/Cache/WPCache.php:384 msgid "WP_CACHE is set to false" msgstr "" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:96 msgid "Next Billing Date" msgstr "" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:99 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:103 msgid "No Subscription" msgstr "" -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:135 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:138 msgid "Your RocketCDN subscription is currently active." msgstr "" #. translators: %1$s = opening tag, %2$s = CDN URL, %3$s = closing tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:141 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:144 msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "" #. translators: %1$is = opening link tag, %2$s = closing link tag. -#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:152 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:155 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:230 #: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:334 msgid "%1$sMore Info%2$s" @@ -2133,64 +2095,64 @@ msgid "RocketCDN disabled" msgstr "" #. Translators: %s = date formatted using date_i18n() and get_option( 'date_format' ). -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:29 msgid "Valid until %s only!" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:38 msgid "Speed up your website thanks to:" msgstr "" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:44 msgid "High performance Content Delivery Network (CDN) with %1$sunlimited bandwidth%2$s" msgstr "" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:50 msgid "Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:56 msgid "WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in our plugin" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:60 msgid "Learn more about RocketCDN" msgstr "" #. translators: %1$s = discounted price, %2$s = regular price. -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:67 msgid "*$%1$s/month for 12 months then $%2$s/month. You can cancel your subscription at any time." msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:88 msgid "Billed monthly" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:89 msgid "Get Started" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:94 msgid "Reduce this banner" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:19 msgid "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "" -#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:22 #: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 msgid "Learn More" msgstr "" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:24 msgid "RocketCDN is unavailable on local domains and staging sites." msgstr "" -#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:33 msgid "Get RocketCDN" msgstr "" @@ -2202,6 +2164,18 @@ msgstr "" msgid "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network!" msgstr "" +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:68 +msgid "Too many requests." +msgstr "" + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:85 +msgid "Not valid response." +msgstr "" + +#: inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php:151 +msgid "Not valid request type." +msgstr "" + #: inc/Engine/Common/JobManager/Cron/Subscriber.php:185 msgid "WP Rocket process pending jobs" msgstr "" @@ -2214,11 +2188,51 @@ msgstr "" msgid "WP Rocket process on submit jobs" msgstr "" -#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:265 +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:44 +msgid "Clear Priority Elements" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:79 +msgid "Clear Priority Elements of this URL" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:100 +msgid "Priority Elements" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:101 +#: inc/Engine/Saas/Admin/AdminBar.php:134 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/Admin/AdminBar.php:103 +msgid "This action will clear the Critical Images and Lazily Rendered Content." +msgstr "" + +#. translators: %1$s = plugin name. +#: inc/Engine/Common/PerformanceHints/Admin/Controller.php:135 +msgid "%1$s: Critical images and Lazy Render data was cleared!" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:19 +msgid "Script error" +msgstr "" + +#: inc/Engine/Common/PerformanceHints/AJAX/AJAXControllerTrait.php:22 +msgid "Script timeout" +msgstr "" + +#. Translators: %s is the exception message. +#: inc/Engine/Common/Queue/Cleaner.php:87 +msgid "It was not possible to determine a valid cut-off time: %s." +msgstr "" + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:269 msgid "Every minute" msgstr "" -#: inc/Engine/CriticalPath/Admin/Admin.php:264 +#: inc/Engine/CriticalPath/Admin/Admin.php:265 msgid "Regenerate Critical Path CSS" msgstr "" @@ -2245,7 +2259,6 @@ msgstr "" msgid "Publish the %s" msgstr "" -#. translators: %s = post type. #: inc/Engine/CriticalPath/Admin/Post.php:223 msgid "Enable Load CSS asynchronously in WP Rocket settings" msgstr "" @@ -2260,40 +2273,40 @@ msgid "Critical CSS for %1$s not generated. Error: %2$s" msgstr "" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:170 +#: inc/Engine/CriticalPath/APIClient.php:174 msgid "Critical CSS for %1$s on mobile not generated. Error: The API returned an empty response." msgstr "" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:173 +#: inc/Engine/CriticalPath/APIClient.php:177 msgid "Critical CSS for %1$s not generated. Error: The API returned an empty response." msgstr "" #. translators: %s = item URL. -#: inc/Engine/CriticalPath/APIClient.php:185 +#: inc/Engine/CriticalPath/APIClient.php:189 msgid "Critical CSS for %1$s on mobile not generated." msgstr "" #. translators: %s = item URL. #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/APIClient.php:187 -#: inc/Engine/CriticalPath/ProcessorService.php:194 +#: inc/Engine/CriticalPath/APIClient.php:191 +#: inc/Engine/CriticalPath/ProcessorService.php:196 msgid "Critical CSS for %1$s not generated." msgstr "" #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:195 +#: inc/Engine/CriticalPath/APIClient.php:199 msgid "Critical CSS for %1$s on mobile not generated. Error: The API returned an invalid response code." msgstr "" #. translators: %s = URL. -#: inc/Engine/CriticalPath/APIClient.php:197 +#: inc/Engine/CriticalPath/APIClient.php:201 msgid "Critical CSS for %1$s not generated. Error: The API returned an invalid response code." msgstr "" #. translators: %1$s = error message. -#: inc/Engine/CriticalPath/APIClient.php:205 -#: inc/Engine/CriticalPath/ProcessorService.php:201 +#: inc/Engine/CriticalPath/APIClient.php:209 +#: inc/Engine/CriticalPath/ProcessorService.php:203 msgid "Error: %1$s" msgstr "" @@ -2360,36 +2373,36 @@ msgid "Critical CSS file cannot be deleted" msgstr "" #. translators: %1$s = item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:189 msgid "Mobile Critical CSS for %1$s not generated." msgstr "" #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:228 +#: inc/Engine/CriticalPath/ProcessorService.php:230 msgid "Critical CSS for %s in progress." msgstr "" #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:262 +#: inc/Engine/CriticalPath/ProcessorService.php:264 msgid "Mobile Critical CSS for %s generated." msgstr "" #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:273 +#: inc/Engine/CriticalPath/ProcessorService.php:275 msgid "Critical CSS for %s generated." msgstr "" -#: inc/Engine/CriticalPath/ProcessorService.php:295 +#: inc/Engine/CriticalPath/ProcessorService.php:297 msgid "Critical CSS file deleted successfully." msgstr "" #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:317 +#: inc/Engine/CriticalPath/ProcessorService.php:319 msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "" #. translators: %1$s = Item URL or item type. -#: inc/Engine/CriticalPath/ProcessorService.php:330 +#: inc/Engine/CriticalPath/ProcessorService.php:332 msgid "Critical CSS for %1$s timeout. Please retry a little later." msgstr "" @@ -2485,112 +2498,112 @@ msgid "Unlimited" msgstr "" #. translators: %s = promotion discount percentage. -#: inc/Engine/License/views/promo-banner.php:16 +#: inc/Engine/License/views/promo-banner.php:18 msgid "%s off" msgstr "" #. translators: %s = promotion name. -#: inc/Engine/License/views/promo-banner.php:21 +#: inc/Engine/License/views/promo-banner.php:23 msgid "%s promotion is live!" msgstr "" -#: inc/Engine/License/views/promo-banner.php:27 +#: inc/Engine/License/views/promo-banner.php:29 msgid "Hurry Up! Deal ends in:" msgstr "" -#: inc/Engine/License/views/promo-banner.php:31 -#: inc/Engine/License/views/renewal-soon-banner.php:14 +#: inc/Engine/License/views/promo-banner.php:33 +#: inc/Engine/License/views/renewal-soon-banner.php:16 msgid "Minutes" msgstr "" -#: inc/Engine/License/views/promo-banner.php:32 -#: inc/Engine/License/views/renewal-soon-banner.php:15 +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/renewal-soon-banner.php:17 msgid "Seconds" msgstr "" -#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/promo-banner.php:36 #: inc/Engine/License/views/upgrade-section.php:11 msgid "Upgrade now" msgstr "" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:13 msgid "The Optimize CSS Delivery feature is disabled." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:17 msgid "You can no longer use the Remove Unused CSS or Load CSS asynchronously options." msgstr "" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:22 msgid "You need an %1$sactive license%2$s to keep optimizing your CSS delivery, which addresses a PageSpeed Insights recommendation and improves your page performance." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:29 -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:39 -#: inc/Engine/License/views/renewal-expired-banner.php:27 -#: inc/Engine/License/views/renewal-soon-banner.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:31 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:41 +#: inc/Engine/License/views/renewal-expired-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:33 msgid "Renew now" msgstr "" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:13 msgid "You will soon lose access to some features." msgstr "" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:20 msgid "You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:26 msgid "The Remove Unused CSS and Load CSS asynchronously features are great options to address the PageSpeed Insights recommendations and improve your website performance." msgstr "" #. translators: %1$s = , %2$s = , %3$s = date. -#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:31 msgid "These features will be %1$sautomatically disabled on %3$s%2$s." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner.php:11 +#: inc/Engine/License/views/renewal-expired-banner.php:13 msgid "Your WP Rocket license is expired!" msgstr "" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-expired-banner.php:18 +#: inc/Engine/License/views/renewal-expired-banner.php:20 msgid "Your website could be much faster if it could take advantage of our %1$snew features and enhancements%2$s. 🚀" msgstr "" #. translators: %1$s = , %2$s = . -#: inc/Engine/License/views/renewal-soon-banner.php:22 +#: inc/Engine/License/views/renewal-soon-banner.php:24 msgid "Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access to product updates and support." msgstr "" -#: inc/Engine/License/views/upgrade-popin.php:12 +#: inc/Engine/License/views/upgrade-popin.php:14 msgid "Speed Up More Websites" msgstr "" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:19 +#: inc/Engine/License/views/upgrade-popin.php:21 msgid "You can use WP Rocket on more websites by upgrading your license. To upgrade, simply pay the %1$sprice difference%2$s between your current and new licenses, as shown below." msgstr "" #. translators: %1$s = opening strong tag, %2$s = closing strong tag. -#: inc/Engine/License/views/upgrade-popin.php:25 +#: inc/Engine/License/views/upgrade-popin.php:27 msgid "%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "" #. translators: %s = price. -#: inc/Engine/License/views/upgrade-popin.php:35 +#: inc/Engine/License/views/upgrade-popin.php:37 msgid "Save $%s" msgstr "" #. translators: %s = number of websites. -#: inc/Engine/License/views/upgrade-popin.php:48 +#: inc/Engine/License/views/upgrade-popin.php:50 msgid "%s websites" msgstr "" #. translators: %s = license name. -#: inc/Engine/License/views/upgrade-popin.php:54 +#: inc/Engine/License/views/upgrade-popin.php:56 msgid "Upgrade to %s" msgstr "" @@ -2598,19 +2611,6 @@ msgstr "" msgid "You can use WP Rocket on more websites by upgrading your license (you will only pay the price difference between your current and new licenses)." msgstr "" -#. translators: %1$s = plugin name. -#: inc/Engine/Media/AboveTheFold/Admin/Controller.php:143 -msgid "%1$s: Critical images cleared!" -msgstr "" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:131 -msgid "Script error" -msgstr "" - -#: inc/Engine/Media/AboveTheFold/AJAX/Controller.php:134 -msgid "Script timeout" -msgstr "" - #: inc/Engine/Media/Lazyload/AdminSubscriber.php:62 msgid "LazyLoad for images" msgstr "" @@ -2623,15 +2623,15 @@ msgstr "" msgid "LazyLoad CSS backgrounds" msgstr "" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:195 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:194 msgid "Analytics & Ads" msgstr "" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:200 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:199 msgid "Plugins" msgstr "" -#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:205 +#: inc/Engine/Optimization/DelayJS/Admin/SiteList.php:204 msgid "Themes" msgstr "" @@ -2675,9 +2675,13 @@ msgstr "" msgid "Minify CSS" msgstr "" +#: inc/Engine/Optimization/RUCSS/Admin/OptionSubscriber.php:74 +msgid "Remove Unused CSS" +msgstr "" + #. translators: %1$s = plugin name, %2$s = table name, %3$s = open tag, %4$s = closing tag. #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:253 -msgid "%1$s: Could not create the %2$s table in the database which is necessary for the Remove Unused CSS feature to work. Please reach out to %3$sour support%4$s." +msgid "%1$s: Could not create the %2$s table in the database which is necessary for the Remove Unused CSS feature to work. Please check our %3$sdocumentation%4$s." msgstr "" #. translators: %1$s = plugin name. @@ -2686,7 +2690,7 @@ msgid "%1$s: Used CSS cache cleared!" msgstr "" #. translators: %1$s = plugin name. -#: inc/Engine/Preload/Admin/Settings.php:57 +#: inc/Engine/Preload/Admin/Settings.php:76 msgid "%1$s: The preload service is now active. After the initial preload it will continue to cache all your pages whenever they are purged. No further action is needed." msgstr "" @@ -2698,68 +2702,59 @@ msgstr "" msgid "WP Rocket Preload revert stuck failed jobs" msgstr "" -#: inc/Engine/Saas/Admin/AdminBar.php:77 -#: inc/Engine/Saas/Admin/AdminBar.php:198 -msgid "Clear Critical Images" -msgstr "" - -#: inc/Engine/Saas/Admin/AdminBar.php:164 -msgid "Clear Critical Images of this URL" -msgstr "" - -#: inc/Engine/Saas/Admin/AdminBar.php:167 +#: inc/Engine/Saas/Admin/AdminBar.php:106 msgid "Clear Used CSS of this URL" msgstr "" -#: inc/Engine/Saas/Admin/AdminBar.php:197 -msgid "Critical Images Cache" +#: inc/Engine/Saas/Admin/AdminBar.php:133 +msgid "Used CSS" msgstr "" -#: inc/Engine/Saas/Admin/AdminBar.php:201 -msgid "Remove Used CSS Cache" +#: inc/Engine/Saas/Admin/AdminBar.php:136 +msgid "This action will clear the used CSS files." msgstr "" #. translators: %1$s = plugin name, %2$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:104 +#: inc/Engine/Saas/Admin/Notices.php:91 msgid "%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing your pages, the plugin is optimizing LCP and the images above the fold." msgstr "" #. translators: %1$s = plugin name, %2$s = number of URLs, %3$s = number of seconds. -#: inc/Engine/Saas/Admin/Notices.php:147 +#: inc/Engine/Saas/Admin/Notices.php:134 msgid "" "%1$s: The LCP element has been optimized, and the images above the fold were excluded from lazyload. The Used CSS of your homepage has been processed.\n" "\t\t\t WP Rocket will continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." msgstr "" #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:170 +#: inc/Engine/Saas/Admin/Notices.php:157 msgid "We suggest enabling %1$sPreload%2$s for the fastest results." msgstr "" #. translators: %1$s = opening link tag, %2$s = closing link tag. -#: inc/Engine/Saas/Admin/Notices.php:180 +#: inc/Engine/Saas/Admin/Notices.php:167 msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" -#: inc/Engine/Saas/Admin/Notices.php:246 +#: inc/Engine/Saas/Admin/Notices.php:229 msgid "We couldn't generate the used CSS because you're using a nulled version of WP Rocket. You need an active license to use the Remove Unused CSS feature and further improve your website's performance." msgstr "" #. translators: %1$s = promo percentage. -#: inc/Engine/Saas/Admin/Notices.php:249 +#: inc/Engine/Saas/Admin/Notices.php:232 msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "" #. translators: %1$s = open tag, %2$s = closing tag. -#: inc/Engine/Saas/Admin/Notices.php:302 +#: inc/Engine/Saas/Admin/Notices.php:285 msgid "It seems a security plugin or the server's firewall prevents WP Rocket from accessing the SaaS features. IPs listed %1$shere in our documentation%2$s should be added to your allowlists:" msgstr "" -#: inc/Engine/Saas/Admin/Notices.php:307 +#: inc/Engine/Saas/Admin/Notices.php:290 msgid "- In the security plugin, if you are using one" msgstr "" -#: inc/Engine/Saas/Admin/Notices.php:308 +#: inc/Engine/Saas/Admin/Notices.php:291 msgid "- In the server's firewall. Your host can help you with this" msgstr "" @@ -3017,31 +3012,31 @@ msgstr[0] "" msgstr[1] "" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:156 msgctxt "Hummingbird notice" msgid "%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" msgstr "" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:192 msgctxt "Hummingbird notice" msgid "%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP compression%3$s" msgstr "" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:228 msgctxt "Hummingbird notice" msgid "%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser caching%3$s" msgstr "" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:260 msgctxt "Hummingbird notice" msgid "%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" msgstr "" #. Translators: %1$s = Plugin name, %2$s = , %3$s = . -#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:294 msgctxt "Hummingbird notice" msgid "%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile optimization%3$s" msgstr "" @@ -3253,7 +3248,6 @@ msgstr "" msgid "Purges RocketCDN cached resources for your website. %s" msgstr "" -#. translators: %s is a "Learn more" link. #: views/settings/fields/rocket-cdn.php:63 #: views/settings/page-sections/cloudflare.php:36 #: views/settings/page-sections/sucuri.php:37 @@ -3290,7 +3284,6 @@ msgstr "" msgid "Purges cached resources for your website. %s" msgstr "" -#. translators: %s is a "Learn more" link. #: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" msgstr "" @@ -3299,76 +3292,98 @@ msgstr "" msgid "Clear all Cloudflare cache files" msgstr "" -#: views/settings/page-sections/dashboard.php:38 +#: views/settings/page-sections/dashboard.php:39 msgid "Congratulations!" msgstr "" -#: views/settings/page-sections/dashboard.php:40 +#: views/settings/page-sections/dashboard.php:41 msgid "WP Rocket is now activated and already working for you." msgstr "" -#: views/settings/page-sections/dashboard.php:42 +#: views/settings/page-sections/dashboard.php:43 msgid "Your website should be loading faster now!" msgstr "" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "To guarantee fast websites, WP Rocket automatically applies 80% of web performance best practices." msgstr "" -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "We also enable options that provide immediate benefits to your website." msgstr "" -#: views/settings/page-sections/dashboard.php:45 +#: views/settings/page-sections/dashboard.php:46 msgid "Continue to the options to further optimize your site!" msgstr "" -#: views/settings/page-sections/dashboard.php:62 +#: views/settings/page-sections/dashboard.php:63 msgid "My Account" msgstr "" -#: views/settings/page-sections/dashboard.php:68 +#: views/settings/page-sections/dashboard.php:69 msgid "Refresh info" msgstr "" -#: views/settings/page-sections/dashboard.php:86 +#: views/settings/page-sections/dashboard.php:87 msgid "with" msgstr "" -#: views/settings/page-sections/dashboard.php:100 +#: views/settings/page-sections/dashboard.php:101 msgid "Expiration Date" msgstr "" -#: views/settings/page-sections/dashboard.php:110 +#: views/settings/page-sections/dashboard.php:111 msgid "View my account" msgstr "" +#: views/settings/page-sections/dashboard.php:131 +#: views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "" + +#. translators: %1$s = opening tag, %2$s = closing tag. #: views/settings/page-sections/dashboard.php:137 +msgid "I agree to share anonymous data with the development team to help improve WP Rocket. %1$sWhat info will we collect?%2$s" +msgstr "" + +#: views/settings/page-sections/dashboard.php:155 msgid "Quick Actions" msgstr "" -#: views/settings/page-sections/dashboard.php:144 -msgid "Remove all cached files" +#: views/settings/page-sections/dashboard.php:162 +msgid "Cache files" +msgstr "" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear and preload all the cache files." +msgstr "" + +#: views/settings/page-sections/dashboard.php:163 +msgid "This action will clear all the cache files." msgstr "" -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:169 +msgid "Clear and preload" +msgstr "" + +#: views/settings/page-sections/dashboard.php:183 +#: views/settings/page-sections/dashboard.php:189 msgid "Regenerate Critical CSS" msgstr "" -#: views/settings/page-sections/dashboard.php:196 +#: views/settings/page-sections/dashboard.php:215 msgid "Frequently Asked Questions" msgstr "" -#: views/settings/page-sections/dashboard.php:210 +#: views/settings/page-sections/dashboard.php:229 msgid "Still cannot find a solution?" msgstr "" -#: views/settings/page-sections/dashboard.php:211 +#: views/settings/page-sections/dashboard.php:230 msgid "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" -#: views/settings/page-sections/dashboard.php:219 +#: views/settings/page-sections/dashboard.php:238 msgid "Ask support" msgstr "" @@ -3384,32 +3399,45 @@ msgstr "" msgid "Save Changes and Optimize" msgstr "" -#. Translators: %1$s = , %2$s = , %3$s = , %4$s = . -#: views/settings/page-sections/imagify.php:21 -msgid "%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image optimization.%2$s" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:22 +msgid "%1$sWP Rocket created IMAGIFY to give your website an extra speed boost!%2$s" msgstr "" -#: views/settings/page-sections/imagify.php:24 -msgid "Compress image to make your website faster, all while maintaining image quality." +#: views/settings/page-sections/imagify.php:28 +msgid "Images can account for 50% of your loading time!" msgstr "" -#: views/settings/page-sections/imagify.php:25 -msgid "More on Imagify:" +#: views/settings/page-sections/imagify.php:31 +msgid "Imagify automatically optimizes all your images, helping your website gain precious seconds while saving you time. With just one click, it resizes, compresses, and converts your images to WebP and AVIF formats without sacrificing quality." msgstr "" -#: views/settings/page-sections/imagify.php:27 -msgid "Imagify Plugin Page" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:41 +msgid "%1$sCompress%2$s all your images in one click" msgstr "" -#: views/settings/page-sections/imagify.php:28 -msgid "Imagify Website" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:49 +msgid "%1$sConvert%2$s images to WebP and Avif" +msgstr "" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:57 +msgid "%1$sResize%2$s your images on the fly" +msgstr "" + +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:65 +msgid "%1$sFree plan%2$s includes 20MB/month (around 200 images)" msgstr "" -#: views/settings/page-sections/imagify.php:29 -msgid "Review of Image Compression Plugins" +#. Translators: %1$s = , %2$s = . +#: views/settings/page-sections/imagify.php:83 +msgid "%1$sInstall Imagify, the Easiest WordPress Image Optimizer%2$s" msgstr "" -#: views/settings/page-sections/imagify.php:38 +#: views/settings/page-sections/imagify.php:110 msgid "Install Imagify" msgstr "" diff --git a/package.json b/package.json index de1c9e83d3..765efe4339 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "watchify": "^4.0.0", "webpack": "^5.76.0", "webpack-cli": "^4.9.1", - "wp-rocket-scripts": "^1.0.4", + "wp-rocket-scripts": "^1.0.6", "yargs": "^17.3.0" } } diff --git a/src/scss/components/_button.scss b/src/scss/components/_button.scss index c036adc4e0..5a3cd0b6b3 100644 --- a/src/scss/components/_button.scss +++ b/src/scss/components/_button.scss @@ -38,6 +38,9 @@ letter-spacing: -0.08px; @include font-size(11,20); } + &--no-min-width{ + min-width: auto !important; + } &--icon{ min-width: 160px; diff --git a/tests/Fixtures/inc/Addon/Varnish/Subscriber/cleanFile.php b/tests/Fixtures/inc/Addon/Varnish/Subscriber/cleanFile.php index 8c32b2382f..aae721a1be 100644 --- a/tests/Fixtures/inc/Addon/Varnish/Subscriber/cleanFile.php +++ b/tests/Fixtures/inc/Addon/Varnish/Subscriber/cleanFile.php @@ -54,4 +54,22 @@ ], 'expected' => true, ], + 'testRocketPerformanceHintDataShouldPurgeOnceWhenVarnishEnabled' => [ + 'config' => [ + 'filter' => false, + 'hook' => 'rocket_performance_hints_data_after_clearing', + 'arg' => 'http://example.org/about/', + 'option' => 1, + ], + 'expected' => true, + ], + 'testRocketPerformanceHintDataShouldPurgeOnceWhenFilterEnabled' => [ + 'config' => [ + 'filter' => true, + 'hook' => 'rocket_performance_hints_data_after_clearing', + 'arg' => 'http://example.org/about/', + 'option' => 0, + ], + 'expected' => true, + ] ]; diff --git a/tests/Fixtures/inc/Engine/Admin/Settings/Page/displayUpdateNotice.php b/tests/Fixtures/inc/Engine/Admin/Settings/Page/displayUpdateNotice.php index af3297b659..ba86daf275 100644 --- a/tests/Fixtures/inc/Engine/Admin/Settings/Page/displayUpdateNotice.php +++ b/tests/Fixtures/inc/Engine/Admin/Settings/Page/displayUpdateNotice.php @@ -63,14 +63,14 @@ ], 'expected' => null, ], - 'testShouldDoNothingWhenVersionGT316' => [ + 'testShouldDoNothingWhenVersionGT317' => [ 'config' => [ 'capability' => true, 'screen' => (object) [ 'id' => 'settings_page_wprocket', ], 'boxes' => [], - 'previous_version' => '3.16.1', + 'previous_version' => '3.17.1', 'beacon' => null, ], 'expected' => null, @@ -91,7 +91,7 @@ 'expected' => [ 'status' => 'info', 'dismissible' => '', - 'message' => 'WP Rocket: the plugin has been updated to the 3.16 version. Our brand new feature Optimize critical images is automatically activated now! Also, the Cache tab was removed but the existing features will remain working, see more here.', + 'message' => 'WP Rocket: the plugin has been updated to the 3.17 version. New feature: Lazy Render Content. Check out our documentation to learn more about it.', 'dismiss_button' => 'rocket_update_notice', ], ], diff --git a/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php new file mode 100644 index 0000000000..16324869f5 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php @@ -0,0 +1,40 @@ + [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'admin' => true, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title' + ], + 'expected' => [ + 'id' => 'random-menu-id', + 'title' => 'Menu title', + ], + ], + 'testShouldReturnNullWhenAdminIsFalse' => [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'admin' => false, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title' + ], + 'expected' => null, + ], + 'testShouldReturnNullWhenInvalidKey' => [ + 'config' => [ + 'rocket_valid_key' => false, + 'environment' => 'production', + 'admin' => true, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title' + ], + 'expected' => null, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php new file mode 100644 index 0000000000..326df629c9 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php @@ -0,0 +1,55 @@ + [ + 'config' => [ + 'display_option' => true, + 'environment' => 'production', + 'admin' => false, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => true, + ], + 'expected' => [ + 'id' => 'random-menu-id', + 'title' => 'Menu title', + ], + ], + 'testShouldReturnNullWhenAdminIsTrue' => [ + 'config' => [ + 'display_option' => true, + 'environment' => 'production', + 'admin' => true, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => true, + ], + 'expected' => null, + ], + 'testShouldReturnNullWhenDisplayIsFalse' => [ + 'config' => [ + 'display_option' => false, + 'environment' => 'production', + 'admin' => true, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => true, + ], + 'expected' => null, + ], + 'testShouldReturnNullWhenContextIsFalse' => [ + 'config' => [ + 'display_option' => true, + 'environment' => 'production', + 'admin' => true, + 'menu_id' => 'random-menu-id', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => false, + ], + 'expected' => null, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php new file mode 100644 index 0000000000..faf4e6e4ec --- /dev/null +++ b/tests/Fixtures/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php @@ -0,0 +1,59 @@ + [ + 'config' => [ + 'description' => 'Short description for button', + 'environment' => 'production', + 'label' => 'Button label', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => true, + ], + 'expected' => << +

Button label

+

Short description for button

+ Menu title + +HTML + ], + 'shouldOutputEmptyWhenContextIsFalse' => [ + 'config' => [ + 'description' => 'Title text', + 'environment' => 'production', + 'label' => 'Button label', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => false, + ], + 'expected' => null + ], + 'shouldOutputEmptyWhenEnvironmentIsLocal' => [ + 'config' => [ + 'description' => 'Title text', + 'environment' => 'local', + 'label' => 'Button label', + 'action' => 'menu-action', + 'title' => 'Menu title', + 'context' => false, + ], + 'expected' => null + ], + 'shouldOutputLinkButtonWithoutLinkDescription' => [ + 'config' => [ + 'description' => '', + 'environment' => 'production', + 'label' => 'label', + 'action' => 'menu-action', + 'title' => 'Title', + 'context' => true, + ], + 'expected' => << +

label

+ Title + +HTML + ], +]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php index 2098ce06cc..a433d35cfa 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php @@ -42,6 +42,7 @@ 'last_accessed' => '2024-01-01 00:00:00', ], 'result' => false, + 'message' => 'not allowed', ], ], 'testShouldAddItemToDB' => [ diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php index 3a3caf2c75..c691d28a39 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php @@ -15,7 +15,7 @@ 'row' => [], ], 'expected' => [ - 'result' => false, + 'result' => true, ], ], 'testShouldReturnExists' => [ diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php new file mode 100644 index 0000000000..84e79c2a90 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php @@ -0,0 +1,68 @@ + [ + 'config' => [ + 'rocket_valid_key' => false, + 'environment' => 'production', + 'is_admin' => true, + 'atf_context' => true, + 'lrc_context' => true, + 'current_user_can' => true, + ], + 'expected' => null, + ], + 'testShouldAddItemWithPerformanceHintTitle' => [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'is_admin' => true, + 'atf_context' => true, + 'lrc_context' => true, + 'current_user_can' => true, + ], + 'expected' => [ + 'id' => 'clear-performance-hints', + 'title' => 'Clear Priority Elements', + ], + ], + 'testShouldAddItemWithPerformanceHintTitleWhenOnlyATFIsAllowed' => [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'is_admin' => true, + 'atf_context' => true, + 'lrc_context' => false, + 'current_user_can' => true, + ], + 'expected' => [ + 'id' => 'clear-performance-hints', + 'title' => 'Clear Priority Elements', + ], + ], + 'testShouldAddItemWithPerformanceHintTitleWhenOnlyLRCIsAllowed' => [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'is_admin' => true, + 'atf_context' => false, + 'lrc_context' => true, + 'current_user_can' => true, + ], + 'expected' => [ + 'id' => 'clear-performance-hints', + 'title' => 'Clear Priority Elements', + ], + ], + 'testShouldReturnNullWhenNotAdmin' => [ + 'config' => [ + 'rocket_valid_key' => true, + 'environment' => 'production', + 'is_admin' => false, + 'atf_context' => false, + 'lrc_context' => false, + 'current_user_can' => true, + ], + 'expected' => null, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php new file mode 100644 index 0000000000..dfda32b221 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php @@ -0,0 +1,75 @@ + [ + 'config' => [ + 'environment' => 'local', + 'is_admin' => false, + 'post' => (object) [ + 'post_type' => 'post', + 'post_status' => 'publish', + ], + 'can_display_options' => true, + 'factories' => true, + ], + 'expected' => [ + 'id' => 'clear-performance-hints-data-url', + 'title' => 'Clear Priority Elements of this URL', + ], + ], + 'testShouldReturnNullWhenAdmin' => [ + 'config' => [ + 'environment' => 'production', + 'is_admin' => true, + 'post' => (object) [ + 'post_type' => 'post', + 'post_status' => 'publish', + ], + 'can_display_options' => true, + 'factories' => true, + ], + 'expected' => null, + ], + 'testShouldReturnNullWhenOptionsNotDisplayed' => [ + 'config' => [ + 'environment' => 'production', + 'is_admin' => false, + 'post' => (object) [ + 'post_type' => 'post', + 'post_status' => 'draft', + ], + 'can_display_options' => false, + 'factories' => true, + ], + 'expected' => null, + ], + 'testShouldReturnNullWhenFactoriesIsEmpty' => [ + 'config' => [ + 'environment' => 'production', + 'is_admin' => false, + 'post' => (object) [ + 'post_type' => 'post', + 'post_status' => 'publish', + ], + 'can_display_options' => true, + 'factories' => false, + ], + 'expected' => null, + ], + 'testShouldAddItemWithPerformanceHintsTitle' => [ + 'config' => [ + 'environment' => 'production', + 'is_admin' => false, + 'post' => (object) [ + 'post_type' => 'post', + 'post_status' => 'publish', + ], + 'can_display_options' => true, + 'factories' => true, + ], + 'expected' => [ + 'id' => 'clear-performance-hints-data-url', + 'title' => 'Clear Priority Elements of this URL', + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php new file mode 100644 index 0000000000..8ea38648e2 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php @@ -0,0 +1,42 @@ + [ + 'shouldDoNothingWhenNoCapability' => [ + 'config' => [ + 'capability' => false, + 'factories' => true, + 'transient' => false, + 'performance_hints_transient' => false, + ], + 'expected' => false, + ], + 'shouldDoNothingWhenFactoriesIsEmpty' => [ + 'config' => [ + 'capability' => true, + 'factories' => false, + 'transient' => false, + 'performance_hints_transient' => false, + ], + 'expected' => false, + ], + 'shouldDoNothingWhenNoTransient' => [ + 'config' => [ + 'capability' => true, + 'factories' => true, + 'transient' => false, + 'performance_hints_transient' => false, + ], + 'expected' => false, + ], + 'shouldShowNoticeWhenTransient' => [ + 'config' => [ + 'capability' => true, + 'factories' => true, + 'transient' => time() + 3600, + 'performance_hints_transient' => false, + ], + 'expected' => true, + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/input_with_only_lrc_opt.html b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/input_with_only_lrc_opt.html new file mode 100644 index 0000000000..ec7f7eb878 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/input_with_only_lrc_opt.html @@ -0,0 +1,12 @@ + + + Test + + + +
+
+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_w_beacon.html b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_w_beacon.html index c3fc24545d..a4fe6228a8 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_w_beacon.html +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_w_beacon.html @@ -3,5 +3,5 @@ Test - + diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_atf_opt.html b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_atf_opt.html new file mode 100644 index 0000000000..8e8bf4b6da --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_atf_opt.html @@ -0,0 +1,8 @@ + + + LCP/ATF image test + + +Sample alt + + diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_only_lrc_opt.html b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_only_lrc_opt.html new file mode 100644 index 0000000000..7016432590 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/HTML/output_with_beacon_and_only_lrc_opt.html @@ -0,0 +1,12 @@ + + + Test + + + +
+
+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php index fc7a34ee12..012c7bfc0e 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php @@ -13,13 +13,46 @@ $html_input_with_relative_img_lcp = file_get_contents(__DIR__ . '/HTML/input_with_relative_img_lcp.html'); $html_input_with_absolute_img_lcp = file_get_contents(__DIR__ . '/HTML/input_with_absolute_img_lcp.html'); $html_input_with_domain_img_lcp = file_get_contents(__DIR__ . '/HTML/input_lcp_image.html'); +$html_output_with_beacon_and_lcp_opt = file_get_contents(__DIR__ . '/HTML/output_with_beacon_and_atf_opt.html'); +$html_input_with_only_lrc_opt = file_get_contents(__DIR__ . '/HTML/input_with_only_lrc_opt.html'); +$html_output_with_beacon_and_only_lrc_opt = file_get_contents(__DIR__ . '/HTML/output_with_beacon_and_only_lrc_opt.html'); + +$lrc = [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'below_the_fold' => json_encode( [ + '3ead51141d9876165378a22a92d90415', + 'eb156891061284662641900bc9136fae', + '1b496e8f8129c0eb6eda409a2b17c24d', + ] ), + ], +]; return [ 'test_data' => [ + 'shouldReturnOriginalWhenQueryString' => [ + 'config' => [ + 'query_string' => 'wpr_lazyrendercontent', + 'html' => $html_input, + 'atf' => [ + 'row' => null, + ], + 'lrc' => [ + 'row' => null, + ], + ], + 'expected' => $html_input, + ], 'shouldAddBeaconToPage' => [ 'config' => [ 'html' => $html_input, - 'row' => null, + 'atf' => [ + 'row' => null, + ], + 'lrc' => [ + 'row' => null, + ], ], 'expected' => $html_output_with_beacon, ], @@ -27,405 +60,498 @@ 'config' => [ 'html' => $html_input, 'filter_delay' => 'string', - 'row' => null, + 'atf' => [ + 'row' => null, + ], + 'lrc' => [ + 'row' => null, + ], ], 'expected' => $html_output_with_beacon, ], 'shouldNotAddBeaconToPage' => [ 'config' => [ 'html' => $html_input, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image.jpg', - ] ), - 'viewport' => json_encode( [ - 0 => (object) [ + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image2.jpg', - ], - ] ), + 'src' => 'http://example.org/wp-content/uploads/image.jpg', + ] ), + 'viewport' => json_encode( [ + 0 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image2.jpg', + ], + ] ), + ], ], + 'lrc' => $lrc, ], 'expected' => $html_output_with_preload, ], - 'shouldNotAddBeaconToPageWhenLcpFailed' => [ + 'shouldNotAddBeaconToPageWhenPerformanceHintsFailed' => [ 'config' => [ 'html' => $html_input, - 'row' => [ - 'status' => 'failed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - ] ), - 'viewport' => json_encode( [ - ] ), + 'atf' => [ + 'row' => [ + 'status' => 'failed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [] ), + 'viewport' => json_encode( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => $html_output, ], 'shouldPreloadLcpResponsiveImgset' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_bg_responsive_imgset_template.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'bg-img-set', - 'bg_set' => [ - ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testavif.avif 1dppx"], - ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testwebp.webp 2dppx"] - ] - ]), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'bg-img-set', + 'bg_set' => [ + ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testavif.avif 1dppx"], + ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testwebp.webp 2dppx"] + ] + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_bg_responsive_imgset_template.php'), ], 'shouldPreloadLcpResponsiveWebkit' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_bg_responsive_webkit_template.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'bg-img-set', - 'bg_set' => [ - ['src' => "https://fastly.picsum.photos/id/976/200/300.jpg?hmac=s1Uz9fgJv32r8elfaIYn7pLpQXps7X9oYNwC5XirhO8 1dppx"], - ['src' => "https://rocketlabsqa.ovh/wp-content/rocket-test-data/images/fixtheissue.jpg 2dppx"] - ] - ]), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'bg-img-set', + 'bg_set' => [ + ['src' => "https://fastly.picsum.photos/id/976/200/300.jpg?hmac=s1Uz9fgJv32r8elfaIYn7pLpQXps7X9oYNwC5XirhO8 1dppx"], + ['src' => "https://rocketlabsqa.ovh/wp-content/rocket-test-data/images/fixtheissue.jpg 2dppx"] + ] + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_bg_responsive_webkit_template.php'), ], 'shouldPreloadLcpLayeredBackground' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_layered_bg.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'bg-img', - 'bg_set' => [ - ['src' => "https://fastly.picsum.photos/id/976/200/300.jpg?hmac=s1Uz9fgJv32r8elfaIYn7pLpQXps7X9oYNwC5XirhO8"], - ['src' => "https://rocketlabsqa.ovh/wp-content/rocket-test-data/images/fixtheissue.jpg"] - ] - ]), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'bg-img', + 'bg_set' => [ + ['src' => "https://fastly.picsum.photos/id/976/200/300.jpg?hmac=s1Uz9fgJv32r8elfaIYn7pLpQXps7X9oYNwC5XirhO8"], + ['src' => "https://rocketlabsqa.ovh/wp-content/rocket-test-data/images/fixtheissue.jpg"] + ] + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_layered_bg.php'), ], 'shouldPreloadLcpSingleBackground' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_single_bg.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'bg-img', - 'bg_set' => [ - ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testavif.avif"], - ] - ]), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'bg-img', + 'bg_set' => [ + ['src' => "http://example.org/wp-content/rocket-test-data/images/lcp/testavif.avif"], + ] + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_single_bg.php'), ], 'shouldPreloadLcpResponsiveImage' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_responsive.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img-srcset', - 'src' => 'wolf.jpg', - "srcset" => "wolf_400px.jpg 400w, wolf_800px.jpg 800w, wolf_1600px.jpg 1600w", - "sizes" => "50vw", - ]), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img-srcset', + 'src' => 'wolf.jpg', + "srcset" => "wolf_400px.jpg 400w, wolf_800px.jpg 800w, wolf_1600px.jpg 1600w", + "sizes" => "50vw", + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_responsive.php'), ], 'shouldApplyFetchPriorityToReturnRelativeImage' => [ 'config' => [ 'html' => $html_input_with_relative_img_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', - ] ), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', + ] ), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_with_relative_img_lcp.php'), ], 'shouldApplyFetchPriorityToAbsoluteImage' => [ 'config' => [ 'html' => $html_input_with_absolute_img_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.com/wp-content/uploads/sample_absolute_image.jpg', - ] ), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.com/wp-content/uploads/sample_absolute_image.jpg', + ] ), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_with_absolute_img_lcp.php'), ], 'shouldApplyFetchPriorityToImageWithDomain' => [ 'config' => [ 'html' => $html_input_with_domain_img_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/sample_url_image.png', - ] ), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/sample_url_image.png', + ] ), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_image.php'), ], 'shouldNotApplyFetchPriorityToImageWithFetchpriority' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_with_fetchpriority.html'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', - ] ), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', + ] ), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_with_fetchpriority.html'), ], 'shouldNotApplyFetchPriorityToImageWithDuplicateMarkup' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_with_markup_comment.html'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', - ] ), - 'viewport' => json_encode ( [] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/sample_relative_image.jpg', + ] ), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_with_markup_comment.html'), ], 'shouldNotApplyFetchPriorityToTheWrongElement' => [ 'config' => [ 'html' => $html_input_with_bg_image_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image.jpg', - ] ), - 'viewport' => json_encode( [ - 0 => (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image2.jpg', - ], - 1 => (object) [ + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image3.jpg', - ], - ] ), + 'src' => 'http://example.org/wp-content/uploads/image.jpg', + ] ), + 'viewport' => json_encode( [ + 0 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image2.jpg', + ], + 1 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image3.jpg', + ], + ] ), + ], ], + 'lrc' =>$lrc, ], 'expected' => $html_output_with_bg_image_lcp, ], 'shouldApplyFetchPriorityToTheImgTagWithPictureElement' => [ 'config' => [ 'html' => $html_input_with_picture_img_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image.jpg', - ] ), - 'viewport' => json_encode( [ - 0 => (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image2.jpg', - ], - 1 => (object) [ + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image3.jpg', - ], - ] ), + 'src' => 'http://example.org/wp-content/uploads/image.jpg', + ] ), + 'viewport' => json_encode( [ + 0 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image2.jpg', + ], + 1 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image3.jpg', + ], + ] ), + ], ], + 'lrc' => $lrc, ], 'expected' => $html_output_with_picture_img_lcp, ], 'shouldApplyFetchPriorityToTheImgElement' => [ 'config' => [ 'html' => $html_input_with_img_lcp, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image.jpg', - ] ), - 'viewport' => json_encode( [ - 0 => (object) [ - 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image2.jpg', - ], - 1 => (object) [ + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ 'type' => 'img', - 'src' => 'http://example.org/wp-content/uploads/image3.jpg', - ], - ] ), + 'src' => 'http://example.org/wp-content/uploads/image.jpg', + ] ), + 'viewport' => json_encode( [ + 0 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image2.jpg', + ], + 1 => (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/image3.jpg', + ], + ] ), + ], ], + 'lrc' => $lrc, ], 'expected' => $html_output_with_img_lcp, ], - 'shouldNotDoAnythingIfNoLcp' => [ + 'shouldNotDoAnythingIfNoPerformanceHintsCandidates' => [ 'config' => [ 'html' => $html_input, - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => 'not found', - 'viewport' => json_encode( [ - ] ), + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => 'not found', + 'viewport' => json_encode( [ + ] ), + ], ], + 'lrc' => $lrc, ], 'expected' => $html_output, ], 'shouldPreloadPictureTag1' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_picture.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'picture', - 'src' => 'large_cat.jpg', - 'sources' => [ - [ - 'srcset' => 'small_cat.jpg', - 'media' => '(max-width: 400px)', - 'type' => '', - 'sizes' => '', - ], - [ - 'srcset' => 'medium_cat.jpg', - 'media' => '(max-width: 800px)', - 'type' => '', - 'sizes' => '', + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'picture', + 'src' => 'large_cat.jpg', + 'sources' => [ + [ + 'srcset' => 'small_cat.jpg', + 'media' => '(max-width: 400px)', + 'type' => '', + 'sizes' => '', + ], + [ + 'srcset' => 'medium_cat.jpg', + 'media' => '(max-width: 800px)', + 'type' => '', + 'sizes' => '', + ] ] - ] - ]), - 'viewport' => json_encode ( [] ), + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_picture.php'), ], 'shouldPreloadPictureTag2' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_picture_2.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'picture', - 'src' => '', - 'sources' => [ - [ - 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.avif 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.avif 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.avif 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.avif 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.avif 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.avif 600w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia.jpg.avif 1920w', - 'media' => '', - 'type' => 'image/avif', - 'sizes' => '(max-width: 1024px) 100vw, 1024px' - ], - [ - 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.webp 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.webp 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.webp 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.webp 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.webp 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.webp 600w', - 'media' => '', - 'type' => 'image/webp', - 'sizes' => '(max-width: 1024px) 100vw, 1024px' + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'picture', + 'src' => '', + 'sources' => [ + [ + 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.avif 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.avif 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.avif 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.avif 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.avif 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.avif 600w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia.jpg.avif 1920w', + 'media' => '', + 'type' => 'image/avif', + 'sizes' => '(max-width: 1024px) 100vw, 1024px' + ], + [ + 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.webp 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.webp 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.webp 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.webp 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.webp 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.webp 600w', + 'media' => '', + 'type' => 'image/webp', + 'sizes' => '(max-width: 1024px) 100vw, 1024px' + ] ] - ] - ]), - 'viewport' => json_encode ( [] ), + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_picture_2.php'), ], 'shouldPreloadPictureTag3' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_picture_3.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'picture', - 'src' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-%E2%80%94-kopia-1024x576.jpg', - 'sources' => [ - [ - 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.avif 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.avif 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.avif 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.avif 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.avif 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.avif 600w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia.jpg.avif 1920w', - 'media' => '', - 'type' => 'image/avif', - 'sizes' => '(max-width: 1024px) 100vw, 1024px' - ], - [ - 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.webp 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.webp 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.webp 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.webp 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.webp 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.webp 600w', - 'media' => '', - 'type' => 'image/webp', - 'sizes' => '(max-width: 1024px) 100vw, 1024px' + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'picture', + 'src' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-%E2%80%94-kopia-1024x576.jpg', + 'sources' => [ + [ + 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.avif 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.avif 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.avif 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.avif 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.avif 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.avif 600w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia.jpg.avif 1920w', + 'media' => '', + 'type' => 'image/avif', + 'sizes' => '(max-width: 1024px) 100vw, 1024px' + ], + [ + 'srcset' => 'https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1024x576.jpg.webp 1024w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-300x169.jpg.webp 300w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-768x432.jpg.webp 768w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1536x864.jpg.webp 1536w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-1200x675.jpg.webp 1200w, https://imagify.rocketlabsqa.ovh/wp-content/uploads/2024/05/home-new-bg-free-img-—-kopia-600x338.jpg.webp 600w', + 'media' => '', + 'type' => 'image/webp', + 'sizes' => '(max-width: 1024px) 100vw, 1024px' + ] ] - ] - ]), - 'viewport' => json_encode ( [] ), + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_picture_3.php'), ], 'shouldPreloadPictureTag4' => [ 'config' => [ 'html' => file_get_contents(__DIR__ . '/HTML/input_lcp_picture_4.php'), - 'row' => [ - 'status' => 'completed', - 'url' => 'http://example.org', - 'lcp' => json_encode( (object) [ - 'type' => 'picture', - 'src' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-1348x900.webp', - 'sources' => [ - [ - 'srcset' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-400x600.webp', - 'media' => '(max-width: 500px)', - 'type' => 'image/webp', - ], - [ - 'srcset' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-768x513.webp', - 'media' => '(min-width: 501px) and (max-width: 768px)', - 'type' => 'image/webp', + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'picture', + 'src' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-1348x900.webp', + 'sources' => [ + [ + 'srcset' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-400x600.webp', + 'media' => '(max-width: 500px)', + 'type' => 'image/webp', + ], + [ + 'srcset' => 'https://variance.pl/wp-content/uploads/2024/05/Kwiatowy-Ksiezyc-768x513.webp', + 'media' => '(min-width: 501px) and (max-width: 768px)', + 'type' => 'image/webp', + ] ] - ] - ]), - 'viewport' => json_encode ( [] ), + ]), + 'viewport' => json_encode ( [] ), + ], ], + 'lrc' => $lrc, ], 'expected' => file_get_contents(__DIR__ . '/HTML/output_lcp_picture_4.php'), ], + 'ShouldAddBeaconToPageWhenOnlyLcpIsInDb' => [ + 'config' => [ + 'html' => $html_input_with_domain_img_lcp, + 'atf' => [ + 'row' => [ + 'status' => 'completed', + 'url' => 'http://example.org', + 'lcp' => json_encode( (object) [ + 'type' => 'img', + 'src' => 'http://example.org/wp-content/uploads/sample_url_image.png', + ] ), + 'viewport' => json_encode ( [] ), + ], + ], + 'lrc' => [ + 'row' => null, + ], + ], + 'expected' => $html_output_with_beacon_and_lcp_opt, + ], + 'ShouldAddBeaconToPageWhenOnlyLrcIsInDb' => [ + 'config' => [ + 'html' => $html_input_with_only_lrc_opt, + 'atf' => [ + 'row' => null, + ], + 'lrc' => $lrc, + ], + 'expected' => $html_output_with_beacon_and_only_lrc_opt, + ], ], ]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php new file mode 100644 index 0000000000..c67208ee87 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php @@ -0,0 +1,25 @@ + [ + 'config' => [ + 'wpr_imagedimensions' => '1', + ], + 'expected' => 1, + ], + 'shouldStartBufferWithWprLazyrendercontent' => [ + 'config' => [ + 'wpr_lazyrendercontent' => '1', + ], + 'expected' => 1, + ], + 'shouldNotStartBufferWithNoRelevantGETParams' => [ + 'config' => [ + 'unrelated_param' => '1', + ], + 'expected' => 0, + ], + 'shouldNotStartBufferWithEmptyGETParams' => [ + 'config' => [], + 'expected' => 0, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php index b87b5b1d41..0abf3937fb 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php @@ -11,21 +11,6 @@ $html_with_rss_feed_rest_api = 'RSS FeedRest APIHello World 4Hello World 5Hello World 6Hello World 7Hello World 8Hello World 9Rich Dad Poor DadBuy (He came to set the captives free) - Rebecca BrownHome'; return [ - 'shouldReturnEmptyWhenLicenseExpired' => [ - 'config' => [ - 'license_expired' => true, - 'headers' => [ - 'user-agent' => 'WP Rocket/Pre-fetch Home Links Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', - 'timeout' => 60, - ], - 'response' => [ - 'response' => [ - 'code' => 500, - ], - ], - ], - 'expected' => [], - ], 'shouldReturnEmptyWhenNot200' => [ 'config' => [ 'license_expired' => false, diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php index 892aaad7b6..5c14bb2383 100644 --- a/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php @@ -5,6 +5,7 @@ 'wp_env' => 'production', 'remove_unused_css' => 0, 'is_allowed' => [1], + 'license_expired' => false, 'links' => [ 'http://example.com/link1', 'http://example.com/link2', @@ -12,11 +13,25 @@ ], 'expected' => 2, ], + 'testShouldNotCallSendToSaasWhenLicenseExpired' => [ + 'config' => [ + 'wp_env' => 'production', + 'remove_unused_css' => 0, + 'is_allowed' => [1], + 'license_expired' => true, + 'links' => [ + 'http://example.com/link1', + 'http://example.com/link2', + ], + ], + 'expected' => 0, + ], 'testShouldNotCallSendToSaasWhenLocalEnv' => [ 'config' => [ 'wp_env' => 'local', 'remove_unused_css' => 0, 'is_allowed' => [1], + 'license_expired' => false, 'links' => [ 'http://example.com/link1', 'http://example.com/link2', @@ -28,6 +43,7 @@ 'config' => [ 'wp_env' => 'production', 'remove_unused_css' => 1, + 'license_expired' => false, 'is_allowed' => [1], 'links' => [ 'http://example.com/link1', @@ -40,6 +56,7 @@ 'config' => [ 'wp_env' => 'production', 'remove_unused_css' => 0, + 'license_expired' => false, 'is_allowed' => [], 'links' => [ 'http://example.com/link1', diff --git a/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php new file mode 100644 index 0000000000..1c18725374 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php @@ -0,0 +1,53 @@ + [ + 'config' => [ + 'wp_env' => 'production', + 'remove_unused_css' => 0, + 'factories' => [1], + 'license_expired' => false, + 'home_url' => 'http://example.com/', + ], + 'expected' => 1, + ], + 'testShouldNotCallSendToSaasWhenLicenseExpired' => [ + 'config' => [ + 'wp_env' => 'production', + 'remove_unused_css' => 0, + 'factories' => [1], + 'license_expired' => true, + 'home_url' => 'http://example.com/', + ], + 'expected' => 0, + ], + 'testShouldNotCallSendToSaasWhenLocalEnv' => [ + 'config' => [ + 'wp_env' => 'local', + 'remove_unused_css' => 0, + 'factories' => [1], + 'license_expired' => false, + 'home_url' => 'http://example.com/', + ], + 'expected' => 0, + ], + 'testShouldNotCallSendToSaasWhenRemoveUnusedCssEnabled' => [ + 'config' => [ + 'wp_env' => 'production', + 'remove_unused_css' => 1, + 'license_expired' => false, + 'factories' => [1], + 'home_url' => 'http://example.com/', + ], + 'expected' => 0, + ], + 'testShouldNotCallSendToSaasWhenFactoriesAreEmpty' => [ + 'config' => [ + 'wp_env' => 'production', + 'remove_unused_css' => 0, + 'license_expired' => false, + 'factories' => [], + 'home_url' => 'http://example.com/', + ], + 'expected' => 0, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php b/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php index 860fc5fdb2..9f5552ea35 100644 --- a/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php +++ b/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php @@ -205,6 +205,7 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'img', @@ -218,7 +219,6 @@ ], ] ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -301,6 +301,7 @@ 'url' => 'http://example.org', 'is_mobile' => true, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'img', @@ -314,7 +315,6 @@ ], ] ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -398,6 +398,7 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'img', @@ -411,7 +412,6 @@ ], ] ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -517,6 +517,7 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'bg-img', @@ -538,7 +539,6 @@ ], ] ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -657,6 +657,7 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'bg-img-set', @@ -678,7 +679,6 @@ ], ] ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -727,10 +727,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( $long_array_2[0] ), 'viewport' => json_encode( array_slice( $long_array_2, 1, 20 ) ), 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -762,10 +762,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -823,10 +823,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -860,10 +860,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'failed', + 'error_message' => 'Script error', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => 'Script error', ], ], ], @@ -896,10 +896,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'failed', + 'error_message' => 'Script timeout', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => 'Script timeout', ], ], ], @@ -960,10 +960,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -1023,10 +1023,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -1086,10 +1086,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -1149,10 +1149,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -1212,10 +1212,10 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => 'not found', 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], @@ -1281,6 +1281,7 @@ 'url' => 'http://example.org', 'is_mobile' => false, 'status' => 'completed', + 'error_message' => '', 'lcp' => json_encode( (object) [ 'type' => 'img', @@ -1289,7 +1290,6 @@ ), 'viewport' => '[]', 'last_accessed' => '2024-01-01 00:00:00', - 'error_message' => '', ], ], ], diff --git a/tests/Fixtures/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php b/tests/Fixtures/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php new file mode 100644 index 0000000000..26edcf73b1 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php @@ -0,0 +1,18 @@ + [ + 'config' => [ + 'query_string' => '', + ], + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnUpdated' => [ + 'config' => [ + 'query_string' => 'wpr_imagedimensions', + ], + 'html' => '', + 'expected' => '', + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php new file mode 100644 index 0000000000..5c2796a174 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php @@ -0,0 +1,291 @@ + [ + 'config' => [ + 'filter' => false, + 'url' => 'http://example.org', + 'is_mobile' => false, + 'results' => json_encode( + [ + 'lrc' => [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'status' => 'completed', + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + 'error_message' => '' + ], + 'result' => false, + 'message' => 'not allowed', + ], + ], + 'testShouldBailoutWhenDBError' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.org', + 'is_mobile' => false, + 'results' => json_encode( + [ + 'lrc' => [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'status' => 'completed', + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + 'error_message' => '' + ], + 'result' => false, + 'message' => 'error when adding the entry to the database', + ], + ], + 'testShouldAddItemToDB' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.org', + 'is_mobile' => false, + 'results' => json_encode( + [ + 'lrc' => [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'status' => 'completed', + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + 'error_message' => '' + ], + 'result' => true, + 'message' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'status' => 'completed', + 'error_message' => '', + 'below_the_fold' => json_encode([ + (object)[ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ] + ], + ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + ], + ], + 'testShouldAddItemToDBWhenMobile' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.org', + 'is_mobile' => true, + 'results' => json_encode( + [ + 'lrc' => [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.org', + 'is_mobile' => true, + 'status' => 'completed', + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + 'error_message' => '' + ], + 'result' => true, + 'message' => [ + 'url' => 'http://example.org', + 'is_mobile' => true, + 'status' => 'completed', + 'error_message' => '', + 'below_the_fold' => json_encode([ + (object)[ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ] + ], + ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + ], + ], + 'testShouldSanitizeBelowTheFold' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.org', + 'is_mobile' => true, + 'results' => json_encode( + [ + 'lrc' => [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] + ], + ), + ], + 'expected' => [ + 'valid_source' => [ + 'db47c7d69edcf4565baa182deb470091' => 'db47c7d69edcf4565alert(Test%20XSS);baa182deb470091', + 'db47c7d69edcf4565baa182deb470092' => 'alert(Test%20XSS);db47c7d69edcf4565baa182deb470092' + ], + 'item' => [ + 'url' => 'http://example.org', + 'is_mobile' => true, + 'status' => 'completed', + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565alert(Test%20XSS);baa182deb470091', + 'alert(Test%20XSS);db47c7d69edcf4565baa182deb470092', + ], + ] ), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + 'error_message' => '' + ], + 'result' => true, + 'message' => [ + 'url' => 'http://example.org', + 'is_mobile' => true, + 'status' => 'completed', + 'error_message' => '', + 'below_the_fold' => json_encode([ + (object)[ + 'db47c7d69edcf4565alert(Test%20XSS);baa182deb470091', + 'alert(Test%20XSS);db47c7d69edcf4565baa182deb470092', + ] + ]), + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + ], + ], + 'testShouldNotAddItemToDBWhenNoData' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.com', + 'is_mobile' => false, + 'results' => json_encode( + [ + 'lrc' => [] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.com', + 'is_mobile' => false, + 'status' => 'completed', + 'error_message' => '', + 'below_the_fold' => '[]', + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + 'result' => true, + 'message' => [ + 'url' => 'http://example.com', + 'is_mobile' => false, + 'status' => 'completed', + 'error_message' => '', + 'below_the_fold' => '[]', + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + ], + ], + 'testShouldAddItemToDBWhenScriptTimeout' => [ + 'config' => [ + 'filter' => true, + 'url' => 'http://example.com', + 'is_mobile' => false, + 'status' => 'timeout', + 'results' => json_encode( + [ + 'lrc' => [] + ], + ), + ], + 'expected' => [ + 'item' => [ + 'url' => 'http://example.com', + 'is_mobile' => false, + 'status' => 'failed', + 'error_message' => 'Script timeout', + 'below_the_fold' => '[]', + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + 'result' => true, + 'message' => [ + 'url' => 'http://example.com', + 'is_mobile' => false, + 'status' => 'failed', + 'error_message' => 'Script timeout', + 'below_the_fold' => '[]', + 'last_accessed' => '2024-01-01 00:00:00', + 'created_at' => '2024-01-01 00:00:00', + ], + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php new file mode 100644 index 0000000000..9e194bad1d --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php @@ -0,0 +1,53 @@ + [ + 'config' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'filter' => false, + 'row' => (object) [ + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + ], + ], + 'expected' => [ + 'result' => true, + 'message' => true + ], + ], + 'testShouldReturnSuccess' => [ + 'config' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'filter' => true, + 'row' => (object) [ + 'below_the_fold' => json_encode( [ + (object) [ + 'db47c7d69edcf4565baa182deb470091', + 'db47c7d69edcf4565baa182deb470092', + ], + ] ), + ], + ], + 'expected' => [ + 'result' => true, + 'message' => true + ], + ], + 'testShouldReturnError' => [ + 'config' => [ + 'url' => 'http://example.org', + 'is_mobile' => false, + 'row' => false, + 'filter' => true, + ], + 'expected' => [ + 'result' => false, + 'message' => false + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php new file mode 100644 index 0000000000..3053377364 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php @@ -0,0 +1,25 @@ + [ + 'config' => [ + 'licence' => true, + 'filter' => true, + ], + 'expected' => false, + ], + 'testShouldReturnFalseWhenFilterFalse' => [ + 'config' => [ + 'licence' => false, + 'filter' => false, + ], + 'expected' => false, + ], + 'testShouldReturnTrueWhenLicenseAndFilterTrue' => [ + 'config' => [ + 'licence' => false, + 'filter' => true, + ], + 'expected' => true, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php new file mode 100644 index 0000000000..82d36afecb --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php @@ -0,0 +1,28 @@ + [ + 'config' => [ + 'is_allowed' => true, + ], + 'data' => [], + 'expected' => [ + 'status' => [ + 'lrc' => true, + ], + 'lrc_threshold' => 1800 + ], + ], + 'testShouldReturnDataWithNotAllowed' => [ + 'config' => [ + 'is_allowed' => false, + ], + 'data' => [], + 'expected' => [ + 'status' => [ + 'lrc' => false, + ], + 'lrc_threshold' => 1800, + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected-single-line.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected-single-line.html new file mode 100644 index 0000000000..5bcd545efa --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected-single-line.html @@ -0,0 +1,14 @@ + + + Single line element + + + +
div in body
another div in body
header in div in div in body
another div in header in div in div in body
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected.html new file mode 100644 index 0000000000..964e6e772d --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/expected.html @@ -0,0 +1,25 @@ + + + Original + + + +
+
+
+

Original

+
+
+
+

Text

+

Original content

+
+
+
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/hashed.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/hashed.html new file mode 100644 index 0000000000..c29f6f1a60 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/hashed.html @@ -0,0 +1,24 @@ + + + Original + + +
+
+
+

Original

+
+
+
+

Text

+

Original content

+
+
+
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php new file mode 100644 index 0000000000..a5f5d85d7b --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php @@ -0,0 +1,57 @@ + [ + 'config' => [ + 'has_lrc' => false, + 'below_the_fold' => '', + ], + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnEarlyWhenHashesNull' => [ + 'config' => [ + 'has_lrc' => true, + 'below_the_fold' => '{ bar: "baz" }', + ], + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnEarlyWhenHashesNotArray' => [ + 'config' => [ + 'has_lrc' => true, + 'below_the_fold' => json_encode( '123' ), + ], + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnUpdatedHtml' => [ + 'config' => [ + 'has_lrc' => true, + 'below_the_fold' => json_encode( [ 'adc285f638b63c4110da1d803b711c40', 'd1f41b6001aa95d1577259dd681a9b19', 'fbfcccd11db41b93d3d0676c9e14fdc8' ] ), + ], + 'html' => $hashed, + 'expected' => $expected, + ], + 'testShouldReturnUpdatedHtmlForSingleLine' => [ + 'config' => [ + 'has_lrc' => true, + 'below_the_fold' => json_encode( [ '7b16eca0652d4703f83ba63e304f2030', '30c5235261141d2450dc033e5c78bbcc', 'b42afa69f728fcc707157eb61efa53cc' ] ), + ], + 'html' => $single_line_hashed, + 'expected' => $single_line_expected, + ], + 'testShouldReturnEarlyWhenDBHasEmptyArray' => [ + 'config' => [ + 'has_lrc' => true, + 'below_the_fold' => '[]', + ], + 'html' => '
hello here
', + 'expected' => '
hello here
', + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/single-line-hashed.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/single-line-hashed.html new file mode 100644 index 0000000000..3e3eae2c58 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/single-line-hashed.html @@ -0,0 +1,13 @@ + + + Single line element + + +
div in body
another div in body
header in div in div in body
another div in header in div in div in body
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php new file mode 100644 index 0000000000..12d89731c9 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php @@ -0,0 +1,23 @@ + [ + 'html' => 'test', + 'expected' => 'test', + ], + 'testShouldReturnOriginalWhenMissingBody' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnOriginalWhenDepthIsZero' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnUpdated' => [ + 'html' => $original, + 'expected' => $expected, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php new file mode 100644 index 0000000000..040220408e --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php @@ -0,0 +1,16 @@ + [ + 'processor' => 'dom', + ], + 'testShouldReturnSimpleHtmlDomProcessor' => [ + 'processor' => 'simplehtmldom', + ], + 'testShouldReturnRegexProcessor' => [ + 'processor' => 'regex', + ], + 'testShouldReturnDomProcessorWhenIncorrectValue' => [ + 'processor' => 'incorrect', + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php new file mode 100644 index 0000000000..21bb144158 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php @@ -0,0 +1,23 @@ + [ + 'html' => 'test', + 'expected' => 'test', + ], + 'testShouldReturnOriginalWhenMissingBody' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnOriginalWhenDepthIsZero' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnUpdated' => [ + 'html' => $original, + 'expected' => $expected, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php new file mode 100644 index 0000000000..12d89731c9 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php @@ -0,0 +1,23 @@ + [ + 'html' => 'test', + 'expected' => 'test', + ], + 'testShouldReturnOriginalWhenMissingBody' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnOriginalWhenDepthIsZero' => [ + 'html' => '', + 'expected' => '', + ], + 'testShouldReturnUpdated' => [ + 'html' => $original, + 'expected' => $expected, + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expected.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expected.html new file mode 100644 index 0000000000..d50d86fe3a --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expected.html @@ -0,0 +1,24 @@ + + + Original + + +
+
+
+

Original

+
+
+
+

Text

+

Original content

+
+
+
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expectedRegex.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expectedRegex.html new file mode 100644 index 0000000000..ff48967985 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/expectedRegex.html @@ -0,0 +1,24 @@ + + + Original + + +
+
+
+

Original

+
+
+
+

Text

+

Original content

+
+
+
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/original.html b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/original.html new file mode 100644 index 0000000000..b3589af23f --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/original.html @@ -0,0 +1,24 @@ + + + Original + + +
+
+
+

Original

+
+
+
+

Text

+

Original content

+
+
+
+
+
+

Original footer

+
+
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php new file mode 100644 index 0000000000..4398813895 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php @@ -0,0 +1,60 @@ + [ + 'shouldAddHashes' => [ + 'config' => [ + 'row' => [ + 'url' => 'http://example.org/', + 'is_mobile' => 0, + 'below_the_fold' => json_encode( + [ + "93548b90aa8f4989f7198144479055dc", + "7b16eca0652d4703f83ba63e304f2030", + "737184bbad8e65d0172a89cc68a46107", + "8a4ef50742cf3456f9db6425e16930dc" + ] + ), + 'status' => 'completed' + ], + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php' ), + ], + 'expected' => [ + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php' ), + ] + ], + 'shouldStopAt200Hashes' => [ + 'config' => [ + 'row' => [ + 'url' => 'http://example.org/', + 'is_mobile' => 0, + 'below_the_fold' => json_encode( + [] + ), + 'status' => 'completed' + ], + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php' ), + ], + 'expected' => [ + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_200_hashes.php' ), + ] + ], + 'shouldStopAtFilteredMaxHashes' => [ + 'config' => [ + 'row' => [ + 'url' => 'http://example.org/', + 'is_mobile' => 0, + 'below_the_fold' => json_encode( + [] + ), + 'status' => 'completed' + ], + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php' ), + 'max_hashes' => 150, + ], + 'expected' => [ + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_150_hashes.php' ), + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php new file mode 100644 index 0000000000..6a3ce9ca9a --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php @@ -0,0 +1,50 @@ + [ + 'shouldNotAddHashesWhenNotAllowed' => [ + 'config' => [ + 'filter' => false, + 'row' => [ + 'url' => 'http://example.org/', + 'is_mobile' => 0, + 'below_the_fold' => json_encode( + [ + '93548b90aa8f4989f7198144479055dc', + '7b16eca0652d4703f83ba63e304f2030', + '737184bbad8e65d0172a89cc68a46107', + '8a4ef50742cf3456f9db6425e16930dc', + ] + ), + 'status' => 'completed', + ], + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php' ), + ], + 'expected' => [ + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php' ), + ], + ], + 'shouldAddHashes' => [ + 'config' => [ + 'filter' => true, + 'row' => [ + 'url' => 'http://example.org/', + 'is_mobile' => 0, + 'below_the_fold' => json_encode( + [ + '93548b90aa8f4989f7198144479055dc', + '7b16eca0652d4703f83ba63e304f2030', + '737184bbad8e65d0172a89cc68a46107', + '8a4ef50742cf3456f9db6425e16930dc', + ] + ), + 'status' => 'completed', + ], + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php' ), + ], + 'expected' => [ + 'html' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php' ), + ], + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php new file mode 100644 index 0000000000..cb46769b07 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/expected.php @@ -0,0 +1,67 @@ + + + + + + + + + + +
400px +
800 px +































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































+ 1800 px
Testing something
+
+
+ +
+
+
+
+ This is a class with margin-top set to 3000px +
+
+
+
+ +
+
+
+ This is a class with margin-top set to 1800px +
+
+
+ +
+ Somethign fishy going on. +
+ + diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_150_hashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_150_hashes.php new file mode 100644 index 0000000000..b8cb5b4be8 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_150_hashes.php @@ -0,0 +1,375 @@ + + + + + +HTML Page with 100,000 Div Elements + + +largehtmldiv – ColorMag + + +test1 +
Div 1
+
Div 2
+
Div 3
+
Div 4
+
Div 5
+
Div 6
+
Div 7
+
Div 8
+
Div 9
+
Div 10
+
Div 11
+
Div 12
+
Div 13
+
Div 14
+
Div 15
+
Div 16
+
Div 17
+
Div 18
+
Div 19
+
Div 20
+
Div 21
+
Div 22
+
Div 23
+
Div 24
+
Div 25
+
Div 26
+
Div 27
+
Div 28
+
Div 29
+
Div 30
+
Div 31
+
Div 32
+
Div 33
+
Div 34
+
Div 35
+
Div 36
+
Div 37
+
Div 38
+
Div 39
+
Div 40
+
Div 41
+
Div 42
+
Div 43
+
Div 44
+
Div 45
+
Div 46
+
Div 47
+
Div 48
+
Div 49
+
Div 50
+
Div 51
+
Div 52
+
Div 53
+
Div 54
+
Div 55
+
Div 56
+
Div 57
+
Div 58
+
Div 59
+
Div 60
+
Div 61
+
Div 62
+
Div 63
+
Div 64
+
Div 65
+
Div 66
+
Div 67
+
Div 68
+
Div 69
+
Div 70
+
Div 71
+
Div 72
+
Div 73
+
Div 74
+
Div 75
+
Div 76
+
Div 77
+
Div 78
+
Div 79
+
Div 80
+
Div 81
+
Div 82
+
Div 83
+
Div 84
+
Div 85
+
Div 86
+
Div 87
+
Div 88
+
Div 89
+
Div 90
+
Div 91
+
Div 92
+
Div 93
+
Div 94
+
Div 95
+
Div 96
+
Div 97
+
Div 98
+
Div 99
+
Div 100
+
Div 101
+
Div 102
+
Div 103
+
Div 104
+
Div 105
+
Div 106
+
Div 107
+
Div 108
+
Div 109
+
Div 110
+
Div 111
+
Div 112
+
Div 113
+
Div 114
+
Div 115
+
Div 116
+
Div 117
+
Div 118
+
Div 119
+
Div 120
+
Div 121
+
Div 122
+
Div 123
+
Div 124
+
Div 125
+
Div 126
+
Div 127
+
Div 128
+
Div 129
+
Div 130
+
Div 131
+
Div 132
+
Div 133
+
Div 134
+
Div 135
+
Div 136
+
Div 137
+
Div 138
+
Div 139
+
Div 140
+
Div 141
+
Div 142
+
Div 143
+
Div 144
+
Div 145
+
Div 146
+
Div 147
+
Div 148
+
Div 149
+
Div 150
+
Div 151
+
Div 152
+
Div 153
+
Div 154
+
Div 155
+
Div 156
+
Div 157
+
Div 158
+
Div 159
+
Div 160
+
Div 161
+
Div 162
+
Div 163
+
Div 164
+
Div 165
+
Div 166
+
Div 167
+
Div 168
+
Div 169
+
Div 170
+
Div 171
+
Div 172
+
Div 173
+
Div 174
+
Div 175
+
Div 176
+
Div 177
+
Div 178
+
Div 179
+
Div 180
+
Div 181
+
Div 182
+
Div 183
+
Div 184
+
Div 185
+
Div 186
+
Div 187
+
Div 188
+
Div 189
+
Div 190
+
Div 191
+
Div 192
+
Div 193
+
Div 194
+
Div 195
+
Div 196
+
Div 197
+
Div 198
+
Div 199
+
Div 200
+
Div 201
+
Div 202
+
Div 203
+
Div 204
+
Div 205
+
Div 206
+
Div 207
+
Div 208
+
Div 209
+
Div 210
+
Div 211
+
Div 212
+
Div 213
+
Div 214
+
Div 215
+
Div 216
+
Div 217
+
Div 218
+
Div 219
+
Div 220
+
Div 221
+
Div 222
+
Div 223
+
Div 224
+
Div 225
+
Div 226
+
Div 227
+
Div 228
+
Div 229
+
Div 230
+
Div 231
+
Div 232
+
Div 233
+
Div 234
+
Div 235
+
Div 236
+
Div 237
+
Div 238
+
Div 239
+
Div 240
+
Div 241
+
Div 242
+
Div 243
+
Div 244
+
Div 245
+
Div 246
+
Div 247
+
Div 248
+
Div 249
+
Div 250
+
Div 251
+
Div 252
+
Div 253
+
Div 254
+
Div 255
+
Div 256
+
Div 257
+
Div 258
+
Div 259
+
Div 260
+
Div 261
+
Div 262
+
Div 263
+
Div 264
+
Div 265
+
Div 266
+
Div 267
+
Div 268
+
Div 269
+
Div 270
+
Div 271
+
Div 272
+
Div 273
+
Div 274
+
Div 275
+
Div 276
+
Div 277
+
Div 278
+
Div 279
+
Div 280
+
Div 281
+
Div 282
+
Div 283
+
Div 284
+
Div 285
+
Div 286
+
Div 287
+
Div 288
+
Div 289
+
Div 290
+
Div 291
+
Div 292
+
Div 293
+
Div 294
+
Div 295
+
Div 296
+
Div 297
+
Div 298
+
Div 299
+ + + + + + + \ No newline at end of file diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_200_hashes.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_200_hashes.php new file mode 100644 index 0000000000..868d7ba781 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_expected_200_hashes.php @@ -0,0 +1,375 @@ + + + + + +HTML Page with 100,000 Div Elements + + +largehtmldiv – ColorMag + + +test1 +
Div 1
+
Div 2
+
Div 3
+
Div 4
+
Div 5
+
Div 6
+
Div 7
+
Div 8
+
Div 9
+
Div 10
+
Div 11
+
Div 12
+
Div 13
+
Div 14
+
Div 15
+
Div 16
+
Div 17
+
Div 18
+
Div 19
+
Div 20
+
Div 21
+
Div 22
+
Div 23
+
Div 24
+
Div 25
+
Div 26
+
Div 27
+
Div 28
+
Div 29
+
Div 30
+
Div 31
+
Div 32
+
Div 33
+
Div 34
+
Div 35
+
Div 36
+
Div 37
+
Div 38
+
Div 39
+
Div 40
+
Div 41
+
Div 42
+
Div 43
+
Div 44
+
Div 45
+
Div 46
+
Div 47
+
Div 48
+
Div 49
+
Div 50
+
Div 51
+
Div 52
+
Div 53
+
Div 54
+
Div 55
+
Div 56
+
Div 57
+
Div 58
+
Div 59
+
Div 60
+
Div 61
+
Div 62
+
Div 63
+
Div 64
+
Div 65
+
Div 66
+
Div 67
+
Div 68
+
Div 69
+
Div 70
+
Div 71
+
Div 72
+
Div 73
+
Div 74
+
Div 75
+
Div 76
+
Div 77
+
Div 78
+
Div 79
+
Div 80
+
Div 81
+
Div 82
+
Div 83
+
Div 84
+
Div 85
+
Div 86
+
Div 87
+
Div 88
+
Div 89
+
Div 90
+
Div 91
+
Div 92
+
Div 93
+
Div 94
+
Div 95
+
Div 96
+
Div 97
+
Div 98
+
Div 99
+
Div 100
+
Div 101
+
Div 102
+
Div 103
+
Div 104
+
Div 105
+
Div 106
+
Div 107
+
Div 108
+
Div 109
+
Div 110
+
Div 111
+
Div 112
+
Div 113
+
Div 114
+
Div 115
+
Div 116
+
Div 117
+
Div 118
+
Div 119
+
Div 120
+
Div 121
+
Div 122
+
Div 123
+
Div 124
+
Div 125
+
Div 126
+
Div 127
+
Div 128
+
Div 129
+
Div 130
+
Div 131
+
Div 132
+
Div 133
+
Div 134
+
Div 135
+
Div 136
+
Div 137
+
Div 138
+
Div 139
+
Div 140
+
Div 141
+
Div 142
+
Div 143
+
Div 144
+
Div 145
+
Div 146
+
Div 147
+
Div 148
+
Div 149
+
Div 150
+
Div 151
+
Div 152
+
Div 153
+
Div 154
+
Div 155
+
Div 156
+
Div 157
+
Div 158
+
Div 159
+
Div 160
+
Div 161
+
Div 162
+
Div 163
+
Div 164
+
Div 165
+
Div 166
+
Div 167
+
Div 168
+
Div 169
+
Div 170
+
Div 171
+
Div 172
+
Div 173
+
Div 174
+
Div 175
+
Div 176
+
Div 177
+
Div 178
+
Div 179
+
Div 180
+
Div 181
+
Div 182
+
Div 183
+
Div 184
+
Div 185
+
Div 186
+
Div 187
+
Div 188
+
Div 189
+
Div 190
+
Div 191
+
Div 192
+
Div 193
+
Div 194
+
Div 195
+
Div 196
+
Div 197
+
Div 198
+
Div 199
+
Div 200
+
Div 201
+
Div 202
+
Div 203
+
Div 204
+
Div 205
+
Div 206
+
Div 207
+
Div 208
+
Div 209
+
Div 210
+
Div 211
+
Div 212
+
Div 213
+
Div 214
+
Div 215
+
Div 216
+
Div 217
+
Div 218
+
Div 219
+
Div 220
+
Div 221
+
Div 222
+
Div 223
+
Div 224
+
Div 225
+
Div 226
+
Div 227
+
Div 228
+
Div 229
+
Div 230
+
Div 231
+
Div 232
+
Div 233
+
Div 234
+
Div 235
+
Div 236
+
Div 237
+
Div 238
+
Div 239
+
Div 240
+
Div 241
+
Div 242
+
Div 243
+
Div 244
+
Div 245
+
Div 246
+
Div 247
+
Div 248
+
Div 249
+
Div 250
+
Div 251
+
Div 252
+
Div 253
+
Div 254
+
Div 255
+
Div 256
+
Div 257
+
Div 258
+
Div 259
+
Div 260
+
Div 261
+
Div 262
+
Div 263
+
Div 264
+
Div 265
+
Div 266
+
Div 267
+
Div 268
+
Div 269
+
Div 270
+
Div 271
+
Div 272
+
Div 273
+
Div 274
+
Div 275
+
Div 276
+
Div 277
+
Div 278
+
Div 279
+
Div 280
+
Div 281
+
Div 282
+
Div 283
+
Div 284
+
Div 285
+
Div 286
+
Div 287
+
Div 288
+
Div 289
+
Div 290
+
Div 291
+
Div 292
+
Div 293
+
Div 294
+
Div 295
+
Div 296
+
Div 297
+
Div 298
+
Div 299
+ + + + + + + \ No newline at end of file diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php new file mode 100644 index 0000000000..60eaa7f71d --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/long_original.php @@ -0,0 +1,375 @@ + + + + + +HTML Page with 100,000 Div Elements + + +largehtmldiv – ColorMag + + +test1 +
Div 1
+
Div 2
+
Div 3
+
Div 4
+
Div 5
+
Div 6
+
Div 7
+
Div 8
+
Div 9
+
Div 10
+
Div 11
+
Div 12
+
Div 13
+
Div 14
+
Div 15
+
Div 16
+
Div 17
+
Div 18
+
Div 19
+
Div 20
+
Div 21
+
Div 22
+
Div 23
+
Div 24
+
Div 25
+
Div 26
+
Div 27
+
Div 28
+
Div 29
+
Div 30
+
Div 31
+
Div 32
+
Div 33
+
Div 34
+
Div 35
+
Div 36
+
Div 37
+
Div 38
+
Div 39
+
Div 40
+
Div 41
+
Div 42
+
Div 43
+
Div 44
+
Div 45
+
Div 46
+
Div 47
+
Div 48
+
Div 49
+
Div 50
+
Div 51
+
Div 52
+
Div 53
+
Div 54
+
Div 55
+
Div 56
+
Div 57
+
Div 58
+
Div 59
+
Div 60
+
Div 61
+
Div 62
+
Div 63
+
Div 64
+
Div 65
+
Div 66
+
Div 67
+
Div 68
+
Div 69
+
Div 70
+
Div 71
+
Div 72
+
Div 73
+
Div 74
+
Div 75
+
Div 76
+
Div 77
+
Div 78
+
Div 79
+
Div 80
+
Div 81
+
Div 82
+
Div 83
+
Div 84
+
Div 85
+
Div 86
+
Div 87
+
Div 88
+
Div 89
+
Div 90
+
Div 91
+
Div 92
+
Div 93
+
Div 94
+
Div 95
+
Div 96
+
Div 97
+
Div 98
+
Div 99
+
Div 100
+
Div 101
+
Div 102
+
Div 103
+
Div 104
+
Div 105
+
Div 106
+
Div 107
+
Div 108
+
Div 109
+
Div 110
+
Div 111
+
Div 112
+
Div 113
+
Div 114
+
Div 115
+
Div 116
+
Div 117
+
Div 118
+
Div 119
+
Div 120
+
Div 121
+
Div 122
+
Div 123
+
Div 124
+
Div 125
+
Div 126
+
Div 127
+
Div 128
+
Div 129
+
Div 130
+
Div 131
+
Div 132
+
Div 133
+
Div 134
+
Div 135
+
Div 136
+
Div 137
+
Div 138
+
Div 139
+
Div 140
+
Div 141
+
Div 142
+
Div 143
+
Div 144
+
Div 145
+
Div 146
+
Div 147
+
Div 148
+
Div 149
+
Div 150
+
Div 151
+
Div 152
+
Div 153
+
Div 154
+
Div 155
+
Div 156
+
Div 157
+
Div 158
+
Div 159
+
Div 160
+
Div 161
+
Div 162
+
Div 163
+
Div 164
+
Div 165
+
Div 166
+
Div 167
+
Div 168
+
Div 169
+
Div 170
+
Div 171
+
Div 172
+
Div 173
+
Div 174
+
Div 175
+
Div 176
+
Div 177
+
Div 178
+
Div 179
+
Div 180
+
Div 181
+
Div 182
+
Div 183
+
Div 184
+
Div 185
+
Div 186
+
Div 187
+
Div 188
+
Div 189
+
Div 190
+
Div 191
+
Div 192
+
Div 193
+
Div 194
+
Div 195
+
Div 196
+
Div 197
+
Div 198
+
Div 199
+
Div 200
+
Div 201
+
Div 202
+
Div 203
+
Div 204
+
Div 205
+
Div 206
+
Div 207
+
Div 208
+
Div 209
+
Div 210
+
Div 211
+
Div 212
+
Div 213
+
Div 214
+
Div 215
+
Div 216
+
Div 217
+
Div 218
+
Div 219
+
Div 220
+
Div 221
+
Div 222
+
Div 223
+
Div 224
+
Div 225
+
Div 226
+
Div 227
+
Div 228
+
Div 229
+
Div 230
+
Div 231
+
Div 232
+
Div 233
+
Div 234
+
Div 235
+
Div 236
+
Div 237
+
Div 238
+
Div 239
+
Div 240
+
Div 241
+
Div 242
+
Div 243
+
Div 244
+
Div 245
+
Div 246
+
Div 247
+
Div 248
+
Div 249
+
Div 250
+
Div 251
+
Div 252
+
Div 253
+
Div 254
+
Div 255
+
Div 256
+
Div 257
+
Div 258
+
Div 259
+
Div 260
+
Div 261
+
Div 262
+
Div 263
+
Div 264
+
Div 265
+
Div 266
+
Div 267
+
Div 268
+
Div 269
+
Div 270
+
Div 271
+
Div 272
+
Div 273
+
Div 274
+
Div 275
+
Div 276
+
Div 277
+
Div 278
+
Div 279
+
Div 280
+
Div 281
+
Div 282
+
Div 283
+
Div 284
+
Div 285
+
Div 286
+
Div 287
+
Div 288
+
Div 289
+
Div 290
+
Div 291
+
Div 292
+
Div 293
+
Div 294
+
Div 295
+
Div 296
+
Div 297
+
Div 298
+
Div 299
+ + + + + + + \ No newline at end of file diff --git a/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php new file mode 100644 index 0000000000..459f98ab23 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/html/original.php @@ -0,0 +1,67 @@ + + + + + + + + + + +
400px +
800 px +































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































+ 1800 px
Testing something
+
+
+ +
+
+
+
+ This is a class with margin-top set to 3000px +
+
+
+
+ +
+
+
+ This is a class with margin-top set to 1800px +
+
+
+ +
+ Somethign fishy going on. +
+ + diff --git a/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php b/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php index 616b488f43..fb9373a414 100644 --- a/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php +++ b/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php @@ -34,20 +34,6 @@ ], 'expected' => null, ], - 'testShouldAddItemWithDefaultTitle' => [ - 'config' => [ - 'rocket_valid_key' => true, - 'environment' => 'production', - 'is_admin' => true, - 'atf_context' => true, - 'remove_unused_css' => 0, - 'current_user_can' => true, - ], - 'expected' => [ - 'id' => 'clean-saas', - 'title' => 'Clear Critical Images', - ], - ], 'testShouldAddItemWithRUCSSTitle' => [ 'config' => [ 'rocket_valid_key' => true, diff --git a/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php b/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php index 985a06b1a3..1b4e753e68 100644 --- a/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php +++ b/tests/Fixtures/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php @@ -57,23 +57,6 @@ ], 'expected' => null, ], - 'testShouldAddItemWithDefaultTitle' => [ - 'config' => [ - 'environment' => 'production', - 'is_admin' => false, - 'post' => (object) [ - 'post_type' => 'post', - 'post_status' => 'publish', - ], - 'can_display_options' => true, - 'atf_context' => true, - 'rucss_context' => false, - ], - 'expected' => [ - 'id' => 'clear-saas-url', - 'title' => 'Clear Critical Images of this URL', - ], - ], 'testShouldAddItemWithRUCSSTitle' => [ 'config' => [ 'environment' => 'production', diff --git a/tests/Integration/DBTrait.php b/tests/Integration/DBTrait.php index 5358318c9a..20c80aed50 100644 --- a/tests/Integration/DBTrait.php +++ b/tests/Integration/DBTrait.php @@ -45,12 +45,20 @@ public static function addCache( array $resource ) { $cache_query = $container->get( 'preload_caches_query' ); return $cache_query->create_or_update( $resource ); } + public static function addLcp( array $resource ) { $container = apply_filters( 'rocket_container', null ); $lcp_query = $container->get( 'atf_query' ); return $lcp_query->add_item( $resource ); } + public static function addLrc( array $resource ) { + $container = apply_filters( 'rocket_container', null ); + $lrc_query = $container->get( 'lrc_query' ); + + return $lrc_query->add_item( $resource ); + } + public static function installFresh() { $container = apply_filters( 'rocket_container', null ); @@ -65,6 +73,9 @@ public static function installFresh() { $atf_table = $container->get( 'atf_table' ); $atf_table->install(); + + $lrc_table = $container->get( 'lrc_table' ); + $lrc_table->install(); } public static function installUsedCssTable() { @@ -94,6 +105,15 @@ public static function installAtfTable() { } } + public static function installLrcTable() { + $container = apply_filters( 'rocket_container', null ); + $lrc_table = $container->get( 'lrc_table' ); + + if ( ! $lrc_table->exists() ) { + $lrc_table->install(); + } + } + public static function uninstallAll() { $container = apply_filters( 'rocket_container', null ); $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); @@ -111,6 +131,11 @@ public static function uninstallAll() { if ( $atf_table->exists() ) { $atf_table->uninstall(); } + + $lrc_table = $container->get( 'lrc_table' ); + if ( $lrc_table->exists() ) { + $lrc_table->uninstall(); + } } public static function uninstallUsedCssTable() { @@ -136,21 +161,30 @@ public static function uninstallAtfTable() { } } + public static function uninstallLrcTable() { + $container = apply_filters( 'rocket_container', null ); + $lrc_table = $container->get( 'lrc_table' ); + + if ( $lrc_table->exists() ) { + $lrc_table->uninstall(); + } + } + public static function removeDBHooks() { $container = apply_filters( 'rocket_container', null ); - $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); - $preload_table = $container->get( 'preload_caches_table' ); - $atf_table = $container->get( 'atf_table' ); - - self::forceRemoveTableAdminInitHooks( 'init', get_class( $rucss_usedcss_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $rucss_usedcss_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $rucss_usedcss_table ), 'switch_blog', 10 ); - self::forceRemoveTableAdminInitHooks( 'init', get_class( $preload_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $preload_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $preload_table ), 'switch_blog', 10 ); - self::forceRemoveTableAdminInitHooks( 'init', get_class( $atf_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $atf_table ), 'maybe_upgrade', 10 ); - self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $atf_table ), 'switch_blog', 10 ); + + $tables = [ + $container->get( 'rucss_usedcss_table' ), + $container->get( 'preload_caches_table' ), + $container->get( 'atf_table' ), + $container->get( 'lrc_table' ), + ]; + + foreach ( $tables as $table ) { + self::forceRemoveTableAdminInitHooks( 'init', get_class( $table ), 'maybe_upgrade', 10 ); + self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $table ), 'maybe_upgrade', 10 ); + self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $table ), 'switch_blog', 10 ); + } } public static function forceRemoveTableAdminInitHooks( $hook_name = '', $class_name = '', $method_name = '', $priority = 0 ) { diff --git a/tests/Integration/bootstrap.php b/tests/Integration/bootstrap.php index 7ce0f0af88..a105c30749 100644 --- a/tests/Integration/bootstrap.php +++ b/tests/Integration/bootstrap.php @@ -15,12 +15,13 @@ // Manually load the plugin being tested. tests_add_filter( 'muplugins_loaded', - function() { + function () { - // Disable ATF optimization to prevent DB request (unrelated to other tests). + // Disable ATF & LRC optimizations to prevent DB requests (unrelated to other tests). add_filter( 'rocket_above_the_fold_optimization', '__return_false' ); + add_filter( 'rocket_lrc_optimization', '__return_false' ); - if ( BootstrapManager::isGroup( 'TranslatePress' ) ) { + if ( BootstrapManager::isGroup( 'TranslatePress' ) ) { require WP_ROCKET_TESTS_FIXTURES_DIR . '/classes/TRP_Translate_Press.php'; require WP_ROCKET_TESTS_FIXTURES_DIR . '/classes/TRP_Url_Converter.php'; require WP_ROCKET_TESTS_FIXTURES_DIR . '/classes/TRP_Settings.php'; @@ -264,6 +265,7 @@ function() { if ( BootstrapManager::isGroup( 'PerformanceHints' ) ) { add_filter( 'rocket_above_the_fold_optimization', '__return_true' ); + add_filter( 'rocket_lrc_optimization', '__return_true' ); } // Load the plugin. @@ -271,6 +273,22 @@ function() { } ); +tests_add_filter( + 'wp_loaded', + function() { + + if ( BootstrapManager::isGroup( 'PerformanceHints' ) ) { + return; + } + $container = apply_filters( 'rocket_container', null ); + $atf_table = $container->get( 'atf_table' ); + $atf_table->uninstall(); + + $lrc_table = $container->get( 'lrc_table' ); + $lrc_table->uninstall(); + } +); + // install WC. tests_add_filter( 'setup_theme', diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php b/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php index 8656a0bdf2..cfa8280611 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/addData.php @@ -59,7 +59,12 @@ public function testShouldReturnExpected( $config, $expected ) { $result = $this->callAjaxAction(); - $this->assertSame( $expected['result'], $result->success ); + if ( ! $expected['result'] ) { + $this->assertSame( $expected['message'], $result->data->lcp ); + } + else { + $this->assertSame( $expected['result'], $result->success ); + } } public function set_allowed() { diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php b/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php index 14f3a987c5..f12b7ec012 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/AJAX/Subscriber/checkData.php @@ -58,7 +58,7 @@ public function testShouldReturnExpected( $config, $expected ) { $result = $this->callAjaxAction(); - $this->assertSame( $expected['result'], $result->success ); + $this->assertSame( $expected['result'], $result->data->lcp ); } public function set_allowed() { return $this->allowed; diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php index a436239615..fba055a4a9 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php @@ -2,6 +2,8 @@ namespace WP_Rocket\Tests\Integration\inc\Engine\Common\PerformanceHints\Admin\Controller; +use WP_Rocket\Engine\Common\PerformanceHints\Admin\Controller; +use WP_Rocket\Engine\Media\AboveTheFold\Database\Queries\AboveTheFold; use WP_Rocket\Tests\Integration\TestCase; use Brain\Monkey\Functions; use Mockery; @@ -14,15 +16,20 @@ class Test_TruncateFromAdmin extends TestCase { protected $config; + private $factories; + private $queries; + public static function set_up_before_class() { parent::set_up_before_class(); // Install in set_up_before_class because of exists() requiring not temporary table. self::installAtfTable(); + self::installLrcTable(); } public static function tear_down_after_class() { - self::installAtfTable(); + self::uninstallAtfTable(); + self::uninstallLrcTable(); parent::tear_down_after_class(); } @@ -33,11 +40,12 @@ public static function tear_down_after_class() { public function testShouldDoAsExpected( $config, $expected ) { $this->config = $config; $container = apply_filters( 'rocket_container', null ); + foreach ( $this->config['rows'] as $row ) { self::addLcp( $row ); } Functions\expect( 'current_user_can' )->once()->with('rocket_manage_options')->andReturn($config['rocket_manage_options']); - do_action( 'rocket_saas_clean_all', [] ); + do_action( 'rocket_performance_hints_clean_all', [] ); $atf_query = $container->get( 'atf_query' ); $result_atf_after_clean = $atf_query->query(); diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Cron/Subscriber/cleanup.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Cron/Subscriber/cleanup.php index e1e7cf8f8f..27b103d82a 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/Cron/Subscriber/cleanup.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Cron/Subscriber/cleanup.php @@ -23,10 +23,12 @@ public static function set_up_before_class() { // Install in set_up_before_class because of exists(). self::installAtfTable(); + self::installLrcTable(); } public static function tear_down_after_class() { self::uninstallAtfTable(); + self::uninstallLrcTable(); parent::tear_down_after_class(); } diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php index 1c88771b2a..8fa20a1d96 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php @@ -10,7 +10,7 @@ * * @group PerformanceHints */ -class Test_maybe_apply_optimizations extends FilesystemTestCase { +class Test_MaybeApplyOptimizations extends FilesystemTestCase { protected $path_to_test_data = '/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/maybe_apply_optimizations.php'; protected $config; @@ -20,10 +20,12 @@ public static function set_up_before_class() { // Install in set_up_before_class because of exists(). self::installAtfTable(); + self::installLrcTable(); } public static function tear_down_after_class() { self::uninstallAtfTable(); + self::uninstallLrcTable(); parent::tear_down_after_class(); } @@ -35,6 +37,7 @@ public function set_up() { } public function tear_down() { + unset( $_GET ); remove_filter( 'rocket_performance_hints_optimization_delay', [ $this, 'add_delay' ] ); $this->restoreWpHook( 'rocket_buffer' ); @@ -47,8 +50,15 @@ public function tear_down() { public function testShouldReturnAsExpected( $config, $expected ) { $this->config = $config; - if ( ! empty( $config['row'] ) ) { - self::addLcp( $config['row'] ); + if ( isset( $config['query_string'] ) ) { + $_GET[ $config['query_string'] ] = 1; + } + + if ( ! empty( $config['atf']['row'] ) ) { + self::addLcp( $config['atf']['row'] ); + } + if ( ! empty( $config['lrc']['row'] ) ) { + self::addLrc( $config['lrc']['row'] ); } if ( isset( $config['filter_delay'] ) ) { diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php new file mode 100644 index 0000000000..dd0f9c17c5 --- /dev/null +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Frontend/Subscriber/start_performance_hints_buffer.php @@ -0,0 +1,73 @@ +unregisterAllCallbacksExcept( 'template_redirect', 'start_performance_hints_buffer', 3 ); + } + + public function tear_down() { + $this->restoreWpHook( 'template_redirect' ); + + // Reset GET parameters + $_GET = []; + + parent::tear_down(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + // Set up GET parameters + $_GET = $config; + ob_start(); + + $before_ob_level = ob_get_level(); + + do_action( 'template_redirect' ); + + $after_ob_level = ob_get_level(); + + $this->loadBuffer(); + + if ( $expected > 0 ) { + ob_end_clean(); + } + + $this->assertEquals( + $expected, + $after_ob_level - $before_ob_level + ); + } + + protected function loadBuffer() { + echo ''; + ob_get_clean(); + } +} diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php b/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php index f8ba9d85ab..436dce0f71 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUp.php @@ -39,16 +39,19 @@ public function testShouldDoExpected( $config, $expected ) { $options->shouldReceive('get') ->with('remove_unused_css', 0) ->andReturn($config['remove_unused_css']); + + $user->shouldReceive( 'is_license_expired_grace_period' ) + ->once() + ->andReturn( $config['license_expired'] ); } $queue->shouldReceive('add_job_warmup_url') ->times($expected); - add_action('rocket_job_warmup', [$controller, 'warm_up']); do_action('rocket_job_warmup'); - + remove_action('rocket_job_warmup', [$controller, 'warm_up']); } } diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php b/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php new file mode 100644 index 0000000000..df9703bc1c --- /dev/null +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/WarmUp/Subscriber/warmUpHome.php @@ -0,0 +1,57 @@ +makePartial(); + + $controller->shouldReceive('send_to_saas') + ->andReturn($config['home_url']); + + Functions\expect( 'wp_get_environment_type' )->andReturn($config['wp_env']); + + $queue->shouldReceive('add_job_warmup') + ->times($expected); + + if ( 'local' !== $config['wp_env'] ) { + $options->shouldReceive('get') + ->with('remove_unused_css', 0) + ->andReturn($config['remove_unused_css']); + + $user->shouldReceive( 'is_license_expired_grace_period' ) + ->once() + ->andReturn( $config['license_expired'] ); + } + + add_action('rocket_after_clear_performance_hints_data', [$controller, 'warm_up_home']); + + do_action('rocket_after_clear_performance_hints_data'); + + remove_action('rocket_after_clear_performance_hints_data', [$controller, 'warm_up_home']); + } +} diff --git a/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Filter/lrcProcessedTagsFilter.php b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Filter/lrcProcessedTagsFilter.php new file mode 100644 index 0000000000..20cee734bd --- /dev/null +++ b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Filter/lrcProcessedTagsFilter.php @@ -0,0 +1,36 @@ +getMethod( 'get_processed_tags' ); + + $method->setAccessible(true); + $result = $method->invoke( $dom ); + + $expected = [ 'DIV', 'MAIN', 'FOOTER', 'SECTION', 'ARTICLE', 'HEADER', 'H2', 'H1', 'LI' ]; + + $this->assertSame( $expected, $result ); + } +} diff --git a/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php new file mode 100644 index 0000000000..412f15a940 --- /dev/null +++ b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes.php @@ -0,0 +1,66 @@ +max_hashes = null; + $this->unregisterAllCallbacksExcept( 'rocket_performance_hints_buffer', 'add_hashes', 16 ); + } + + public function tear_down() { + $this->restoreWpHook( 'rocket_performance_hints_buffer' ); + remove_filter( 'rocket_lrc_optimization', '__return_false' ); + remove_filter( 'rocket_lrc_max_hashes', [ $this, 'set_lrc_max_hashes' ] ); + + parent::tear_down(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldWorkAsExpected( $config, $expected ) { + self::addLrc( $config['row'] ); + + add_filter( 'rocket_lrc_optimization', '__return_true' ); + + if ( isset( $config['max_hashes'] ) ) { + $this->max_hashes = $config['max_hashes']; + add_filter( 'rocket_lrc_max_hashes', [ $this, 'set_lrc_max_hashes' ] ); + } + + + $this->assertSame( + $expected['html'], + apply_filters( 'rocket_performance_hints_buffer', $config['html'] ) + ); + } + + public function set_lrc_max_hashes() { + return $this->max_hashes; + } +} diff --git a/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php new file mode 100644 index 0000000000..ae30cfb103 --- /dev/null +++ b/tests/Integration/inc/Engine/Optimization/LazyRenderContent/Frontend/Subscriber/add_hashes_when_allowed.php @@ -0,0 +1,62 @@ +unregisterAllCallbacksExcept( 'rocket_buffer', 'add_hashes_when_allowed', 16 ); + } + + public function tear_down() { + $this->restoreWpHook( 'rocket_buffer' ); + remove_filter( 'rocket_lrc_optimization', '__return_false' ); + + parent::tear_down(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $expected ) { + $this->filter = $config['filter']; + + add_filter( 'rocket_lrc_optimization', [ $this, 'returnFilter' ] ); + + self::addLrc( $config['row'] ); + + add_filter( 'rocket_lrc_optimization', '__return_true' ); + + $this->assertSame( + $expected['html'], + apply_filters( 'rocket_buffer', $config['html'] ) + ); + } + + public function returnFilter() { + return $this->filter; + } +} diff --git a/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php b/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php index 1e88e42d13..a98a466013 100644 --- a/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php +++ b/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php @@ -143,8 +143,9 @@ public function testShouldDeleteAll() { $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); $preload_table = $container->get( 'preload_caches_table' ); $atf_table = $container->get( 'atf_table' ); + $lrc_table = $container->get( 'lrc_table' ); - $uninstall = new WPRocketUninstall( $cache_path, $config_path, $rucss_usedcss_table, $preload_table, $atf_table ); + $uninstall = new WPRocketUninstall( $cache_path, $config_path, $rucss_usedcss_table, $preload_table, $atf_table, $lrc_table ); $uninstall->uninstall(); diff --git a/tests/Unit/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php b/tests/Unit/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php new file mode 100644 index 0000000000..172942ca89 --- /dev/null +++ b/tests/Unit/inc/Engine/Admin/Settings/Settings/addMenuToAdminBar.php @@ -0,0 +1,74 @@ +admin_bar = $this->getObjectForTrait(AdminBarMenuTrait::class); + $this->wp_admin_bar = new WP_Admin_Bar(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\expect('rocket_valid_key')->with()->andReturn($config['rocket_valid_key']); + Functions\expect('is_admin')->with()->andReturn($config['admin']); + Functions\when( 'wp_get_environment_type' ) + ->justReturn( $config['environment'] ); + + Functions\when( 'admin_url' )->alias( + function ( $path ) { + return "http://example.org/wp-admin/{$path}"; + } + ); + + Functions\when( 'wp_nonce_url' )->alias( + function ( $url ) { + return str_replace( '&', '&', "{$url}&_wpnonce=123456" ); + } + ); + + $method = self::get_reflective_method( 'add_menu_to_admin_bar', get_class( $this->admin_bar ) ); + $method->invoke( $this->admin_bar, $this->wp_admin_bar, $config['menu_id'], $config['title'], $config['action'] ); + + $node = $this->wp_admin_bar->get_node( $config['menu_id'] ); + + if ( null === $expected ) { + $this->assertNull( $node ); + return; + } + + $this->assertSame( + $expected['id'], + $node->id + ); + + $this->assertSame( + $expected['title'], + $node->title + ); + } +} diff --git a/tests/Unit/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php b/tests/Unit/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php new file mode 100644 index 0000000000..b3aa260700 --- /dev/null +++ b/tests/Unit/inc/Engine/Admin/Settings/Settings/addURLMenuItemToAdminBar.php @@ -0,0 +1,81 @@ +admin_bar = $this->getObjectForTrait(AdminBarMenuTrait::class); + $this->wp_admin_bar = new WP_Admin_Bar(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\expect('rocket_can_display_options')->with()->andReturn($config['display_option']); + Functions\expect('is_admin')->with()->andReturn($config['admin']); + Functions\when( 'wp_get_environment_type' ) + ->justReturn( $config['environment'] ); + + Functions\when( 'admin_url' )->alias( + function ( $path ) { + return "http://example.org/wp-admin/{$path}"; + } + ); + + Functions\when( 'wp_nonce_url' )->alias( + function ( $url ) { + return str_replace( '&', '&', "{$url}&_wpnonce=123456" ); + } + ); + + $method = self::get_reflective_method( 'add_url_menu_item_to_admin_bar', get_class( $this->admin_bar ) ); + $method->invoke( + $this->admin_bar, + $this->wp_admin_bar, + $config['menu_id'], + $config['title'], + $config['action'], + $config['context'] + ); + + $node = $this->wp_admin_bar->get_node( $config['menu_id'] ); + + if ( null === $expected ) { + $this->assertNull( $node ); + return; + } + + $this->assertSame( + $expected['id'], + $node->id + ); + + $this->assertSame( + $expected['title'], + $node->title + ); + } +} diff --git a/tests/Unit/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php b/tests/Unit/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php new file mode 100644 index 0000000000..db30912ba4 --- /dev/null +++ b/tests/Unit/inc/Engine/Admin/Settings/Settings/displayDashboardButton.php @@ -0,0 +1,75 @@ +mocked_class = $this->getMockForTrait( + AdminBarMenuTrait::class, + [], + '', + true, + true, + true, + ['generate'] + ); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\when( 'wp_get_environment_type' ) + ->justReturn( $config['environment'] ); + + $data = [ + 'title' => $config['title'], + 'action' => $config['action'], + 'label' => $config['label'], + 'description' => $config['description'] + ]; + + if ( null !== $expected ) { + $this->mocked_class->expects($this->once()) + ->method('generate') + ->with('sections/clean-section', $data) + ->willReturn($expected); + } + + ob_start(); + $this->mocked_class->dashboard_button( + $config['context'], + $config['title'], + $config['label'], + $config['action'], + $config['description'] + ); + $output = ob_get_clean(); + + if ( null === $expected ) { + $this->assertEmpty( $output ); + return; + } + $title_output = '

'. $config['label'] . '

'; + $this->assertStringContainsString($title_output, $output); + } +} diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php new file mode 100644 index 0000000000..55784aa6e1 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php @@ -0,0 +1,91 @@ +createMock(ATFFactory::class); + $lrc_factory = $this->createMock(Factory::class); + $this->wp_admin_bar = new WP_Admin_Bar(); + + $this->factories = [ + $atf_factory, + $lrc_factory + ]; + $this->admin_bar = new AdminBar( $this->factories,'' ); + + $this->stubTranslationFunctions(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoExpected( $config, $expected ) { + Functions\when( 'rocket_valid_key' ) + ->justReturn( $config['rocket_valid_key'] ); + Functions\when( 'is_admin' ) + ->justReturn( $config['is_admin'] ); + + Functions\when( 'current_user_can' ) + ->justReturn( $config['current_user_can'] ); + + Functions\when( 'wp_nonce_url' )->alias( + function ( $url ) { + return str_replace( '&', '&', "{$url}&_wpnonce=123456" ); + } + ); + + Functions\when( 'admin_url' )->alias( + function ( $path ) { + return "http://example.org/wp-admin/{$path}"; + } + ); + + $this->admin_bar->add_clear_performance_menu_item( $this->wp_admin_bar ); + + $node = $this->wp_admin_bar->get_node( 'clear-performance-hints' ); + + if ( null === $expected ) { + $this->assertNull( $node ); + return; + } + + $this->assertSame( + $expected['id'], + $node->id + ); + + $this->assertSame( + $expected['title'], + $node->title + ); + } +} diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php new file mode 100644 index 0000000000..df9912a579 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addPerformanceHintsClearUrlMenuItem.php @@ -0,0 +1,97 @@ +createMock(ATFFactory::class); + $lrc_factory = $this->createMock(Factory::class); + $this->wp_admin_bar = new WP_Admin_Bar(); + + $this->factories = [ + $atf_factory, + $lrc_factory + ]; + + $this->stubTranslationFunctions(); + } + + protected function tearDown(): void { + unset( $GLOBALS['post'] ); + + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoExpected( $config, $expected ) { + $admin_bar = new AdminBar( $config['factories'] ? $this->factories : [], '' ); + + Functions\when( 'wp_get_environment_type' ) + ->justReturn( $config['environment'] ); + Functions\when( 'is_admin' ) + ->justReturn( $config['is_admin'] ); + + $GLOBALS['post'] = $config['post']; + + Functions\when( 'rocket_can_display_options' ) + ->justReturn( $config['can_display_options'] ); + + Functions\when( 'wp_nonce_url' )->alias( + function ( $url ) { + return str_replace( '&', '&', "{$url}&_wpnonce=123456" ); + } + ); + + Functions\when( 'admin_url' )->alias( + function ( $path ) { + return "http://example.org/wp-admin/{$path}"; + } + ); + + $admin_bar->add_clear_url_performance_hints_menu_item( $this->wp_admin_bar ); + + $node = $this->wp_admin_bar->get_node( 'clear-performance-hints-data-url' ); + + if ( null === $expected ) { + $this->assertNull( $node ); + return; + } + + $this->assertSame( + $expected['id'], + $node->id + ); + + $this->assertSame( + $expected['title'], + $node->title + ); + } +} diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateOnUpdate.php b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateOnUpdate.php index 640353397a..265d38f404 100644 --- a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateOnUpdate.php +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateOnUpdate.php @@ -4,6 +4,7 @@ namespace WP_Rocket\tests\Unit\inc\Engine\Common\PerformanceHints\Admin\Controller; use Mockery; +use WP_Rocket\Engine\Common\Context\ContextInterface; use WP_Rocket\Tests\Unit\TestCase; use WP_Rocket\Engine\Common\PerformanceHints\Admin\Controller; use WP_Rocket\Engine\Media\AboveTheFold\Factory as ATFFactory; @@ -15,10 +16,11 @@ * * @group PerformanceHints */ -class TestTruncateOnUpdate extends TestCase { +class Test_TruncateOnUpdate extends TestCase { private $factories; private $queries; private $table; + private $context; protected function setUp(): void { parent::setUp(); @@ -26,8 +28,10 @@ protected function setUp(): void { $this->queries = $this->createMock(AboveTheFold::class); $this->table = $this->createMock(ATFTable::class); $atf_factory = $this->createMock(ATFFactory::class); + $this->context = $this->createMock(ContextInterface::class); $atf_factory->method('queries')->willReturn($this->queries); $atf_factory->method('table')->willReturn($this->table); + $atf_factory->method('get_context')->willReturn($this->context); $this->factories = [ $atf_factory, @@ -44,6 +48,10 @@ public function testShouldDoExpected( $config, $expected ) { $this->queries->expects( $this->never() ) ->method( 'get_not_completed_count' ); } else { + $this->context->expects( $this->once() ) + ->method('is_allowed') + ->willReturn(true); + $this->queries->expects( $this->once() ) ->method( 'get_not_completed_count' ) ->willReturn( $config['not_completed'] ); diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php new file mode 100644 index 0000000000..c1f6dc53b6 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/Notices/displayCleanPerformanceHintsResultNotice.php @@ -0,0 +1,57 @@ +createMock(ATFFactory::class); + $lrc_factory = $this->createMock(Factory::class); + $this->factories = [ + $atf_factory, + $lrc_factory + ]; + + $this->stubTranslationFunctions(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoExpected( $config, $expected ) { + $notices = new Notices( $config['factories'] ? $this->factories : [] ); + + Functions\expect( 'current_user_can' ) + ->once() + ->with( 'rocket_manage_options' ) + ->andReturn( $config['capability'] ); + + Functions\when('get_transient')->alias(function ($name) use ($config) { + return $config['transient']; + }); + + if ( $expected ) { + Functions\expect( 'rocket_notice_html' ) + ->once(); + Functions\expect('delete_transient')->with('rocket_performance_hints_clear_message'); + } else { + Functions\expect( 'rocket_notice_html' )->never(); + } + + $notices->clean_performance_hint_result(); + } +} diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php b/tests/Unit/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php index b8786206b6..b4817a5a01 100644 --- a/tests/Unit/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/WarmUp/Controller/fetchLinks.php @@ -33,9 +33,6 @@ protected function setUp(): void { * @dataProvider configTestData */ public function testShouldReturnExpected( $config, $expected ) { - $this->user->shouldReceive( 'is_license_expired_grace_period' ) - ->once() - ->andReturn( $config['license_expired'] ); Functions\when( 'home_url' )->alias( function ( $link = '' ) { diff --git a/tests/Unit/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php b/tests/Unit/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php index b70b2c13d5..905d32e91d 100644 --- a/tests/Unit/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php +++ b/tests/Unit/inc/Engine/Media/AboveTheFold/AJAX/Controller/addData.php @@ -99,16 +99,6 @@ function( $url ) use ( $images_valid_sources ) { ->with( $expected['item'] ) ->willReturn( $expected['result'] ); - if ( ! $expected['result'] ) { - Functions\expect( 'wp_send_json_error' ) - ->once() - ->with( $expected['message'] ); - } elseif ( $expected['result'] ) { - Functions\expect( 'wp_send_json_success' ) - ->once() - ->with( $expected['message'] ); - } - $this->stubWpParseUrl(); Filters\expectApplied('rocket_atf_invalid_schemes')->with([ 'chrome-[^:]+://' ])->andReturn([ 'chrome-[^:]+://' ]); @@ -118,6 +108,6 @@ function( $url ) use ( $images_valid_sources ) { Functions\when('wp_check_filetype')->justReturn( $config['filetype'] ); } - $this->controller->add_data(); + $this->assertSame( [ 'lcp' => $expected['message'] ], $this->controller->add_data() ); } } diff --git a/tests/Unit/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php b/tests/Unit/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php new file mode 100644 index 0000000000..abfb27e781 --- /dev/null +++ b/tests/Unit/inc/Engine/Media/ImageDimensions/Subscriber/imageDimensionsQueryString.php @@ -0,0 +1,52 @@ +dimensions = Mockery::mock( ImageDimensions::class ); + $this->subscriber = new Subscriber( $this->dimensions ); + } + + public function tear_down() { + unset( $_GET ); + + parent::tear_down(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $html, $expected ) { + if ( isset( $config['query_string'] ) ) { + $_GET[ $config['query_string'] ] = 1; + } + + $this->dimensions + ->shouldReceive( 'specify_image_dimensions' ) + ->with( $html ) + ->andReturn( $expected ); + + $this->assertSame( + $expected, + $this->subscriber->image_dimensions_query_string( $html ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php new file mode 100644 index 0000000000..114913a2ad --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/addData.php @@ -0,0 +1,107 @@ +query = $this->createPartialMock( LazyRenderContent::class, [ 'add_item' ] ); + $this->context = Mockery::mock( Context::class ); + $this->controller = new Controller( $this->query, $this->context ); + $this->temp_post = $_POST; + + + $this->stubEscapeFunctions(); + } + + protected function tearDown(): void { + unset( $_POST ); + $_POST = $this->temp_post; + + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $expected ) { + $this->stubEscapeFunctions(); + $this->stubTranslationFunctions(); + + $_POST = [ + 'url' => addslashes( $config['url'] ), + 'is_mobile' => addslashes( $config['is_mobile'] ), + 'results' => addslashes( $config['results'] ), + 'status' => addslashes( $config['status'] ?? 'success' ), + ]; + + Functions\expect( 'check_ajax_referer' ) + ->once() + ->with( 'rocket_beacon', 'rocket_beacon_nonce' ) + ->andReturn( true ); + + $this->context->shouldReceive( 'is_allowed' ) + ->atMost() + ->once() + ->andReturn( $config['filter'] ); + + $valid_source = $expected['valid_source'] ?? []; + + if(empty($valid_source)) { + Functions\when( 'sanitize_text_field' )->alias( + function ( $value ) { + return is_string( $value ) ? strip_tags( $value ) : $value; + } + ); + } else{ + Functions\when('sanitize_text_field')->alias( + function ($value) use ($valid_source) { + $arr_value = []; + if (!is_string($value)) { + foreach ($valid_source as $key => $replacement) { + $arr_value[] = strip_tags($replacement); + } + return (object) $arr_value; + } + + return strip_tags($value); + } + ); + } + + Functions\when( 'current_time' ) + ->justReturn( $expected['item']['last_accessed'] ); + + $this->query->method( 'add_item' ) + ->with( $expected['item'] ) + ->willReturn( $expected['result'] ); + + Functions\when( 'wp_unslash' )->alias( + function ( $value ) { + return is_string( $value ) ? stripslashes( $value ) : $value; + } + ); + + $this->stubWpParseUrl(); + + $this->assertSame( [ 'lrc' => $expected['message'] ], $this->controller->add_data() ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php new file mode 100644 index 0000000000..b30dff9b59 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller/checkData.php @@ -0,0 +1,83 @@ +query = $this->createPartialMock( LazyRenderContent::class, [ 'get_row' ] ); + $this->context = Mockery::mock( Context::class ); + $this->controller = new Controller( $this->query, $this->context ); + $this->temp_post = $_POST; + + + $this->stubEscapeFunctions(); + } + + protected function tearDown(): void { + unset( $_POST ); + $_POST = $this->temp_post; + + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $expected ) { + $this->stubEscapeFunctions(); + $this->stubTranslationFunctions(); + + $_POST = [ + 'url' => addslashes( $config['url'] ), + 'is_mobile' => addslashes( $config['is_mobile'] ), + ]; + + $this->context->shouldReceive( 'is_allowed' ) + ->atMost() + ->once() + ->andReturn( $config['filter'] ); + + Functions\expect( 'check_ajax_referer' ) + ->once() + ->with( 'rocket_beacon', 'rocket_beacon_nonce' ) + ->andReturn( true ); + + Functions\when('esc_url_raw')->alias( + function( $url ){ + return $url; + } + ); + + Functions\when( 'wp_unslash' )->alias( + function ( $value ) { + return is_string( $value ) ? stripslashes( $value ) : $value; + } + ); + + $this->query->method( 'get_row' ) + ->with( $config['url'], $config['is_mobile'] ) + ->willReturn( $config['row'] ); + + $this->assertSame( [ 'lrc' => $expected['message'] ], $this->controller->check_data() ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php new file mode 100644 index 0000000000..1870a95b22 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php @@ -0,0 +1,24 @@ +assertInstanceOf( + ContextInterface::class, + $activation_factory->get_context() + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php new file mode 100644 index 0000000000..27f32bb855 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Context/Context/isAllowed.php @@ -0,0 +1,35 @@ +context = new Context(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $expected ) { + Functions\when( 'get_option' )->justReturn( $config['licence'] ); + Filters\expectApplied( 'rocket_lrc_optimization' ) + ->andReturn( $config['filter'] ); + + $this->assertSame( + $expected, + $this->context->is_allowed() + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php new file mode 100644 index 0000000000..5fa93c18c2 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/addCustomData.php @@ -0,0 +1,40 @@ +context = Mockery::mock( Context::class ); + + $this->controller = new Controller( Mockery::mock( Processor::class ), $this->context ); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $data, $expected ) { + $this->context->shouldReceive( 'is_allowed' ) + ->once() + ->andReturn( $config['is_allowed'] ); + + $this->assertSame( + $expected, + $this->controller->add_custom_data( $data ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php new file mode 100644 index 0000000000..30575b979d --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Controller/optimize.php @@ -0,0 +1,44 @@ +controller = new Controller( Mockery::mock( Processor::class ), Mockery::mock( Context::class ) ); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $html, $expected ) { + $row = $this->getMockBuilder( LRCRow::class ) + ->disableOriginalConstructor() + ->getMock(); + + $row->expects( $this->once() ) + ->method( 'has_lrc' ) + ->willReturn( $config['has_lrc'] ); + + $row->below_the_fold = $config['below_the_fold']; + + $this->assertSame( + $this->format_the_html( $expected ), + $this->format_the_html( $this->controller->optimize( $html, $row ) ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php new file mode 100644 index 0000000000..df464679ad --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Dom/addHashes.php @@ -0,0 +1,30 @@ +processor = new Dom(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $html, $expected ) { + $this->assertSame( + $this->format_the_html( $expected ), + $this->format_the_html( $this->processor->add_hashes( $html ) ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php new file mode 100644 index 0000000000..50fecd0109 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Processor/getProcessor.php @@ -0,0 +1,34 @@ +processor = new Processor(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $processor ) { + $this->processor->set_processor( $processor ); + + $this->assertInstanceOf( + ProcessorInterface::class, + $this->processor->get_processor() + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php new file mode 100644 index 0000000000..9d1fd59f5e --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/Regex/addHashes.php @@ -0,0 +1,30 @@ +processor = new Regex(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $html, $expected ) { + $this->assertSame( + $this->format_the_html( $expected ), + $this->format_the_html( $this->processor->add_hashes( $html ) ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php new file mode 100644 index 0000000000..efd5c2e55f --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Frontend/Processor/SimpleHtmlDom/addHashes.php @@ -0,0 +1,30 @@ +processor = new SimpleHtmlDom(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $html, $expected ) { + $this->assertSame( + $this->format_the_html( $expected ), + $this->format_the_html( $this->processor->add_hashes( $html ) ) + ); + } +} diff --git a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php index 27ec89106e..3ff5650444 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php +++ b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php @@ -31,9 +31,8 @@ protected function setUp(): void { parent::setUp(); $this->options = Mockery::mock( Options_Data::class ); - $this->atf_context = Mockery::mock( ContextInterface::class ); $this->rucss_url_context = Mockery::mock( ContextInterface::class ); - $this->admin_bar = new AdminBar( $this->options, $this->atf_context, $this->rucss_url_context, '' ); + $this->admin_bar = new AdminBar( $this->options, $this->rucss_url_context, '' ); $this->wp_admin_bar = new WP_Admin_Bar(); $this->stubTranslationFunctions(); @@ -50,9 +49,6 @@ public function testShouldDoExpected( $config, $expected ) { Functions\when( 'is_admin' ) ->justReturn( $config['is_admin'] ); - $this->atf_context->shouldReceive( 'is_allowed' ) - ->andReturn( $config['atf_context'] ); - $this->options->shouldReceive( 'get' ) ->with( 'remove_unused_css', 0 ) ->andReturn( $config['remove_unused_css'] ); diff --git a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php index 557e1f39dc..ed6155ec62 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php +++ b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanUrlMenuItem.php @@ -33,7 +33,7 @@ protected function setUp(): void { $this->options = Mockery::mock( Options_Data::class ); $this->atf_context = Mockery::mock( ContextInterface::class ); $this->rucss_url_context = Mockery::mock( ContextInterface::class ); - $this->admin_bar = new AdminBar( $this->options, $this->atf_context, $this->rucss_url_context, '' ); + $this->admin_bar = new AdminBar( $this->options, $this->rucss_url_context, '' ); $this->wp_admin_bar = new WP_Admin_Bar(); $this->stubTranslationFunctions(); diff --git a/tests/Unit/inc/Engine/Saas/Admin/Notices/addLocalizeScriptData.php b/tests/Unit/inc/Engine/Saas/Admin/Notices/addLocalizeScriptData.php index a4fb8d4b8b..fc10eada70 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/Notices/addLocalizeScriptData.php +++ b/tests/Unit/inc/Engine/Saas/Admin/Notices/addLocalizeScriptData.php @@ -25,7 +25,7 @@ public function setUp(): void { $this->options = Mockery::mock( Options_Data::class ); $this->atf_context = Mockery::mock( ContextInterface::class ); - $this->notices = new Notices( $this->options, Mockery::mock( Beacon::class ), $this->atf_context ); + $this->notices = new Notices( $this->options, Mockery::mock( Beacon::class ) ); } /** diff --git a/tests/Unit/inc/Engine/Saas/Admin/Notices/displayProcessingNotice.php b/tests/Unit/inc/Engine/Saas/Admin/Notices/displayProcessingNotice.php index 785e5c445d..301bc3793e 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/Notices/displayProcessingNotice.php +++ b/tests/Unit/inc/Engine/Saas/Admin/Notices/displayProcessingNotice.php @@ -27,7 +27,7 @@ public function setUp(): void { $this->options = Mockery::mock( Options_Data::class ); $this->atf_context = Mockery::mock( ContextInterface::class ); - $this->notices = new Notices( $this->options, Mockery::mock( Beacon::class ), $this->atf_context ); + $this->notices = new Notices( $this->options, Mockery::mock( Beacon::class ) ); $this->stubTranslationFunctions(); } diff --git a/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySaasErrorNotice.php b/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySaasErrorNotice.php index 8f6919f775..5fc058ae0f 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySaasErrorNotice.php +++ b/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySaasErrorNotice.php @@ -13,7 +13,7 @@ /** * Test class covering \WP_Rocket\Engine\Saas\Admin\Notices::display_saas_error_notice - * + * * @group Saas */ class Test_DisplaySaasErrorNotice extends FilesystemTestCase @@ -31,7 +31,7 @@ protected function setUp(): void $this->options = Mockery::mock(Options_Data::class); $this->beacon = Mockery::mock(Beacon::class); $this->atf_context = Mockery::mock( ContextInterface::class ); - $this->notices = new Notices($this->options, $this->beacon, $this->atf_context); + $this->notices = new Notices( $this->options, $this->beacon ); $this->stubTranslationFunctions(); } diff --git a/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySuccessNotice.php b/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySuccessNotice.php index a97597a29b..fac49e3182 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySuccessNotice.php +++ b/tests/Unit/inc/Engine/Saas/Admin/Notices/displaySuccessNotice.php @@ -28,7 +28,7 @@ public function setUp(): void { $this->options = Mockery::mock( Options_Data::class ); $this->beacon = Mockery::mock( Beacon::class ); $this->atf_context = Mockery::mock( ContextInterface::class ); - $this->notices = new Notices( $this->options, $this->beacon, $this->atf_context ); + $this->notices = new Notices( $this->options, $this->beacon ); $this->stubTranslationFunctions(); $this->stubEscapeFunctions(); diff --git a/uninstall.php b/uninstall.php index 185ce6a5e6..a97dcb432a 100755 --- a/uninstall.php +++ b/uninstall.php @@ -29,16 +29,19 @@ require_once __DIR__ . '/inc/Engine/Common/PerformanceHints/Database/Table/TableInterface.php'; require_once __DIR__ . '/inc/Engine/Common/PerformanceHints/Database/Table/AbstractTable.php'; require_once __DIR__ . '/inc/Engine/Media/AboveTheFold/Database/Tables/AboveTheFold.php'; +require_once __DIR__ . '/inc/Engine/Optimization/LazyRenderContent/Database/Table/LazyRenderContent.php'; $rocket_rucss_usedcss_table = new WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS(); $rocket_cache_table = new WP_Rocket\Engine\Preload\Database\Tables\Cache(); $rocket_atf_table = new WP_Rocket\Engine\Media\AboveTheFold\Database\Tables\AboveTheFold(); +$rocket_lrc_table = new WP_Rocket\Engine\Optimization\LazyRenderContent\Database\Table\LazyRenderContent(); $rocket_uninstall = new WPRocketUninstall( WP_ROCKET_CACHE_ROOT_PATH, WP_ROCKET_CONFIG_PATH, $rocket_rucss_usedcss_table, $rocket_cache_table, - $rocket_atf_table + $rocket_atf_table, + $rocket_lrc_table ); $rocket_uninstall->uninstall(); diff --git a/views/settings/page-sections/dashboard.php b/views/settings/page-sections/dashboard.php index 6204e93571..47b996a23d 100644 --- a/views/settings/page-sections/dashboard.php +++ b/views/settings/page-sections/dashboard.php @@ -22,6 +22,7 @@ defined( 'ABSPATH' ) || exit; +$rocket_manual_preload = (bool) get_rocket_option( 'manual_preload', false ); ?>
@@ -158,18 +159,19 @@
-

+

+

render_action_button( 'link', 'purge_cache', [ - 'label' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), + 'label' => $rocket_manual_preload ? __( 'Clear and preload', 'rocket' ) : __( 'Clear', 'rocket' ), 'parameters' => [ 'type' => 'all', ], 'attributes' => [ - 'class' => 'wpr-button wpr-button--icon wpr-button--small wpr-icon-trash', + 'class' => 'wpr-button wpr-button--icon wpr-button--small wpr-icon-trash wpr-button--no-min-width', ], ] ); diff --git a/views/settings/sections/clean-section.php b/views/settings/sections/clean-section.php index 4912174f00..339d288964 100644 --- a/views/settings/sections/clean-section.php +++ b/views/settings/sections/clean-section.php @@ -15,6 +15,9 @@ ?>

+ +

+ render_action_button( 'link', @@ -22,7 +25,7 @@ [ 'label' => $data['label'], 'attributes' => [ - 'class' => 'wpr-button wpr-button--icon wpr-button--small wpr-icon-trash', + 'class' => 'wpr-button wpr-button--icon wpr-button--no-min-width wpr-button--small wpr-icon-trash', ], ] ); diff --git a/wp-rocket.php b/wp-rocket.php index f2f778274c..13da0051fe 100755 --- a/wp-rocket.php +++ b/wp-rocket.php @@ -3,7 +3,7 @@ * Plugin Name: WP Rocket * Plugin URI: https://wp-rocket.me * Description: The best WordPress performance plugin. - * Version: 3.16.4 + * Version: 3.17 * Requires at least: 5.8 * Requires PHP: 7.3 * Code Name: Iego @@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit; // Rocket defines. -define( 'WP_ROCKET_VERSION', '3.16.4' ); +define( 'WP_ROCKET_VERSION', '3.17' ); define( 'WP_ROCKET_WP_VERSION', '5.8' ); define( 'WP_ROCKET_WP_VERSION_TESTED', '6.3.1' ); define( 'WP_ROCKET_PHP_VERSION', '7.3' ); @@ -82,7 +82,7 @@ define( 'CHMOD_WP_ROCKET_CACHE_DIRS', 0755 ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals } if ( ! defined( 'WP_ROCKET_LASTVERSION' ) ) { - define( 'WP_ROCKET_LASTVERSION', '3.15.10' ); + define( 'WP_ROCKET_LASTVERSION', '3.16.4' ); } /** From c448e53e0b0cfb97d210973251e694ea37ac8bad Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Mon, 16 Sep 2024 15:56:32 +0200 Subject: [PATCH 11/38] Fix phpstan 3.17 --- inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php | 2 +- .../PerformanceHints/Admin/Controller/truncateFromAdmin.php | 3 --- .../Admin/AdminBar/addCleanPerformanceHintsItem.php | 3 --- .../Activation/ActivationFactory/getContext.php | 2 +- .../inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php | 1 - 5 files changed, 2 insertions(+), 9 deletions(-) diff --git a/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php b/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php index 5039086d9c..fad069ea23 100644 --- a/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php +++ b/inc/Engine/Optimization/LazyRenderContent/AJAX/Controller.php @@ -91,7 +91,7 @@ public function add_data(): array { 'is_mobile' => $is_mobile, 'status' => $status_code, 'error_message' => $status_message, - 'below_the_fold' => ( is_array( $below_the_fold ) || is_object( $below_the_fold ) ) ? wp_json_encode( $below_the_fold ) : $below_the_fold, + 'below_the_fold' => wp_json_encode( $below_the_fold ), 'last_accessed' => current_time( 'mysql', true ), 'created_at' => current_time( 'mysql', true ), ]; diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php index fba055a4a9..4844d66e79 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php @@ -16,9 +16,6 @@ class Test_TruncateFromAdmin extends TestCase { protected $config; - private $factories; - private $queries; - public static function set_up_before_class() { parent::set_up_before_class(); diff --git a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php index 55784aa6e1..492b575dbd 100644 --- a/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php +++ b/tests/Unit/inc/Engine/Common/PerformanceHints/Admin/AdminBar/addCleanPerformanceHintsItem.php @@ -17,9 +17,6 @@ */ class Test_AddCleanPerformanceHintsItem extends TestCase { private $admin_bar; - private $atf_context; - private $lrc_context; - private $wp_admin_bar; private $factories; diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php index 1870a95b22..80cb995e2f 100644 --- a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php +++ b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php @@ -16,7 +16,7 @@ public function testShouldReturnContext() { $context = Mockery::mock( ContextInterface::class ); $activation_factory = new ActivationFactory( $context ); - $this->assertInstanceOf( + $this->assertEquals( ContextInterface::class, $activation_factory->get_context() ); diff --git a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php index 3ff5650444..402347e1ed 100644 --- a/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php +++ b/tests/Unit/inc/Engine/Saas/Admin/AdminBar/addCleanSaasMenuItem.php @@ -17,7 +17,6 @@ class Test_AddCleanSaasMenuItem extends TestCase { private $admin_bar; private $options; - private $atf_context; private $rucss_url_context; private $wp_admin_bar; From 39f438fe29d25a25fe525983c6a0d824f07beb2e Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Tue, 17 Sep 2024 02:45:53 +0200 Subject: [PATCH 12/38] Delete useless test --- .../ActivationFactory/getContext.php | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php diff --git a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php b/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php deleted file mode 100644 index 80cb995e2f..0000000000 --- a/tests/Unit/inc/Engine/Optimization/LazyRenderContent/Activation/ActivationFactory/getContext.php +++ /dev/null @@ -1,24 +0,0 @@ -assertEquals( - ContextInterface::class, - $activation_factory->get_context() - ); - } -} From f7b937392d790498d09e49b9bb6c27fddb8a76ae Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Tue, 17 Sep 2024 02:49:17 +0200 Subject: [PATCH 13/38] Fix phpstan --- .../PerformanceHints/Admin/Controller/truncateFromAdmin.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php index fba055a4a9..4844d66e79 100644 --- a/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php +++ b/tests/Integration/inc/Engine/Common/PerformanceHints/Admin/Controller/truncateFromAdmin.php @@ -16,9 +16,6 @@ class Test_TruncateFromAdmin extends TestCase { protected $config; - private $factories; - private $queries; - public static function set_up_before_class() { parent::set_up_before_class(); From 2ecdcbff9854a62e6b4db7b932dbf1b87f2c07fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 09:25:10 -0400 Subject: [PATCH 14/38] make $filesystem nullable --- inc/Addon/WebP/Subscriber.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/Addon/WebP/Subscriber.php b/inc/Addon/WebP/Subscriber.php index 2ac64b4cf8..8951d6fa7c 100644 --- a/inc/Addon/WebP/Subscriber.php +++ b/inc/Addon/WebP/Subscriber.php @@ -38,7 +38,7 @@ class Subscriber extends AbstractWebp implements Subscriber_Interface { /** * \WP_Filesystem_Direct instance. * - * @var \WP_Filesystem_Direct + * @var null|\WP_Filesystem_Direct */ private $filesystem; @@ -118,7 +118,7 @@ public function convert_to_webp( $html ) { return $html . ''; } - if ( ! isset( $this->filesystem ) ) { // @phpstan-ignore-line + if ( ! isset( $this->filesystem ) ) { $this->filesystem = \rocket_direct_filesystem(); } From 026dde2fcf63b1c7c26d134e640f3c5e7dac2815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 09:46:46 -0400 Subject: [PATCH 15/38] remove useless returns --- inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php index cb97178903..241c3e2409 100644 --- a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php +++ b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php @@ -63,30 +63,22 @@ public function update_user_token() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'unauthorized_user' ); - - return; // @phpstan-ignore-line } if ( empty( $_POST['value'] ) ) { delete_option( 'rocketcdn_user_token' ); wp_send_json_success( 'user_token_deleted' ); - - return; // @phpstan-ignore-line } if ( ! is_string( $_POST['value'] ) ) { wp_send_json_error( 'invalid_token' ); - - return; // @phpstan-ignore-line } $token = sanitize_key( $_POST['value'] ); if ( 40 !== strlen( $token ) ) { wp_send_json_error( 'invalid_token_length' ); - - return; // @phpstan-ignore-line } update_option( 'rocketcdn_user_token', $token ); From addff20753116a93a5b5be8ce76e552b387b587b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 09:48:33 -0400 Subject: [PATCH 16/38] remove useless returns --- .../CDN/RocketCDN/DataManagerSubscriber.php | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php index 241c3e2409..610cf77883 100644 --- a/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php +++ b/inc/Engine/CDN/RocketCDN/DataManagerSubscriber.php @@ -104,16 +104,12 @@ public function enable() { $data['message'] = 'unauthorized_user'; wp_send_json_error( $data ); - - return; // @phpstan-ignore-line } if ( empty( $_POST['cdn_url'] ) ) { $data['message'] = 'cdn_url_empty'; wp_send_json_error( $data ); - - return; // @phpstan-ignore-line } $cdn_url = filter_var( wp_unslash( $_POST['cdn_url'] ), FILTER_VALIDATE_URL ); @@ -122,8 +118,6 @@ public function enable() { $data['message'] = 'cdn_url_invalid_format'; wp_send_json_error( $data ); - - return; // @phpstan-ignore-line } $this->cdn_options->enable( esc_url_raw( $cdn_url ) ); @@ -156,8 +150,6 @@ public function disable() { $data['message'] = 'unauthorized_user'; wp_send_json_error( $data ); - - return; // @phpstan-ignore-line } $this->cdn_options->disable(); @@ -226,14 +218,10 @@ public function get_process_status() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - - return; // @phpstan-ignore-line } if ( get_option( 'rocketcdn_process' ) ) { wp_send_json_success(); - - return; // @phpstan-ignore-line } wp_send_json_error(); @@ -277,13 +265,11 @@ public function validate_token_cname() { if ( ! current_user_can( 'rocket_manage_options' ) ) { $data['message'] = 'unauthorized_user'; wp_send_json_error( $data ); - return; // @phpstan-ignore-line } if ( empty( $_POST['cdn_url'] ) || empty( $_POST['cdn_token'] ) ) { $data['message'] = 'cdn_values_empty'; wp_send_json_error( $data ); - return; // @phpstan-ignore-line } $token = sanitize_key( $_POST['cdn_token'] ); @@ -292,13 +278,11 @@ public function validate_token_cname() { if ( ! $cdn_url ) { $data['message'] = 'cdn_url_invalid_format'; wp_send_json_error( $data ); - return; // @phpstan-ignore-line } if ( 40 !== strlen( $token ) ) { $data['message'] = 'invalid_token_length'; wp_send_json_error( $data ); - return; // @phpstan-ignore-line } $current_token = get_option( 'rocketcdn_user_token' ); @@ -307,7 +291,6 @@ public function validate_token_cname() { if ( ! empty( $current_token ) ) { $data['message'] = 'token_already_set'; wp_send_json_error( $data ); - return; // @phpstan-ignore-line } update_option( 'rocketcdn_user_token', $token ); From 3a50df9ced7ccf232c465aea5b8a96781b507d8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 09:49:30 -0400 Subject: [PATCH 17/38] remove useless returns --- inc/Engine/CDN/RocketCDN/NoticesSubscriber.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php b/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php index f56df57a99..a09a968a59 100644 --- a/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php +++ b/inc/Engine/CDN/RocketCDN/NoticesSubscriber.php @@ -167,8 +167,6 @@ public function dismiss_notice() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'no permissions' ); - - return; // @phpstan-ignore-line } update_user_meta( get_current_user_id(), 'rocketcdn_dismiss_notice', true ); @@ -284,14 +282,10 @@ public function toggle_cta() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error( 'no permissions' ); - - return; // @phpstan-ignore-line } if ( ! isset( $_POST['status'] ) ) { wp_send_json_error( 'missing status' ); - - return; // @phpstan-ignore-line } if ( 'big' === $_POST['status'] ) { From f236cca22690f20e74224a2389b784432693c586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 09:58:58 -0400 Subject: [PATCH 18/38] make $filesystem nullable --- inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php index b1e95a1693..e4bb1cc8b8 100644 --- a/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php +++ b/inc/Engine/Cache/PurgeExpired/PurgeExpiredCache.php @@ -23,7 +23,7 @@ class PurgeExpiredCache { * * @since 3.4 * - * @var \WP_Filesystem_Direct + * @var null|\WP_Filesystem_Direct */ private $filesystem; @@ -76,7 +76,7 @@ public function purge_expired_files( $lifespan ) { $urls = array_unique( $urls ); - if ( empty( $this->filesystem ) ) { // @phpstan-ignore-line + if ( empty( $this->filesystem ) ) { $this->filesystem = rocket_direct_filesystem(); } From 6439929de0a52b8c5794866cfc3e8b234dc343ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:26:37 -0400 Subject: [PATCH 19/38] update return type --- inc/Engine/Common/Database/Queries/AbstractQuery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Engine/Common/Database/Queries/AbstractQuery.php b/inc/Engine/Common/Database/Queries/AbstractQuery.php index 4e66794281..c7dfa3a273 100644 --- a/inc/Engine/Common/Database/Queries/AbstractQuery.php +++ b/inc/Engine/Common/Database/Queries/AbstractQuery.php @@ -45,7 +45,7 @@ public function get_row( string $url, bool $is_mobile = false ) { * * @param int $row_id DB Row ID. * - * @return object|array|bool false if no row found, array or object if row found. + * @return object|array|false false if no row found, array or object if row found. */ public function get_row_by_id( int $row_id ) { if ( ! self::$table_exists && ! $this->table_exists() ) { From 446bd7edce702d1f492ff55c4560a5d3397aa912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:26:46 -0400 Subject: [PATCH 20/38] remove comment --- .../Common/JobManager/APIHandler/AbstractSafeAPIClient.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php index 79ca54d580..71b9c0271d 100644 --- a/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php +++ b/inc/Engine/Common/JobManager/APIHandler/AbstractSafeAPIClient.php @@ -72,7 +72,6 @@ private function send_request( $method, $params = [], $safe = false ) { $params['method'] = strtoupper( $method ); - /** @var WP_Error|array $response response from the request. */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $response = $this->send_remote_request( $api_url, $method, $params, $safe ); if ( is_wp_error( $response ) ) { From 03310870db3fc048bb21bbec2a5c4f2458dd53b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:26:52 -0400 Subject: [PATCH 21/38] check against null --- inc/Engine/Common/Queue/RUCSSQueueRunner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Engine/Common/Queue/RUCSSQueueRunner.php b/inc/Engine/Common/Queue/RUCSSQueueRunner.php index c07c5142f0..b1aad54c51 100644 --- a/inc/Engine/Common/Queue/RUCSSQueueRunner.php +++ b/inc/Engine/Common/Queue/RUCSSQueueRunner.php @@ -46,7 +46,7 @@ class RUCSSQueueRunner extends ActionScheduler_Abstract_QueueRunner { * @return RUCSSQueueRunner Instance. */ public static function instance() { - if ( empty( self::$runner ) ) { // @phpstan-ignore-line + if ( null === self::$runner ) { self::$runner = new RUCSSQueueRunner(); } return self::$runner; From 256bb3af8af6023f59dde5954a790b9554a08cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:27:03 -0400 Subject: [PATCH 22/38] remove unnecessary return --- inc/Engine/CriticalPath/Admin/Admin.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/inc/Engine/CriticalPath/Admin/Admin.php b/inc/Engine/CriticalPath/Admin/Admin.php index 6cb30f3b29..1b0aa711d9 100644 --- a/inc/Engine/CriticalPath/Admin/Admin.php +++ b/inc/Engine/CriticalPath/Admin/Admin.php @@ -51,8 +51,6 @@ public function cpcss_heartbeat() { ! current_user_can( 'rocket_regenerate_critical_css' ) ) { wp_send_json_error(); - - return; // @phpstan-ignore-line - Needed to prevent further execution. } $cpcss_pending = get_transient( 'rocket_cpcss_generation_pending' ); @@ -68,8 +66,6 @@ public function cpcss_heartbeat() { if ( empty( $cpcss_pending ) ) { $this->generation_complete(); wp_send_json_success( [ 'status' => 'cpcss_complete' ] ); - - return; // @phpstan-ignore-line - Needed to prevent further execution. } set_transient( 'rocket_cpcss_generation_pending', $cpcss_pending, HOUR_IN_SECONDS ); From cf27b4f7aa7735849815d5f580b5c43638a86acd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:27:13 -0400 Subject: [PATCH 23/38] remove unnecessary return --- inc/Engine/CriticalPath/Admin/Settings.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Engine/CriticalPath/Admin/Settings.php b/inc/Engine/CriticalPath/Admin/Settings.php index 48342624c3..6209f6c8d1 100644 --- a/inc/Engine/CriticalPath/Admin/Settings.php +++ b/inc/Engine/CriticalPath/Admin/Settings.php @@ -92,7 +92,6 @@ public function enable_mobile_cpcss() { if ( ! current_user_can( 'rocket_manage_options' ) || ! current_user_can( 'rocket_regenerate_critical_css' ) ) { wp_send_json_error(); - return; // @phpstan-ignore-line } $this->options->set( 'async_css_mobile', 1 ); From 8a4e53eed09a5a02308ae4dcd533efc347d3d065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:30:52 -0400 Subject: [PATCH 24/38] remove unnecessary condition --- inc/Engine/CriticalPath/ProcessorService.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/inc/Engine/CriticalPath/ProcessorService.php b/inc/Engine/CriticalPath/ProcessorService.php index 879e7aab64..d29cdaf65d 100644 --- a/inc/Engine/CriticalPath/ProcessorService.php +++ b/inc/Engine/CriticalPath/ProcessorService.php @@ -135,11 +135,7 @@ private function check_cpcss_job_status( $job_id, $item_path, $item_url, $is_mob } // For successful job status. - if ( - isset( $job_state, $job_details->data->critical_path ) - && - 'complete' === $job_state // @phpstan-ignore-line - ) { + if ( isset( $job_state, $job_details->data->critical_path ) ) { return $this->on_job_success( $item_path, $item_url, $job_details->data->critical_path, $is_mobile, $item_type ); } From 564cf2ae81aa8a5cab97318d4432244196daad3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:31:03 -0400 Subject: [PATCH 25/38] remove unnecessary condition --- inc/Engine/Media/AboveTheFold/AJAX/Controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php index 536797be2e..113491b369 100644 --- a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php +++ b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php @@ -126,7 +126,7 @@ public function add_data(): array { 'is_mobile' => $is_mobile, 'status' => $status_code, 'error_message' => $status_message, - 'lcp' => ( is_array( $lcp ) || is_object( $lcp ) ) ? wp_json_encode( $lcp ) : $lcp, // @phpstan-ignore-line + 'lcp' => is_object( $lcp ) ? wp_json_encode( $lcp ) : $lcp, 'viewport' => wp_json_encode( $viewport ), 'last_accessed' => current_time( 'mysql', true ), ]; From 2336475cd9c648ad187ce41b6e509f4a0416a7fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:31:17 -0400 Subject: [PATCH 26/38] update instantiation of delay JS subscriber --- inc/Engine/Optimization/DelayJS/ServiceProvider.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/inc/Engine/Optimization/DelayJS/ServiceProvider.php b/inc/Engine/Optimization/DelayJS/ServiceProvider.php index ee9576f73c..fb39c7a2c7 100644 --- a/inc/Engine/Optimization/DelayJS/ServiceProvider.php +++ b/inc/Engine/Optimization/DelayJS/ServiceProvider.php @@ -58,7 +58,6 @@ public function register(): void { ->addArgument( new Logger() ); $this->getContainer()->addShared( 'delay_js_subscriber', Subscriber::class ) ->addArgument( $this->getContainer()->get( 'delay_js_html' ) ) - ->addArgument( rocket_direct_filesystem() ) - ->addArgument( $this->getContainer()->get( 'options' ) ); + ->addArgument( rocket_direct_filesystem() ); } } From 840b62a6b01d0882a6267d2dea6479873c540259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:31:40 -0400 Subject: [PATCH 27/38] remove unnecessary return --- inc/Engine/Optimization/GoogleFonts/Admin/Settings.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php b/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php index b8ea9a274d..0414c864ba 100644 --- a/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php +++ b/inc/Engine/Optimization/GoogleFonts/Admin/Settings.php @@ -74,7 +74,6 @@ public function enable_google_fonts() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; // @phpstan-ignore-line } $this->options->set( 'minify_google_fonts', 1 ); From 322f258755b1ecea68d48111d2d5b8f9387f1ad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:31:50 -0400 Subject: [PATCH 28/38] remove unnecessary return --- inc/Engine/Optimization/RUCSS/Admin/Subscriber.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php index e2bdc02c98..08814e970a 100644 --- a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php +++ b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php @@ -441,7 +441,6 @@ public function spawn_cron() { if ( ! current_user_can( 'rocket_manage_options' ) ) { wp_send_json_error(); - return; // @phpstan-ignore-line - Needed to prevent further execution. } spawn_cron(); From 2a7e9c36b52ddb754ef2b2e290d6bbb45643a5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:31:58 -0400 Subject: [PATCH 29/38] remove comment --- inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php index a661cbd03e..99e8a5087c 100644 --- a/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Database/Queries/UsedCSS.php @@ -84,7 +84,6 @@ public function make_status_completed( string $url, bool $is_mobile, string $has } // Get the database interface. - /** @var \wpdb|bool $db Database interface instance or boolean. */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $db = $this->get_db(); // Bail if no database interface is available. From 08bd248b6227d7c06683d3edc5dbecef167e58a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:32:08 -0400 Subject: [PATCH 30/38] ignore error --- inc/Engine/Saas/Admin/Notices.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/Engine/Saas/Admin/Notices.php b/inc/Engine/Saas/Admin/Notices.php index fe08953e45..e740659bcb 100644 --- a/inc/Engine/Saas/Admin/Notices.php +++ b/inc/Engine/Saas/Admin/Notices.php @@ -185,12 +185,12 @@ public function display_success_notice() { * * @since 3.11 * - * @param object|array $data Localize script data. + * @param array $data Localize script data. * * @return array */ public function add_localize_script_data( $data ): array { - if ( ! is_array( $data ) ) { + if ( ! is_array( $data ) ) { // @phpstan-ignore-line $data = (array) $data; } From 85d1b217e15b67a9a99c24422076cdb07a0dc090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:32:18 -0400 Subject: [PATCH 31/38] update return hint --- inc/functions/posts.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inc/functions/posts.php b/inc/functions/posts.php index 5f058b3532..f3c4ed164c 100755 --- a/inc/functions/posts.php +++ b/inc/functions/posts.php @@ -12,7 +12,8 @@ * @param int $id The post ID. * @param string $title The post title. * @param string $name The post name. - * @return array|string[] The permalink + * + * @return array */ function get_rocket_sample_permalink( $id, $title = null, $name = null ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals $post = get_post( $id ); From bebf50ba1f432f33fe1401da71f5e6edfa5c1245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:32:25 -0400 Subject: [PATCH 32/38] make variable nullable --- inc/ThirdParty/Plugins/CDN/CloudflareFacade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php b/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php index 0a7844f21e..150ab511f7 100644 --- a/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php +++ b/inc/ThirdParty/Plugins/CDN/CloudflareFacade.php @@ -9,9 +9,9 @@ class CloudflareFacade { /** * Hooks class instance * - * @var Hooks + * @var null|Hooks */ - private $hooks; + private $hooks = null; /** * Instantiate the hooks class @@ -28,7 +28,7 @@ private function set_hooks() { * @return void */ public function purge_everything() { - if ( is_null( $this->hooks ) ) { // @phpstan-ignore-line + if ( is_null( $this->hooks ) ) { $this->set_hooks(); } @@ -43,7 +43,7 @@ public function purge_everything() { * @return void */ public function purge_urls( $post_ids ) { - if ( is_null( $this->hooks ) ) { // @phpstan-ignore-line + if ( is_null( $this->hooks ) ) { $this->set_hooks(); } From 17ddaaa203d58c08ef25a5b7b48b9f65e3174576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:32:41 -0400 Subject: [PATCH 33/38] ignore error --- inc/ThirdParty/Plugins/I18n/TranslatePress.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/inc/ThirdParty/Plugins/I18n/TranslatePress.php b/inc/ThirdParty/Plugins/I18n/TranslatePress.php index 2876d5d572..ff56aa7412 100644 --- a/inc/ThirdParty/Plugins/I18n/TranslatePress.php +++ b/inc/ThirdParty/Plugins/I18n/TranslatePress.php @@ -144,12 +144,12 @@ public function get_active_languages_uri( array $urls ): array { /** * Gets the active languages slugs * - * @param object|array $codes Array of languages codes. + * @param array $codes Array of languages codes. * * @return array */ public function get_active_languages_codes( $codes ) { - if ( ! is_array( $codes ) ) { + if ( ! is_array( $codes ) ) { // @phpstan-ignore-line $codes = (array) $codes; } @@ -208,15 +208,15 @@ public function get_home_url_for_lang( $home_url, $lang ) { /** * Gets all translations URLs for a post * - * @param object|array $urls Array of translated URLs. - * @param string $url URL to use. - * @param string $post_type Post type. - * @param string $regex Pattern to include at the end. + * @param array $urls Array of translated URLs. + * @param string $url URL to use. + * @param string $post_type Post type. + * @param string $regex Pattern to include at the end. * * @return array */ public function get_translated_post_urls( $urls, $url, $post_type, $regex ) { - if ( ! is_array( $urls ) ) { + if ( ! is_array( $urls ) ) { // @phpstan-ignore-line $urls = (array) $urls; } From 3c117b86f626f79cd9c39c837a86892717fb1eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:32:55 -0400 Subject: [PATCH 34/38] ignore error --- inc/ThirdParty/Plugins/ThirstyAffiliates.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/ThirdParty/Plugins/ThirstyAffiliates.php b/inc/ThirdParty/Plugins/ThirstyAffiliates.php index f1c86d7c2d..89d5b7d3c8 100644 --- a/inc/ThirdParty/Plugins/ThirstyAffiliates.php +++ b/inc/ThirdParty/Plugins/ThirstyAffiliates.php @@ -22,13 +22,13 @@ public static function get_subscribed_events() { * * @since 3.10.8 * - * @param string[]|object $excluded Array of excluded patterns. - * @param string[] $default Array of default excluded patterns. + * @param string[] $excluded Array of excluded patterns. + * @param string[] $default Array of default excluded patterns. * * @return array */ public function exclude_link_prefix( $excluded, $default ): array { - if ( ! is_array( $excluded ) ) { + if ( ! is_array( $excluded ) ) { // @phpstan-ignore-line $excluded = (array) $excluded; } From a59e11e5e9b4a4e5dc601261109f639e3f95dfd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:33:03 -0400 Subject: [PATCH 35/38] remove unused property --- inc/ThirdParty/Themes/ThemeResolver.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/inc/ThirdParty/Themes/ThemeResolver.php b/inc/ThirdParty/Themes/ThemeResolver.php index 4a8762c77b..296dd76409 100644 --- a/inc/ThirdParty/Themes/ThemeResolver.php +++ b/inc/ThirdParty/Themes/ThemeResolver.php @@ -4,13 +4,6 @@ namespace WP_Rocket\ThirdParty\Themes; class ThemeResolver { - /** - * Name of the current theme. - * - * @var string - */ - private static $theme_name = ''; // @phpstan-ignore-line - /** * Array of themes names with compatibility classes * @@ -49,8 +42,6 @@ public static function get_current_theme(): string { return ''; } - self::$theme_name = $template; - return $template; } } From f73c739d96bea16c28e87473f2c690242f908ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:33:57 -0400 Subject: [PATCH 36/38] remove extra space --- .../inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php index d2971b1f5c..42952b113a 100644 --- a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php +++ b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php @@ -32,4 +32,3 @@ ], ], ]; - From 10a4fe216ca030f4b6491682791b05d3abc9da23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Perona?= Date: Thu, 19 Sep 2024 17:34:16 -0400 Subject: [PATCH 37/38] throw exception for wp_send_json functions --- .../Admin/Admin/cpcssHeartbeat.php | 15 ++++-- .../Admin/Settings/enableMobileCpcss.php | 46 +++++++++++++------ .../Admin/Settings/enableGoogleFonts.php | 41 +++++++++-------- .../RUCSS/Admin/Subscriber/spawnCron.php | 30 ++++++------ 4 files changed, 81 insertions(+), 51 deletions(-) diff --git a/tests/Unit/inc/Engine/CriticalPath/Admin/Admin/cpcssHeartbeat.php b/tests/Unit/inc/Engine/CriticalPath/Admin/Admin/cpcssHeartbeat.php index f02dbc3737..66b88dd974 100644 --- a/tests/Unit/inc/Engine/CriticalPath/Admin/Admin/cpcssHeartbeat.php +++ b/tests/Unit/inc/Engine/CriticalPath/Admin/Admin/cpcssHeartbeat.php @@ -24,13 +24,13 @@ class Test_CpcssHeartbeat extends TestCase { private $processor; private $wp_error; - public static function setUpBeforeClass() : void { + public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); require_once WP_ROCKET_TESTS_FIXTURES_DIR . '/WP_Error.php'; } - protected function setUp() : void { + protected function setUp(): void { parent::setUp(); Functions\stubTranslationFunctions(); @@ -68,6 +68,8 @@ public function testShouldRunCPCSSHeartbeat( $config, $expected ) { $this->expectBailoutConditions( $expected ); } + $this->expectException( \Exception::class ); + $this->admin->cpcss_heartbeat(); } @@ -97,7 +99,8 @@ private function expectBailoutConditions( $expected ) { ->with( 'rocket_cpcss_generation_pending' ) ->never(); Functions\expect( $expected['json'] ) - ->once(); + ->once() + ->andThrow( new \Exception( 'Bailout' ) ); } private function expectTransientPending( $config, $expected ) { @@ -153,14 +156,16 @@ private function expectGenerationComplete( $config, $expected ) { if ( isset( $expected['generation_complete'] ) && ! $expected['generation_complete'] ) { Functions\expect( $expected['json'] ) ->once() - ->with( $expected['data'] ); + ->with( $expected['data'] ) + ->andThrow( new \Exception( 'not complete' ) ); } } private function assertGenerationCompleteWhenNotSet( $config, $expected ) { Functions\expect( $expected['json'] ) ->once() - ->with( $expected['data'] ); + ->with( $expected['data'] ) + ->andThrow( new \Exception( 'complete' ) ); if ( ! $config['rocket_critical_css_generation_process_running'] ) { Functions\expect( 'get_transient' ) diff --git a/tests/Unit/inc/Engine/CriticalPath/Admin/Settings/enableMobileCpcss.php b/tests/Unit/inc/Engine/CriticalPath/Admin/Settings/enableMobileCpcss.php index a9f0dc3f5f..2c36571401 100644 --- a/tests/Unit/inc/Engine/CriticalPath/Admin/Settings/enableMobileCpcss.php +++ b/tests/Unit/inc/Engine/CriticalPath/Admin/Settings/enableMobileCpcss.php @@ -9,17 +9,18 @@ /** * Test class covering \WP_Rocket\Engine\CriticalPath\Admin\Settings::enable_mobile_cpcss - * @uses ::rocket_get_constant * - * @group CriticalPath - * @group CriticalPathSettings + * @uses ::rocket_get_constant + * + * @group CriticalPath + * @group CriticalPathSettings */ class Test_EnableMobileCpcss extends TestCase { use AdminTrait; private $settings; - public function setUp() : void { + public function setUp(): void { parent::setUp(); $this->setUpMocks(); @@ -38,24 +39,43 @@ public function setUp() : void { * @dataProvider configTestData */ public function testShouldEnableMobileCpcss( $config, $update ) { - Functions\expect( 'current_user_can' )->once()->with( 'rocket_manage_options' )->andReturn( $config['rocket_manage_options'] ); - if ( isset( $config['rocket_regenerate_critical_css']) ) { - Functions\expect( 'current_user_can' )->once()->with( 'rocket_regenerate_critical_css' )->andReturn( $config['rocket_regenerate_critical_css'] ); + Functions\expect( 'current_user_can' ) + ->once() + ->with( 'rocket_manage_options' ) + ->andReturn( $config['rocket_manage_options'] ); + + if ( isset( $config['rocket_regenerate_critical_css'] ) ) { + Functions\expect( 'current_user_can' ) + ->once() + ->with( 'rocket_regenerate_critical_css' ) + ->andReturn( $config['rocket_regenerate_critical_css'] ); } if ( ! $update ) { - Functions\expect( 'wp_send_json_error' )->once(); + Functions\expect( 'wp_send_json_error' ) + ->once() + ->andThrow( new \Exception( 'no update' ) ); + $this->options->shouldReceive( 'set' )->never(); } else { - $this->options->shouldReceive( 'get_options' )->andReturn( $this->options ); - $this->options->shouldReceive( 'set' )->with( 'async_css_mobile', 1 ); + $this->options->shouldReceive( 'get_options' ) + ->andReturn( $this->options ); + $this->options->shouldReceive( 'set' ) + ->with( 'async_css_mobile', 1 ); - $this->critical_css->shouldReceive( 'process_handler' )->with( 'mobile' ); + $this->critical_css->shouldReceive( 'process_handler' ) + ->with( 'mobile' ); - Functions\expect( 'update_option' )->with( 'wp_rocket_settings', $this->options )->once(); - Functions\expect( 'wp_send_json_success' )->once(); + Functions\expect( 'update_option' ) + ->with( 'wp_rocket_settings', $this->options ) + ->once(); + Functions\expect( 'wp_send_json_success' ) + ->once() + ->andThrow( new \Exception( 'update' ) ); } + $this->expectException( \Exception::class ); + $this->settings->enable_mobile_cpcss(); } } diff --git a/tests/Unit/inc/Engine/Optimization/GoogleFonts/Admin/Settings/enableGoogleFonts.php b/tests/Unit/inc/Engine/Optimization/GoogleFonts/Admin/Settings/enableGoogleFonts.php index bcd34cd330..e127169d10 100644 --- a/tests/Unit/inc/Engine/Optimization/GoogleFonts/Admin/Settings/enableGoogleFonts.php +++ b/tests/Unit/inc/Engine/Optimization/GoogleFonts/Admin/Settings/enableGoogleFonts.php @@ -1,28 +1,29 @@ beacon = Mockery::mock( Beacon::class ); - $this->options = Mockery::mock( Options_Data::class ); + $this->beacon = Mockery::mock( Beacon::class ); + $this->options = Mockery::mock( Options_Data::class ); $this->settings = new Settings( $this->options, $this->beacon, @@ -33,7 +34,7 @@ public function setUp() : void { } /** - * @dataProvider provideTestData + * @dataProvider configTestData */ public function testShouldEnableGoogleFonts( $user_auth ) { Functions\when( 'current_user_can' )->justReturn( $user_auth ); @@ -43,28 +44,28 @@ public function testShouldEnableGoogleFonts( $user_auth ) { } else { $this->shouldSetOption(); } - } - public function shouldBail() { - Functions\expect( 'wp_send_json_error' )->once(); + $this->expectException( \Exception::class ); $this->settings->enable_google_fonts(); } + public function shouldBail() { + Functions\expect( 'wp_send_json_error' ) + ->once() + ->andThrow( new \Exception( 'no update' ) ); + } + public function shouldSetOption() { $this->options->shouldReceive( 'set' ) - ->once() - ->with( 'minify_google_fonts', 1 ); + ->once() + ->with( 'minify_google_fonts', 1 ); $this->options->shouldReceive( 'get_options' ) - ->once(); + ->once(); Functions\expect( 'update_option' )->once(); - Functions\expect( 'wp_send_json_success' )->once(); - - $this->settings->enable_google_fonts(); - } - - public function provideTestData() { - return $this->getTestData( __DIR__, 'enableGoogleFonts' ); + Functions\expect( 'wp_send_json_success' ) + ->once() + ->andThrow( new \Exception( 'update' ) ); } } diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php index 3f99c359f9..01ca50e791 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Subscriber/spawnCron.php @@ -3,9 +3,9 @@ use Brain\Monkey\Functions; use Mockery; -use WP_Rocket\Engine\Optimization\RUCSS\Admin\{Database,Settings,Subscriber}; -use WP_Rocket\Engine\Optimization\RUCSS\Controller\UsedCSS; use WP_Rocket\Engine\Common\JobManager\Queue\Queue; +use WP_Rocket\Engine\Optimization\RUCSS\Admin\{Database, Settings, Subscriber}; +use WP_Rocket\Engine\Optimization\RUCSS\Controller\UsedCSS; use WP_Rocket\Tests\Unit\TestCase; /** @@ -14,10 +14,9 @@ * @group RUCSS */ class Test_SpawnCron extends TestCase { - private $subscriber; - public function setUp() : void { + public function setUp(): void { parent::setUp(); $this->subscriber = new Subscriber( Mockery::mock( Settings::class ), Mockery::mock( Database::class ), Mockery::mock( UsedCSS::class ), Mockery::mock( Queue::class ) ); @@ -26,15 +25,20 @@ public function setUp() : void { /** * @dataProvider configTestData */ - public function testShouldReturnAsExpected($config, $expected) - { - Functions\when('rocket_get_constant')->justReturn($config['rocket_get_constant']); - - Functions\when('current_user_can')->justReturn($config['current_user_can']); - Functions\expect('wp_send_json_error')->times($expected['wp_send_json_error']); - Functions\when('check_ajax_referer')->justReturn(true); - Functions\when('wp_send_json_success')->justReturn(true); - Functions\expect('spawn_cron')->times($expected['spawnCronCalled']); + public function testShouldReturnAsExpected( $config, $expected ) { + Functions\when( 'rocket_get_constant' )->justReturn( $config['rocket_get_constant'] ); + + Functions\when( 'current_user_can' )->justReturn( $config['current_user_can'] ); + Functions\expect( 'wp_send_json_error' ) + ->times( $expected['wp_send_json_error'] ) + ->andThrow( new \Exception( 'error' ) ); + Functions\when( 'check_ajax_referer' )->justReturn( true ); + Functions\when( 'wp_send_json_success' )->justReturn( true ); + Functions\expect( 'spawn_cron' )->times( $expected['spawnCronCalled'] ); + + if ( $expected['wp_send_json_error'] > 0 ) { + $this->expectException( \Exception::class ); + } $this->subscriber->spawn_cron(); } From 80284455d9a1e16b421bad52586955358935e303 Mon Sep 17 00:00:00 2001 From: Gael Robin Date: Mon, 23 Sep 2024 12:31:09 +0200 Subject: [PATCH 38/38] Remove useless ignore --- inc/Engine/Saas/Admin/Notices.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/inc/Engine/Saas/Admin/Notices.php b/inc/Engine/Saas/Admin/Notices.php index e740659bcb..a8c454f1f9 100644 --- a/inc/Engine/Saas/Admin/Notices.php +++ b/inc/Engine/Saas/Admin/Notices.php @@ -189,11 +189,7 @@ public function display_success_notice() { * * @return array */ - public function add_localize_script_data( $data ): array { - if ( ! is_array( $data ) ) { // @phpstan-ignore-line - $data = (array) $data; - } - + public function add_localize_script_data( array $data ): array { if ( ! $this->options->get( 'remove_unused_css', 0 ) ) { return $data; }