/* 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":139742,"date":"2026-06-09T08:28:42","date_gmt":"2026-06-09T08:28:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=139742"},"modified":"2026-06-09T08:28:42","modified_gmt":"2026-06-09T08:28:42","slug":"speel-direct-blackjack-en-roulette-bij-spin-city-casino-in-nederland","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/speel-direct-blackjack-en-roulette-bij-spin-city-casino-in-nederland\/","title":{"rendered":"Speel direct blackjack en roulette bij Spin City Casino in Nederland."},"content":{"rendered":"
\n\"Fb777<\/p>\n

Bij Spin City Casino kunnen spelers in Nederland zich onderdompelen in de levendige wereld van live blackjack en roulette spincity-casino.eu<\/a>. Met professionele dealers en streaming in hoge resolutie bootst het casino de echte spanning van een fysieke speelomgeving na. Spelers kunnen gemakkelijk navigeren tussen de diverse spelvarianten en hun strategie\u00ebn verfijnen. Maar welke bijzondere kenmerken onderscheiden Spin City in het concurrerende online gaminglandschap? De oplossingen wachten op spelers die meer willen weten.<\/p>\n

De spannende wereld van live casinospellen<\/h2>\n

Directe casinospellen hebben een revolutie teweeggebracht in de online gokwereld en bieden gokkers een meeslepende ervaring die de afstand tussen digitaal en traditioneel gamen overbrugt.<\/p>\n

Met de invoering van live dealers kunnen gokkers in echte tijd met elkaar communiceren en de spanning van een fysiek casino vanuit hun eigen huis beleven. Deze spellen bootsen de ambiance van een klassiek casino na, compleet met ervaren croupiers en hoogwaardige streamingtechnologie.<\/p>\n

Het boeiende karakter van directe casinospellen stimuleert maatschappelijke interactie, waardoor deelnemers tegelijkertijd kunnen chatten en weddenschappen maken. Dit innovatieve format behoudt de spanning van traditionele spellen zoals blackjack en roulette, terwijl de betrokkenheid van de gebruiker wordt vergroot door authentieke ervaringen.<\/p>\n

De mix van echte tijd actie en betrokken elementen heeft de online casino-ervaring voor veel spelers duidelijk veranderd.<\/p>\n

Hoe begin je bij Spin City Casino?<\/h2>\n

Beginnen bij Spin City Casino is een eenvoudig proces dat de toegang opent naar een spannende spelervaring.<\/p>\n

Spelers kunnen zich eenvoudig in de actie storten door deze simpele stappen te volgen:<\/p>\n

    \n
  1. Account aanmaken<\/strong><\/li>\n
  2. Verificatie<\/strong><\/li>\n
  3. Kies uw betaalopties<\/strong><\/li>\n
  4. Ontdek de spellen<\/strong><\/li>\n<\/ol>\n

    Door deze stappen te volgen, zetten spelers de eerste stappen richting spannende live casino-ervaringen.<\/p>\n

    Kenmerken van Live Blackjack bij Spin City<\/h2>\n

    Spelers die op zoek zijn naar een dynamische spelervaring zullen de blackjackmogelijkheden bij Spin City Casino zeer boeiend vinden. Het casino biedt een scala aan multiplayer-opties waarmee spelers kunnen interageren met zowel de dealer als medespelers, wat het interactieve aspect van het spel versterkt.<\/p>\n

    Deze interactie zorgt voor een meeslepende ervaring die aanvoelt alsof je in een fysiek casino bent, met realtime gameplay en eerlijke dealers. Streaming in hoge resolutie garandeert spelers soepel beelden, terwijl geavanceerde technologie naadloos wedden en communiceren mogelijk maakt.<\/p>\n

    De gebruiksvriendelijke interface van Spin City maakt het eenvoudig om te navigeren en instellingen aan te passen, waardoor spelers hun spelervaring volledig naar eigen wens kunnen aanpassen. Of je nu een beginner of een ervaren speler bent, iedereen kan de spannende functies van Spin City’s live blackjack appreci\u00ebren.<\/p>\n

    De spanning van live roulette spelen<\/h2>\n

    Roulette bij Spin City Casino biedt de opwinding en onvoorspelbaarheid die het tot een klassieke favoriet onder gokkers maken. Dankzij de live dealers wanen spelers zich in een echt casino, waardoor elke draai een sensatie is.<\/p>\n

    Het element van kans, gecombineerd met diverse roulettestrategie\u00ebn, houdt spelers geboeid en op het puntje van hun stoel. Hier zijn vier oorzaken waarom live roulette spelen zo uniek is:<\/p>\n

      \n
    1. Authenticiteit<\/strong><\/li>\n
    2. Variatie<\/strong><\/li>\n
    3. Strategie\u00ebn toepassen<\/strong><\/li>\n
    4. Community<\/strong><\/li>\n<\/ol>\n

      Deze combinatie maakt live roulette bij Spin City tot een onvergetelijke ervaring.<\/p>\n

      Strategie\u00ebn voor succes bij blackjack en roulette<\/h2>\n

      Hoewel zowel blackjack als roulette opwindende spelelementen bevatten, kan het toepassen van effectieve strategie\u00ebn de mogelijkheid op winst van een speler aanzienlijk vergroten.<\/p>\n

      Bij blackjack is het cruciaal om de basisstrategie\u00ebn onder de knie te hebben, zoals weten wanneer je een kaart moet vragen, passen of dubbelen. Spelers moeten ook de optimale zetten herinneren, afhankelijk van de sterkte van hun hand en de zichtbare kaart van de dealer.<\/p>\n

      Aan de andere kant kunnen roulettespelers verschillende roulette-inzetsystemen verkennen, zoals het Martingale- of Fibonacci-systeem, om hun speelbudget effectief te beheren. Deze systemen bevorderen discipline in het weddenschapspatroon en kunnen helpen verliezen te minimaliseren.<\/p>\n

      Uiteindelijk draait succesvol spelen in deze casinoklassiekers om het begrijpen van de regels, rustig blijven onder druk en het aanpassen van tactieken op basis van kennis en risicobereidheid.<\/p>\n

      Waarom Spin City Casino zich onderscheidt<\/h2>\n

      Met zijn bijzondere combinatie van hoogwaardige spelervaringen en eenvoudige functies onderscheidt Spin City Casino zich echt in het concurrerende online casinolandschap.<\/p>\n

      Spelers ontdekken een ruime selectie live blackjack- en roulettevarianten die aan diverse voorkeuren voldoen. De charme van Spin City Casino is te danken aan een aantal cruciale factoren:<\/p>\n

        \n
      1. Spelvariatie<\/strong><\/li>\n
      2. Gebruikerservaring<\/strong><\/li>\n
      3. Live interactie<\/strong><\/li>\n
      4. Mobiele compatibiliteit<\/strong><\/li>\n<\/ol>\n

        Deze elementen ontwikkelen samen een aantrekkelijke omgeving die ervoor zorgt dat spelers herhaaldelijk terugkomen voor meer spanning en genot.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

        Bij Spin City Casino kunnen spelers in Nederland zich onderdompelen in de levendige wereld van live blackjack en roulette spincity-casino.eu. Met professionele dealers en streaming in hoge resolutie bootst het casino de echte spanning van een fysieke speelomgeving na. Spelers kunnen gemakkelijk navigeren tussen de diverse spelvarianten en hun strategie\u00ebn\u2026<\/p>\n

        Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-139742","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=139742"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139742\/revisions"}],"predecessor-version":[{"id":139743,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/139742\/revisions\/139743"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=139742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=139742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=139742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}