Поддержка WordPress Multisite register_activation_hook() проблемы при активации плагина через базу

  • Решено slash1098

    (@slash1098)


    Добрый день. Дело в том, что есть мультисайт, на нем около 900 сайтов, есть необходимость подключать и отключать плагины для выбранных id, я провожу активацию плагинов в цикле дополняя массив в таблице. Задался вопросом, при проведении массовой активации плагинов путем перезаписи wp_options могут ли возникнуть проблемы с плагинами, которые имеют хук register_activation_hook()?

    • Тема изменена 2 мес., 3 нед. назад пользователем  Yui. Причина: в другой раздел
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    при проведении массовой активации плагинов путем перезаписи wp_options могут ли возникнуть проблемы с плагинами, которые имеют хук register_activation_hook()?

    Да, в этом случае хук выполняться не будет.

    провожу активацию плагинов в цикле дополняя массив в таблице.

    Лучше воспользоваться функцией activate_plugin(), тогда register_activation_hook() будет работать.

    activate_plugin() нельзя передать id конкретного сайта в сети мультисайт, я не могу задать сайты, на которых мне нужно активировать указанный плагин. Собственно по этому я и активирую через бузу. Я так понял что activate_plugin() зависит от global $post, что если переопределять $post перед использованием activate_plugin() изменяя id сайта?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    activate_plugin() нельзя передать id конкретного сайта в сети мультисайт

    Да, но можно перед вызовом сделать switсh_to_blog(), тогда get_option( 'active_plugins' ) и update_option( 'active_plugins' ) внутри функции будут относиться к нужному сайту.

    Я так понял что activate_plugin() зависит от global $post

    Активация плагинов никак не связана с записями, но зависит от global $wpdb. switсh_to_blog() должно быть достаточно.

    Да спасибо, я тоже уже пришел к этому выводу и нашел эту функцию) , спасибо за помощь.

Просмотр 4 ответов — с 1 по 4 (всего 4)