From 9768edfeadbed20564b48377a73779eabcd3d9ed Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Tue, 25 May 2021 20:13:02 +0000 Subject: [PATCH] Administration: Improve the message about installing the Link Manager plugin to use legacy Links screen. This provides direct links to install and activate the plugin, if the user has the capabilities to do so, instead of just linking to plugin search results. It also matches more closely the message about installing the Classic Editor plugin for meta boxes incompatible with the block editor. Follow-up to [22855], [44280], [45657]. Props tw2113, peterwilsoncc, SergeyBiryukov. Fixes #52669. git-svn-id: https://develop.svn.wordpress.org/trunk@51011 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/bookmark.php | 38 ++++++++++++++++++++++++++---- src/wp-admin/includes/template.php | 18 +++++++++----- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/wp-admin/includes/bookmark.php b/src/wp-admin/includes/bookmark.php index 6cc6683f02..e3c10c54ea 100644 --- a/src/wp-admin/includes/bookmark.php +++ b/src/wp-admin/includes/bookmark.php @@ -341,10 +341,40 @@ function wp_link_manager_disabled_message() { $really_can_manage_links = current_user_can( 'manage_links' ); remove_filter( 'pre_option_link_manager_enabled', '__return_true', 100 ); - if ( $really_can_manage_links && current_user_can( 'install_plugins' ) ) { - $link = network_admin_url( 'plugin-install.php?tab=search&s=Link+Manager' ); - /* translators: %s: URL to install the Link Manager plugin. */ - wp_die( sprintf( __( 'If you are looking to use the link manager, please install the Link Manager plugin.' ), $link ) ); + if ( $really_can_manage_links ) { + $plugins = get_plugins(); + + if ( empty( $plugins['link-manager/link-manager.php'] ) ) { + if ( current_user_can( 'install_plugins' ) ) { + $install_url = wp_nonce_url( + self_admin_url( 'update.php?action=install-plugin&plugin=link-manager' ), + 'install-plugin_link-manager' + ); + + wp_die( + sprintf( + /* translators: %s: A link to install the Link Manager plugin. */ + __( 'If you are looking to use the link manager, please install the Link Manager plugin.' ), + esc_url( $install_url ) + ) + ); + } + } elseif ( is_plugin_inactive( 'link-manager/link-manager.php' ) ) { + if ( current_user_can( 'activate_plugins' ) ) { + $activate_url = wp_nonce_url( + self_admin_url( 'plugins.php?action=activate&plugin=link-manager/link-manager.php' ), + 'activate-plugin_link-manager/link-manager.php' + ); + + wp_die( + sprintf( + /* translators: %s: A link to activate the Link Manager plugin. */ + __( 'Please activate the Link Manager plugin to use the link manager.' ), + esc_url( $activate_url ) + ) + ); + } + } } wp_die( __( 'Sorry, you are not allowed to edit the links for this site.' ) ); diff --git a/src/wp-admin/includes/template.php b/src/wp-admin/includes/template.php index b8dfdcba1a..8e22630d6a 100644 --- a/src/wp-admin/includes/template.php +++ b/src/wp-admin/includes/template.php @@ -1148,17 +1148,23 @@ function do_block_editor_incompatible_meta_box( $object, $box ) { if ( empty( $plugins['classic-editor/classic-editor.php'] ) ) { if ( current_user_can( 'install_plugins' ) ) { - echo '

'; - printf( - /* translators: %s: A link to install the Classic Editor plugin. */ - __( 'Please install the Classic Editor plugin to use this meta box.' ), - esc_url( wp_nonce_url( self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ), 'save_wporg_username_' . get_current_user_id() ) ) + $install_url = wp_nonce_url( + self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ), + 'save_wporg_username_' . get_current_user_id() ); + + echo '

'; + /* translators: %s: A link to install the Classic Editor plugin. */ + printf( __( 'Please install the Classic Editor plugin to use this meta box.' ), esc_url( $install_url ) ); echo '

'; } } elseif ( is_plugin_inactive( 'classic-editor/classic-editor.php' ) ) { if ( current_user_can( 'activate_plugins' ) ) { - $activate_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php' ), 'activate-plugin_classic-editor/classic-editor.php' ); + $activate_url = wp_nonce_url( + self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php' ), + 'activate-plugin_classic-editor/classic-editor.php' + ); + echo '

'; /* translators: %s: A link to activate the Classic Editor plugin. */ printf( __( 'Please activate the Classic Editor plugin to use this meta box.' ), esc_url( $activate_url ) );