/** * WP_oEmbed_Controller class, used to provide an oEmbed endpoint. * * @package WordPress * @subpackage Embeds * @since 4.4.0 */ /** * oEmbed API endpoint controller. * * Registers the REST API route and delivers the response data. * The output format (XML or JSON) is handled by the REST API. * * @since 4.4.0 */ #[AllowDynamicProperties] final class WP_oEmbed_Controller { /** * Register the oEmbed REST API route. * * @since 4.4.0 */ public function register_routes() { /** * Filters the maxwidth oEmbed parameter. * * @since 4.4.0 * * @param int $maxwidth Maximum allowed width. Default 600. */ $maxwidth = apply_filters( 'oembed_default_width', 600 ); register_rest_route( 'oembed/1.0', '/embed', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'default' => 'json', 'sanitize_callback' => 'wp_oembed_ensure_format', ), 'maxwidth' => array( 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), ), ), ) ); register_rest_route( 'oembed/1.0', '/proxy', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_proxy_item' ), 'permission_callback' => array( $this, 'get_proxy_item_permissions_check' ), 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'description' => __( 'The oEmbed format to use.' ), 'type' => 'string', 'default' => 'json', 'enum' => array( 'json', 'xml', ), ), 'maxwidth' => array( 'description' => __( 'The maximum width of the embed frame in pixels.' ), 'type' => 'integer', 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), 'maxheight' => array( 'description' => __( 'The maximum height of the embed frame in pixels.' ), 'type' => 'integer', 'sanitize_callback' => 'absint', ), 'discover' => array( 'description' => __( 'Whether to perform an oEmbed discovery request for unsanctioned providers.' ), 'type' => 'boolean', 'default' => true, ), ), ), ) ); } /** * Callback for the embed API endpoint. * * Returns the JSON object for the post. * * @since 4.4.0 * * @param WP_REST_Request $request Full data about the request. * @return array|WP_Error oEmbed response data or WP_Error on failure. */ public function get_item( $request ) { $post_id = url_to_postid( $request['url'] ); /** * Filters the determined post ID. * * @since 4.4.0 * * @param int $post_id The post ID. * @param string $url The requested URL. */ $post_id = apply_filters( 'oembed_request_post_id', $post_id, $request['url'] ); $data = get_oembed_response_data( $post_id, $request['maxwidth'] ); if ( ! $data ) { return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } return $data; } /** * Checks if current user can make a proxy oEmbed request. * * @since 4.8.0 * * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_proxy_item_permissions_check() { if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'rest_forbidden', __( 'Sorry, you are not allowed to make proxied oEmbed requests.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Callback for the proxy API endpoint. * * Returns the JSON object for the proxied item. * * @since 4.8.0 * * @see WP_oEmbed::get_html() * @global WP_Embed $wp_embed WordPress Embed object. * @global WP_Scripts $wp_scripts * * @param WP_REST_Request $request Full data about the request. * @return object|WP_Error oEmbed response data or WP_Error on failure. */ public function get_proxy_item( $request ) { global $wp_embed, $wp_scripts; $args = $request->get_params(); // Serve oEmbed data from cache if set. unset( $args['_wpnonce'] ); $cache_key = 'oembed_' . md5( serialize( $args ) ); $data = get_transient( $cache_key ); if ( ! empty( $data ) ) { return $data; } $url = $request['url']; unset( $args['url'] ); // Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names. if ( isset( $args['maxwidth'] ) ) { $args['width'] = $args['maxwidth']; } if ( isset( $args['maxheight'] ) ) { $args['height'] = $args['maxheight']; } // Short-circuit process for URLs belonging to the current site. $data = get_oembed_response_data_for_url( $url, $args ); if ( $data ) { return $data; } $data = _wp_oembed_get_object()->get_data( $url, $args ); if ( false === $data ) { // Try using a classic embed, instead. /* @var WP_Embed $wp_embed */ $html = $wp_embed->get_embed_handler_html( $args, $url ); if ( $html ) { // Check if any scripts were enqueued by the shortcode, and include them in the response. $enqueued_scripts = array(); foreach ( $wp_scripts->queue as $script ) { $enqueued_scripts[] = $wp_scripts->registered[ $script ]->src; } return (object) array( 'provider_name' => __( 'Embed Handler' ), 'html' => $html, 'scripts' => $enqueued_scripts, ); } return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } /** This filter is documented in wp-includes/class-wp-oembed.php */ $data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args ); /** * Filters the oEmbed TTL value (time to live). * * Similar to the {@see 'oembed_ttl'} filter, but for the REST API * oEmbed proxy endpoint. * * @since 4.8.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $args An array of embed request arguments. */ $ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args ); set_transient( $cache_key, $data, $ttl ); return $data; } } Slotuna Casino – Εξερευνήστε τον Κόσμο των Διαδικτυακών Τυχερών Παιχνιδιών -

