Як перевірити чи активований плагін WordPress

Привіт:) У цьому пості покажу як перевірити чи активний WordPress-плагін. Така перевірка стане у нагоді, якщо, наприклад, потрібно під'єднатися до хуку якогось плагіну, і виконати певні дії, якщо останній активовано в адмін-панелі.

Спосіб 1

Чи у даний момент плагін активовано можна перевірити наступним кодом у файлі functions.php:

/**
 * Спосіб 1. Перевірка чи активний вказаний плагін  
 */
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( ! is_plugin_active( 'updraftplus/updraftplus.php' ) ) {
	// Plugin is NOT active
	return;
} else {
	// Plugin is active
}

У коді значення updraftplus/updraftplus.php відповідає за конкретний плагін (UpdraftPlus), активність якого потрібно перевірити. Тут updraftplus — папка плагіну у каталозі /wp-content/plugins/, а updraftplus.php — основний файл плагіну.

Основний файл плагіну містить дані про його назву, автора, опис функціоналу, тощо. Іноді буває важко визначити, який файл у плагіні є головним. Зазвичай його назва аналогічна назві його каталогу. Більш детальніше про структуру головного файлу WordPress-плагіну можете ознайомитися в офіційній документації.

Перевірити цей код можна на прикладі виведення відповідного повідомлення у шапці сайту: якщо конкретний плагін активний або ж ні:

/**
 * Спосіб 1. Перевірка чи активний вказаний плагін  
 */
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( ! is_plugin_active( 'updraftplus/updraftplus.php' ) ) {
	add_action( 'wp_head', function() {
		echo 'Plugin is NOT active';
	});

	// Plugin is NOT active

	return;
} else {
	// Plugin is active

	add_action( 'wp_head', function() {
		echo 'Plugin is active';
	});
}

Спосіб 2

Є ще один варіант перевірки чи активний плагін — перевірка існування його основного PHP-класу.

Якщо код плагіну не використовує об'єктно-орієнтований підхід (а лише функціональний), то цей метод не працюватиме.

Наприклад, щоб перевірити чи активований модуль WooCommerce, використовуйте код

/**
 * Спосіб 2. Перевірка чи активний вказаний плагін  
 */
if ( ! class_exists( 'woocommerce' ) ) { 
	exit; 
}

Цієї перевірки буде достатньо, щоб весь ваш код нижче не виконувався, якщо система не знайде діючого плагіну WooCommerce. Для інших WordPress-розширень потрібно самостійно визначати головний клас, на основі якого працює весь функціонал плагіну.

Спосіб 3

Є ще один спосіб:

/**
 * Спосіб 3. Перевірка чи активний вказаний плагін  
 */
if ( in_array( 'updraftplus/updraftplus.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
    // Plugin is active
}

Михайло Петров
Михайло Петров

Мене звати Михайло. Я — WordPress-розробник. Створюю візитки, корпоративні сайти, блоги на WordPress.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *