/** * 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' ) ), ); } } Încântarea pe Slotul Yoji este Un Riscuri de Joc – Chambers Of Vikramaditya

Încântarea pe Slotul Yoji este Un Riscuri de Joc

Descrierea Brandului

Yoi Casino a fost înființat acum mai bine de 5 ani și s-a poziționat rapid ca un jucător important în industria giuvalui online. Cu o gamă impresionantă de jocuri, inclusiv sloturi, ruletă, blackjack și alte aplicații, Yoi a fost capabil să atragă atenția jucătorilor cu experiența sa bogată. În urma unei analize amănunțite, pare că brandul s-a https://yoji-romania.ro/ concentrat în dezvoltarea unui mediu sigur și responsabil de jocuri online.

Procesul de Inregistrare

Începând cu crearea contului la Yoi Casino se face direct pe site-ul oficial al casei de pariuri. Formularul de inregistrare este disponibil în versiunea română, fapt care facilitează procesul pentru utilizatorii din țara noastră. Dupa deschiderea portalului si introducerea datele personale (nume și prenume, numărul de telefon, adresa e-mail și codul poștal), utilizatorul va trebui sa isi aleaga o parola pentru a acces al contului.

Caracteristicile Contului Utilizator

Odată ce v-au înregistrat un cont pe site-ul Yoi Casino puteți să accesați mai multe caracteristici importante. Acestea includ:

  • Accesul la toate jocurile oferite de casa de pariuri online;
  • Posibilitatea de a depune fonduri folosind o varietate de metode de plată;
  • Opțiuni pentru selectarea tipului de monedă preferată în contul dvs.;
  • Puteți să participa la campañile și promoții pentru jucători, ce pot fi accesate direct pe site-ul casinoului.

Bunurile

Yoi Casino oferă atât bonusuri pentru noi jucatori cât si promoții speciale. Bonusul de binecuvântare la primele 3 depozite este special conceput pentru a încuraja noul veniți să isi continue experiența pe site-ul acestui operator de jocuri.

Aceste bonusuri, destinate tuturor utilizatorilor care se decid sa joace în această casină online pot fi obținute numai după ce alegeți o metodă de depunere și dați următorul pas, cu care casa încinge un procent al creditului plasat.

Metodele de Plata

Yoi Casino oferă atât opțiuni de plată online cât si posibilitatea să vă ridicați o sumă mai mare in cash pe orice sucursală bancară.

Cele mai populare metode pentru a depune sunt:

  • Transferul banilor cu cardurile Visa, Mastercard sau Maestro;
  • Utilizarea serviciului e-mony (echivalentul lui PayPal) si transferul pe cont de acesta în casină. Modalitatea de retragere

În această a doua situație, Yoi oferă posibilitatea să recuperați bani prin intermediul cardului dvs. sau a unui alt card sau bancar la dispoziția dvs..

Categoriile Jocurilor

Gama de jocuri disponibile pe site-ul casinoului este foarte largă și poate fi clasificată în urmatoarele categorii:

  • Sloturi : cele mai populare aplicații cu multe variante diferite, de la simbolurile vechi pentru primele sloturi până la temele moderne ale unor filme sau seriale.
  • Ruletă : aceasta reprezintă o joc populară în care exista două tipuri de roate: ruleta clasica (de 37 in engleză) si cea americană (de 38).
  • Blackjack : un alt joc popular, bazat pe principiu celui mai bun blackjack.

Furnizorii de Software

În această perioadă companiile care dezvoltă cele mai bune aplicații pentru jucători pot fi găsite în urmatoarele categorii:

  • Playtech : a fost o firmă britanică. A avut parte de mari probleme legale cu justitia SUA.
  • Novomatic .
  • NetEnt , dezvoltorul celebrei jocuri Gonzo’s Quest.

Versiunea Mobilă

Existența unei aplicații mobile este o caracteristică importantă pentru operatorii de pariuri online astăzi. Oferind posibilitatea accesului la site-ul dvs. cu smartphone și tabletă, această versiune a gama de jocuri de pe portalul oficial al casinoului.

Siguranța și Licențele

Pentru ca un utilizator să se poată bucura în siguranta si libertatea oferite de orice site de pariuri, există multe lucruri ce trebuie fapt. In acest caz, operatorul Yoi își pune în practică câteva principii:

  • Licența : casa online are autorizația din 2019 cu numărul nr. 001/Jaz.
  • Programare la standardele de securitate Succesul și Performanța Utilizatorilor

Deși este un lucru greu sa te poți bucura in siguranță pe orice portal online, avem o imagine foarte clară despre cum arată evoluția utilizatorilor în timp.

Pentru aceasta sunt prezentate câteva date importante:

  • Nivelul de satisfacție a clienților , care se ridică la aproape 95% (în funcție de raportările efectuate de jucatori).
  • Numărul mare și în continuare crescut al utilizatorilor .

Analiza Finală

În final, există o concluzie simpla: Yoi Casino reprezintă un operator online care a evoluat în ultimii ani la nivel excepțional. Daca vei crea cont pe acest portal de pariuri online și îl folosești cu responsabilitate, riscurile asumate nu vor fi numai ridicate ci potențial chiar câstigătoare.

Yoi Casino a fost înființat acum mai bine de 5 ani și s-a poziționat rapid ca un jucător important în industria giuvalui online. Cu o gamă impresionantă de jocuri, inclusiv sloturi, ruletă, blackjack și alte aplicații, Yoi a fost capabil să atragă atenția jucătorilor cu experiența sa bogată.

Începând cu crearea contului la Yoi Casino se face direct pe site-ul oficial al casei de pariuri. Formularul de inregistrare este disponibil în versiunea română, fapt care facilitează procesul pentru utilizatorii din țara noastră.

Odată ce v-au înregistrat un cont pe site-ul Yoi Casino puteți să accesați mai multe caracteristici importante. Acestea includ accesul la toate jocurile oferite de casa de pariuri online, posibilitatea de a depune fonduri folosind o varietate de metode de plată și opțiuni pentru selectarea tipului de monedă preferată în contul dvs.

Yoi Casino oferă atât bonusuri pentru noi jucatori cât si promoții speciale. Bonusul de binecuvântare la primele 3 depozite este special conceput pentru a încuraja noul veniți să isi continue experiența pe site-ul acestui operator de jocuri.

Cele mai populare metode pentru a depune sunt transferul banilor cu cardurile Visa, Mastercard sau Maestro și utilizarea serviciului e-mony (echivalentul lui PayPal) si transferul pe cont de acesta în casină.

În această a doua situație, Yoi oferă posibilitatea să recuperați bani prin intermediul cardului dvs. sau a unui alt card bancar la dispoziția dvs..

Gama de jocuri disponibile pe site-ul casinoului este foarte largă și poate fi clasificată în urmatoarele categorii: sloturi, ruletă și blackjack.

În această perioadă companiile care dezvoltă cele mai bune aplicații pentru jucători pot fi găsite în urmatoarele categorii: Playtech, Novomatic și NetEnt.