Yoast\WP\SEO\Services\Importing
Conflicting_Plugins_Service::ignore_deactivating_plugin
While deactivating a plugin, we should ignore the plugin currently being deactivated.
Метод класса: Conflicting_Plugins_Service{}
Хуков нет.
Возвращает
Массив. The remaining active plugins.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->ignore_deactivating_plugin( $all_active_plugins );
- $all_active_plugins(массив) (обязательный)
- All plugins currently loaded by WordPress.
Код Conflicting_Plugins_Service::ignore_deactivating_plugin() Conflicting Plugins Service::ignore deactivating plugin Yoast 26.9
protected function ignore_deactivating_plugin( $all_active_plugins ) {
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Reason: We are strictly comparing only.
if ( isset( $_GET['action'] ) && isset( $_GET['plugin'] ) && \is_string( $_GET['action'] ) && \is_string( $_GET['plugin'] ) && \wp_unslash( $_GET['action'] ) === 'deactivate' ) {
$deactivated_plugin = \sanitize_text_field( \wp_unslash( $_GET['plugin'] ) );
\check_admin_referer( 'deactivate-plugin_' . $deactivated_plugin );
$key_to_remove = \array_search( $deactivated_plugin, $all_active_plugins, true );
if ( $key_to_remove !== false ) {
unset( $all_active_plugins[ $key_to_remove ] );
}
}
return $all_active_plugins;
}