From 26f9d4ba3421bd123f9c7b447e162848cf8e27f2 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Thu, 19 Mar 2026 16:50:55 +0100 Subject: [PATCH 01/20] add "not supported" feature in plugin store --- .../plugin-block-list/plugin-block-list.php | 31 +++++++++++++++++++ .../stretch-extra/stretch-extra/index.php | 1 + 2 files changed, 32 insertions(+) create mode 100644 packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php new file mode 100644 index 000000000..b1e6491ad --- /dev/null +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -0,0 +1,31 @@ +Not Supported' + ]; + } + + return $action_links; +} + +add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); \ No newline at end of file diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/index.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/index.php index 4de767574..6dcfcfbe6 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/index.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/index.php @@ -41,3 +41,4 @@ require_once __DIR__ . '/inc/secondary-theme-dir.php'; require_once __DIR__ . '/inc/apcu.php'; require_once __DIR__ . '/inc/marketplace/marketplace.php'; +require_once __DIR__ . '/inc/plugin-block-list/plugin-block-list.php'; From 21386e363c3fd8c2ea527a9d02ecf7d7ee6890aa Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Mon, 23 Mar 2026 10:02:43 +0100 Subject: [PATCH 02/20] add correct blocked pluginslist --- .../inc/plugin-block-list/plugin-block-list.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index b1e6491ad..d9631c312 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -12,8 +12,17 @@ function disable_plugin_install_link( $action_links, $plugin ) { // Extra disallowed slugs $extra_disallowed_plugins = [ - 'gslider-blocks', - 'lordicon' + 'bwp-minify', + 'e-mail-broadcasting', + 'send-email-from-admin', + 'mailit', + 'nginx-helper', + 'stopbadbots', + 'w3-total-cache', + 'wp-fastest-cache', + 'wp-super-cache', + 'wp-rest-api-log', + 'website-file-changes-monitor' ]; $all_disallowed = array_merge( array_keys( $disallowed_plugins ), $extra_disallowed_plugins ); From 1bd5e3adfb9de468ed00f4692dc98e05e64ef262 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Mon, 23 Mar 2026 15:16:39 +0100 Subject: [PATCH 03/20] deactivate already installed and show admin notices --- .../plugin-block-list/plugin-block-list.php | 99 ++++++++++++++----- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index d9631c312..6a21c3271 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -1,34 +1,34 @@ 'BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', + 'e-mail-broadcasting/e-mail-broadcasting.php' => 'The use of "E-Mail Broadcasting" is not allowed.', + 'send-email-from-admin/send-email-from-admin.php' => 'The use of "Send Email From Admin" is not allowed.', + 'mailit/mailit.php' => 'The use of "Mail It!" is not allowed.', + 'nginx-helper/nginx-helper.php' => 'The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', + 'stopbadbots/stopbadbots.php' => 'The use of Stop Bad Bots is not allowed.', + 'w3-total-cache/w3-total-cache.php' => 'The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', + 'wp-fastest-cache/wpFastestCache.php' => 'The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', + 'wp-super-cache/wp-cache.php' => 'The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', + 'wp-rest-api-log/wp-rest-api-log.php' => 'WP REST API Log inflates post table size beyond normal usage levels.', + 'website-file-changes-monitor/website-file-changes-monitor.php' => 'Melapress File Monitor inflates the options table size beyond normal usage levels.', + ]; +} +/** + * Disable install button for disallowed plugins + */ function disable_plugin_install_link( $action_links, $plugin ) { + $disallowed = get_disallowed_plugins(); - // Check secondary plugins - if ( function_exists( 'get_all_custom_plugins' ) ) { - $disallowed_plugins = get_all_custom_plugins(); - } else { - $disallowed_plugins = []; - } - - // Extra disallowed slugs - $extra_disallowed_plugins = [ - 'bwp-minify', - 'e-mail-broadcasting', - 'send-email-from-admin', - 'mailit', - 'nginx-helper', - 'stopbadbots', - 'w3-total-cache', - 'wp-fastest-cache', - 'wp-super-cache', - 'wp-rest-api-log', - 'website-file-changes-monitor' - ]; - - $all_disallowed = array_merge( array_keys( $disallowed_plugins ), $extra_disallowed_plugins ); + // Compare using slug (derived from plugin file keys) + $disallowed_slugs = array_map( 'dirname', array_keys( $disallowed ) ); - // Check if this plugin is in the list - if ( in_array( $plugin['slug'], $all_disallowed, true ) ) { + if ( in_array( $plugin['slug'], $disallowed_slugs, true ) ) { return [ 'Not Supported' ]; @@ -37,4 +37,49 @@ function disable_plugin_install_link( $action_links, $plugin ) { return $action_links; } -add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); \ No newline at end of file +/** + * Disable activate button for disallowed plugins + */ +function disable_plugin_activate_link( $actions, $plugin_file ) { + $disallowed = get_disallowed_plugins(); + + if ( isset( $actions['activate'] ) && array_key_exists( $plugin_file, $disallowed ) ) { + $actions['activate'] = 'Disabled'; + unset( $actions['edit'] ); + } + + return $actions; +} + +/** + * Deactivate disallowed plugins if they are active + */ +function deactivate_disallowed_plugins() { + $disallowed = get_disallowed_plugins(); + $messages = []; + + foreach ( $disallowed as $plugin_file => $message ) { + if ( ! is_plugin_active( $plugin_file ) ) { + continue; + } + + deactivate_plugins( $plugin_file ); + $messages[] = $message; + } + + if ( ! empty( $messages ) ) { + add_action( 'admin_notices', function() use ( $messages ) { + foreach ( $messages as $message ) { + echo '

' . wp_kses_post( $message ) . '

'; + } + }); + } +} + +// Replace "Install" plugin link for plugins that not should not be activated (plugin-install.php) +add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); +// Replace "Activate" plugin link for plugins that should not be activated (plugins.php) +add_filter( 'plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); +add_filter( 'network_admin_plugin_action_links', 'disable_plugin_activate_link', 10, 2 );// Deal with disallowed plugins on the platform. + +add_action( 'admin_init', 'deactivate_disallowed_plugins', 10 ); \ No newline at end of file From 7940a91644a0a5bf13919e96487e1189644d53f6 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Mon, 23 Mar 2026 15:58:35 +0100 Subject: [PATCH 04/20] change to error notice --- .../stretch-extra/inc/plugin-block-list/plugin-block-list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 6a21c3271..adb07b69b 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -70,7 +70,7 @@ function deactivate_disallowed_plugins() { if ( ! empty( $messages ) ) { add_action( 'admin_notices', function() use ( $messages ) { foreach ( $messages as $message ) { - echo '

' . wp_kses_post( $message ) . '

'; + echo '

' . wp_kses_post( $message ) . '

