/* 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":140495,"date":"2026-06-10T21:20:47","date_gmt":"2026-06-10T21:20:47","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=140495"},"modified":"2026-06-10T21:20:47","modified_gmt":"2026-06-10T21:20:47","slug":"robocat-casino-registrieren","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/robocat-casino-registrieren\/","title":{"rendered":"Gl\u00fccksspiele im Robocat Casino f\u00fcr Spieler aus der Schweiz"},"content":{"rendered":"
\n

Schweizer Spieler bietet das Robocat Casino Registrieren<\/a> Casino eine umfangreiche Spielesammlung bereit. Dieser Artikel betrachtet das Portfolio detailliert. Wir betrachten, was die Auswahl ausmacht, welche Anbieter vertreten sind und welche Besonderheiten f\u00fcr Spieler aus der Schweiz attraktiv sind. So erhalten Sie einen guten Einblick, vor Sie sich festlegen.<\/p>\n

Tisch- und Kartenspiele<\/h2>\n

F\u00fcr Strategieliebhaber entdeckt eine breite Auswahl an virtuellen Tischspielen. Es gibt zahlreiche Blackjack- und Roulette-Varianten sowie Poker. Alle Regeln und Tischlimits sind deutlich ersichtlich. Die Software l\u00e4uft ohne Ruckler und garantiert ein faire Spiel. Optimal, um sich in Ruhe mit den Regeln auseinanderzusetzen, ehe man zu den Live-Tischen wechselt.<\/p>\n

Slot-Spiele und Spielautomaten<\/h2>\n

Die Automaten sind die gr\u00f6\u00dfte Attraktion hier. Sie treffen auf traditionelle Dreiwalzen-Slots, pr\u00e4chtige Video-Slots und steigende Jackpots, die kontinuierlich wachsen. Die Themen sind vielf\u00e4ltig, die Bonusrunden originell. Viele Spiele gew\u00e4hren Freispiele oder Multiplikatoren, die genauso f\u00fcr Schweizer Spieler verlockend sind. Transparent dargestellte RTP-Werte unterst\u00fctzen bei der Wahl des geeigneten Automaten.<\/p>\n

Live Casino Erlebnis<\/h2>\n

Im Live Casino streamen echte Croupiers aus dem Studio unmittelbar zu Ihnen. Sie genie\u00dfen Blackjack, Roulette oder Baccarat in Echtzeit und d\u00fcrfen mit dem Dealer chatten. Das erscheint fast wie in einem richtigen Casino an. Die Eins\u00e4tze sind variabel und passen f\u00fcr Spieler mit geringem wie stattlichem Budget. Die \u00dcbertragung l\u00e4uft stabil und in hoher Qualit\u00e4t.<\/p>\n

Mobiles Gaming auf Smartphones<\/h2>\n

Sie k\u00f6nnen das gesamte Casino einfach im Handybrowser nutzen. Eine separate App ist nicht erforderlich. Die Webseite optimiert sich von selbst an die Displaygr\u00f6\u00dfe Ihres mobilen Ger\u00e4ts und ist schnell geladen. Die Bedienung mittels Touch klappt reibungslos und l\u00e4uft einwandfrei. Auf Reisen l\u00e4sst es sich spielen gleicherma\u00dfen gut wie am PC zu Hause.<\/p>\n

Bonusangebote und Gratisspiele<\/h2>\n

Begr\u00fc\u00dfungsboni und wiederkehrende Promotionen umfassen meist Gratisspiele oder Bonusguthaben. H\u00e4ufig sind diese an spezifische Casinospiele oder Studios gebunden. Schauen Sie sich die Durchspielbedingungen genauestens. Einige Aktionen sind ausschlie\u00dflich f\u00fcr Spielautomaten, andere speziell f\u00fcr das Live Casino. Damit k\u00f6nnen Sie Ihr Spielguthaben optimal verwenden.<\/p>\n

Den RTP-Wert erkennen Sie meist unmittelbar in der Spielbeschreibung oder in der Auszahlungstabelle. Sie k\u00f6nnen auch nach Herstellern filtern, die generell f\u00fcr hohe RTPs bekannt sind. Eine Option, um Spiele direkt nach RTP zu sortieren, hat das Casino aber nicht. Hier ist ein wenig Eigenrecherche n\u00f6tig.<\/p>\n

Lassen sich Spiele im Demo-Modus ausprobieren?<\/h3>\n

Bei den Slots funktioniert das fast immer. Ein Gro\u00dfteil steht im “Demo”- oder “Gratis”-Modus zur Verf\u00fcgung. So erleben Sie Spielablauf und Besonderheiten ohne Risiko aus. Im Live Casino und bei einigen Tischspielen ben\u00f6tigen Sie dagegen ein Echtgeld-Konto, da es sich um tats\u00e4chliche Runden handelt.<\/p>\n

Was f\u00fcr Jackpot-Arten sind vorhanden?<\/h3>\n

Sie entdecken zwei Typen: progressive Jackpots, die \u00fcber ein gesamtes Spiele-Netzwerk zunehmen, und fixe Jackpots in einzelnen Spielen. Die progressiven Jackpots k\u00f6nnen zu riesigen Summen anwachsen. Die momentanen Jackpotst\u00e4nde sind meist auf der Spieleseite oder in einem eigenen Men\u00fcpunkt aufgef\u00fchrt.<\/p>\n

Wie schnell werden Gewinnauszahlungen ausbezahlt?<\/h3>\n

Das liegt von der verwendeten Methode ab. E-Wallets wie Skrill oder Neteller sind meist am rasantesten, oft in eines Tages. Bei Banktransfers haben Sie mit etlichen Werktagen kalkulieren. Hinzu kommt die Verarbeitungszeit des Casinos und gegebenenfalls eine erforderliche Kontoverifikation.<\/p>\n

Das Spielesortiment im \u00dcberblick<\/h2>\n

Zahlreiche Spiele stehen bereit im Robocat Casino. Von traditionellen Slots bis zu Live-Dealer-Tischen ist alles M\u00f6gliche dabei. Die Bibliothek vergr\u00f6\u00dfert sich kontinuierlich, denn es erscheinen regelm\u00e4\u00dfig neue Titel ver\u00f6ffentlicht. Dank einer benutzerfreundlichen Filterfunktion suchen Sie nicht lange. Sie sind in der Lage nach Spieltypen oder sofort nach Ihrem Lieblingsentwickler filtern und umgehend loslegen.<\/p>\n

Software-Provider und Qualit\u00e4t<\/h2>\n

Die Qualit\u00e4t der Spiele stammt von den Partnern. NetEnt, Play’n GO und Evolution Gaming sind blo\u00df einige der renommierten Namen im Portfolio. Diese Entwickler b\u00fcrgen f\u00fcr kreative Spielideen, zuverl\u00e4ssige Zufallszahlen und technische Stabilit\u00e4t. Weil so viele diverse Anbieter vertreten sind, ist auch die Stilvielfalt enorm.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Schweizer Spieler bietet das Robocat Casino Registrieren Casino eine umfangreiche Spielesammlung bereit. Dieser Artikel betrachtet das Portfolio detailliert. Wir betrachten, was die Auswahl ausmacht, welche Anbieter vertreten sind und welche Besonderheiten f\u00fcr Spieler aus der Schweiz attraktiv sind. So erhalten Sie einen guten Einblick, vor Sie sich festlegen. Tisch- und\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-140495","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/140495","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=140495"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/140495\/revisions"}],"predecessor-version":[{"id":140496,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/140495\/revisions\/140496"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=140495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=140495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=140495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}