public static function export($params = array()) { global $wp_filter; // Set error handler @set_error_handler('Ai1wm_Handler::error'); // Set params if (empty($params)) { $params = ai1wm_urldecode($_REQUEST); } // Set priority $priority = 5; if (isset($params['priority'])) { $priority = (int) $params['priority']; } // Set secret key $secret_key = null; if (isset($params['secret_key'])) { $secret_key = $params['secret_key']; } // Verify secret key by using the value in the database, not in cache if ($secret_key !== get_option(AI1WM_SECRET_KEY)) { Ai1wm_Status::error(sprintf(__('Unable to authenticate your request with secret_key = "%s"', AI1WM_PLUGIN_NAME), $secret_key), __('Unable to export', AI1WM_PLUGIN_NAME)); exit; } // Get hook if (isset($wp_filter['ai1wm_export']) && ($filters = $wp_filter['ai1wm_export']) && ksort($filters)) { while ($hooks = current($filters)) { if ($priority === key($filters)) { foreach ($hooks as $hook) { try { $params = call_user_func_array($hook['function'], array($params)); } catch (Exception $e) { Ai1wm_Status::error($e->getMessage(), __('Unable to export', AI1WM_PLUGIN_NAME)); exit; } } // Set completed $completed = true; if (isset($params['completed'])) { $completed = (bool) $params['completed']; } // Log request if (empty($params['priority']) || is_file(ai1wm_export_path($params))) { Ai1wm_Log::export($params); } // Do request if ($completed === false || ($next = next($filters)) && ($params['priority'] = key($filters))) { // Check the status, maybe we need to stop it if (!is_file(ai1wm_export_path($params))) { exit; } return Ai1wm_Http::get(admin_url('admin-ajax.php?action=ai1wm_export'), $params); } } next($filters); } } }