'; } }); } From 8c2187a6271404227def3fd0f1e086bef94ee6a7 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Wed, 25 Mar 2026 13:29:15 +0100 Subject: [PATCH 05/20] refactor plugin upload view and add error message when uploading disallowed plugin --- .../plugin-block-list/plugin-block-list.php | 81 +++++++++++++------ 1 file changed, 56 insertions(+), 25 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index adb07b69b..43f5abb4f 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -1,7 +1,10 @@ reason) */ function get_disallowed_plugins() { return [ @@ -23,10 +26,7 @@ function get_disallowed_plugins() { * Disable install button for disallowed plugins */ function disable_plugin_install_link( $action_links, $plugin ) { - $disallowed = get_disallowed_plugins(); - - // Compare using slug (derived from plugin file keys) - $disallowed_slugs = array_map( 'dirname', array_keys( $disallowed ) ); + $disallowed_slugs = array_map( 'dirname', array_keys( get_disallowed_plugins() ) ); if ( in_array( $plugin['slug'], $disallowed_slugs, true ) ) { return [ @@ -36,6 +36,7 @@ function disable_plugin_install_link( $action_links, $plugin ) { return $action_links; } +add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); /** * Disable activate button for disallowed plugins @@ -50,36 +51,66 @@ function disable_plugin_activate_link( $actions, $plugin_file ) { return $actions; } +add_filter( 'plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); +add_filter( 'network_admin_plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); /** * Deactivate disallowed plugins if they are active */ function deactivate_disallowed_plugins() { $disallowed = get_disallowed_plugins(); - $messages = []; - foreach ( $disallowed as $plugin_file => $message ) { - if ( ! is_plugin_active( $plugin_file ) ) { - continue; + if ( is_plugin_active( $plugin_file ) ) { + deactivate_plugins( $plugin_file ); + add_action( 'admin_notices', function() use ( $message ) { + echo '

' . wp_kses_post( $message ) . '

'; + }); } + } +} +add_action( 'admin_init', 'deactivate_disallowed_plugins', 0 ); + + +/** + * Disallow installation of blocked plugins via the installer + */ +function block_disallowed_post_install( $true, $hook_extra, $result ) { + $disallowed = get_disallowed_plugins(); - deactivate_plugins( $plugin_file ); - $messages[] = $message; + if ( empty( $result['destination'] ) || ! is_dir( $result['destination'] ) ) { + return $true; } - if ( ! empty( $messages ) ) { - add_action( 'admin_notices', function() use ( $messages ) { - foreach ( $messages as $message ) { - echo '

' . wp_kses_post( $message ) . '

'; + $plugin_folder = basename( $result['destination'] ); + $files = scandir( $result['destination'] ); + + // ✅ Print normal text after "Unpacking the package…" + echo '

Validating against blocked plugins…

'; + + foreach ( $files as $file ) { + if ( substr( $file, -4 ) === '.php' ) { + $plugin_file = "$plugin_folder/$file"; + + if ( isset( $disallowed[ $plugin_file ] ) ) { + // Delete unpacked folder immediately + $it = new RecursiveDirectoryIterator( $result['destination'], RecursiveDirectoryIterator::SKIP_DOTS ); + $files_iter = new RecursiveIteratorIterator( $it, RecursiveIteratorIterator::CHILD_FIRST ); + foreach( $files_iter as $fileinfo ) { + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); + $todo($fileinfo->getRealPath()); + } + rmdir( $result['destination'] ); + + // ✅ Return WP_Error styled like a notice-error but **inline in installer** + $error_message = '
' . + '

This plugin is not supported on our Managed WordPress platform. Full list of blocked plugins.

' . // TODO link to documentation + '
'; + + return new WP_Error( 'plugin_blocked', $error_message ); } - }); + } } -} -// Replace "Install" plugin link for plugins that not should not be activated (plugin-install.php) -add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); -// Replace "Activate" plugin link for plugins that should not be activated (plugins.php) -add_filter( 'plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); -add_filter( 'network_admin_plugin_action_links', 'disable_plugin_activate_link', 10, 2 );// Deal with disallowed plugins on the platform. - -add_action( 'admin_init', 'deactivate_disallowed_plugins', 10 ); \ No newline at end of file + return $true; +} +add_filter( 'upgrader_post_install', 'block_disallowed_post_install', 10, 3 ); \ No newline at end of file From 2376a0b2d2f8a97692279868cad825213b3284c7 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Wed, 25 Mar 2026 14:23:21 +0100 Subject: [PATCH 06/20] add translations --- .../plugin-block-list/plugin-block-list.php | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 43f5abb4f..743ea1590 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -8,17 +8,17 @@ */ function get_disallowed_plugins() { return [ - 'bwp-minify/bwp-minify.php' => 'BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', - 'e-mail-broadcasting/e-mail-broadcasting.php' => 'The use of "E-Mail Broadcasting" is not allowed.', - 'send-email-from-admin/send-email-from-admin.php' => 'The use of "Send Email From Admin" is not allowed.', - 'mailit/mailit.php' => 'The use of "Mail It!" is not allowed.', - 'nginx-helper/nginx-helper.php' => 'The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', - 'stopbadbots/stopbadbots.php' => 'The use of Stop Bad Bots is not allowed.', - 'w3-total-cache/w3-total-cache.php' => 'The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', - 'wp-fastest-cache/wpFastestCache.php' => 'The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', - 'wp-super-cache/wp-cache.php' => 'The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', - 'wp-rest-api-log/wp-rest-api-log.php' => 'WP REST API Log inflates post table size beyond normal usage levels.', - 'website-file-changes-monitor/website-file-changes-monitor.php' => 'Melapress File Monitor inflates the options table size beyond normal usage levels.', + 'bwp-minify/bwp-minify.php' => __( 'BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', 'stretch-extra' ), + 'e-mail-broadcasting/e-mail-broadcasting.php' => __( 'The use of "E-Mail Broadcasting" is not allowed.', 'stretch-extra' ), + 'send-email-from-admin/send-email-from-admin.php' => __( 'The use of "Send Email From Admin" is not allowed.', 'stretch-extra' ), + 'mailit/mailit.php' => __( 'The use of "Mail It!" is not allowed.', 'stretch-extra' ), + 'nginx-helper/nginx-helper.php' => __( 'The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', 'stretch-extra' ), + 'stopbadbots/stopbadbots.php' => __( 'The use of Stop Bad Bots is not allowed.', 'stretch-extra' ), + 'w3-total-cache/w3-total-cache.php' => __( 'The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', 'stretch-extra' ), + 'wp-fastest-cache/wpFastestCache.php' => __( 'The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', 'stretch-extra' ), + 'wp-super-cache/wp-cache.php' => __( 'The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', 'stretch-extra' ), + 'wp-rest-api-log/wp-rest-api-log.php' => __( 'WP REST API Log inflates post table size beyond normal usage levels.', 'stretch-extra' ), + 'website-file-changes-monitor/website-file-changes-monitor.php' => __( 'Melapress File Monitor inflates the options table size beyond normal usage levels.', 'stretch-extra' ), ]; } @@ -30,7 +30,7 @@ function disable_plugin_install_link( $action_links, $plugin ) { if ( in_array( $plugin['slug'], $disallowed_slugs, true ) ) { return [ - 'Not Supported' + '' . __( 'Not Supported', 'stretch-extra' ) . '' ]; } @@ -45,7 +45,7 @@ function disable_plugin_activate_link( $actions, $plugin_file ) { $disallowed = get_disallowed_plugins(); if ( isset( $actions['activate'] ) && array_key_exists( $plugin_file, $disallowed ) ) { - $actions['activate'] = 'Disabled'; + $actions['activate'] = __( 'Disabled', 'stretch-extra' ); unset( $actions['edit'] ); } @@ -63,14 +63,13 @@ function deactivate_disallowed_plugins() { if ( is_plugin_active( $plugin_file ) ) { deactivate_plugins( $plugin_file ); add_action( 'admin_notices', function() use ( $message ) { - echo '

