diff --git a/src/wp-admin/edit-form-blocks.php b/src/wp-admin/edit-form-blocks.php index fd279f4a8b..6282f90f78 100644 --- a/src/wp-admin/edit-form-blocks.php +++ b/src/wp-admin/edit-form-blocks.php @@ -320,20 +320,36 @@ require_once ABSPATH . 'wp-admin/admin-header.php';

Classic Editor plugin.' ), - esc_url( wp_nonce_url( self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ), 'save_wporg_username_' . get_current_user_id() ) ) - ); + if ( file_exists( WP_PLUGIN_DIR . '/classic-editor/classic-editor.php' ) ) { + // If Classic Editor is already installed, provide a link to activate the plugin. + $installed = true; + $plugin_activate_url = wp_nonce_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php', 'activate-plugin_classic-editor/classic-editor.php' ); + $message = sprintf( + /* translators: %s: Link to activate the Classic Editor plugin. */ + __( 'The block editor requires JavaScript. Please enable JavaScript in your browser settings, or activate the Classic Editor plugin.' ), + esc_url( $plugin_activate_url ) + ); + } else { + // If Classic Editor is not installed, provide a link to install it. + $installed = false; + $plugin_install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=classic-editor' ), 'install-plugin_classic-editor' ); + $message = sprintf( + /* translators: %s: Link to install the Classic Editor plugin. */ + __( 'The block editor requires JavaScript. Please enable JavaScript in your browser settings, or install the Classic Editor plugin.' ), + esc_url( $plugin_install_url ) + ); + } /** * Filters the message displayed in the block editor interface when JavaScript is * not enabled in the browser. * * @since 5.0.3 + * @since 6.4.0 Added `$installed` parameter. * - * @param string $message The message being displayed. - * @param WP_Post $post The post being edited. + * @param string $message The message being displayed. + * @param WP_Post $post The post being edited. + * @param bool $installed Whether the classic editor is installed. */ $message = apply_filters( 'block_editor_no_javascript_message', $message, $post ); wp_admin_notice(