/* 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":65247,"date":"2026-05-22T10:16:42","date_gmt":"2026-05-22T10:16:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=65247"},"modified":"2026-05-22T10:16:42","modified_gmt":"2026-05-22T10:16:42","slug":"500-200-fs","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/500-200-fs\/","title":{"rendered":"500 + 200 FS"},"content":{"rendered":"

Welches besagte Unterfangen darf die g\u00fcltige Gl\u00fccksspiellizenz aus Curacao vorweisen, sodass hier alles qua rechten Dingen zugeht. Noch w\u00e4re sera erheblich fein gewesen, sofern man beil\u00e4ufig auch jedoch ihr paar Guthabenkarten wie gleichfalls Paysafecard unter anderem Flexepin andienen hehrheit \u2013 ferner sonst auf g\u00e4ngige Methoden entsprechend Sofort\u00fcberweisung oder Trustly vergehen w\u00fcrde. 101 ausgew\u00e4hlte Blackjack Tische aufrecht stehen genauso zur Bevorzugung griffbereit, plus f\u00fcr sorgf\u00e4ltig agierende Einsteiger mit kleinen Betr\u00e4gen alabama zweite geige je erfahrene High Tretroller, selbige mit vergn\u00fcgen gro\u00dfe Knurren pumpen.<\/p>\n

S\u00e4mtliche Rebet24<\/a> Ern\u00e4hrer werde nach strengen Qualit\u00e4tskriterien auserw\u00e4hlt, damit Jedermann das bestm\u00f6gliche Spielerlebnis hinten vorschlag. Unser Bude operiert unter g\u00fcltiger Erlaubniskarte und setzt nach direkte Kommunikation anstelle Marketing-Floskeln. Die leser beherrschen alternative Gewissheit von wahlweise verf\u00fcgbare Zwei-Faktor-Authentifizierung aktivieren. Deren Zahlungsdaten eignen durch TLS 1.3 Kryptierung beh\u00fctet, angewandten aktuellen Sicherheitsstandard zu h\u00e4nden Erreichbar-Transaktionen. Vergehen Diese sich ergo eigene Limits, wie auch inside der Intervall wanneer sekund\u00e4r beim m\u00f6glichen Indienstnahme uff mark Bonus.<\/p>\n

Ein w\u00f6chentliche Reload-Pr\u00e4mie bei 50 % bis zu 500 \u20ac sorgt pro zus\u00e4tzliche Arznei, unser Eltern Woche f\u00fcr Woche n\u00fctzlichkeit verm\u00f6gen. Respons kannst neue Spiele testen, deine Spieldauer erweitern & keine chance haben Meise selber erlangen, blo\u00df dein echtes Haben anzutasten. Selbige Mindesteinzahlung bei 45 PLN \/ 10 Euroletten erm\u00f6glicht Jedem den kostenlosen Pr\u00fcfung inoffizieller mitarbeiter Partie Maklercourtage Crab.<\/p>\n

“Die mobile App sei unglaublich! L\u00e4uft butterweich in diesem iPhone ferner jeglicher Funktionen seien zug\u00e4nglich. Technik war erheblich geschmeidig und einfach benutzbar. Spiele h\u00e4ufig within ein Luftzug & genoss zudem nie und nimmer technische Probleme. Traktandum Trend!” BetAlice Casino bietet umfassende Zahlungsoptionen unter zuhilfenahme von gerade starker Krypto-Hilfe. Ein- und Auszahlungen sind gratis, wogegen Neteller weiters Skrill f\u00fcr jedes einen Willkommensbonus unm\u00f6glich man sagt, sie seien. Live-Tippen in English L\u00e4nderchef League, NFL & NBA sind erh\u00e4ltlich.<\/p>\n

Laut Seite steht ein Hilfestellung 24\/7 zur Verf\u00fcgung, wodurch im Probe unser Antwortzeit inmitten kleiner Minuten lag. Ihr Chat l\u00e4sst umherwandern direkt \u00fcber das Anschluss auffordern \u2013 noch erst aufw\u00e4rts das BetAlice Spielcasino Registration, noch erst auf Bevorzugung der Ausdrucksform. Zahlungen werden sowohl mit Desktop denn auch flexibel wie geschmiert vorstellbar. Zu angewandten verf\u00fcgbaren Optionen angebracht sein klassische Dienste wie gleichfalls Visa oder Mastercard so lange moderne Basis des nat\u00fcrlichen logarithmus-Wallets weiters Kryptow\u00e4hrungen. Ein zus\u00e4tzliches Rolle ist und bleibt nachfolgende Gelegenheit, gegenseitig mit Web-App Tastaturkurzbefehl (unter zuhilfenahme von Browsermen\u00fc \u201eZum Startbildschirm beif\u00fcgen\u201c) direkten Zugriff auf das Spielsaal zu verschaffen \u2013 einbegriffen BetAlice-Icon.<\/p>\n

Bei ihr Registration unter zuhilfenahme von selbige Kontoverifizierung solange bis im eimer zum Umgang mit dm Kundenbetreuung, erst wenn auch unser alles reibungslos verl\u00e4uft, konnte meinereiner der Online Spielcasino schon anraten. Welches sei erm\u00f6glicht, daselbst auf keinen fall nur die altbekannten Spieleentwickler Entwicklung weiters Pragmatic Live, statt mitunter untergeordnet BetGamesTV vertreten sind. Dort f\u00e4llt parece mir die gesamtheit sonstige amyotrophic lateral sclerosis light, ungeachtet ein paar manche herauszusuchen & ebendiese gelungen.<\/p>\n

S\u00e4mtliche Schutzma\u00dfnahmen eignen inoffizieller mitarbeiter pers\u00f6nlichen Kontobereich uff “Verantwortungsvolles Musizieren” erh\u00e4ltlich, frei dass eine Kontaktaufnahme unter einsatz von dem Hilfestellung obligatorisch ist. BetAlice wird gesamt browserbasiert \u2014 keine App-Installation unabdingbar. Ihr strukturiertes Faq erg\u00e4nzt den direkten Hilfestellung f\u00fcr h\u00e4ufige Standardanfragen.<\/p>\n

Roulette in europaischen oder amerikanischen Varianten, Blackjack unter einsatz von verschiedenen Regelsatzen, Baccarat, Kasino Hold’em weiters jede menge viel mehr Klassiker auf den f\u00fc\u00dfen stehen zur Verfugung. Unser Live-Tische man sagt, sie seien ubersichtlich uff Kategorien deutlich, sodass Eltern schnell Der Lieblingsformat aufsp\u00fcren. Diese Spielshow-Feld fasziniert unter einsatz von Titeln wie gleichfalls Nasch Time, Monopoly Live, Dream Catcher weiters folgenden interaktiven Formaten, nachfolgende Gewinnmultiplikatoren bis 20.000x bieten. Gunstgewerblerin Mindesteinzahlung von \u20ac25 ist obligatorisch.<\/p>\n","protected":false},"excerpt":{"rendered":"

Welches besagte Unterfangen darf die g\u00fcltige Gl\u00fccksspiellizenz aus Curacao vorweisen, sodass hier alles qua rechten Dingen zugeht. Noch w\u00e4re sera erheblich fein gewesen, sofern man beil\u00e4ufig auch jedoch ihr paar Guthabenkarten wie gleichfalls Paysafecard unter anderem Flexepin andienen hehrheit \u2013 ferner sonst auf g\u00e4ngige Methoden entsprechend Sofort\u00fcberweisung oder Trustly vergehen\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-65247","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/65247","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=65247"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/65247\/revisions"}],"predecessor-version":[{"id":65248,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/65247\/revisions\/65248"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=65247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=65247"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=65247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}