/** * 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; } } Entain is really an extraordinary brand and we have been thrilled to possess hitched with these people – tejas-apartment.teson.xyz

Entain is really an extraordinary brand and we have been thrilled to possess hitched with these people

Just like the an affiliate marketer we’ve got liked advanced level levels of buyers storage. On the of several high properties and you can service they will have agreed to new efficiency we’ve educated – i failed to end up being happy.

Online Betting Has the benefit of

Brand new Entain associate party ticks all packages when it comes in order to openness, reliable assistance, most useful sale units, legitimate services and you will prompt repayments. They will have usually made you feel just like a respected partner and you will we’ve got enjoyed good results for it.

Sports Playing Sites

Believe and you may precision is the first couple of conditions which come so you can head when we consider Entain Partners. We have been usually happy on the promotions they provide and you will our very own maintenance results. Would suggest!

Our company is delighted as aboard it union having Entain Partners. A beneficial tireless group out-of trustworthy experts on the background, incessantly working hard for us to have the most remarkable results. Don�t miss which options – Needed!

On-line casino Anbieter

An informed union is one where trust is significantly more than it all the. Handling Entain Couples has been a delight. He has several of the most legitimate brands for the iGaming. Complete, they need a very good ten off ten off all of us. Needed!

Confiavel

Entain Partners has bezoek deze website gathered an exciting listing of better-level video game in regards to our participants to enjoy. Besides the incredible profile, the group behind them has proven is a reliable and you may exceptional you to provides doing. We suggest.

Bookmaker Ratings

We’ve got worked with this new BWIN brand for more than 3 years today and also educated only professionalism, positivity and you can transparency. The company known, sales was significantly more than mediocre as well as the was basically productive within the development our very own field when you look at the Eastern Europe – asking for and you may playing viewpoints and you will improving with the giving.

PlayersBest

Entain try necessary for all the create-feel representative, owing to its great number of domestic-term names and easy, yet , energetic, service. These include great, we would not imagine the company without them, and you may our connection with Entain will have an integral part inside the our coming procedures once the a family.

Redaktionstest

New labels at the Entain are amongst the best on the world, therefore we was pleased which our relationship has gotten off to such as for instance an improvement. We love how the provider functions, the fresh guidance that’s available away from educated group, and and – highly recommended!

Fruity Slots

Coping with Entain People formally GVC might have been a total satisfaction. Its reliability and their experience in brand new igaming industry might have been very valuable in order to you once the a business and you may enough time !

Casinolupo

Bwin and you will Gioco Digitale are to high end on-line casino labels throughout the Italian market. We’re much more then pleased to depict all of them, can’t suggest them enough.

100bookies

We can remember that Entain are a modern representative agent. They have combined numerous world famous playing names to their system at a time, that’s really smoother for people once you bring each of all of them meanwhile. And additionally their service is without a doubt first-category in the business.

SportStatist

It is rather lovely and comfy for all of us to partner with Entain People having a long time. Its associate program are theoretically best and nearly flawless. In addition, he could be always expanding, improving and you may expanding, including the latest names on the system. At the same time, most of the bought percentage costs are executed right away, for the automated form, exactly what might possibly be in addition to this?

CASSINOV

Entain involve some of the greatest names around and you can the audience is pleased are working with them. Besides will they be good into the European union but they are in addition to most localized throughout the LATAM business that is exactly what we you prefer. Its user group is very top-notch, so we strongly recommend them very.