Jetpack::load_modules PHP Method

load_modules() public static method

Loads the currently active modules.
public static load_modules ( )
    public static function load_modules()
    {
        if (!self::is_active() && !self::is_development_mode()) {
            if (!is_multisite() || !get_site_option('jetpack_protect_active')) {
                return;
            }
        }
        $version = Jetpack_Options::get_option('version');
        if (!$version) {
            $version = $old_version = JETPACK__VERSION . ':' . time();
            /** This action is documented in class.jetpack.php */
            do_action('updating_jetpack_version', $version, false);
            Jetpack_Options::update_options(compact('version', 'old_version'));
        }
        list($version) = explode(':', $version);
        $modules = array_filter(Jetpack::get_active_modules(), array('Jetpack', 'is_module'));
        $modules_data = array();
        // Don't load modules that have had "Major" changes since the stored version until they have been deactivated/reactivated through the lint check.
        if (version_compare($version, JETPACK__VERSION, '<')) {
            $updated_modules = array();
            foreach ($modules as $module) {
                $modules_data[$module] = Jetpack::get_module($module);
                if (!isset($modules_data[$module]['changed'])) {
                    continue;
                }
                if (version_compare($modules_data[$module]['changed'], $version, '<=')) {
                    continue;
                }
                $updated_modules[] = $module;
            }
            $modules = array_diff($modules, $updated_modules);
        }
        $is_development_mode = Jetpack::is_development_mode();
        foreach ($modules as $index => $module) {
            // If we're in dev mode, disable modules requiring a connection
            if ($is_development_mode) {
                // Prime the pump if we need to
                if (empty($modules_data[$module])) {
                    $modules_data[$module] = Jetpack::get_module($module);
                }
                // If the module requires a connection, but we're in local mode, don't include it.
                if ($modules_data[$module]['requires_connection']) {
                    continue;
                }
            }
            if (did_action('jetpack_module_loaded_' . $module)) {
                continue;
            }
            if (!@(include Jetpack::get_module_path($module))) {
                unset($modules[$index]);
                self::update_active_modules(array_values($modules));
                continue;
            }
            /**
             * Fires when a specific module is loaded.
             * The dynamic part of the hook, $module, is the module slug.
             *
             * @since 1.1.0
             */
            do_action('jetpack_module_loaded_' . $module);
        }
        /**
         * Fires when all the modules are loaded.
         *
         * @since 1.1.0
         */
        do_action('jetpack_modules_loaded');
        // Load module-specific code that is needed even when a module isn't active. Loaded here because code contained therein may need actions such as setup_theme.
        if (Jetpack::is_active() || Jetpack::is_development_mode()) {
            require_once JETPACK__PLUGIN_DIR . 'modules/module-extras.php';
        }
    }

Usage Example

 /**
  * Sets the internal version number and activation state.
  * @static
  */
 public static function plugin_initialize()
 {
     if (!Jetpack_Options::get_option('activated')) {
         Jetpack_Options::update_option('activated', 2);
     }
     if (!Jetpack_Options::get_option('version')) {
         $version = $old_version = JETPACK__VERSION . ':' . time();
         /** This action is documented in class.jetpack.php */
         do_action('updating_jetpack_version', $version, false);
         Jetpack_Options::update_options(compact('version', 'old_version'));
     }
     Jetpack::load_modules();
     Jetpack_Options::delete_option('do_activate');
 }
All Usage Examples Of Jetpack::load_modules
Jetpack