activate_plugins

Активирует указанные плагины.

Выполнение будет приостановлено, если активируемый плагин вызовет ошибку.

Работает в админ-панели, если нужно во фронте, то подключите файл:

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

Хуков нет.

Возвращает
  • True, если все указанные плагины удалось активировать.
  • WP_Error, если название плагина (путь до него относительно папки plugins ) указан неправильно.

Использование

activate_plugins( $plugins, $redirect, $network_wide, $silent );
$plugins(строка/массив) (обязательный)
ID плагина или массив из ID. ID выглядит как путь до файла плагина относительно папки plugins: democracy/democracy.php.
$redirect(строка)
УРЛ куда перенаправить, после успешной активации.
По умолчанию: ”
$network_wide(логический)
Активировать ли плагин для всей сети сайтов (для MU сборки).
По умолчанию: false
$silent(логический)
Тихая активация. true – значит активировать плагин без включения событий активации (хуков activate_*). true значит, что хуки активации не будут работать.
По умолчанию: false

Примеры

#1 Активируем указанный плагин

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

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

Код из


wp-admin/includes/plugin.php

WP 4.7.2

<?php
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;
}