' . wp_kses_post( $message ) . '

'; + echo '

' . wp_kses_post( __( $message, 'stretch-extra' ) ) . '

'; }); } } } add_action( 'admin_init', 'deactivate_disallowed_plugins', 0 ); - /** * Disallow installation of blocked plugins via the installer */ @@ -84,8 +83,8 @@ function block_disallowed_post_install( $true, $hook_extra, $result ) { $plugin_folder = basename( $result['destination'] ); $files = scandir( $result['destination'] ); - // ✅ Print normal text after "Unpacking the package…" - echo '

Validating against blocked plugins…

'; + // Normal text after "Unpacking the package…" + echo '

' . esc_html__( 'Validating against blocked plugins…', 'stretch-extra' ) . '

'; foreach ( $files as $file ) { if ( substr( $file, -4 ) === '.php' ) { @@ -101,9 +100,13 @@ function block_disallowed_post_install( $true, $hook_extra, $result ) { } rmdir( $result['destination'] ); - // ✅ Return WP_Error styled like a notice-error but **inline in installer** + // Inline error styled like a notice $error_message = '
' . - '

This plugin is not supported on our Managed WordPress platform. Full list of blocked plugins.

' . // TODO link to documentation + '

' . sprintf( + /* translators: %s: link to blocked plugins list */ + __( 'This plugin is not supported on our Managed WordPress platform. %s', 'stretch-extra' ), + '' . __( 'Full list of blocked plugins', 'stretch-extra' ) . '' + ) . '

