/** * 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' ) ), ); } } Spellwin : Gagner avec les Magiciens de la Fortune – Chambers Of Vikramaditya

Spellwin : Gagner avec les Magiciens de la Fortune

L’Enchanteur de la Chance : Une Expérience de Jeu En Ligne avec Spellwin

Dans ce monde de jeux en ligne où les concurrents se multiplient, il est difficile pour un opérateur d’émerger et réussir à se faire une place dans l’univers des joueurs passionnés. Mais voilà que Spellwin a réussi à conquérir le coeur de ses clients grâce à sa magie. Dans cet article, nous allons vous plonger dans un monde de hasard et d’aventure avec https://spellwin-casino.lu/ la marque qui s’est fait remarquer par son originalité.

Origines et Histoire

Spellwin est une entreprise en ligne créée récemment mais a déjà su se faire connaître des joueurs. Malheureusement, nous ne pouvons fournir de renseignements sur ses origines car ces informations sont inaccessibles pour le public.

La Marque au Moyen Âge

Cependant, il est évident que l’entreprise a pris un bon départ. En effet, son nom et sa mise en page rappellent immédiatement les légendes médiévales des sorciers qui manipulent la chance pour gagner. Le site web de Spellwin se démarque par une animation unique : le logo du casino s’anime rapidement pour évoquer l’idée que le hasard est en jeu.

La Famille d’Offres

Un aspect très intéressant à noter chez ce groupe c’est son offre de jeux, qui comprend plusieurs catégories. Ainsi vous pouvez jouer aux slot machines les plus modernes avec des graphismes soignés ainsi qu’à des jeux vidéo classiques pour se détendre entre deux séances de jeu. Des jeux comme le baccara ou le blackjack sont disponibles et proposent une expérience réaliste et authentique.

La Fidélité : Les Vraies Ressources

L’une des fonctionnalités les plus intéressantes chez Spellwin est certainement sa capacité à fidéliser ses clients. En effet, tous les joueurs gagnant peuvent bénéficier de plusieurs programmes spécifiques et des avantages liés au nombre d’échecs.

Le Programme de Fidélité

Le système utilisé par cette entreprise pour attirer la loyauté de son public est un mécanisme qui récompense chaque joueur en fonction du montant dépensé, gagné ou perdu. En effet, plus le client s’engagera sur ce site en déposant des mises et jouant aux jeux proposés par l’entreprise, plus il aura d’avantages personnels.

Inscription : Le Processus Simple

Lorsque vous souhaitez rejoindre un groupe de casinos en ligne pour jouer à différents types de jeux, une première étape s’impose obligatoirement. Elle consiste essentiellement dans la création d’un compte ou inscription chez Spellwin via le site officiel.

Les Etapes

Ce processus est très simple et ne nécessite pas des informations particulières du joueur.

  • D’abord, allez sur le site internet de l’établissement en ligne.
  • Cliquez ensuite sur le bouton "S’inscrire" au haut à droite pour accéder directement aux pages d’inscription. Vous serez redirigé vers une page avec des informations nécessaires pour votre inscription.
  • Fournissez toutes les informations demandées, tels que :
    • Prénom (ou le nom).
    • Nom.
    • Numéro de téléphone mobile ou fixe (en fonction du code choisi lors du dépot).
    • E-mail valide où il vous sera possible d’être notifié. Pour garantir votre sécurité et protéger vos données, l’email que vous saisissez doit répondre à certaines conditions de format spécifique.
  • Confirmez également votre numéro mobile.
  • Cliquez ensuite sur "Inscription" ou cliquez simplement en haut pour afficher la barre des tâches et sélectionnez-la dans les options du menu.

Fonctionnalités : Un Aperçu

Les fonctions de Spellwin comprennent plusieurs éléments clés, qui seront examinés ci-dessous :

Profil Utilisateur

Lorsque vous aurez créé votre compte chez le fournisseur en ligne, vous pourrez y accéder et gérer les informations relatives à la carte bancaire, de crédit ou des dépôts avec un simple clic.

Menu Principal

C’est le menu principal qui présente toutes les fonctionnalités du groupe. Il contient quatre sous-catégories essentielles :

  • Dépôt
  • Extraction : ici vous pouvez en retirer.
  • Bonus
  • Réalisations, pour obtenir la liste de vos gains.

Le Compte

Le compte offre au joueur une page personnelle où il peut retrouver toutes les informations. Vous pouvez y voir le montant dépensé ainsi que votre solde actuel et un graphique des joueurs en fonction du nombre de gains réalisés, qui vous aidera à comparer vos progrès.

Compte Utilisateur

Lorsque vous avez terminé l’inscription avec succès sur ce site web de jeux on line en ligne. Pour accéder à votre compte, utilisez ensuite un simple formulaire d’authentification pour vous connecter à une page sécurisée où vous pouvez gérer vos comptes, réeliser des transactions et suivre votre progression.

Détails Compte Utilisateur

Les informations liées aux paramètres sont disponibles sur le site internet de Spellwin. Il s’agit principalement du formulaire "Gestion de compte". Pour y accéder :

  • Allez à votre page personnelle.
  • Cliquez ensuite en haut à droite et sélectionnez l’option de la barre des tâches et choisissez-la dans les options du menu.

L’Annulation

Lors d’un dépôt, le montant est automatiquement rétabli sur vos réserves. Nous conseillons donc de vérifier régulièrement vos transactions pour vous assurer que toutes sont correctes. D’un autre côté, si c’est la case extraction qui a été utilisée, ce montant ne sera pas non plus modifié.

L’Annulation

En cas d’une erreur sur le site web du fournisseur de jeux ou lors des transactions avec l’établissement, vous pouvez contacter leur support pour obtenir une intervention. De même si la gestion de votre compte et/ou les règles liées ne sont pas claires, n’hésitez pas à demander conseils.

Écran

Lorsque vous allez sur le site web du groupe, il y a plusieurs éléments qui caractérisent l’expérience utilisateur :

  • Les boutons (clics) Lors de vos passages sur ce site, tous les clics effectués par les joueurs pour naviguer seront enregistrés dans le répertoire.

  • Informations textuelles Pour chaque élément graphique existant sur la page d’accueil du groupe ou tout autre navigateur, un message électronique vous permettra de comprendre parfaitement son rôle et ses avantages. Tous les articles fournis par l’établissement se situent donc sous le même domaine (www.spellwin.com).