/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":139925,"date":"2026-06-10T16:19:06","date_gmt":"2026-06-10T16:19:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=139925"},"modified":"2026-06-10T16:19:06","modified_gmt":"2026-06-10T16:19:06","slug":"winairlines-casino-verantwoord-gokken-en-wettelijke-naleving-in-nederland","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/winairlines-casino-verantwoord-gokken-en-wettelijke-naleving-in-nederland\/","title":{"rendered":"WinAirlines Casino: Verantwoord Gokken en Wettelijke Naleving in Nederland"},"content":{"rendered":"
\n\"Rainbow<\/p>\n

Voor WinAirlines Casino zijn veiligheid en het welzijn spelers het allerbelangrijkst. In Nederland, waar de Kansspelautoriteit (KSA) de markt reguleert, is naleving voor ons niet slechts een vereiste. Het is het kern van hoe we werken. We weten dat spelers alleen pret kunnen hebben als er strikte regels en bescherming zijn. Daarom hebben we een diepgaand beleid voor verantwoord gokken in elk aspect van ons platform ingebouwd. Dit artikel toont aan hoe we aan de zware Nederlandse wetgeving voldoen aan en welke tools en steun we spelers bieden om de controle te houden.<\/p>\n

Het Nederlandse Wettelijke Kader: Het Raamwerk van de KSA<\/h2>\n

Sedert oktober 2021 bezit Nederland een gecontroleerde online kansspelmarkt. Dat betekende een aanzienlijke verandering. De Kansspelautoriteit (KSA) voert als zelfstandige toezichthouder toezicht uit op alle aanbieders, zoals WinAirlines Casino. De Wet Kansspelen op Afstand (WKA) is hierbij leidend. Deze wet heeft als doel vooral consumenten te vrijwaren, verslaving te tegengaan en criminaliteit te bestrijden. Doordat wij een licentie hebben, handelen we helemaal binnen dit juridische kader. We voldoen aan alle technologische, administratieve en financi\u00eble vereisten. Bijvoorbeeld aan leeftijdsverificatie, fraudepreventie en het voldoen van speelbelasting. Onze vergunning laat zien dat we ons inzetten voor een legitieme en betrouwbare plek om te kansspelen te doen.<\/p>\n

Eisen voor Vergunninghouders<\/h3>\n

Voor een KSA-vergunning dienen aanbieders aan veel voorwaarden te voldoen. Het bedrijf en de bestuurders moeten een grondige integriteitscheck doorstaan. De technische systemen voor registratie en transacties moeten degelijk te zijn. Spelersgeld moet apart gescheiden worden van bedrijfsgeld. Ook bestaan er regels voor reclame, zoals dat je kwetsbare groepen niet behoort targeten. Bij WinAirlines Casino achten we deze eisen niet lastig. Ze blijken nodig voor een betrouwbare service. Onze compliance-afdeling overlegt regelmatig met de KSA. Zo zorgen we dat onze processen altijd voldoen aan de recentste richtlijnen en wetsinterpretaties.<\/p>\n

Privacybescherming en Veiligheid van Spelersdata<\/h2>\n

\"Fastest<\/p>\n

We beschermen de individuele en bank gegevens van onze spelers grondig. We werken met hoge cybersecurity-standaarden en nemen in acht de Algemene Verordening Gegevensbescherming (AVG). Al het dataverkeer tussen klant en systeem versleutelen we met SSL-technologie. Persoonlijke data opslaan en behandelen we alleen voor juridische doelen, zoals leeftijdscheck, overboekingen en fraudepreventie. We verstrekken nooit gegevens met derden voor reclame zonder expliciete toestemming. In onze privacyverklaring leggen we in toegankelijke taal uit welke gegevens we verzamelen, met welk doel, en hoe lang we ze behouden.<\/p>\n

Beveiligde Betalingen en Betalingsmethoden<\/h3>\n

Bank transacties zijn een essentieel aandachtspunt op het gebied van veiligheid. We gebruiken uitsluitend betaaldienstaanbieders die goed bekend staan en gereguleerd zijn. Die voldoen aan de strenge PCI DSS-normen voor betaalkaartveiligheid. Klanten kunnen kiezen uit bekende Nederlandse manieren zoals iDEAL, overschrijvingen en kredietkaarten. Elke betaling controleren we met ons systeem voor fraudebestrijding, dat ongebruikelijke patronen opmerkt. We verwerken alleen transacties waar de houder van de rekening dezelfde is als de geregistreerde gebruiker. Zo werken we mee aan witwasactiviteiten voorkomen. Dit leidt ertoe niet alleen dat we aan de voorschriften voldoen, maar biedt onze klanten ook rust.<\/p>\n

