/** * REST API: WP_REST_Post_Types_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class to access post types via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Post_Types_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'types'; } /** * Registers the routes for post types. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'type' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public post types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { if ( $request->is_method( 'HEAD' ) ) { // Return early as this handler doesn't add any response headers. return new WP_REST_Response( array() ); } $data = array(); $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( 'edit' === $request['context'] && ! current_user_can( $type->cap->edit_posts ) ) { continue; } $post_type = $this->prepare_item_for_response( $type, $request ); $data[ $type->name ] = $this->prepare_response_for_collection( $post_type ); } return rest_ensure_response( $data ); } /** * Retrieves a specific post type. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $obj = get_post_type_object( $request['type'] ); if ( empty( $obj ) ) { return new WP_Error( 'rest_type_invalid', __( 'Invalid post type.' ), array( 'status' => 404 ) ); } if ( empty( $obj->show_in_rest ) ) { return new WP_Error( 'rest_cannot_read_type', __( 'Cannot view post type.' ), array( 'status' => rest_authorization_required_code() ) ); } if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } $data = $this->prepare_item_for_response( $obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a post type object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$post_type` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Post_Type $item Post type object. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $post_type = $item; // Don't prepare the response body for HEAD requests. if ( $request->is_method( 'HEAD' ) ) { /** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php */ return apply_filters( 'rest_prepare_post_type', new WP_REST_Response( array() ), $post_type, $request ); } $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) ); $taxonomies = wp_list_pluck( $taxonomies, 'name' ); $base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name; $namespace = ! empty( $post_type->rest_namespace ) ? $post_type->rest_namespace : 'wp/v2'; $supports = get_all_post_type_supports( $post_type->name ); $fields = $this->get_fields_for_response( $request ); $data = array(); if ( rest_is_field_included( 'capabilities', $fields ) ) { $data['capabilities'] = $post_type->cap; } if ( rest_is_field_included( 'description', $fields ) ) { $data['description'] = $post_type->description; } if ( rest_is_field_included( 'hierarchical', $fields ) ) { $data['hierarchical'] = $post_type->hierarchical; } if ( rest_is_field_included( 'has_archive', $fields ) ) { $data['has_archive'] = $post_type->has_archive; } if ( rest_is_field_included( 'visibility', $fields ) ) { $data['visibility'] = array( 'show_in_nav_menus' => (bool) $post_type->show_in_nav_menus, 'show_ui' => (bool) $post_type->show_ui, ); } if ( rest_is_field_included( 'viewable', $fields ) ) { $data['viewable'] = is_post_type_viewable( $post_type ); } if ( rest_is_field_included( 'labels', $fields ) ) { $data['labels'] = $post_type->labels; } if ( rest_is_field_included( 'name', $fields ) ) { $data['name'] = $post_type->label; } if ( rest_is_field_included( 'slug', $fields ) ) { $data['slug'] = $post_type->name; } if ( rest_is_field_included( 'icon', $fields ) ) { $data['icon'] = $post_type->menu_icon; } if ( rest_is_field_included( 'supports', $fields ) ) { $data['supports'] = $supports; } if ( rest_is_field_included( 'taxonomies', $fields ) ) { $data['taxonomies'] = array_values( $taxonomies ); } if ( rest_is_field_included( 'rest_base', $fields ) ) { $data['rest_base'] = $base; } if ( rest_is_field_included( 'rest_namespace', $fields ) ) { $data['rest_namespace'] = $namespace; } if ( rest_is_field_included( 'template', $fields ) ) { $data['template'] = $post_type->template ?? array(); } if ( rest_is_field_included( 'template_lock', $fields ) ) { $data['template_lock'] = ! empty( $post_type->template_lock ) ? $post_type->template_lock : false; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $post_type ) ); } /** * Filters a post type returned from the REST API. * * Allows modification of the post type data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Post_Type $post_type The original post type object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Post_Type $post_type The post type. * @return array Links for the given post type. */ protected function prepare_links( $post_type ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( rest_get_route_for_post_type_items( $post_type->name ) ), ), ); } /** * Retrieves the post type's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 4.8.0 The `supports` property was added. * @since 5.9.0 The `visibility` and `rest_namespace` properties were added. * @since 6.1.0 The `icon` property was added. * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'type', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the post type should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'viewable' => array( 'description' => __( 'Whether or not the post type can be viewed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the post type for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'supports' => array( 'description' => __( 'All features, supported by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'has_archive' => array( 'description' => __( 'If the value is a string, the value will be used as the archive slug. If the value is false the post type has no archive.' ), 'type' => array( 'string', 'boolean' ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'taxonomies' => array( 'description' => __( 'Taxonomies associated with post type.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST route\'s namespace for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this post type.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the post type available for selection in navigation menus.' ), 'type' => 'boolean', ), ), ), 'icon' => array( 'description' => __( 'The icon for the post type.' ), 'type' => array( 'string', 'null' ), 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'template' => array( 'type' => array( 'array' ), 'description' => __( 'The block template associated with the post type.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), 'template_lock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'description' => __( 'The template_lock associated with the post type, or false if none.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } Zodiac – Chambers Of Vikramaditya

Zodiac

Über das Zodiac Online-Casino

Das Zodiac Online-Casino ist ein relativ neues Spieler unter den Online-Casinobranen, aber trotz seines jungen Alters hat es sich bereits als eine der bekanntesten und beliebtesten Optionen für Spieler etabliert. Im Folgenden werden wir uns mit dieser Plattform auseinandersetzen und sehen uns an, was sie zu bieten hat.

Registrierung-Prozess

Um am Spiel des Zodiac Online-Casinos teilzuhaben, muss man sich zunächst registrieren lassen. Dieser Prozess ist relativ einfach und kann in wenigen Schritten Zodiac abgeschlossen werden. Nachdem Sie auf der Seite von Zodiac geklickt haben, erhalten Sie eine Email mit einem Link zum Registrierungsprozess.

Im Anschluss an die Eingabe Ihrer Daten müssen Sie sich vorab überprüfen lassen. Dazu werden Ihre Person und Adresse geprüft. Der Prozess ist transparent und sicher durchgeführt.

Konto-Funktionen

Nachdem man seine Kontoregisterung abgeschlossen hat, erhält man Zugriff auf seine persönlichen Daten im Zodiac Online-Casino. Hier können Sie alle Details Ihrer Person überprüfen, Ihren Profilbild ändern oder auch Ihr Benutzernamen und Passwort anpassen.

Ebenfalls haben Spieler Zugang zu den verschiedenen Kontofunktionen wie Einstellungen der Sichtbarkeit der Spielergebnisse, die Änderung von E-Mail-Adressen oder Passwörtern und vieles mehr. All diese Funktionen werden unter dem Menü "Mein Konto" gefunden.

Boni

Jedes Casino muss ein attraktives Angebot haben, wenn es in Wettbewerb mit anderen Online Casinos geht. In diesem Falle bietet das Zodiac Casino eine Vielzahl an Bonusangeboten für seine Spieler.

Um die Höhe der Bons zu ermitteln, müssen Sie sich registrieren lassen und Ihre E-Mail-Adresse bestätigen. Anschließend erhalten Sie einen Bonusbetrag in Form eines Guthabens im Wert von 10 Euro oder mehr.

Wenn Sie das Casino nicht mit einem Bonus betreten, können Sie nach dem ersten Einzahlungseinsatz um den Freispielbonus der nächsten Runde bitten und die Chancen auf Gewinn erweitern.

Zahlungs- und Auszahlungsmöglichkeiten

Um ein Spiel zu starten oder einen Einsatz abzubilden ist es unerlässlich, dass Spieler eine Bank- oder Zahlmethode angibt. Die Auswahl an Zahlungen in Zodiac ist umfangreich und variiert je nach Land.

Für Ein- und Auszahlungen wird die Verwendung von Kreditkarten wie Visa Mastercard oder PayPal empfohlen. Als weitere Optionen sind Neteller, Skrill oder Trustly verfügbar.

Der Zeitraum der ersten Zahlung kann sich je nach Bank unterschiedlich stark verzögern.

Spielklassen und Softwareanbieter

Eines der Hauptmerkmale des Zodiac Online Casinos ist seine enorme Auswahl an Spielen. Mit einer umfassenden Palette von Tischspielen, Roulette-Spielen und Kartenspielen bietet das Zodiac Casino ein umfangreiches Angebot für Spieler aller Art.

Um die Qualität seiner Spiele sicherzustellen nutzt es in seinen Spielen Softwareanbieter mit hohem Renomme, so z.B. Microgaming oder NetEnt. Diese renommierierten Unternehmen entwickeln auch neue Titel regelmäßig und veröffentlichen diese für das Zodiac Online Casino.

Mobilversion

In den heutigen Zeiten ist ein Anpassungsprozess der mobilen Version für jedes Online-Casino wichtig, um die Spielerbasis zu erweitern. Aufgrund einer sehr einfachen Benutzung ist der Zugriff auf alle Inhalte mit dem Webbrowser des Mobilgerätes überhaupt nicht erschwert.

In Bezug darauf nutzen Spieler ihre Smartphones oder Tablet-Computer zur Navigation durch das Zodiac Online Casino. Die App für Android und iOS wird angeboten, aber sie sollte zunächst vom Anbieter installiert werden, bevor der Zugriff auf die Spiele aktiviert ist.

Sicherheit und Lizenz

Um sicherzustellen, dass seine Spieler ihr Geld nicht verlieren oder bei Betrug in eine ungewollte Situation geraten, müssen Online-Casinos sehr sorgfältig mit den Sicherheitsvorkehrungen sein. Das Zodiac Casino hat dafür Sorge getan.

Die Plattform nutzt SSL-Verschlüsselung und ist im Länderspiel verfügbar. Dieser Dienst garantiert die Sicherheit der Spieler, indem er Daten des Benutzers durch ein sicheres Verschlusssystem schreibt.

Kundendienst

Der Kundensupport in allen Online-Casinobranen nimmt einen wichtigen Platz im Kunden-Service ein und ist für fast alle Fragen wichtig. Der Zodiac Casino verfügt über drei verschiedene Kontaktmöglichkeiten zum Beantworten der Kundenfragen, darunter E-Mail, Telefon (in Deutschland und Österreich) oder Livechat.

Die Antwortzeiten können sich je nach Anfrage erheblich unterscheiden. Die Zahl an Mitarbeiter ist bemerkenswert groß, sodass Fragen in kürzester Zeit bearbeitet werden.

Benutzererlebnis

Viele Spieler glauben, dass ein Online-Casino aufgrund der hohen Wartezeit bei der Beantwortung von Anfragen nicht gut sein kann. Es bleibt jedoch abzuwarten und zu sehen. Aber wie viele Casinos bieten eine sehr schnelle Antwortzeiten an?

Für einen umfassenden Vergleich sollten alle Optionen einer Plattform unter die Lupe genommen werden, bevor man sich entscheidet. Dies gilt insbesondere für Spieler, die ein Casino mit gutem Benutzererlebnis suchen.

Bewertung und Leistung

Im Allgemeinen wird das Zodiac Online-Casino positiv bewertet von den Spielern, da sie bei verschiedenen Aspekten eine hohe Zufriedenheit aufweisen. Der Kundenservice ist bekannt für seine umfangreiche Auswahl an Zahlungs-Methoden, die schnelle Auszahlung der Gewinne und eine Vielzahl an Spielen zu bieten.

Was nicht in den ersten drei Monaten nach dem Erscheinendes des Zodiac Casinos erreichbar war – wurde nun verbessert. Dazu gehören das Benutzererlebnis und der Kundenservice. Allerdings muss darauf verwiesen werden, dass die Spieler aufgrund verschiedener Faktoren von Casino zu Casino variieren können.

Zusammenfassung

Das Zodiac Online-Casino ist eine attraktive Option für jeden Spieler, der ein breites Spektrum an Spielen und Zahlungs-Methoden benötigt. Durch seine transparente Arbeit mit einem renommierten Softwareanbieter wurde es zum Favoriten des Spielerfeldes.

Um die Qualität seiner Spiele zu ermitteln wird empfohlen, sich zunächst für das Zodiac Casino anzumelden, dann müssen alle Möglichkeiten getestet werden. Wird dies erfolgreich sein, besteht sicherlich nicht mehr die Gefahr von einer ungünstigen Entscheidung. Die Auswahl an Zahlungen in Zodiac ist umfangreich und variiert je nach Land.

Für Ein- und Auszahlungen wird die Verwendung von Kreditkarten wie Visa Mastercard oder PayPal empfohlen. Als weitere Optionen sind Neteller, Skrill oder Trustly verfügbar.

Der Zeitraum der ersten Zahlung kann sich je nach Bank unterschiedlich stark verzögern.