WordPress Version: 6.5
/**
* Filters a given list of plugins, removing any paused plugins from it.
*
* @since 5.2.0
*
* @global WP_Paused_Extensions_Storage $_paused_plugins
*
* @param string[] $plugins Array of absolute plugin main file paths.
* @return string[] Filtered array of plugins, without any paused plugins.
*/
function wp_skip_paused_plugins(array $plugins)
{
$paused_plugins = wp_paused_plugins()->get_all();
if (empty($paused_plugins)) {
return $plugins;
}
foreach ($plugins as $index => $plugin) {
list($plugin) = explode('/', plugin_basename($plugin));
if (array_key_exists($plugin, $paused_plugins)) {
unset($plugins[$index]);
// Store list of paused plugins for displaying an admin notice.
$GLOBALS['_paused_plugins'][$plugin] = $paused_plugins[$plugin];
}
}
return $plugins;
}