WordPress.org

Make WordPress Core

Opened 3 years ago

Last modified 2 years ago

#39802 new defect (bug)

Multisite: "No importers are available" error message shown to site admins, but not to network admins

Reported by: thomaswm Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 4.7.2
Component: Import Keywords: needs-patch
Focuses: multisite Cc:

Description

Steps to reproduce:

  • Consider one site in a WordPress multisite install.
  • Verify that the "WordPress Importer" plugin is installed in the network, but disabled on this specific site.
  • Log in as a site administrator.
  • Click on "Tools" and "Import".
  • You'll see the message "No importers are available."

If, however, you open the same screen as a network admin, WordPress will show a link "Run importer". If you click it, WP will activate the "WordPress Importer" plugin and proceed with the import process.

This inconsistency is confusing to users. It does not really make sense because both site admins and network admins have the necessary capabilities to activate the importer plugin (provided that it is installed).

Change History (4)

#1 @thomaswm
3 years ago

It seems that lines 33ff. in wp-admin/import.php are responsible for this behaviour:

if ( current_user_can( 'install_plugins' ) ) {
        // List of popular importer plugins from the WordPress.org API.
        $popular_importers = wp_get_popular_importers();
} else {
        $popular_importers = array();
}

Site administrators do not have the install_plugins capability, but they do have the activate_plugins capability, which is sufficient if the specific importer plugin is already installed.

#2 @vhmarkgmailcom
2 years ago

This problem still exists in 4.8.1

#3 @vhmarkgmailcom
2 years ago

  • Keywords needs-patch added

This would be a good first bug fix

#4 @vhmarkgmailcom
2 years ago

Due to this same problem, the WordPress importer is also not available to network admins if you've disallowed plugin updates in wp-config.php

define('DISALLOW_FILE_MODS', 1);
Note: See TracTickets for help on using tickets.