Slotuna Casino – Εξερευνήστε τον Κόσμο των Διαδικτυακών Τυχερών Παιχνιδιών

Καλωσορίσατε στο Slotuna Casino!

Το slotuna casino είναι μια από τις πιο συναρπαστικές διαδικτυακές πλατφόρμες τυχερών παιχνιδιών που έχουν κυριαρχήσει στον κόσμο του internet. Με την απλή και ελκυστική του διεπαφή, οι παίκτες μπορούν να απολαύσουν μια εκτενή γκάμα παιχνιδιών που καλύπτουν όλα τα γούστα και τις προτιμήσεις.

Ποικιλία Παιχνιδιών

Στο Slotuna Casino θα βρείτε μια ευρεία γκάμα παιχνιδιών, συμπεριλαμβανομένων:

  • Κουλοχέρηδες: Εκατοντάδες διαφορετικοί κουλοχέρηδες με μοναδικά θέματα και μεγάλα χρηματικά έπαθλα περιμένουν τους παίκτες.
  • Ρουλέτα: Παίξτε κλασικές και σύγχρονες παραλλαγές της ρουλέτας με ζωντανούς dealers.
  • Πόκερ: Επιλέξτε ανάμεσα σε πολλά διαφορετικά παιχνίδια πόκερ, όπως Texas Hold’em και Omaha.
  • Μπλακτζάκ: Δοκιμάστε την τύχη και την στρατηγική σας στο αγαπημένο παιχνίδι των καζίνο.
  • Ζωντανά παιχνίδια καζίνο: Απολαύστε την ατμόσφαιρα ενός πραγματικού καζίνο από την άνεση του σπιτιού σας με ζωντανές μεταδόσεις.

Μπόνους και Προωθητικές Ενέργειες

Όταν εγγραφείτε στο Slotuna Casino, μπορείτε να επωφεληθείτε από γενναιόδωρα μπόνους και προσφορές. Ορισμένα από τα χαρακτηριστικά μπόνους που προσφέρει το καζίνο περιλαμβάνουν:

  • Μπόνους καλωσορίσματος: Εγγραφείτε και λάβετε ένα εκπληκτικό μπόνους στην πρώτη σας κατάθεση.
  • Καθημερινές και εβδομαδιαίες προσφορές: Μην χάσετε τις περιοδικές προσφορές και τα μπόνους επαναφόρτωσης.
  • Πρόγραμμα επιβράβευσης: Συγκεντρώστε πόντους καθώς παίζετε και ανταλλάξτε τους με δωρεάν περιστροφές ή άλλα προνόμια.

Ασφάλεια και Δικαιολογίες

Η ασφάλεια των παικτών είναι η κορυφαία προτεραιότητα του Slotuna Casino. Η πλατφόρμα χρησιμοποιεί την πιο σύγχρονη τεχνολογία κρυπτογράφησης για να εξασφαλίσει ότι τα προσωπικά και χρηματικά σας στοιχεία είναι απολύτως ασφαλή. Επιπλέον, το καζίνο διαθέτει άδεια λειτουργίας, διασφαλίζοντας ότι τηρούνται όλοι οι κανόνες και οι κανονισμοί.

Εξυπηρέτηση Πελατών

Η εξυπηρέτηση πελατών είναι άμεση και επαγγελματική στο Slotuna Casino. Η ομάδα υποστήριξης είναι διαθέσιμη 24/7 μέσω ζωντανής συνομιλίας και email, έτοιμη να απαντήσει σε κάθε σας ερώτηση ή ανησυχία.

Σύνοψη

Το Slotuna Casino είναι μια εξαιρετική επιλογή για παίκτες που αναζητούν ποικιλία, ασφαλή περιβάλλον και συναρπαστικά μπόνους. Είτε είστε έμπειρος παίκτης είτε νέος στον κόσμο των διαδικτυακών τυχερών παιχνιδιών, θα βρείτε ότι αυτό το καζίνο προσφέρει μια αξέχαστη εμπειρία. Αρχίστε σήμερα και ανακαλύψτε τα υπέροχα παιχνίδια και τις μοναδικές προσφορές!