' . '
'; return new WP_Error( 'plugin_blocked', $error_message ); From 2da6794273ae466d685ac1291e1e3c10089041db Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Thu, 26 Mar 2026 14:12:07 +0100 Subject: [PATCH 07/20] update po files --- .../languages/stretch-extra-de_DE.po | 66 +++++++++++++++++ .../languages/stretch-extra-en_US.po | 66 +++++++++++++++++ .../languages/stretch-extra-es_ES.po | 66 +++++++++++++++++ .../languages/stretch-extra-es_MX.po | 66 +++++++++++++++++ .../languages/stretch-extra-fr_FR.po | 66 +++++++++++++++++ .../languages/stretch-extra-it_IT.po | 66 +++++++++++++++++ .../languages/stretch-extra-nl_NL.po | 66 +++++++++++++++++ .../languages/stretch-extra-sv_SE.po | 66 +++++++++++++++++ .../stretch-extra/languages/stretch-extra.pot | 70 ++++++++++++++++++- 9 files changed, 596 insertions(+), 2 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po index 566e63ba9..22388fb09 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po index bf624f30c..64346ec09 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po index 7f3f44208..0678e6c04 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po index e3c31daf1..f0a7c8b46 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po index c91094fa2..e54f32210 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po index 862973c17..b3fdf2141 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po index f8f1fe0b0..7da5a46b0 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po index 0b5c86c3b..d89ec9751 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/config.php msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot index c58281174..d34b22c94 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot @@ -9,9 +9,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-11T10:50:16+00:00\n" +"POT-Creation-Date: 2026-03-25T16:22:01+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.11.0\n" +"X-Generator: WP-CLI 2.12.0\n" "X-Domain: stretch-extra\n" #. Plugin Name of the plugin @@ -62,3 +62,69 @@ msgstr "" #: stretch-extra/inc/marketplace/marketplace.php msgid "recommends" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"E-Mail Broadcasting\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Send Email From Admin\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of \"Mail It!\" is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of Stop Bad Bots is not allowed." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "WP REST API Log inflates post table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Not Supported" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Disabled" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Validating against blocked plugins…" +msgstr "" + +#. translators: %s: link to blocked plugins list +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "This plugin is not supported on our Managed WordPress platform. %s" +msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +msgid "Full list of blocked plugins" +msgstr "" From f680f61424671e164d6058afc91c652297bb5421 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Thu, 26 Mar 2026 14:12:27 +0100 Subject: [PATCH 08/20] add cli blocking for specific plugins --- .../plugin-block-list/plugin-block-list.php | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 743ea1590..6c7faefcb 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -1,4 +1,8 @@ Date: Thu, 26 Mar 2026 14:37:46 +0100 Subject: [PATCH 09/20] lint fix --- .../plugin-block-list/plugin-block-list.php | 210 +++++++++--------- 1 file changed, 110 insertions(+), 100 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 6c7faefcb..eb90ce015 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -10,133 +10,143 @@ /** * List of disallowed plugins (plugin_file => reason) */ -function get_disallowed_plugins() { - return [ - 'bwp-minify/bwp-minify.php' => __( 'BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', 'stretch-extra' ), - 'e-mail-broadcasting/e-mail-broadcasting.php' => __( 'The use of "E-Mail Broadcasting" is not allowed.', 'stretch-extra' ), - 'send-email-from-admin/send-email-from-admin.php' => __( 'The use of "Send Email From Admin" is not allowed.', 'stretch-extra' ), - 'mailit/mailit.php' => __( 'The use of "Mail It!" is not allowed.', 'stretch-extra' ), - 'nginx-helper/nginx-helper.php' => __( 'The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', 'stretch-extra' ), - 'stopbadbots/stopbadbots.php' => __( 'The use of Stop Bad Bots is not allowed.', 'stretch-extra' ), - 'w3-total-cache/w3-total-cache.php' => __( 'The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', 'stretch-extra' ), - 'wp-fastest-cache/wpFastestCache.php' => __( 'The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', 'stretch-extra' ), - 'wp-super-cache/wp-cache.php' => __( 'The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', 'stretch-extra' ), - 'wp-rest-api-log/wp-rest-api-log.php' => __( 'WP REST API Log inflates post table size beyond normal usage levels.', 'stretch-extra' ), - 'website-file-changes-monitor/website-file-changes-monitor.php' => __( 'Melapress File Monitor inflates the options table size beyond normal usage levels.', 'stretch-extra' ), - ]; +function get_disallowed_plugins() +{ + return [ + 'bwp-minify/bwp-minify.php' => __('BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', 'stretch-extra'), + 'e-mail-broadcasting/e-mail-broadcasting.php' => __('The use of "E-Mail Broadcasting" is not allowed.', 'stretch-extra'), + 'send-email-from-admin/send-email-from-admin.php' => __('The use of "Send Email From Admin" is not allowed.', 'stretch-extra'), + 'mailit/mailit.php' => __('The use of "Mail It!" is not allowed.', 'stretch-extra'), + 'nginx-helper/nginx-helper.php' => __('The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', 'stretch-extra'), + 'stopbadbots/stopbadbots.php' => __('The use of Stop Bad Bots is not allowed.', 'stretch-extra'), + 'w3-total-cache/w3-total-cache.php' => __('The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', 'stretch-extra'), + 'wp-fastest-cache/wpFastestCache.php' => __('The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', 'stretch-extra'), + 'wp-super-cache/wp-cache.php' => __('The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', 'stretch-extra'), + 'wp-rest-api-log/wp-rest-api-log.php' => __('WP REST API Log inflates post table size beyond normal usage levels.', 'stretch-extra'), + 'website-file-changes-monitor/website-file-changes-monitor.php' => __('Melapress File Monitor inflates the options table size beyond normal usage levels.', 'stretch-extra'), + ]; } /** * Disable install button for disallowed plugins */ -function disable_plugin_install_link( $action_links, $plugin ) { - $disallowed_slugs = array_map( 'dirname', array_keys( get_disallowed_plugins() ) ); +function disable_plugin_install_link($action_links, $plugin) +{ + $disallowed_slugs = array_map('dirname', array_keys(get_disallowed_plugins())); - if ( in_array( $plugin['slug'], $disallowed_slugs, true ) ) { - return [ - '' . __( 'Not Supported', 'stretch-extra' ) . '' - ]; - } + if (in_array($plugin['slug'], $disallowed_slugs, true)) { + return [ + '' . __('Not Supported', 'stretch-extra') . '', + ]; + } - return $action_links; + return $action_links; } -add_filter( 'plugin_install_action_links', 'disable_plugin_install_link', 0, 2 ); +add_filter('plugin_install_action_links', 'disable_plugin_install_link', 0, 2); /** * Disable activate button for disallowed plugins */ -function disable_plugin_activate_link( $actions, $plugin_file ) { - $disallowed = get_disallowed_plugins(); +function disable_plugin_activate_link($actions, $plugin_file) +{ + $disallowed = get_disallowed_plugins(); - if ( isset( $actions['activate'] ) && array_key_exists( $plugin_file, $disallowed ) ) { - $actions['activate'] = __( 'Disabled', 'stretch-extra' ); - unset( $actions['edit'] ); - } + if (isset($actions['activate']) && array_key_exists($plugin_file, $disallowed)) { + $actions['activate'] = __('Disabled', 'stretch-extra'); + unset($actions['edit']); + } - return $actions; + return $actions; } -add_filter( 'plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); -add_filter( 'network_admin_plugin_action_links', 'disable_plugin_activate_link', 10, 2 ); +add_filter('plugin_action_links', 'disable_plugin_activate_link', 10, 2); +add_filter('network_admin_plugin_action_links', 'disable_plugin_activate_link', 10, 2); /** * Deactivate disallowed plugins if they are active */ -function deactivate_disallowed_plugins() { - $disallowed = get_disallowed_plugins(); - foreach ( $disallowed as $plugin_file => $message ) { - if ( is_plugin_active( $plugin_file ) ) { - deactivate_plugins( $plugin_file ); - add_action( 'admin_notices', function() use ( $message ) { - echo '

' . wp_kses_post( __( $message, 'stretch-extra' ) ) . '

'; - }); - } +function deactivate_disallowed_plugins() +{ + $disallowed = get_disallowed_plugins(); + foreach ($disallowed as $plugin_file => $message) { + if (is_plugin_active($plugin_file)) { + deactivate_plugins($plugin_file); + add_action('admin_notices', function () use ($message) { + echo '

' . wp_kses_post( + __($message, 'stretch-extra') + ) . '

'; + }); } + } } -add_action( 'admin_init', 'deactivate_disallowed_plugins', 0 ); +add_action('admin_init', 'deactivate_disallowed_plugins', 0); /** * Disallow installation of blocked plugins via the installer */ -function block_disallowed_post_install( $true, $hook_extra, $result ) { - $disallowed = get_disallowed_plugins(); - - if ( empty( $result['destination'] ) || ! is_dir( $result['destination'] ) ) { - return $true; - } +function block_disallowed_post_install($true, $hook_extra, $result) +{ + $disallowed = get_disallowed_plugins(); - $plugin_folder = basename( $result['destination'] ); - $files = scandir( $result['destination'] ); - - // Normal text after "Unpacking the package…" - echo '

' . esc_html__( 'Validating against blocked plugins…', 'stretch-extra' ) . '

'; - - foreach ( $files as $file ) { - if ( substr( $file, -4 ) === '.php' ) { - $plugin_file = "$plugin_folder/$file"; - - if ( isset( $disallowed[ $plugin_file ] ) ) { - // Delete unpacked folder immediately - $it = new RecursiveDirectoryIterator( $result['destination'], RecursiveDirectoryIterator::SKIP_DOTS ); - $files_iter = new RecursiveIteratorIterator( $it, RecursiveIteratorIterator::CHILD_FIRST ); - foreach( $files_iter as $fileinfo ) { - $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); - $todo($fileinfo->getRealPath()); - } - rmdir( $result['destination'] ); - - // Inline error styled like a notice - $error_message = '
' . - '

' . sprintf( - /* translators: %s: link to blocked plugins list */ - __( 'This plugin is not supported on our Managed WordPress platform. %s', 'stretch-extra' ), - '' . __( 'Full list of blocked plugins', 'stretch-extra' ) . '' - ) . '

' . - '
'; - - return new WP_Error( 'plugin_blocked', $error_message ); - } + if (empty($result['destination']) || ! is_dir($result['destination'])) { + return $true; + } + + $plugin_folder = basename($result['destination']); + $files = scandir($result['destination']); + + // Normal text after "Unpacking the package…" + echo '

' . esc_html__( + 'Validating against blocked plugins…', + 'stretch-extra' + ) . '

'; + + foreach ($files as $file) { + if (substr($file, -4) === '.php') { + $plugin_file = "{$plugin_folder}/{$file}"; + + if (isset($disallowed[$plugin_file])) { + // Delete unpacked folder immediately + $it = new RecursiveDirectoryIterator($result['destination'], RecursiveDirectoryIterator::SKIP_DOTS); + $files_iter = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); + foreach ($files_iter as $fileinfo) { + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); + $todo($fileinfo->getRealPath()); } + rmdir($result['destination']); + + // Inline error styled like a notice + $error_message = '
' . + '

' . sprintf( + /* translators: %s: link to blocked plugins list */ + __('This plugin is not supported on our Managed WordPress platform. %s', 'stretch-extra'), + '' . __('Full list of blocked plugins', 'stretch-extra') . '' + ) . '

' . + '
'; + + return new WP_Error('plugin_blocked', $error_message); + } } + } - return $true; + return $true; +} +add_filter('upgrader_post_install', 'block_disallowed_post_install', 10, 3); + +if (defined('WP_CLI') && \WP_CLI) { + add_filter( + 'validate_plugin_requirements', + function ($met_requirements, $plugin) { + $disallowed = get_disallowed_plugins(); + + if (array_key_exists($plugin, $disallowed)) { + return new WP_Error('plugin_not_supported', $disallowed[$plugin]); + } + + return $met_requirements; + }, + 10, + 2 + ); } -add_filter( 'upgrader_post_install', 'block_disallowed_post_install', 10, 3 ); - -if (defined('WP_CLI') && \WP_CLI ) { - add_filter( - 'validate_plugin_requirements', - function ( $met_requirements, $plugin ) { - $disallowed = get_disallowed_plugins(); - - if ( array_key_exists( $plugin, $disallowed ) ) { - return new WP_Error( - 'plugin_not_supported', $disallowed[ $plugin ] - ); - } - - return $met_requirements; - }, - 10, - 2 - ); -}; \ No newline at end of file From 7f936bb534f0a7afe0d564fa4f3b1d9747de813a Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Thu, 26 Mar 2026 14:43:02 +0100 Subject: [PATCH 10/20] remove test code --- .../stretch-extra/inc/plugin-block-list/plugin-block-list.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index eb90ce015..9198476ea 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -1,8 +1,4 @@ Date: Thu, 26 Mar 2026 19:25:39 +0100 Subject: [PATCH 11/20] addind notice in plugin install view, when plugin is not supported --- .../plugin-block-list/plugin-block-list.php | 63 ++++++++++++++++--- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 9198476ea..ac94c6403 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -1,4 +1,5 @@ ' . - '

' . sprintf( - /* translators: %s: link to blocked plugins list */ - __('This plugin is not supported on our Managed WordPress platform. %s', 'stretch-extra'), - '' . __('Full list of blocked plugins', 'stretch-extra') . '' - ) . '

' . - ''; + $error_message = error_notice_for_blocked_plugin(); return new WP_Error('plugin_blocked', $error_message); } @@ -130,6 +123,19 @@ function block_disallowed_post_install($true, $hook_extra, $result) } add_filter('upgrader_post_install', 'block_disallowed_post_install', 10, 3); +function error_notice_for_blocked_plugin() +{ + return '
' . + '

' . sprintf( + /* translators: %s: link to blocked plugins list */ + __('This plugin is not supported on our Managed WordPress platform. %s', 'stretch-extra'), + '' . __('Full list of blocked plugins', 'stretch-extra') . '' + ) . '

' . + '
'; +} + if (defined('WP_CLI') && \WP_CLI) { add_filter( 'validate_plugin_requirements', @@ -146,3 +152,42 @@ function ($met_requirements, $plugin) { 2 ); } + +add_action('admin_enqueue_scripts', function ($hook) { + if ($hook === 'plugin-install.php') { + wp_add_inline_script('jquery-core', " + jQuery(document).ready(function($){ + $('.plugin-card').each(function(){ + var pluginBox = $(this).find('.plugin-card-top'); + + // Check if the plugin has a 'Not Supported' button + if (pluginBox.find('.button-disabled:contains(\"" . __('Not Supported', 'stretch-extra') . "\")').length) { + // Avoid duplicate notices + if (!pluginBox.hasClass('blocked-notice-added')) { + var noticeHtml = '" . str_replace([ + "\n", "'"], + ['', "\\'"], + error_notice_for_blocked_plugin() + ) . "'; + pluginBox.prepend(noticeHtml); + pluginBox.addClass('blocked-notice-added'); + } + } + }); + }); + "); + } +}); + +add_action('admin_head', function () { + $screen = get_current_screen(); + if ($screen && $screen->id === 'plugin-install') { + echo ''; + } +}); From cde2a90a1d0ef3826a73aae0a74928374b1500c5 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Tue, 31 Mar 2026 09:52:27 +0200 Subject: [PATCH 12/20] pr fixes --- .../plugin-block-list/plugin-block-list.php | 102 +++++++++++------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index ac94c6403..cc4e8a7e9 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -98,26 +98,35 @@ function block_disallowed_post_install($true, $hook_extra, $result) ) . '

'; foreach ($files as $file) { - if (substr($file, -4) === '.php') { - $plugin_file = "{$plugin_folder}/{$file}"; - - if (isset($disallowed[$plugin_file])) { - // Delete unpacked folder immediately - $it = new RecursiveDirectoryIterator($result['destination'], RecursiveDirectoryIterator::SKIP_DOTS); - $files_iter = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); - foreach ($files_iter as $fileinfo) { - $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); - $todo($fileinfo->getRealPath()); - } - rmdir($result['destination']); - - // Inline error styled like a notice - $error_message = error_notice_for_blocked_plugin(); - - return new WP_Error('plugin_blocked', $error_message); - } + + // Guard: skip non-PHP files + if (substr($file, -4) !== '.php') { + continue; + } + + $plugin_file = "{$plugin_folder}/{$file}"; + + // Guard: skip allowed plugins + if (!isset($disallowed[$plugin_file])) { + continue; + } + + + $it = new RecursiveDirectoryIterator($result['destination'], RecursiveDirectoryIterator::SKIP_DOTS); + $files_iter = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); + + foreach ($files_iter as $fileinfo) { + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); + $todo($fileinfo->getRealPath()); } - } + + rmdir($result['destination']); + + return new WP_Error( + 'plugin_blocked', + error_notice_for_blocked_plugin() + ); +} return $true; } @@ -154,40 +163,51 @@ function ($met_requirements, $plugin) { } add_action('admin_enqueue_scripts', function ($hook) { - if ($hook === 'plugin-install.php') { + if ($hook !== 'plugin-install.php') { + return; + } + + // Get the HTML notice from your PHP function + $notice_html = str_replace( + ["\n", "'"], + ['', "\\'"], + error_notice_for_blocked_plugin() + ); + + // Get the "Not Supported" text for the JS check + $not_supported_text = __('Not Supported', 'stretch-extra'); + + // Add inline vanilla JS wp_add_inline_script('jquery-core', " - jQuery(document).ready(function($){ - $('.plugin-card').each(function(){ - var pluginBox = $(this).find('.plugin-card-top'); - - // Check if the plugin has a 'Not Supported' button - if (pluginBox.find('.button-disabled:contains(\"" . __('Not Supported', 'stretch-extra') . "\")').length) { - // Avoid duplicate notices - if (!pluginBox.hasClass('blocked-notice-added')) { - var noticeHtml = '" . str_replace([ - "\n", "'"], - ['', "\\'"], - error_notice_for_blocked_plugin() - ) . "'; - pluginBox.prepend(noticeHtml); - pluginBox.addClass('blocked-notice-added'); - } - } + document.addEventListener('DOMContentLoaded', function () { + document.querySelectorAll('.plugin-card').forEach(function (card) { + var pluginBox = card.querySelector('.plugin-card-top'); + if (!pluginBox) return; + + // Check if a button contains the 'Not Supported' text + var buttons = pluginBox.querySelectorAll('.button-disabled'); + var hasNotSupported = Array.from(buttons).some(function(btn) { + return btn.textContent.includes('{$not_supported_text}'); }); + + if (hasNotSupported && !pluginBox.classList.contains('blocked-notice-added')) { + pluginBox.insertAdjacentHTML('afterbegin', '{$notice_html}'); + pluginBox.classList.add('blocked-notice-added'); + } }); - "); - } + }); + "); }); add_action('admin_head', function () { $screen = get_current_screen(); if ($screen && $screen->id === 'plugin-install') { echo ''; } -}); +}); \ No newline at end of file From b11846275be79ed4a2a2ca03ece9b92e546d516d Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Tue, 31 Mar 2026 13:30:11 +0200 Subject: [PATCH 13/20] lint --- .../plugin-block-list/plugin-block-list.php | 44 ++++++++----------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index cc4e8a7e9..80d5a5fb9 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -101,32 +101,28 @@ function block_disallowed_post_install($true, $hook_extra, $result) // Guard: skip non-PHP files if (substr($file, -4) !== '.php') { - continue; + continue; } $plugin_file = "{$plugin_folder}/{$file}"; // Guard: skip allowed plugins - if (!isset($disallowed[$plugin_file])) { - continue; + if (! isset($disallowed[$plugin_file])) { + continue; } - - $it = new RecursiveDirectoryIterator($result['destination'], RecursiveDirectoryIterator::SKIP_DOTS); + $it = new RecursiveDirectoryIterator($result['destination'], RecursiveDirectoryIterator::SKIP_DOTS); $files_iter = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); foreach ($files_iter as $fileinfo) { - $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); - $todo($fileinfo->getRealPath()); + $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); + $todo($fileinfo->getRealPath()); } rmdir($result['destination']); - return new WP_Error( - 'plugin_blocked', - error_notice_for_blocked_plugin() - ); -} + return new WP_Error('plugin_blocked', error_notice_for_blocked_plugin()); + } return $true; } @@ -163,22 +159,18 @@ function ($met_requirements, $plugin) { } add_action('admin_enqueue_scripts', function ($hook) { - if ($hook !== 'plugin-install.php') { - return; - } + if ($hook !== 'plugin-install.php') { + return; + } - // Get the HTML notice from your PHP function - $notice_html = str_replace( - ["\n", "'"], - ['', "\\'"], - error_notice_for_blocked_plugin() - ); + // Get the HTML notice from your PHP function + $notice_html = str_replace(["\n", "'"], ['', "\\'"], error_notice_for_blocked_plugin()); - // Get the "Not Supported" text for the JS check - $not_supported_text = __('Not Supported', 'stretch-extra'); + // Get the "Not Supported" text for the JS check + $not_supported_text = __('Not Supported', 'stretch-extra'); - // Add inline vanilla JS - wp_add_inline_script('jquery-core', " + // Add inline vanilla JS + wp_add_inline_script('jquery-core', " document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.plugin-card').forEach(function (card) { var pluginBox = card.querySelector('.plugin-card-top'); @@ -210,4 +202,4 @@ function ($met_requirements, $plugin) { } '; } -}); \ No newline at end of file +}); From ba968e34dac07dad904c0b02a07869b246480428 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Tue, 31 Mar 2026 15:55:59 +0200 Subject: [PATCH 14/20] refactor inline style tag --- .../inc/plugin-block-list/plugin-block-list.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 80d5a5fb9..f32e18893 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -92,7 +92,18 @@ function block_disallowed_post_install($true, $hook_extra, $result) $files = scandir($result['destination']); // Normal text after "Unpacking the package…" - echo '

