/* 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":192027,"date":"2026-06-22T17:52:15","date_gmt":"2026-06-22T17:52:15","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=192027"},"modified":"2026-06-22T17:52:16","modified_gmt":"2026-06-22T17:52:16","slug":"bwin-slots-%ef%bf%bd-100000-willkommensbonus-60-freispiele-4","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bwin-slots-%ef%bf%bd-100000-willkommensbonus-60-freispiele-4\/","title":{"rendered":"Bwin Slots \ufffd 100000 % Willkommensbonus & 60 Freispiele"},"content":{"rendered":"

Diese erfolgreichsten Gemeinsam Spielotheken in Grund ein dichter und denker auf einsatz von Erlaubnis<\/h2>\n

Ganz https:\/\/nova-jackpot-casino.at\/<\/a> gleichformig, in wie weit du eine niedrige, mittlere und hohe Unterschied in Spielautomaten bevorzugst. Ich zeige dir anschlie?end viele Erreichbar Spielotheken uber deutscher Erlaubnis, in denen du eine welle Wahl angeschaltet Slots \u00fcber unterschiedlicher Nach- und abgang finden kannst. In allen von mir vorgestellten Anbietern kannst du dir als Neukunde auch umfangreiche Bonusangebote abholen.<\/p>\n

In Bwin Slots findest du die ganz \ufffd Slots \u00fcber niedriger, mittlerer & erster Nach- und abgang & dafur im rahmen auch diese echten Klassiker wie Sight for Horus und Legacy for Dead. Ja Neukunde kannst du dir noch einen hundred % Willkommensbonus bis zu one hundred Ecu behuten & erhaltst obendrauf noch fifty Freispiele. Als treuer Spieler kannst du dann vom Pramien-Club erlangen und dir ja f\u00fcr jeweils 10 Ecu Einzahlung 10 Freispiele besorgen.<\/p>\n

Slot-Angebot fur jedes Neukunden. Mindesteinzahlung nueve \ufffd. Bonus: 55 pour adulte vorubergehen (Einzahlung & Bonus) in Slots inwendig in X Diskutieren. FreeSpins sind 6 Tage f\u00fcr Legacy for the Down rechtskraftig. Haben aufwarts erster Einzahlung. AGB gultigkeit haben.<\/p>\n

Jokerstar \ufffd tagliche Spielautomaten-Turniere<\/h2>\n

Jokerstar kann mich gar nicht jedoch \u00fcber dem two hundred and fifty % Pramie in bis zu 100 Ecu und einen dazugehorigen two hundred fifity Freispielen \u00fcberzeugen, stattdessen veranstaltet noch tagliche Spielautomaten-Turniere. Diese Wahl angeschaltet Spielautomaten auf zuhilfenahme von niedriger und erster Unterschied ermoglicht eine spannende Abwechslung & einen Unterhaltungsfaktor. PayPal Bezuge sind in Jokerstar ebenfalls m\u00f6glich.<\/p>\n

JackpotPiraten \ufffd 35 Freispiele f\u00fcr eine 1 Ecu Einzahlung<\/h2>\n

Etwas nicht vor der Mindesteinzahlung in gerade one Ecu erhaltst du in einen JackpotPiraten satte 35 Freispiele gutgeschrieben. Diese Gemeinsam Spielothek uber GGL-Erlaubnis kann sich auch inwendig des Supports und ein angebotenen Zahlungsoptionen klar von das Rivalitat hervorheben. Speziell interessant sind intensiv diese vielfaltigen Bonusangebote, diese da in unregelma?igen Abstanden angeboten sind.<\/p>\n

Casino Provision Casino Provision 100% bis zu \ufffd000 + seventy-five Freispiele Einzahlungsbonus Zum Versorger Provision einl\u00f6sen Spin Value \ufffda single.9.1 \u00fcber spin, fullest prevail \ufffd3 hundred, valid for 30 many hours. Filled Hubsch&Cs slather.<\/p>\n

RTP (Auszahlungsquote) inoffizieller mitarbeiter Vergleich zur Slots Wechsel<\/h2>\n

Beim RTP und ein Wechsel handelt es sich um zwei verschiedene Daten eines Spielautomaten. Das RTP gibt zun\u00e4chst angeschaltet, der Absoluter wert ein Spieleinsatze anteilma?ig wieder ausgeschuttet ist. In diesem RTP von ninety four % wurden in theoretisch in dem Show in 100 Ecu wieder ninety-four Ecu angeschaltet diese Spieler zuruckflie?en. Diese Fluktuation noch sagt aus, wie ungleichformig ein RTP intensiv wieder ausgeschuttet ist.<\/p>\n

Diese verschiedenen Arten ein Nach- und abgang am Spielautomaten<\/h2>\n

Fruh meines Ratgebers bin ich bekannterma?en etwas kurz auf diese drei verschiedenen Arten ein Fluktuation am Spielautomaten eingegangen. Hier mochte ich zwar mehr tiefer ins Punkt gehen, dar\u00fcber dir einen Kontrast ausgetuftelt zeigen nach konnen.<\/p>\n

Niedrige Slots Unterschied<\/h2>\n

Diese Spielautomaten sind sich zun\u00e4chst fur Spieler, diese es vorziehen, einen langeren Spielspa? zu haben und meistens welle Gewinne mitzunehmen. Das Moglichkeit angeschaltet Spielautomaten \u00fcber niedriger Unterschied ist weniger, in einem kurzer Zeitfenster sind gesamtes Gutschrift nach verlieren. Auf einen Spielautomaten in ein Kategorie geh\u00f6ren nicht selten Fruchte-Spielautomaten und diese sogenannten einarmigen Banditen, und jedoch ungewohnlich wirst du angeschaltet diesen Slots spezielle Bonusfunktionen genau so wie expandierende Wild-Symbole und Multiplikatoren finden. Diese niedrige Slots Fluktuation eignet sich meistens herausragend hierfur, diese Umsatzbedingungen in dem Pramie nach erfullen.<\/p>\n

Mittlere Slots Nach- und abgang<\/h2>\n

F\u00fcr Spieler, eine ausgewogene Gleichgewicht auf seltenen und haufigen Erlangen suchen, sind sich Spielautomaten \u00fcber mittlerer Fluktuation. Ja angeschaltet diesen Slots inoffizieller mitarbeiter griff haben meistens means Gewinne erzielt sind und es kommt noch jedoch selten nach der sogenannten \ufffdDown Spin Durststrecke\ufffd, deshalb dem langeren Zeitraum, in dem gar keine Gewinne ausbezahlt sind. Diese Plinko Casino Spiele, diese in Grund ein dichter und denker noch nicht zugelassen sind, haben etwa \u00fcber eine mittlere Volatilitat. Inwendig ein mittleren Fluktuation finden sich auch oft sehr Sonnennachster planet, NetEnt & Novoline Spielautomaten.<\/p>\n","protected":false},"excerpt":{"rendered":"

Diese erfolgreichsten Gemeinsam Spielotheken in Grund ein dichter und denker auf einsatz von Erlaubnis Ganz https:\/\/nova-jackpot-casino.at\/ gleichformig, in wie weit du eine niedrige, mittlere und hohe Unterschied in Spielautomaten bevorzugst. Ich zeige dir anschlie?end viele Erreichbar Spielotheken uber deutscher Erlaubnis, in denen du eine welle Wahl angeschaltet Slots \u00fcber unterschiedlicher\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-192027","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192027","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=192027"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192027\/revisions"}],"predecessor-version":[{"id":192028,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192027\/revisions\/192028"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=192027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=192027"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=192027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}