Hulp en Verwijzing naar Hulpinstanties<\/h2>\n

Als gokkers zich bekommeren over hun handelen of dat van iemand in hun kring, is deskundige hulp noodzakelijk. Op WinAirlines Casino geven we directe links en contactinformatie van specifieke hulporganisaties. Onze primaire partner in Nederland is Stichting AGOG (Alcohol, Gokken en andere Verslavingen). Die biedt anonieme hulplijnen, chat en zelfhulpprogramma’s. Ook doorverwijzen we naar de landelijke organisatie Gokken Info<\/strong>Gokkers Anoniem<\/strong><\/p>\n

    \n
  1. Stichting AGOG (Alcohol, Gokken en andere Verslavingen):<\/strong><\/li>\n
  2. Gokken Info:<\/strong><\/li>\n
  3. Gokkers Anoniem:<\/strong><\/li>\n
  4. De huisarts:<\/strong><\/li>\n<\/ol>\n

    Zelfuitsluiting via Cruks<\/h2>\n

    Het Centraal Register Uitsluiting Kansspelen (Cruks) is een landelijk register https:\/\/winsairlines.eu\/nl-nl\/<\/a>. Spelers kunnen zich hier uitschrijven van alle legale Nederlandse aanbieders. Als licentiehouder moeten we dit register checken bij elke registratie en inlogpoging. Staat een speler in Cruks, dan kunnen we geen account openen of toegang geven tot het casino. Spelers kunnen zich voor 6 maanden, 1 jaar of voor onbepaalde tijd aanmelden. Alle vergunninghouders volgen deze keuze. We staan volledig ondersteunen dit systeem. Het levert spelers een stevig hulpmiddel als ze een time-out of definitieve pauze willen van online kansspelen.<\/p>\n

    Informatie over Risico’s en Signalen<\/h2>\n

    We denken dat spelers met nauwkeurige informatie doordachte keuzes nemen. Daarom vindt u op ons platform duidelijke uitleg over kansspelen, zoals de statistische voorsprong van het casino (RTP) per spel. We besteden aandacht op de risico’s van te veel gokken en de indicaties van problematisch gedrag. Bijvoorbeeld als je je speelgedrag verbergt, taken negeert of verliezen tracht terug te winnen. Door deze signalen te noemen, beogen we het zelfreflectie van spelers stimuleren. En het schaamte op hulp zoeken terugdringen. Preventie begint wanneer je de signalen onderkent.<\/p>\n

    Het Beleid voor Gezond Gokken: Preventie en Bescherming<\/h2>\n

    Gezond gokken is de basis van hoe we met spelers omgaan. Ons beleid is erop toegespitst problemen voor te blijven. We beseffen dat gokken gevaren heeft. Daarom geven we spelers kennis en hulpmiddelen om goede keuzes te treffen. Onze methode draait om educatie, zelfevaluatie en bereik tot tools. Al bij aanmelding geven we duidelijk uit wat de kansen zijn en welke veiligheidsinstellingen er zijn. Door duidelijk te handelen, bouwen we vertrouwen op en begeleiden we spelers hun handelen in de hand te beheersen.<\/p>\n

    Hulpmiddelen voor Zelfregulering<\/h3>\n

    We presenteren verschillende hulpmiddelen waarmee spelers zelf hun gokgedrag kunnen aanpassen. Deze instrumenten zijn eenvoudig te ontdekken en in te stellen in je profiel. Je kunt onder andere vooraf een stortingslimiet bepalen voor een dagdeel, weekperiode of dertig dagen. Als die limiet overschreden is, kun je niet meer storten tot de nieuwe cyclus begint. Ook kun je verliesgrenzen, tijdgrenzen per speelsessie en inzetgrenzen per spel configureren. Met deze hulpmiddelen behouden onze gebruikers de controle over hun budget en gokken ze binnen hun eigen limieten.<\/p>\n