• Пишу небольшой плагин, который будет являться дополнением к стороннему плагину.
    Не могу найти нигде как выполнить такую проверку перед активацией плагина:

    if( is_plugin_active( 'сторонний плагин' ) ){
        активируем плагин;
    } else {
        add_action( 'admin_notices', 'my_plugin_error_notice' );
        function my_plugin_error_notice( ) {
    	$message = 'Плагин такой-то должен быть установлен и активен';
    	echo '<div class="notice notice-error is-dismissible"> <p>'. $message .'</p> </div>';
        }
    }
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • спасибо, то, что надо.

    чуть-чуть погорячился 🙂
    в общем, на основе ссылки сделал так:

    register_activation_hook(__FILE__, 'woo_attr_export_check');
    function woo_attr_export_check()
    {
        include_once(ABSPATH . 'wp-admin/includes/plugin.php');
        if (!is_plugin_active('woocommerce/woocommerce.php')) {
            add_action(
                'admin_notices',
                function () {
                    echo '<div class="notice notice-error is-dismissible"><p>Плагин <a href="https://ru.wordpress.org/plugins/woocommerce/" rel="nofollow">WooCommerce</a> должен быть установлен и активен</p></div>';
                }
            );
            if (is_plugin_active('woocommerce-attr-to-brand/woo-attr-to-brand.php')) {
                deactivate_plugins('woocommerce-attr-to-brand/woo-attr-to-brand.php', true);
                if (isset($_GET['activate'])) {
                    unset($_GET['activate']);
                }
            }
        }
    }

    и не работает. Точнее, плагин не деактивируется если Woo не установлен.

    • Ответ изменён 4 года, 7 месяцев назад пользователем denism300.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Проверка перед активацией плагина» закрыта для новых ответов.