public function onActionResponse(MWP_Event_ActionResponse $event) { if ($event->getRequest()->getAction() !== 'add_site') { return; } if ($event->getRequest()->getProtocol() >= 100) { return; } $params = $event->getRequest()->getParams(); $this->context->requireWpRewrite(); $this->context->requireTaxonomies(); $this->context->requirePostTypes(); $this->context->requireTheme(); $this->context->requireCookieConstants(); $stats = new MMB_Stats(); if (!empty($params['notifications'])) { $this->context->optionSet('mwp_notifications', $params['notifications']); } $event->setData($stats->get_initial_stats()); }
function set_hit_count($fix_count = false) { global $mmb_core; $uptime_robot = array("74.86.158.106", "74.86.179.130", "74.86.179.131", "46.137.190.132", "122.248.234.23", "74.86.158.107"); //don't let uptime robot to affect visit count if ($fix_count || !is_admin() && !MMB_Stats::is_bot() && !isset($_GET['doing_wp_cron']) && !in_array($_SERVER['REMOTE_ADDR'], $uptime_robot)) { $date = date('Y-m-d'); $user_hit_count = (array) get_option('user_hit_count'); if (!$user_hit_count) { $user_hit_count[$date] = 1; update_option('user_hit_count', $user_hit_count); } else { $dated_keys = array_keys($user_hit_count); $last_visit_date = $dated_keys[count($dated_keys) - 1]; $days = intval((strtotime($date) - strtotime($last_visit_date)) / 60 / 60 / 24); if ($days > 1) { $date_to_add = date('Y-m-d', strtotime($last_visit_date)); for ($i = 1; $i < $days; $i++) { if (count($user_hit_count) > 14) { $shifted = @array_shift($user_hit_count); } $next_key = strtotime('+1 day', strtotime($date_to_add)); if ($next_key == $date) { break; } else { $user_hit_count[$next_key] = 0; } } } if (!isset($user_hit_count[$date])) { $user_hit_count[$date] = 0; } if (!$fix_count) { $user_hit_count[$date] = (int) $user_hit_count[$date] + 1; } if (count($user_hit_count) > 14) { $shifted = @array_shift($user_hit_count); } update_option('user_hit_count', $user_hit_count); } } }
function mmb_parse_request() { global $mmb_core, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $_mwp_data, $_mwp_auth; if (empty($_mwp_auth)) { MMB_Stats::set_hit_count(); return; } ob_start(); $_wp_using_ext_object_cache = false; @set_time_limit(600); if ($_mwp_data['action'] === 'add_site') { mmb_add_site($_mwp_data['params']); mmb_response('You should never see this.', false); } /* in case database upgrade required, do database backup and perform upgrade ( wordpress wp_upgrade() function ) */ if (strlen(trim($wp_db_version)) && !defined('ACX_PLUGIN_DIR')) { if (get_option('db_version') != $wp_db_version) { /* in multisite network, please update database manualy */ if (empty($wpmu_version) || function_exists('is_multisite') && !is_multisite()) { if (!function_exists('wp_upgrade')) { include_once ABSPATH . 'wp-admin/includes/upgrade.php'; } ob_clean(); @wp_upgrade(); @do_action('after_db_upgrade'); ob_end_clean(); } } } if (isset($_mwp_data['params']['secure'])) { if ($decrypted = $mmb_core->_secure_data($_mwp_data['params']['secure'])) { $decrypted = maybe_unserialize($decrypted); if (is_array($decrypted)) { foreach ($decrypted as $key => $val) { if (!is_numeric($key)) { $_mwp_data['params'][$key] = $val; } } unset($_mwp_data['params']['secure']); } else { $_mwp_data['params']['secure'] = $decrypted; } } } if (isset($_mwp_data['setting'])) { $mmb_core->save_options($_mwp_data['setting']); } if (!$mmb_core->register_action_params($_mwp_data['action'], $_mwp_data['params'])) { global $_mmb_plugin_actions; $_mmb_plugin_actions[$_mwp_data['action']] = $_mwp_data['params']; } ob_end_clean(); }
function mmb_parse_request() { if (!isset($HTTP_RAW_POST_DATA)) { $HTTP_RAW_POST_DATA = file_get_contents('php://input'); } ob_start(); global $current_user, $mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $_mmb_options; /*$data = array(); if(substr($HTTP_RAW_POST_DATA, 0, 15) == "mwp_a=managewp&"){ $HTTP_RAW_POST_DATA = str_replace("mwp_a=managewp&", "", $HTTP_RAW_POST_DATA); parse_str($HTTP_RAW_POST_DATA, $data); }*/ if (substr($HTTP_RAW_POST_DATA, 0, 7) == "action=") { $HTTP_RAW_POST_DATA = str_replace("action=", "", $HTTP_RAW_POST_DATA); } $data = base64_decode($HTTP_RAW_POST_DATA); if ($data) { $data = mmb_parse_data(@unserialize($data)); $num = @extract($data); //$signature = base64_decode($signature); } if (isset($action)) { $_wp_using_ext_object_cache = false; @set_time_limit(600); if (!$mmb_core->check_if_user_exists($params['username'])) { mmb_response('Username <b>' . $params['username'] . '</b> 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) { if (isset($params['username']) && !is_user_logged_in()) { $user = function_exists('get_user_by') ? get_user_by('login', $params['username']) : get_userdatabylogin($params['username']); wp_set_current_user($user->ID); } /* in case database upgrade required, do database backup and perform upgrade ( wordpress wp_upgrade() function ) */ if (strlen(trim($wp_db_version)) && !defined('ACX_PLUGIN_DIR')) { if (get_option('db_version') != $wp_db_version) { /* in multisite network, please update database manualy */ if (empty($wpmu_version) || function_exists('is_multisite') && !is_multisite()) { if (!function_exists('wp_upgrade')) { include_once ABSPATH . 'wp-admin/includes/upgrade.php'; } ob_clean(); @wp_upgrade(); @do_action('after_db_upgrade'); ob_end_clean(); } } } if (isset($params['secure'])) { if ($decrypted = $mmb_core->_secure_data($params['secure'])) { $decrypted = maybe_unserialize($decrypted); if (is_array($decrypted)) { foreach ($decrypted as $key => $val) { if (!is_numeric($key)) { $params[$key] = $val; } } unset($params['secure']); } else { $params['secure'] = $decrypted; } } } if (isset($data['setting'])) { $mmb_core->save_options($data['setting']); } if (!$mmb_core->register_action_params($action, $params)) { global $_mmb_plugin_actions; $_mmb_plugin_actions[$action] = $params; } } else { mmb_response($auth['error'], false); } } else { MMB_Stats::set_hit_count(); } ob_end_clean(); }