/* 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":172003,"date":"2026-06-22T13:36:54","date_gmt":"2026-06-22T13:36:54","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=172003"},"modified":"2026-06-22T13:36:54","modified_gmt":"2026-06-22T13:36:54","slug":"live-moglich-casinos-prasentation-diese-breite-wahl-spannender-spiele-sowohl-2","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/live-moglich-casinos-prasentation-diese-breite-wahl-spannender-spiele-sowohl-2\/","title":{"rendered":"Live M\u00f6glich Casinos prasentation diese breite Wahl spannender Spiele sowohl"},"content":{"rendered":"

Diese bekanntesten Spiele inoffizieller mitarbeiter Nat\u00fcrlich time Umsetzbar Casino<\/h2>\n

Speziell https:\/\/simsinocasino-de.com\/promo-code\/<\/a> reprasentabel ist Nat\u00fcrlich time Blackjack, das du angeschaltet verschiedenen Tischen ausprobieren kannst. Jedoch nebensachlich abseits von Blackjack meinen diese Betrag das Spiele. Roulette, etwa in Entwicklung, macht es echte Casino-Air schnell nach dir heim.<\/p>\n

Z. hd. viele Spieler sind auch diese Einsatzlimits prinzipiell, da diese verfugen, \u00fcber welchen Entfallen demonstrativ sind kann. Dankgefuhl ein gro?en Wahl angeschaltet Alive Geben kommt noch keine Langeweile auf. Daneben klassischen Kartenspielen wie Blackjack, diese stay vielleicht echte Dealer vorget\u00e4uscht man sagt, sie sind, angebot viele Gemeinsam Casinos nebensachlich spannende Gameshows angeschaltet. Diese Palette starke Are living Casinos so attraktiv. Hier ist eine \u00dcbersicht ein beliebtesten Nat\u00fcrlich time Dealer Spiele:<\/p>\n

The roulette table \ufffd Zeitloser Klassiker inoffizieller mitarbeiter Casino<\/h2>\n

The roulette table ist des diesen ein bedeutenden & beliebtesten Spiele in Are living Erreichbar Casinos. Glucksspieler legen auf eine Kennziffer, diese Farbemittel und eine Kombination in beidem, dabei ein Croupier diese Kugel in das rotierende Fahrrad wirft. Diese Abenteuer steigt, wenn diese Kugel ins Bl\u00e4ttern kommt und auf der Kennziffer zum Stillstand passiert. Evolution gibt viele Varianten von Reside Game of chance, zwischen europaisches und amerikanisches Live roulette. Das Runde ist gut vertraglich nach wissen, ermoglicht noch viele Wettoptionen fur viel mehr Abwechslung.<\/p>\n

Blackjack \ufffd Komplett fur Strategen<\/h2>\n

Blackjack ist das ideale Runde f\u00fcr ganz, diese aufwarts Kalkul legen. Es Abschluss ist es, \u00fcber der Kartenhand so in ein daneben wie m\u00f6glich angeschaltet twentyone heranzukommen, ohne diese Kennziffer nach passieren. In Are living Casinos trittst du um … vorbei echte Rauschgifthandler angeschaltet, das das Runde noch spannender macht. \u00dcber Entscheidungen wie \ufffdHit\ufffd & \ufffdStand\ufffd ist Blackjack riesig interaktiv und erfordert mehr taktisches Denken als viele andere Casino-Spiele.<\/p>\n

Baccarat \ufffd Reibungslos nach lernen, gro?e Gewinnchancen<\/h2>\n

Baccarat ist das schnelles und einfaches Runde, das und f\u00fcr Grunschnabel amyotrophic au\u00dfen sclerosis auch f\u00fcr erfahrene Spieler attraktiv ist. Du setzt darauf, in wie weit ein Spieler und ein Banker diese hohere Hand loath, und in wie weit es das Unschlussig gibt. Dankeschon ein schnellen Spielrunden und das hohen Gewinnchancen ist Baccarat des ein bekanntesten Nat\u00fcrlich time Casino Spiele. Es erfordert kaum Strategie, ist zwar von fish Wurdevolles verhalten & diese breit gefacherten Drogenhandler interessant.<\/p>\n

Casino Hold’em \ufffd Poker in rasantem Hast<\/h2>\n

Casino Hold’em ist eine actiongeladene Ausfuhrung in Mississippi Hold’em, in ein du um … vorbei einen Drogenhandler spielst. Abschluss ist es, diese beste Pokerhand zu haben, um einen Dealer nach verpr\u00fcgeln. Dankeschon ein schnellen Spielweise und klaren Beherrschen ist Casino Hold’em in Reside Casinos gerade respektiert. Nach handen ganz, diese Poker bevorzugen, vielleicht keine lust auf Trugen sein besonders nennen, ist es diese passende Wahl f\u00fcr rasante Poker-Walk.<\/p>\n

Pai Gow \ufffd Poker \u00fcber asiatischem Stimmung<\/h2>\n

Pai Gow kombiniert traditionelle Pokerregeln \u00fcber asiatischer Kultur. Du musst zwei Hande gestalten: eine \u00fcber funf Karten und diese \u00fcber zwei Karten. Abschluss ist es, \u00fcber zwei Handen einen Dealer nach verkaufen. Diese Potpourri aus Hub und Strategie machtigkeit Pai Gow speziell zum denken gelegenheit gebend. In Live Casinos sorgt das Runde nach handen diese spannende Atmosphare, diese einen einzigartigen Charakter von Pai Gow gultig einfangt.<\/p>\n

Craps \ufffd Spannendes Wurfelspiel \u00fcber Nervenkitzel<\/h2>\n

Craps ist es aufregendste Wurfelspiel inoffizieller mitarbeiter Casino. Diese Glucksspieler legen darauf, die Kombinationen in dem Wurf von zwei Wurfeln einwirken. In Live Casinos ist das Wurf in Echtzeit von dem breit gefacherten Rauschgifthandler durchgefuhrt, was diese Abenteuer erh\u00f6ht. Diese Vielfaltigkeit angeschaltet Wettmoglichkeiten & diese einfache Leidenschaft machen Craps nach dem ein aufregendsten und interaktivsten Spiele in Alive Casinos.<\/p>\n

Mehr Nat\u00fcrlich time Dealer Games<\/h2>\n

Daneben einen klassischen Casino-Spielen angebot viele Reside Casinos eine Reihe in anderen Reside Dealer Video games angeschaltet, diese Diversitat und Unterhaltung gew\u00e4hrleisten. M\u00fcssen beliebte Live Casino Gameshows wie Wunderbar Date und Monopoly Are living, in denen das Spielerlebnis noch interaktiver und geiler vermittelt ist und bleibt. Diese Spiele schlie?en das Sinnvolle aus renommierten Casinospielen und modernen Gameshow-Elementen. Ebenfalls sehr respektiert sind spezielle Varianten von Poker und So Bo, diese fur eine zusatzliche Portion Nervenkitzel verhatscheln. Diese ohne unterbrechung wachsende Wahl macht Nat\u00fcrlich time Casinos nach dem unvergleichlichen Erfahrung.<\/p>\n","protected":false},"excerpt":{"rendered":"

Diese bekanntesten Spiele inoffizieller mitarbeiter Nat\u00fcrlich time Umsetzbar Casino Speziell https:\/\/simsinocasino-de.com\/promo-code\/ reprasentabel ist Nat\u00fcrlich time Blackjack, das du angeschaltet verschiedenen Tischen ausprobieren kannst. Jedoch nebensachlich abseits von Blackjack meinen diese Betrag das Spiele. Roulette, etwa in Entwicklung, macht es echte Casino-Air schnell nach dir heim. Z. hd. viele Spieler sind\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-172003","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/172003","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=172003"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/172003\/revisions"}],"predecessor-version":[{"id":172004,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/172003\/revisions\/172004"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=172003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=172003"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=172003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}