WP_Recovery_Mode_Email_Service::get_plugin()privateWP 5.3.0

Return the details for a single plugin based on the extension data from an error.

Method of the class: WP_Recovery_Mode_Email_Service{}

No Hooks.

Return

Array|false. A plugin array get_plugins() or false if no plugin was found.

Usage

// private - for code of main (parent) class only
$result = $this->get_plugin( $extension );
$extension(array) (required)

The extension that caused the error.

  • slug(string)
    The extension slug. The directory of the plugin or theme.

  • type(string)
    The extension type. Either 'plugin' or 'theme'.

Changelog

Since 5.3.0 Introduced.

WP_Recovery_Mode_Email_Service::get_plugin() code WP 6.6.2

private function get_plugin( $extension ) {
	if ( ! function_exists( 'get_plugins' ) ) {
		require_once ABSPATH . 'wp-admin/includes/plugin.php';
	}

	$plugins = get_plugins();

	// Assume plugin main file name first since it is a common convention.
	if ( isset( $plugins[ "{$extension['slug']}/{$extension['slug']}.php" ] ) ) {
		return $plugins[ "{$extension['slug']}/{$extension['slug']}.php" ];
	} else {
		foreach ( $plugins as $file => $plugin_data ) {
			if ( str_starts_with( $file, "{$extension['slug']}/" ) || $file === $extension['slug'] ) {
				return $plugin_data;
			}
		}
	}

	return false;
}