При создании расширения WooCommerce важно учитывать, что когда расширение активировано, у пользователя может не быть установлен или активен WooCommerce.
И хотя расширение может активироваться, оно ничего не сделает. В конечном итоге это может запутать пользователя.
В таких случаях, я думаю, важно убедиться, что расширение может быть активировано только в том случае, если основной плагин установлен и активен.
Активация расширения WooCommerce
Хотя некоторые расширения для WooCommerce похожи на другие, реализация от одного к другому может различаться. То есть способ написания одного расширения может использовать совершенно другую парадигму.
В любом случае, если вы решите сделать что-то подобное, вот что нужно учитывать:
- Определите класс, который запускается при запуске плагина,
- Проверьте, активен ли WooCommerce,
- Если да, то загрузите все остальные зависимости,
- Если нет, то автоматически деактивируйте плагин.
Это звучит как много работы, но это не так много кода. Вы также можете рассмотреть возможность добавления пользовательского уведомления о плагине, когда активация отклонена, но я расскажу, как это сделать, в следующем посте.
1 Определите класс
В целом, я считаю хорошей идеей иметь функцию запуска и остановки плагина. Если WooCommerce активен, вы можете запустить все расширение; в противном случае мы должны остановить его активацию.
Для этого мы можем подключиться к хуку admin_init для каждой из функций.
Когда плагин запускается от администратора WordPress, функция инициализации должна быть вызвана программно из функции входа основного плагина.
2 Проверьте, активен ли WooCommerce
Однако перед реализацией любой функции нам нужно проверить, активен ли плагин WooCommerce. Обычно можно с уверенностью предположить, что WooCommerce находится в фиксированном каталоге , что и делает этот код :
Однако, если WooCommerce находится в другом месте, вам может потребоваться выполнить некоторые другие проверки, пока вы не найдете его.
3 Загрузите зависимости
В функции запуска, если WooCommerce активен, мы можем загрузить остальные компоненты для плагина:
Но WooCommerce может быть неактивна.
4 или остановить активацию
И если WooCommerce не активен, то нам нужно остановить активацию этого плагина:
Обратите внимание, что даже если вы сделаете массовую активацию плагина этим кодом, этот код может не сработать. Вот почему:
- WordPress будет работать со списком плагинов, которые необходимо активировать.
- Если WooCommerce не был активирован до расширения, расширение не активируется.
Таким образом, еще один способ приблизиться к этому — активировать WooCommerce, если он еще не активен.
Пользовательские сообщения
Как упоминалось ранее, я считаю хорошей идеей уведомлять администрацию об отказе в активации плагина, но это выходит за рамки данного руководства.
В любом случае, приведенный выше код предоставляет один из способов потенциального управления активацией расширения WooCommerce.