' . esc_html__( + wp_register_style('stretch-extra-inline', false); + wp_enqueue_style('stretch-extra-inline'); + + wp_add_inline_style('stretch-extra-inline', ' + .zip-upload-text { + margin: 0 0 8px 0; + font-style: italic; + color: #555; + } + '); + + echo '

' . esc_html__( 'Validating against blocked plugins…', 'stretch-extra' ) . '

'; From cb7d318ca7e9aa46cf3ff7b19695459e55a52e47 Mon Sep 17 00:00:00 2001 From: Lars Gersmann Date: Wed, 1 Apr 2026 13:10:34 +0200 Subject: [PATCH 15/20] fix(stretch-extra): improve error notice for deactivated disallowed plugins --- .../stretch-extra/inc/plugin-block-list/plugin-block-list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index f32e18893..48374916f 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -69,7 +69,7 @@ function deactivate_disallowed_plugins() deactivate_plugins($plugin_file); add_action('admin_notices', function () use ($message) { echo '

' . wp_kses_post( - __($message, 'stretch-extra') + $message ) . '

'; }); } From 8a3980354c26568bcb88f515e9d26c46cd2651d5 Mon Sep 17 00:00:00 2001 From: Lars Gersmann Date: Wed, 1 Apr 2026 13:11:45 +0200 Subject: [PATCH 16/20] fix(plugin-block-list): streamline error notice for deactivated disallowed plugins --- .../stretch-extra/inc/plugin-block-list/plugin-block-list.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 48374916f..ba89c2464 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -68,9 +68,7 @@ function deactivate_disallowed_plugins() if (is_plugin_active($plugin_file)) { deactivate_plugins($plugin_file); add_action('admin_notices', function () use ($message) { - echo '

' . wp_kses_post( - $message - ) . '

'; + echo '

' . wp_kses_post($message) . '

'; }); } } From 8e6f38d5c91e3e95568ab1a975cfebc1c0e1f6a9 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Wed, 1 Apr 2026 14:44:24 +0200 Subject: [PATCH 17/20] refactor blocked_plugins_array --- .../plugin-block-list/plugin-block-list.php | 58 +++++++++++++------ 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index ba89c2464..51f3f8edb 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -10,17 +10,17 @@ function get_disallowed_plugins() { return [ - 'bwp-minify/bwp-minify.php' => __('BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php.', 'stretch-extra'), - 'e-mail-broadcasting/e-mail-broadcasting.php' => __('The use of "E-Mail Broadcasting" is not allowed.', 'stretch-extra'), - 'send-email-from-admin/send-email-from-admin.php' => __('The use of "Send Email From Admin" is not allowed.', 'stretch-extra'), - 'mailit/mailit.php' => __('The use of "Mail It!" is not allowed.', 'stretch-extra'), - 'nginx-helper/nginx-helper.php' => __('The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated.', 'stretch-extra'), - 'stopbadbots/stopbadbots.php' => __('The use of Stop Bad Bots is not allowed.', 'stretch-extra'), - 'w3-total-cache/w3-total-cache.php' => __('The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated.', 'stretch-extra'), - 'wp-fastest-cache/wpFastestCache.php' => __('The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated.', 'stretch-extra'), - 'wp-super-cache/wp-cache.php' => __('The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated.', 'stretch-extra'), - 'wp-rest-api-log/wp-rest-api-log.php' => __('WP REST API Log inflates post table size beyond normal usage levels.', 'stretch-extra'), - 'website-file-changes-monitor/website-file-changes-monitor.php' => __('Melapress File Monitor inflates the options table size beyond normal usage levels.', 'stretch-extra'), + 'bwp-minify/bwp-minify.php', + 'e-mail-broadcasting/e-mail-broadcasting.php', + 'send-email-from-admin/send-email-from-admin.php', + 'mailit/mailit.php', + 'nginx-helper/nginx-helper.php', + 'stopbadbots/stopbadbots.php', + 'w3-total-cache/w3-total-cache.php', + 'wp-fastest-cache/wpFastestCache.php', + 'wp-super-cache/wp-cache.php', + 'wp-rest-api-log/wp-rest-api-log.php', + 'website-file-changes-monitor/website-file-changes-monitor.php', ]; } @@ -29,7 +29,7 @@ function get_disallowed_plugins() */ function disable_plugin_install_link($action_links, $plugin) { - $disallowed_slugs = array_map('dirname', array_keys(get_disallowed_plugins())); + $disallowed_slugs = array_map('dirname', get_disallowed_plugins()); if (in_array($plugin['slug'], $disallowed_slugs, true)) { return [ @@ -48,7 +48,7 @@ function disable_plugin_activate_link($actions, $plugin_file) { $disallowed = get_disallowed_plugins(); - if (isset($actions['activate']) && array_key_exists($plugin_file, $disallowed)) { + if (isset($actions['activate']) && in_array($plugin_file, $disallowed, true)) { $actions['activate'] = __('Disabled', 'stretch-extra'); unset($actions['edit']); } @@ -63,12 +63,32 @@ function disable_plugin_activate_link($actions, $plugin_file) */ function deactivate_disallowed_plugins() { + // Make sure plugin functions are available + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + $disallowed = get_disallowed_plugins(); - foreach ($disallowed as $plugin_file => $message) { + + foreach ($disallowed as $plugin_file) { if (is_plugin_active($plugin_file)) { + + // Get plugin data (real name from header) + $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_file); + $plugin_name = ! empty($plugin_data['Name']) + ? $plugin_data['Name'] + : $plugin_file; // fallback + deactivate_plugins($plugin_file); - add_action('admin_notices', function () use ($message) { - echo '

' . wp_kses_post($message) . '

'; + + add_action('admin_notices', function () use ($plugin_name) { + + $message = sprintf( + __('The use of "%s" is not allowed and cannot be activated. Uninstall is recommended.', 'stretch-extra'), + $plugin_name + ); + + echo '

' . + wp_kses_post($message) . + '

'; }); } } @@ -108,15 +128,15 @@ function block_disallowed_post_install($true, $hook_extra, $result) foreach ($files as $file) { - // Guard: skip non-PHP files + // skip non-PHP files if (substr($file, -4) !== '.php') { continue; } $plugin_file = "{$plugin_folder}/{$file}"; - // Guard: skip allowed plugins - if (! isset($disallowed[$plugin_file])) { + // skip allowed plugins + if (! in_array($plugin_file, $disallowed, true)) { continue; } From 8214fe4995a60ed7e006398f3bb973c5ed094c23 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Wed, 1 Apr 2026 16:26:27 +0200 Subject: [PATCH 18/20] remove strings --- .../languages/stretch-extra-de_DE.po | 49 ++----------------- .../languages/stretch-extra-en_US.po | 49 ++----------------- .../languages/stretch-extra-es_ES.po | 49 ++----------------- .../languages/stretch-extra-es_MX.po | 49 ++----------------- .../languages/stretch-extra-fr_FR.po | 49 ++----------------- .../languages/stretch-extra-it_IT.po | 49 ++----------------- .../languages/stretch-extra-nl_NL.po | 49 ++----------------- .../languages/stretch-extra-sv_SE.po | 49 ++----------------- .../stretch-extra/languages/stretch-extra.pot | 49 ++----------------- 9 files changed, 45 insertions(+), 396 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po index 22388fb09..d3d38ef02 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-de_DE.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po index 64346ec09..fb94b6fc1 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-en_US.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po index 0678e6c04..5e636a1de 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_ES.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po index f0a7c8b46..4c0c7e89a 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-es_MX.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po index e54f32210..6c94d6644 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-fr_FR.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po index b3fdf2141..82bdf5c63 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-it_IT.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po index 7da5a46b0..ae5ed0434 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-nl_NL.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po index d89ec9751..73f376d1a 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra-sv_SE.po @@ -63,50 +63,6 @@ msgstr "" msgid "Provides guided onboarding and a Site Assistant in the WordPress admin." msgstr "" -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." -msgstr "" - #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Not Supported" msgstr "" @@ -128,3 +84,8 @@ msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php msgid "Full list of blocked plugins" msgstr "" + +#: stretch-extra/inc/plugin-block-list/plugin-block-list.php +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." +msgstr "" diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot index d34b22c94..519dcb072 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/languages/stretch-extra.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-03-25T16:22:01+00:00\n" +"POT-Creation-Date: 2026-04-01T14:13:44+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: stretch-extra\n" @@ -64,55 +64,16 @@ msgid "recommends" msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "BWP Minify (as of 1.3.3) is not ready for use. The plugin writes a configuration file that must be edited manually to support plugins and themes installed via symlinks. Because it breaks sites upon activation, we have automatically deactivated the plugin to keep your site working. In the interest of making BWP Minify compatible, we provided this patch to the author in May 2016. If you choose to fix the configuration file yourself, you may skip the automatic deactivation by renaming bwp-minify/bwp-minify.php." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"E-Mail Broadcasting\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Send Email From Admin\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of \"Mail It!\" is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Nginx Helper can interfere with caching, which is automatically provided for this site. Nginx Helper has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of Stop Bad Bots is not allowed." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of W3 Total Cache can interfere with caching, which is automatically provided for this site. W3 Total Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Fastest Cache can interfere with caching, which is automatically provided for this site. WP Fastest Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "The use of WP Super Cache can interfere with caching, which is automatically provided for this site. WP Super Cache has been deactivated." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "WP REST API Log inflates post table size beyond normal usage levels." -msgstr "" - -#: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Melapress File Monitor inflates the options table size beyond normal usage levels." +msgid "Not Supported" msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Not Supported" +msgid "Disabled" msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php -msgid "Disabled" +#, php-format +msgid "The use of \"%s\" is not allowed and cannot be activated. Uninstall is recommended." msgstr "" #: stretch-extra/inc/plugin-block-list/plugin-block-list.php From d09187cf80767198ab9ac23e8d70f446d1a2398e Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Wed, 1 Apr 2026 16:32:56 +0200 Subject: [PATCH 19/20] refactor blocking of plugin via wpcli --- .../plugin-block-list/plugin-block-list.php | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 51f3f8edb..2d8725b88 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -3,7 +3,7 @@ /** * MU Plugin: Block disallowed plugins from UI and WP-CLI */ - +defined('ABSPATH') || exit(); /** * List of disallowed plugins (plugin_file => reason) */ @@ -170,21 +170,31 @@ function error_notice_for_blocked_plugin() ''; } -if (defined('WP_CLI') && \WP_CLI) { - add_filter( - 'validate_plugin_requirements', - function ($met_requirements, $plugin) { - $disallowed = get_disallowed_plugins(); +// Only run in WP-CLI +if (defined('WP_CLI') && WP_CLI) { + + // Intercept plugin activation command + \WP_CLI::add_command('plugin', function($args, $assoc_args) { + + // This only intercepts activate/install commands + $disallowed = get_disallowed_plugins(); + $command = isset($args[0]) ? $args[0] : ''; + + if ($command === 'activate' || ($command === 'install' && isset($assoc_args['activate']))) { - if (array_key_exists($plugin, $disallowed)) { - return new WP_Error('plugin_not_supported', $disallowed[$plugin]); + $plugin = isset($args[1]) ? $args[1] : ''; + if (in_array($plugin, $disallowed, true)) { + $error_message = sprintf( + __('The use of "%s" is not allowed and cannot be activated. Uninstall is recommended.', 'stretch-extra'), + $plugin + ); + \WP_CLI::error($error_message); } + } - return $met_requirements; - }, - 10, - 2 - ); + // If not blocked, fallback to default plugin command + \WP_CLI::run_command($args, $assoc_args); + }); } add_action('admin_enqueue_scripts', function ($hook) { From 49d5bbd9fb36c51171c6ee2350530f273105d909 Mon Sep 17 00:00:00 2001 From: Denise Stamatov Date: Thu, 2 Apr 2026 15:22:13 +0200 Subject: [PATCH 20/20] refactor wpcli blocking of disallowed plugins --- .../plugin-block-list/plugin-block-list.php | 107 ++++++++++++++---- 1 file changed, 88 insertions(+), 19 deletions(-) diff --git a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php index 2d8725b88..7a7673158 100644 --- a/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php +++ b/packages/wp-mu-plugin/stretch-extra/stretch-extra/inc/plugin-block-list/plugin-block-list.php @@ -24,12 +24,20 @@ function get_disallowed_plugins() ]; } +function get_blocked_plugins_slug(){ + return array_map('dirname', get_disallowed_plugins()); +} + +function get_plugin_slug($plugin) { + return strpos($plugin, '/') !== false ? dirname($plugin) : $plugin; +} + /** * Disable install button for disallowed plugins */ function disable_plugin_install_link($action_links, $plugin) { - $disallowed_slugs = array_map('dirname', get_disallowed_plugins()); + $disallowed_slugs = get_blocked_plugins_slug(); if (in_array($plugin['slug'], $disallowed_slugs, true)) { return [ @@ -155,7 +163,9 @@ function block_disallowed_post_install($true, $hook_extra, $result) return $true; } -add_filter('upgrader_post_install', 'block_disallowed_post_install', 10, 3); +if ( ! ( defined( 'WP_CLI' ) && WP_CLI ) ) { + add_filter( 'upgrader_post_install', 'block_disallowed_post_install', 10, 3 ); +} function error_notice_for_blocked_plugin() { @@ -172,29 +182,88 @@ function error_notice_for_blocked_plugin() // Only run in WP-CLI if (defined('WP_CLI') && WP_CLI) { + // Helper variables and functions to block plugin activation via WP-CLI for disallowed plugins + $blocked_slugs = get_blocked_plugins_slug(); + $blocked_slug_map = array_flip($blocked_slugs); + + $get_plugin_slug = function($plugin) { + return strpos($plugin, '/') !== false ? dirname($plugin) : $plugin; + }; + + $is_disallowed = function($plugin) use ($blocked_slug_map, $get_plugin_slug) { + $slug = $get_plugin_slug($plugin); + return isset($blocked_slug_map[$slug]); + }; + + // Extract plugin slugs from CLI command + $extract_plugins_from_argv = function($command) { + $argv = $_SERVER['argv'] ?? []; + $plugins = []; + $found_command = false; + + foreach ($argv as $arg) { + // Start collecting after the command (activate / install) + if ($found_command) { + $plugins[] = $arg; + } + if ($arg === $command) { + $found_command = true; + } + } - // Intercept plugin activation command - \WP_CLI::add_command('plugin', function($args, $assoc_args) { + return $plugins; + }; - // This only intercepts activate/install commands - $disallowed = get_disallowed_plugins(); - $command = isset($args[0]) ? $args[0] : ''; + // Block "wp plugin activate" + \WP_CLI::add_hook('before_invoke:plugin activate', function($args, $assoc_args = []) use ($is_disallowed, $extract_plugins_from_argv) { - if ($command === 'activate' || ($command === 'install' && isset($assoc_args['activate']))) { + $plugins = $extract_plugins_from_argv('activate'); - $plugin = isset($args[1]) ? $args[1] : ''; - if (in_array($plugin, $disallowed, true)) { - $error_message = sprintf( - __('The use of "%s" is not allowed and cannot be activated. Uninstall is recommended.', 'stretch-extra'), - $plugin - ); - \WP_CLI::error($error_message); - } + foreach ($plugins as $plugin) { + if ($is_disallowed($plugin)) { + \WP_CLI::error(sprintf( + __('The use of "%s" is not allowed and cannot be activated. Uninstall is recommended.', 'stretch-extra'), + $plugin + )); + } + } + }); + + // Block "wp plugin install --activate" + \WP_CLI::add_hook('before_invoke:plugin install', function($args, $assoc_args = []) use ($is_disallowed) { + + $argv = $_SERVER['argv'] ?? []; + + // Only run blocking if --activate is present + if (!in_array('--activate', $argv, true)) { + return; } - // If not blocked, fallback to default plugin command - \WP_CLI::run_command($args, $assoc_args); - }); + // Collect all plugin slugs after "install" + $plugins = []; + $found_install = false; + foreach ($argv as $arg) { + if ($found_install) { + // stop at any option starting with -- + if (str_starts_with($arg, '--')) { + break; + } + $plugins[] = $arg; + } + if ($arg === 'install') { + $found_install = true; + } + } + + foreach ($plugins as $plugin) { + if ($is_disallowed($plugin)) { + \WP_CLI::error(sprintf( + __('The use of "%s" is not allowed and cannot be activated via install. Uninstall is recommended.', 'stretch-extra'), + $plugin + )); + } + } +}); } add_action('admin_enqueue_scripts', function ($hook) {