/* 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":140580,"date":"2026-06-11T00:24:33","date_gmt":"2026-06-11T00:24:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=140580"},"modified":"2026-06-11T00:24:33","modified_gmt":"2026-06-11T00:24:33","slug":"spinsy-casino-continue-actie-en-beloningen-in-belgie","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/spinsy-casino-continue-actie-en-beloningen-in-belgie\/","title":{"rendered":"Spinsy Casino \u2013 Continue Actie en Beloningen in Belgi\u00eb"},"content":{"rendered":"
\n\"Experience<\/p>\n

Van harte welkom bij Spinsy Casino https:\/\/sspinsy.com\/nl-be\/<\/a>. Dit is plek voor Belgische deelnemers die dol zijn op variatie en graag worden beloond. We hebben een uitgebreide selectie spellen, transparante promoties en een platform dat speciaal is voor Belgen. Hier vind je alle informatie over wat Spinsy Casino jou te bieden heeft. Beginnend met de modernste slots tot de veiligste methoden om te storten. We wensen je met plezier alle nuttige details meegeven, zodat je met vreugde en verstand bij ons kunt meedoen.<\/p>\n

Spinsy Casino: Een Snelle Kennismaking<\/h2>\n

Spinsy Casino is een recente naam op de Belgische online gokmarkt, maar heeft vlot een goede reputatie opgebouwd. We opereren met een geldige licentie van de Belgische Kansspelcommissie. Dat waarborgt dat we voldoen aan alle zware regels voor beveiliging en rechtvaardig spel. Onze missie? Een spelomgeving cre\u00ebren waar entertainment, uitstekende service en een saamhorigheid net zo belangrijk zijn als een overwinning. De Belgische speler staat bij ons voorop, en dat zie je terug in ons assortiment.<\/p>\n

\"Slots<\/p>\n

Onze Visie en Waarden<\/h3>\n

Voor Spinsy is een goed casino meer dan een verzameling spellen. We bouwen aan een betrouwbare relatie met onze spelers. Dat doen we door transparant te zijn, verantwoord spelen te stimuleren en snel te helpen. Ons team geeft antwoord met plezier je vragen en zorgt dat alles soepel verloopt. We blijven ons platform verbeteren, zodat je altijd kunt rekenen op de nieuwste techniek en de hoogste beveiliging voor je gegevens en geld.<\/p>\n

Licentie en Beveiliging: Spelervaring met een Rustig Hart<\/h2>\n

De bescherming van onze spelers en hun data staat bij ons op de voorste prioriteit. Spinsy Casino heeft een licentie van de Belgische Kansspelcommissie (het licentienummer staat op onze website). Deze erkenning waarborgt dat we voldoen aan alle juridische vereisten voor spelerbeveiliging, rechtvaardig spel en financi\u00eble duidelijkheid. Onze games worden regelmatig geverifieerd door onafhankelijke keurmeesters. Zij staan voor onvoorspelbare resultaten en juiste betalingen.<\/p>\n

Elke individuele en geldelijke data die je met ons deelt, beschermen we met geavanceerde encryptietechnologie. Je data worden tijdens elke transactie gecodeerd in een versleutelde code. Zo blijven ze beveiligd voor derden. We besteden doorlopend in de recentste beveiliging. Ons doel is een digitaal fort waar jij je op je gemak bevindt.<\/p>\n

Speciale Bonussen en Aanbiedingen voor Vlaamse Spelers<\/h2>\n

Spinsy Casino waardeert zijn spelers het hele jaar door met interessante bonussen. Een goede welkomstbonus is noodzakelijk, maar we eindigen niet na de eerste storting. Ons promotieprogramma verbaast en vergoedt ook spelers die al langer bij ons zijn. Alle acties zetten we duidelijk uit, met re\u00eble voorwaarden en realistische regels. Zo kent je altijd precies wat je kunt anticiperen.<\/p>\n

De Startbonus Ontleed<\/h3>\n

Onze welkomstbonus is je ideale startkapitaal om Spinsy te ontdekken. Meestal bestaat deze uit een extra percentage op je eerste storting, plus een aantal gratis spins op bepaalde slots. Lees voor je meedoet wel altijd even de voorwaarden. Let op het maximale bonusbedrag, de minimale storting en de speelvereisten (de zogenaamde wagering requirements). Als je die begrijpt, kun je met een gerust hart van de extra speeltijd genieten.<\/p>\n

Waarom Beslissen voor Spinsy Casino in Belgi\u00eb?<\/h2>\n

\"JewelDrop<\/p>\n

De Vlaamse online casino wereld is intens. Spinsy Casino springt eruit door een reeks heldere voordelen. We bieden niet alleen een omvangrijke en gevarieerde spelaanbod. Onze beleving is geheel op Belgi\u00eb afgestemd, met plaatselijke transactiemogelijkheden, Nederlandse ondersteuning en focus voor de Vlaamse spelcultuur. Onze promoties zijn doorzichtig en veilig spelen ligt in onze visie verweven. Bij ons ben je meer dan een rekeningnummer. Je raakt een geschat lid van onze gemeenschap.<\/p>\n

Sinds je registratie tot het uitbetalen van een winst, proberen we naar een soepele, plezierige en veilige periode. We horen naar feedback van spelers en stemmen ons aanbod en diensten hierop aan. Ben je op zoek een dynamisch, betrouwbaar en lonend online casino dat de Belgische regels volledig naleeft? Dan is Spinsy Casino de juiste beslissing. We heten je met genoegen in ons midden en bieden je deel uitmaken van ons verhaal.<\/p>\n

Gamen Onderweg: Neem de actie Altijd Met Je Mee<\/h2>\n

Je dagelijks leven is mobiel, je casino zou dat ook moeten zijn. Het platform van Spinsy Casino is optimaal geoptimaliseerd voor smartphones en tablets. Je hoeft geen app te downloaden. Speel direct via de browser van je mobiele apparaat. Deze mobiele versie heeft alles wat de desktop-site ook heeft. Alle spellen, betaalmogelijkheden en accountinstellingen zijn goed aangepast aan een kleiner scherm. Geniet mee van de actie, waar en wanneer je maar wilt.<\/p>\n

De interface is intu\u00eftief en reageert snel. Hij reageert snel. Navigeren en spelen gaat daardoor moeiteloos. Wacht je even op de bus? Of relax je op de bank? Met een paar tikken op je scherm zit je middenin het spel. De grafische kwaliteit en prestaties blijven uitstekend. Je speelervaring wordt dus niet minder. Mobiel gamen bij Spinsy staat voor flexibiliteit en gemak.<\/p>\n

Klantenservice: Jouw Problemen, Onze Oplossingen<\/h2>\n

Uitstekende klantenservice is de kern van een online casino. Bij Spinsy <\/p>\n