private function loadEndpoints() { foreach ($this->endpoints as $endpoint) { $wordpress_pre = 'wp_ajax'; if ($endpoint->accessibleForAuthorized()) { $function = [$wordpress_pre, $this->prefix, $endpoint->getRoute(), strtolower($endpoint->getMethod())]; add_action(implode('_', $function), function () use($endpoint) { $perm = $endpoint->getRequiredPermission(); if ($perm == null || $perm != null && $this->permssions->has($perm)) { $response = $this->kernel->handleRequest($endpoint->getAction()); } else { $response = new Response("Unauthorized", Response::HTTP_UNAUTHORIZED); } $response->send(); die; }); } if ($endpoint->accessibleForUnauthorized()) { $function = [$wordpress_pre, 'nopriv', $this->prefix, $endpoint->getRoute(), strtolower($endpoint->getMethod())]; add_action(implode('_', $function), function () use($endpoint) { $response = $this->kernel->handleRequest($endpoint->getAction()); $response->sendContent(); die; }); } } }
/** * Handle a page call, executed when the page is being accessed. * * @param MenuItem $menuItem the menu item */ private function handlePageCall(MenuItem $menuItem) { $response = $this->kernel->handleRequest($menuItem->getAction()); $response->sendContent(); }