/* 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":151882,"date":"2026-06-13T20:20:53","date_gmt":"2026-06-13T20:20:53","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=151882"},"modified":"2026-06-13T20:20:53","modified_gmt":"2026-06-13T20:20:53","slug":"robocat-casino-2","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/robocat-casino-2\/","title":{"rendered":"Das Online-Casino f\u00fcr Gewinner in Belgien ist Robocat Casino"},"content":{"rendered":"
\n\"how<\/p>\n

Im belgischen Online-Gl\u00fccksspiel gibt es einen eindeutigen Favoriten, der durch seine Mischung aus Zuverl\u00e4ssigkeit, Spielvergn\u00fcgen und deutlichem Fokus auf die Spieler begeistert: robocat casino<\/a>. Diese Plattform begreift, was belgische Spieler erwarten. Sie pr\u00e4sentiert nicht nur hervorragende Unterhaltung, sondern ist konsequent darauf angelegt, Gewinner zu generieren. Eine belgische Lizenz der Gl\u00fccksspielkommission (BGC) stellt dar das stabile Fundament. Dazu kommt ein atemberaubendes Spielangebot von NetEnt, Play’n GO und Evolution Gaming sowie Promotionen, die echt etwas einbringen. Robocat beweist, wie ein Casino arbeitet, das seine Spieler wertsch\u00e4tzt \u2013 und ihnen gro\u00dfz\u00fcgig einen reizvollen Spielrausch beschert. Die Mission ist klar: Jeder Besuch soll zu einem spannenden Abenteuer mit echtem Gewinnpotenzial werden.<\/p>\n

Aus welchem Grund belgische Gl\u00fccksspieler Robocat Casino sch\u00e4tzen<\/h2>\n

Belgische Spieler kennen sich aus. Sie achten auf Vertrauensw\u00fcrdigkeit, eine offizielle Lizenz der BGC, angemessene Bedingungen und einen Service, der reibungslos und respektvoll abl\u00e4uft. An dieser Stelle erwischt Robocat Casino den Nerv. Die Plattform arbeitet vollkommen legal unter belgischem Recht und bietet damit die elementare Sicherheit, die Spieler ben\u00f6tigen. Das ist aber nur der erste Schritt. Eine intuitive, multilinguale Oberfl\u00e4che, ein z\u00fcgiger Kundenservice auf Franz\u00f6sisch, Niederl\u00e4ndisch und Deutsch sowie lokal optimierte Zahlungsmethoden vereinfachen den Alltag m\u00fchelos. Bei Robocat empfindet man sich wie ein willkommener Gast, nicht wie eine Nummer. Klare Gesch\u00e4ftsbedingungen und ein echter Spielerschutz runden ab das vertrauensw\u00fcrdige Bild.<\/p>\n

Schutz & Fairplay: Unsere Hauptpriorit\u00e4t<\/h2>\n

F\u00fcr Robocat Casino sind Spielerschutz und absolute Fairness keine blo\u00dfen Worte, sondern bilden das Fundament der Plattform. Hochmoderne 128-Bit SSL-Verschl\u00fcsselung sichert jegliche personenbezogenen Daten und Geldtransaktionen mit Bankenstandard. S\u00e4mtliche Spiel wird von autorisierten Zufallszahlengeneratoren (RNGs) gesteuert. Diese gew\u00e4hrleisten, dass s\u00e4mtliche Ergebnis unvorhersagbar, nicht kalkulierbar und unmanipulierbar ist. Externe Pr\u00fcfstellen wie eCOGRA kontrollieren diese Fairness in regelm\u00e4\u00dfigen Abst\u00e4nden. Robocat vertraut au\u00dferdem auf einen vorausschauenden Spielerschutz. Vielf\u00e4ltige Tools wie Einzahlungslimits, Selbsttests und zeitweilige Spielsperren werden bereitgestellt. Spieler k\u00f6nnen sich so voll auf den Spielspa\u00df konzentrieren, im Bewusstsein, dass sie in einer vertrauensw\u00fcrdigen und fairen Umgebung ihre Zeit verbringen.<\/p>\n

Ein Casino-Paradies: Spielautomaten, Kartenspiele & Live-Croupier<\/h2>\n

Die Spielbibliothek von Robocat Casino bietet eine beeindruckende und wachsende Auswahl. Unz\u00e4hlige der popul\u00e4rsten Spielautomaten laden zur Erkundung ein. Die Bandbreite reicht von klassischen Fruchtmaschinen \u00fcber digitale Slots mit kinoreifer Grafik hin zu progressiven Jackpots wie “Mega Moolah”, die das Leben ver\u00e4ndern k\u00f6nnen. F\u00fcr Taktikliebhaber existiert eine vielf\u00e4ltige Kollektion von Tischklassikern: europ\u00e4isches und franz\u00f6sisches Roulette, Blackjack in verschiedenen Varianten, Baccarat und Poker. Der H\u00f6hepunkt ist definitiv der Live-Casino-Bereich. Echte, professionelle Dealer hosten hier Spiele aus modernen Studios in Live-\u00dcbertragung. So wird die authentische Atmosph\u00e4re eines Brick-and-Mortar-Casinos mit sozialer Interaktion vor die Augen des Spielers. \u00c4u\u00dferst popul\u00e4r sind auch Game-Shows wie “Monopoly Live” oder “Dream Catcher”, die Spa\u00df und Gewinnm\u00f6glichkeiten geschickt kombinieren.<\/p>\n

Angepasst f\u00fcr Belgien: Zahlungen & Support<\/h2>\n

Robocat Casino gestaltet Ein- und Auszahlungen f\u00fcr belgische Kunden unkompliziert und z\u00fcgig. Die Plattform ist vollst\u00e4ndig auf lokale Bed\u00fcrfnisse abgestimmt. Alle lokal beliebten und vertrauensw\u00fcrdigen Zahlungsmethoden werden akzeptiert. Dazu geh\u00f6rt nat\u00fcrlich Bancontact als beliebteste Option, aber auch Kreditkarten wie Visa und Mastercard, E-Wallets wie Skrill und Neteller, Prepaid-Optionen sowie direkte Bank\u00fcberweisungen. Einzahlungen sind in der Mehrzahl der F\u00e4lle sofort wirksam. Auszahlungen werden dank schneller Prozesse rasch abgewickelt. Sollte doch eine Frage auftaucht, ist das mehrsprachige Support-Team t\u00e4glich rund um die Uhr verf\u00fcgbar. Der n\u00fctzliche Live-Chat bietet sofortige Hilfe, alternativ funktioniert es per E-Mail oder Telefon. Die Antworten sind kompetent, hilfsbereit und zielen darauf ab, den Spieler zu begeistern und ihn schnell zur\u00fcck ins Spiel zu holen.<\/p>\n

Spielen von \u00fcberall: Die Robocat-Casino-App f\u00fcr unterwegs<\/h2>\n

Der Spielspa\u00df bei Robocat Casino ist nicht an den PC zu Hause gebunden. Mit der optimierten, nutzerfreundlichen App f\u00fcr iOS und Android haben Nutzer das gesamte Casino immer in der Tasche. Die App bietet das gesamte Spielerlebnis in ideal zugeschnittener Form: Hunderte Slots in scharfer Grafik, packende Live-Dealer-Spiele, alle g\u00e4ngigen Tischspiele und s\u00e4mtliche Banking-Funktionen laufen problemlos auf Smartphones und Tablets. Die einfache Navigation und das ber\u00fchrungsoptimierte Design machen das Spielen zum Vergn\u00fcgen. Egal ob in der Mittagspause, auf dem Weg oder auf dem Sofa \u2013 die n\u00e4chste M\u00f6glichkeit, zu gewinnen ist nur einen Fingertipp entfernt. Unkompliziert aus dem App Store oder von der Website downloaden, mit den vorhandenen Daten anmelden und direkt starten. Viele Spieler lieben die mobile Erfahrung so sehr, dass sie sie dem Desktop vorziehen.<\/p>\n

Begr\u00fc\u00dfungsbonus & aktuelle Promotionen, die beindrucken<\/h2>\n

Bei Robocat Casino startet der Spa\u00df mit einem herzlichen und eintr\u00e4glichen Empfang. Neue Spieler aus Belgien kriegen ein Willkommenspaket, das ihren Start verbessert und die Spielzeit erweitert. Das hei\u00dft richtiges Extra-Guthaben und h\u00e4ufig Freispiele, die die Aussicht auf einen gro\u00dfen Gewinn verbessern. Die Gro\u00dfz\u00fcgigkeit stoppt nach der Anmeldung nicht auf. Stammspieler ziehen Nutzen von einem sich st\u00e4ndig \u00e4ndernden Kalender mit originellen Aktionen: Reload-Boni, Cashback-Angebote, Freispiel-Tage und besondere Turniere mit ansehnlichen Preisgeldern. Ein abgestuftes Belohnungssystem garantiert, dass beinahe jeder Einsatz Punkte bringt, die sp\u00e4ter in Bonusgeld eingetauscht werden k\u00f6nnen. Ein w\u00f6chentlicher Blick auf die Promotions-Seite lohnt sich. Zu den popul\u00e4rsten Aktionen z\u00e4hlen:<\/p>\n