/**
* 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;
}
}
The post Buitlandse Online Casino’s Veiligheid en Betrouwbaarheid first appeared on .
]]>
In de afgelopen jaren zijn buitenlandse online casino’s steeds populairder geworden onder Nederlandse spelers. Met een breed scala aan spellen, aantrekkelijke bonussen en de mogelijkheid om vanuit het comfort van je eigen huis te spelen, is het geen verrassing dat veel gokkers zich tot deze platforms wenden. Maar hoe weet je welke buitenlandse casino betrouwbaar zijn? Het is essentieel om goed geïnformeerd te zijn voordat je begint met spelen. In dit artikel bespreken we belangrijke aspecten van buitenlandse online casino’s, waaronder hun veiligheid, betrouwbaarheid en de voordelen van spelen bij deze platforms. We gaan ook dieper in op betrouwbare opties, zoals buitenlandse online casino buitenlandse casino betrouwbaar, en wat je moet overwegen bij het kiezen van een casino.
Buitenlandse online casino’s zijn online gokplatforms die aangedreven worden vanuit landen buiten Nederland. Deze casino’s zijn vaak geregistreerd en gereguleerd door buitenlandse autoriteiten, waardoor ze spelers uit verschillende landen kunnen aantrekken. In tegenstelling tot Nederlandse online casino’s, die sinds 2021 onder strikte regulering vallen, hebben veel buitenlandse casino’s een breder aanbod aan spellen en attractieve bonusstructuren. Dit maakt ze interessant en aantrekkelijk voor gokkers die op zoek zijn naar meer diversiteit en kansen om te winnen.
Een van de belangrijkste facetten van het kiezen van een buitenlands online casino is de veiligheid. Sommigen van deze casino’s zijn gereguleerd door gerenommeerde autoriteiten zoals de Malta Gaming Authority (MGA), de UK Gambling Commission of de Curaçao eGaming Licensing Authority. Deze instanties zorgen ervoor dat de casino’s eerlijk en transparant zijn en dat ze voldoen aan strikte veiligheidsnormen. Het is cruciaal om te controleren of een casino een geldige vergunning heeft voordat je begint met spelen. Dit kan je een gevoel van vertrouwen geven dat je in een veilige omgeving gokt.
Buitenlandse online casino’s bieden verscheidene voordelen ten opzichte van hun binnenlandse tegenhangers. Enkele van de belangrijkste voordelen zijn:
Het is cruciaal om te kiezen voor betrouwbare buitenlandse online casino’s. Enkele tekenen van betrouwbaarheid zijn:

Buitenlandse online casino’s hebben een breed assortiment aan spellen. Hier zijn enkele populaire categorieën:
Een ander belangrijk aspect van buitenlandse online casino’s zijn de betalingsmethoden. Betrouwbare casino’s bieden een verscheidenheid aan veilige betalingsopties, waaronder creditcards, e-wallets zoals PayPal en Skrill, en zelfs cryptovaluta zoals Bitcoin. Zorg ervoor dat je bekend bent met de beschikbare opties en de bijbehorende verwerkingskosten.
Veilig en verantwoordelijk gokken zou voorop moeten staan bij het spelen in online casino’s. Buitenlandse casino’s hebben vaak hulpmiddelen en bronnen beschikbaar om spelers te helpen hun gokgedrag te controleren. Dit kan bestaan uit limieten voor stortingen, verliezen of speeltijd. Het is belangrijk om deze hulpmiddelen te gebruiken om ervoor te zorgen dat gokken leuk en veilig blijft.
Buitenlandse online casino’s bieden een breed scala aan mogelijkheden voor spelers die op zoek zijn naar nieuwe ervaringen en diversiteit in hun speelstijl. Maar veiligheid en betrouwbaarheid zijn van het grootste belang. Zorg ervoor dat je goed onderzoek doet voordat je je aanmeldt bij een casino en dat je rekening houdt met de eerder genoemde factoren. Met de juiste kennis en voorzichtigheid kunnen buitenlandse online casino’s een spannende en veilige manier bieden om te gokken. Vergeet niet altijd verantwoord te spelen en te genieten van de ervaring!
The post Buitlandse Online Casino’s Veiligheid en Betrouwbaarheid first appeared on .
]]>