/* 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":157027,"date":"2026-06-15T21:03:16","date_gmt":"2026-06-15T21:03:16","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=157027"},"modified":"2026-06-15T21:03:16","modified_gmt":"2026-06-15T21:03:16","slug":"boomzino-casino-free-spins","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/boomzino-casino-free-spins\/","title":{"rendered":"Gl\u00fccksspiel f\u00fcr Erfolgreiche in Belgien mit Boomzino Casino"},"content":{"rendered":"
\n\"10<\/p>\n

Boomzino Casino ist spezialisiert auf ambitionierte Spieler. Die Plattform baut auf eine exzellente Spielerfahrung, ein breites Spielangebot und faire Bedingungen. Wer hier aktiv ist, verlangt mehr als kurze Ablenkung. Boomzino wei\u00df, dass diese Spieler eine sichere und profitable Umgebung erfordern, in der jedes Detail stimmt. Die benutzerfreundliche Bedienung, die attraktiven Boni \u2013 alles ist darauf abgestimmt, den Spieler ins Zentrum zu r\u00fccken. Hier findet man die geeigneten Werkzeuge, um Erfolg zu haben.<\/p>\n

Schutz und Spielerschutz<\/h2>\n

Boomzino Casino agiert unter einer anerkannten Lizenz. Diese garantiert faire Spiele, Absicherung der Spieler und finanzielle Sicherheit. Eine zeitgem\u00e4\u00dfe SSL-Verschl\u00fcsselung verschl\u00fcsselt alle Daten und Transaktionen. Externe Pr\u00fcfstellen best\u00e4tigen die Fairness der Spiele und die genauen Auszahlungsquoten. Zum verantwortungsvollen Spielen stellt Boomzino hilfreiche Tools bereit. Spieler k\u00f6nnen selbst Depositlimits, Zeitlimits oder sogar einen Selbstsperre aktivieren. So hat man immer die Oberhand.<\/p>\n

Boni und Wertsch\u00e4tzung f\u00fcr Mitglieder<\/h2>\n

Neue Spieler begr\u00fc\u00dft Boomzino mit einem Einstiegspaket aus Guthaben und Freispielen. So k\u00f6nnen man die Spielewelt mit zus\u00e4tzlichen Einsatzmitteln kennenlernen. Aber auch danach bel\u00e4sst die Plattform ihre Spielerschaft nicht im Stich. Es finden sich wiederkehrende Aktionen wie jede Woche Reload-Boni, Cashback-Angebote oder Freispielrunden zu neuen Slots. Exklusive Turniere mit attraktiven Preisen sind ebenfalls Teil des Programms. Alle Bestimmungen sind dabei transparent und die Umsatzanforderungen fair formuliert.<\/p>\n

Das Treuebonusprogramm: Dauerhafte Belohnung<\/h3>\n

LangzeitSpieler honoriert Boomzino mit einem durchdachten Treueprogramm. F\u00fcr jeden Wetteinsatz mit echtem Geld sammelt man Punkte und klettert Stufe f\u00fcr Stufe auf. Jede neue Stufe bringt deutliche Vorteile: einen besseren Cashback-Prozentsatz, pers\u00f6nliche Bonusangebote, raschere Auszahlungen. Irgendwann erh\u00e4lt man sogar einen eigenen VIP-Manager an die Seite. Das System sorgt daf\u00fcr, dass Best\u00e4ndigkeit sich auszahlt.<\/p>\n

Die Boomzino Casino Erlebniswelt: Nicht nur nur Spiele<\/h2>\n

Boomzino gestaltet das Online-Casino als Rundumerlebnis grundlegend neu. Das Design der Plattform ist \u00fcbersichtlich und funktional. Man findet sich sofort zurecht. Egal ob auf der Website oder in der mobilen App, der Zugriff auf das Konto ist stets und von \u00fcberall rasch m\u00f6glich. Der Kundenservice agiert kompetent und sucht nach L\u00f6sungen, nicht nach Ausreden. Diese Basis macht das Casino \u00fcberhaupt erst zu einem sicheren und abwechslungsreichen Ort. Darauf bauen die Spiele und finanziellen Anreize auf.<\/p>\n

Das Herzst\u00fcck: Eine vielf\u00e4ltige Spielbibliothek<\/h3>\n

Boomzino h\u00e4lt bereit eine wohl\u00fcberlegt kuratierte Spielesammlung von renommierten Anbietern. Unz\u00e4hlige Spielautomaten finden sich hier, von klassischen Slots bis zu neuartigen Video-Slots mit komplexen Geschichten. Progressive Jackpots bieten dabei stattliche Gewinne. F\u00fcr Freunde von Tischspielen finden sich viele Spielarten von Blackjack, Roulette, Baccarat und Poker. Im Live-Casino \u00fcbertr\u00e4gt ein echter Dealer das Spiel in Echtzeit. Das f\u00fchlt sich an wie in einer echten Spielbank und erschafft eine besondere Atmosph\u00e4re.<\/p>\n

Spezielle Highlights f\u00fcr taktikorientierte Spieler<\/h4>\n

Spieler, die auf Taktik setzen, k\u00f6nnen bei boomzino casino free spins<\/a> vor allem f\u00fcndig. Die Plattform pr\u00e4sentiert Blackjack-Varianten mit vorteilhaften Regeln, dazu kontinentales Roulette mit nur einer Null und eigene Poker-Tische. Diese Spiele besitzen einen niedrigen Hausvorteil, was taktisches Spielen honoriert. Boomzino demonstriert damit, dass es diverse Spielertypen versteht. Wer sein Wissen einsetzt, besitzt hier vielversprechende Chancen.<\/p>\n

\"Hochphase<\/p>\n

Geldbewegungen: Schnell und einfach<\/h2>\n

Ein gutes Casino profitiert von verl\u00e4sslichen Zahlungswegen. Boomzino erm\u00f6glicht aus diesem Grund vielerlei vertraute Methoden. Dazu z\u00e4hlen Kredit- und Debitkarten, E-Wallets, Prepaid-Karten und Bank\u00fcberweisungen. Die Plattform erledigt Auszahlungen z\u00fcgig, h\u00e4ufig binnen 24 Stunden bei E-Wallets. Alle Informationen zu Geb\u00fchren, Limits und dem Verifikationsprozess sind deutlich nachvollziehbar. Das schafft Vertrauen bei jeder Transaktion.<\/p>\n

Die Mobiloptimierung: Spielen unterwegs<\/h3>\n

Boomzino l\u00e4uft auch unterwegs einwandfrei. Man kann sofort im mobilen Browser spielen oder die dedizierte App f\u00fcr iOS und Android nutzen. Die mobile Version liefert alles, das auch der Desktop kann: den Zugang zur kompletten Spielbibliothek, das Live-Casino, Bonusverwaltung und Support. Das Design justiert sich clever an jeden Bildschirm an, ohne dass die Qualit\u00e4t leidet. So sind die Lieblingsspiele jederzeit nur einen Griff entfernt.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Boomzino Casino ist spezialisiert auf ambitionierte Spieler. Die Plattform baut auf eine exzellente Spielerfahrung, ein breites Spielangebot und faire Bedingungen. Wer hier aktiv ist, verlangt mehr als kurze Ablenkung. Boomzino wei\u00df, dass diese Spieler eine sichere und profitable Umgebung erfordern, in der jedes Detail stimmt. Die benutzerfreundliche Bedienung, die attraktiven\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-157027","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=157027"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157027\/revisions"}],"predecessor-version":[{"id":157028,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/157027\/revisions\/157028"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=157027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=157027"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=157027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}