/** * 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' ) ), ); } } Silverplay – Chambers Of Vikramaditya

Silverplay

In der Welt der Online-Casinos gibt es viele Anbieter, die versprechen große Gewinne und eine sichere Spielererfahrung zu bieten. Doch ist Silverplay einer davon? Wir haben uns auf die Suche begeben, um herauszufinden, ob dieses Casino tatsächlich das bietet, was es in Anspruch nimmt.

Überblick über die Marke

Silverplay ist ein relativ junges Online-Casino, das erst im Jahr 2018 gegründet wurde. Dennoch hat sich der Anbieter https://silver-play.at/ bereits einen Namen gemacht und zieht immer mehr Spieler an, die auf der Suche nach einer unterhaltsamen und lukrativen Erfahrung sind.

Das Casino wird von einem Anbieter aus Malta betrieben, dessen Hauptsitz in Nizza liegt. Die Marke ist offiziell lizenziert durch die maltesische Regulierungsbehörde MGA (Malta Gaming Authority), was bedeutet, dass Silverplay alle geltenden Gesetze und Vorschriften einhält.

Registrierung-Prozess

Um bei Silverplay zu spielen, muss man sich zunächst registrieren. Der Registrierungsprozess ist simpel und dauert nur wenige Minuten in Anspruch. Man benötigt lediglich einen gültigen Benutzernamen, ein Passwort und eine E-Mail-Adresse.

Zusätzlich wird auch die persönlichen Daten gefragt, wie der Name, das Geburtsdatum, das Land und die Adresse. Diese Angaben sind für den Zahlungsprozess erforderlich.

Konto-Funktionen

Nach erfolgreichem Abschluss des Registrierungsvorgangs erhält man Zugriff auf sein Spielerkonto. Von hier aus kann man alle wichtigen Funktionen nutzen, wie z.B. die Auswahl der Spiele, das Ein- und Auszahlungsverfahren, sowie die Kommunikation mit dem Kundenservice.

Das Konto kann leicht verifiziert werden, indem man eine Kopie des Personalausweises oder einer anderen gültigen Identitätsdokumente hochlädt. Dies ist erforderlich, um sicherzustellen, dass alle Spieler über 18 Jahre alt sind und die Voraussetzungen für den Spielbetrieb erfüllen.

Bonuses

Silverplay bietet eine Vielzahl von Boni an, darunter Willkommensboni, Free Spins und Cashback-Boni. Diese Boni werden regelmäßig neu ausgeschrieben und sind unter bestimmten Bedingungen verwendbar.

Der Höhepunkt der Angebote ist sicherlich das neue Spielerbonusprogramm, das mit einer 100%igen Bonus auf die erste Einzahlung begann. Das Angebot gilt nur für neumelde, kann also auch von eingeschriebenen Nutzern in Anspruch genommen werden.

Außerdem gibt es einen regulären Loyalitätspunkt für jeden Euro, den man an der Aktion teilnimmt und somit könnte diese als zusätzlicher Bonus gewertet werden.

Zahlungsmethoden

Silverplay akzeptiert eine Vielzahl von Zahlungsmethoden, darunter Vorauszahlungen per Kreditkarte oder Diners Club, E-Wallets wie Neteller oder Skrill und Banküberweisungen. Die Mindesteinzahlung beträgt 10 Euro.

Für Ein- und Auszahlungsprozess dauert dies nur wenige Minuten in Anspruch. In einigen Fällen kann es jedoch einige Stunden dauern, bis die Transaktion abgeschlossen ist.

Spielkategorien

Silverplay bietet eine umfangreiche Auswahl an Spielen verschiedener Anbieter, darunter NetEnt, Microgaming und Playtech. Die Spiele können in verschiedene Kategorien aufgeteilt werden, wie Slots, Tisch- und Kartenspiele oder Video-Poker.

Die beliebtesten Spiele sind sicherlich die Slot-Maschinen mit einzigartigen Themen und Grafiken. Diese bieten oft hohe Gewinnmöglichkeiten und sind daher besonders attraktiv für Spieler.

Software-Anbieter

Silverplay verwendet eine Plattform, die von verschiedenen Softwareanbietern entwickelt wurde. Die bekanntesten Anbieter in diesem Bereich sind:

  • NetEnt: Der schwedische Entwickler ist einer der größten und bekanntesten im Gaming-Bereich.
  • Microgaming: Ein weiterer führender Entwickler aus Südafrika, dessen Spiele weltweit sehr beliebt sind.

Mobile Version

Silverplay bietet eine optimierte mobile Version an, die leicht auf Smartphones und Tablets abgerufen werden kann. Die mobile Version ist voll funktionsfähig und ermöglicht es Spielern, ihre Lieblingsspiele von überall aus zu spielen.

Die mobilen Apps für iOS- oder Android-Geräte können heruntergeladen werden, indem man sich auf die Website des Casinos besucht und dort nach den mobilen Versionen sucht. Die Anwendung ist sehr ansprechend gestaltet und ermöglicht es Spielern, ihre Lieblingsspiele von überall aus zu spielen.

Sicherheit und Lizenzen

Silverplay wird offiziell lizenziert durch die maltesische Regulierungsbehörde MGA (Malta Gaming Authority), was bedeutet, dass das Casino alle geltenden Gesetze und Vorschriften einhält. Des Weiteren werden alle Transaktionen verschlüsselt, um eine sichere Spielererfahrung zu gewährleisten.

Durch die Verschlusssicherung der persönlichen Daten mit SSL-Verschlüsselungsprotokoll bietet das Casino zusätzliche Sicherheit für seine Kunden.

Kundenservice

Silverplay hat einen professionellen Kundenservice, der rund um die Uhr erreichbar ist. Der Kundensupport kann per E-Mail, Live-Chat oder Telefon kontaktiert werden und bietet Hilfe bei allen Fragen und Problemen an.

Der Support kann auch in mehreren Sprachen gesprochen werden, darunter Englisch, Deutsch, Spanisch, Französisch und anderen. Dies ermöglicht es Spielern aus verschiedenen Ländern, sich mit dem Kundenservice zu verständigen.

User-Experience

Silverplay bietet eine benutzerfreundliche Website an, die leicht navigiert werden kann. Die Spieler können alle wichtigen Funktionen wie Zahlungsmethoden, Boni und Spiele schnell finden und nutzen.

Die Benutzeroberfläche ist modern und ansprechend gestaltet und ermöglicht es Spielern, ihre Lieblingsspiele von überall aus zu spielen.

Wettbewerbsfähigkeit

Silverplay befindet sich in einem Wettbewerb mit anderen Online-Casinos. Um wettbewerbsfähig zu bleiben, muss das Casino ständig neue Spiele und Funktionen hinzufügen und die Spieler ermutigen, mehr von ihnen zu spielen.

Durch die kontinuierliche Neuerung der Angebote kann sich das Casino einen Wettbewerb mit anderen Marken leisten. Die Marke wird stetig wachsen und somit auch ein gutes Ergebnis aufweisen

Analyse

Insgesamt bietet Silverplay eine umfassende Palette an Spielen, Boni und Zahlungsmethoden. Die Sicherheit und die Lizenzen sind gewährleistet, was das Vertrauen der Spieler in den Anbieter erhöht.

Die mobile Version ermöglicht es Spielern, ihre Lieblingsspiele von überall aus zu spielen, und der Kundenservice bietet Hilfe bei allen Fragen und Problemen an.