Ejemplo n.º 1
0
 /**
  * Dectivate a module.
  *
  * @synopsis <module> [--network-wide]
  * @subcommand deactivate-module
  * @since      2.1
  * @param array $args
  * @param array $assoc_args
  */
 public function deactivate_module($args, $assoc_args)
 {
     $module = ep_get_registered_module($args[0]);
     if (empty($module)) {
         WP_CLI::error(__('No module with that slug is registered', 'elasticpress'));
     }
     if (!empty($assoc_args['network-wide'])) {
         $active_modules = get_site_option('ep_active_modules', array());
     } else {
         $active_modules = get_option('ep_active_modules', array());
     }
     $key = array_search($module->slug, $active_modules);
     if (false !== $key) {
         unset($active_modules[$key]);
     } else {
         WP_CLI::error(__('Module is not active', 'elasticpress'));
     }
     if (!empty($assoc_args['network-wide'])) {
         update_site_option('ep_active_modules', $active_modules);
     } else {
         update_option('ep_active_modules', $active_modules);
     }
     WP_CLI::success(__('Module deactivated', 'elasticpress'));
 }
Ejemplo n.º 2
0
 /**
  * Test setup modules
  * 
  * @since 2.1
  */
 public function testSetupModules()
 {
     ep_register_module('test', array('title' => 'Test'));
     ep_activate_module('test');
     $module = ep_get_registered_module('test');
     $this->assertTrue(!empty($module));
     $this->assertTrue(!$module->is_active());
     EP_Modules::factory()->setup_modules();
     $this->assertTrue($module->is_active());
 }
Ejemplo n.º 3
0
 /**
  * Toggle module active or inactive
  *
  * @since  2.1
  */
 public function action_wp_ajax_ep_toggle_module()
 {
     if (empty($_POST['module']) || !check_ajax_referer('ep_nonce', 'nonce', false)) {
         wp_send_json_error();
         exit;
     }
     $module = ep_get_registered_module($_POST['module']);
     if (defined('EP_IS_NETWORK') && EP_IS_NETWORK) {
         $active_modules = get_site_option('ep_active_modules', array());
     } else {
         $active_modules = get_option('ep_active_modules', array());
     }
     $data = array();
     if ($module->is_active() || !$module->is_active() && is_wp_error($module->dependencies_met())) {
         $key = array_search($_POST['module'], $active_modules);
         if (false !== $key) {
             unset($active_modules[$key]);
         }
         $data['active'] = false;
         $data['active_error'] = false;
     } else {
         $active_modules[] = $module->slug;
         if ($module->requires_install_reindex) {
             $data['reindex'] = true;
         }
         $module->post_activation();
         $data['active'] = true;
         $data['active_error'] = false;
     }
     // If try to activate the module but it doesn't meet dependency requirement
     if (!$module->is_active() && is_wp_error($module->dependencies_met())) {
         $data['active_error'] = true;
     }
     if (defined('EP_IS_NETWORK') && EP_IS_NETWORK) {
         update_site_option('ep_active_modules', $active_modules);
     } else {
         update_option('ep_active_modules', $active_modules);
     }
     wp_send_json_success($data);
 }