activate_plugins()WP 2.6.0

Activates the specified plugins.

When WP_Error is returned, it does not mean that one of the plugins had errors. It means that one or more of the plugin file paths were invalid.

The execution will be halted as soon as one of the plugins has an error.

Works in the admin panel only. If you need it on front, then connect the file:

require_once ABSPATH .'/wp-admin/includes/plugin.php';

No Hooks.



  • True when finished.
  • WP_Error if there were errors during a plugin activation (one or more path to plugin file is wrong).


activate_plugins( $plugins, $redirect, $network_wide, $silent );
$plugins(string/array) (required)
Single plugin (string) or list of plugins (array) to activate. The ID looks like the path to the plugin file relative to the plugins folder: democracy/democracy.php
Page URL to redirect to after successful activation.
Default: ''
Whether to enable the plugin for all sites in the network (multisite only).
Default: false
Silent activation. true - means to activate the plugin without enabling activation hooks activate_***, i.e. activation hooks will not work.
Default: false



#1 Activate the specified plugin

//require_once ABSPATH .'/wp-admin/includes/plugin.php';

activate_plugins( 'democracy-poll/democracy.php' );


Since 2.6.0 Introduced.

activate_plugins() code WP 6.5.4

function activate_plugins( $plugins, $redirect = '', $network_wide = false, $silent = false ) {
	if ( ! is_array( $plugins ) ) {
		$plugins = array( $plugins );

	$errors = array();
	foreach ( $plugins as $plugin ) {
		if ( ! empty( $redirect ) ) {
			$redirect = add_query_arg( 'plugin', $plugin, $redirect );
		$result = activate_plugin( $plugin, $redirect, $network_wide, $silent );
		if ( is_wp_error( $result ) ) {
			$errors[ $plugin ] = $result;

	if ( ! empty( $errors ) ) {
		return new WP_Error( 'plugins_invalid', __( 'One of the plugins is invalid.' ), $errors );

	return true;