_check_if_user_exists($params['username'])) mmb_response('Username ' . $params['username'] . ' does not have administrator capabilities. Enter the correct username in the site options.', false); if ($action == 'add_site') { mmb_add_site($params); mmb_response('You should never see this.', false); } $auth = $mmb_core->_authenticate_message($action . $id, $signature, $id); if ($auth === true) { $mmb_actions = array( 'remove_site' => 'mmb_remove_site', 'get_stats' => 'mmb_stats_get', 'backup' => 'mmb_backup_now', 'restore' => 'mmb_restore_now', 'optimize_tables' => 'mmb_optimize_tables', 'check_wp_version' => 'mmb_wp_checkversion', 'create_post' => 'mmb_post_create', 'upgrade_plugins' => 'mmb_upgrade_plugins', 'wp_upgrade' => 'mmb_upgrade_wp', 'upgrade_themes' => 'mmb_themes_upgrade', 'upload_plugin_by_url' => 'mmb_plugin_upload_by_url', 'upload_theme_by_url' => 'mmb_theme_upload_by_url', 'update_worker' => 'mmb_update_worker_plugin' ); if (array_key_exists($action, $mmb_actions) && function_exists($mmb_actions[$action])) call_user_func($mmb_actions[$action], $params); else mmb_response('Action "' . $action . '" does not exist.', false); } else { mmb_response($auth['error'], false); } } ob_end_clean(); } /* Main response function */ function mmb_response($response = false, $success = true) { $return = array(); if (empty($response)) $return['error'] = 'Empty response'; else if ($success) $return['success'] = $response; else $return['error'] = $response; header('Content-Type: text/plain'); exit(PHP_EOL . base64_encode(serialize($return))); } function mmb_add_site($params) { global $mmb_core; $num = extract($params); if ($num) { if (!get_option('_action_message_id') && !get_option('_worker_public_key')) { $public_key = base64_decode($public_key); if (function_exists('openssl_verify')) { $verify = openssl_verify($action . $id, base64_decode($signature), $public_key); if ($verify == 1) { $mmb_core->_set_master_public_key($public_key); $mmb_core->_set_worker_message_id($id); mmb_response($mmb_core->get_stats_instance()->get_initial_stats(), true); } else if ($verify == 0) { mmb_response('Invalid message signature. Please contact us if you see this message often.', false); } else { mmb_response('Command not successful. Please try again.', false); } } else { if (!get_option('_worker_nossl_key')) { srand(); $random_key = md5(base64_encode($public_key) . rand(0, getrandmax())); $mmb_core->_set_random_signature($random_key); $mmb_core->_set_worker_message_id($id); $mmb_core->_set_master_public_key($public_key); mmb_response($mmb_core->get_stats_instance()->get_initial_stats(), true); } else mmb_response('Please deactivate & activate ManageWP Worker plugin on your site, then re-add the site to your dashboard.', false); } } else { mmb_response('Please deactivate & activate ManageWP Worker plugin on your site and re-add the site to your dashboard.', false); } } else { mmb_response('Invalid parameters received. Please try again.', false); } } function mmb_remove_site($params) { extract($params); global $mmb_core; $mmb_core->uninstall(); include_once(ABSPATH . 'wp-admin/includes/plugin.php'); $plugin_slug = basename(dirname(__FILE__)) . '/' . basename(__FILE__); if ($deactivate) { deactivate_plugins($plugin_slug, true); } if (!is_plugin_active($plugin_slug)) mmb_response(array( 'deactivated' => 'Site removed successfully.

ManageWP Worker plugin successfully deactivated.' ), true); else mmb_response(array( 'removed_data' => 'Site removed successfully.

ManageWP Worker plugin was not deactivated.' ), true); } function mmb_stats_get($params) { global $mmb_core; mmb_response($mmb_core->get_stats_instance()->get($params), true); } //Plugins function mmb_upgrade_plugins($params) { global $mmb_core; mmb_response($mmb_core->get_plugin_instance()->upgrade_all($params), true); } function mmb_plugin_upload_by_url($params) { global $mmb_core; $return = $mmb_core->get_plugin_instance()->upload_by_url($params); mmb_response($return['message'], $return['bool']); } //Themes function mmb_theme_upload_by_url($params) { global $mmb_core; $return = $mmb_core->get_theme_instance()->upload_theme_by_url($params); mmb_response($return['message'], $return['bool']); } function mmb_themes_upgrade($params) { global $mmb_core; mmb_response($mmb_core->get_theme_instance()->upgrade_all($params), true); } //wp function mmb_upgrade_wp($params) { global $mmb_core; mmb_response($mmb_core->get_wp_instance()->upgrade()); } //post function mmb_post_create($params) { global $mmb_core; $return = $mmb_core->get_post_instance()->create($params); if (is_int($return)) mmb_response($return, true); else mmb_response($return, false); } //backup function mmb_backup_now($params) { global $mmb_core; $return = $mmb_core->get_backup_instance()->backup($params); if (is_array($return) && array_key_exists('error', $return)) mmb_response($return['error'], false); else { $mmb_core->_log($return); mmb_response($return, true); } } function mmb_optimize_tables($params) { global $mmb_core; $return = $mmb_core->get_backup_instance()->optimize_tables(); if ($return) mmb_response($return, true); else mmb_response(false, false); } function mmb_restore_now($params) { global $mmb_core; $return = $mmb_core->get_backup_instance()->restore($params); if (is_array($return) && array_key_exists('error', $return)) mmb_response($return['error'], false); else mmb_response($return, true); } function mmb_update_worker_plugin($params) { global $mmb_core; mmb_response($mmb_core->update_worker_plugin($params), true); } ?>