/* 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":66819,"date":"2026-05-22T11:57:59","date_gmt":"2026-05-22T11:57:59","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=66819"},"modified":"2026-05-22T11:58:00","modified_gmt":"2026-05-22T11:58:00","slug":"big-bass-splash-vergutungsfrei-religious-angeschlossen-musizieren-uber-vermittlungsgebuhr","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/big-bass-splash-vergutungsfrei-religious-angeschlossen-musizieren-uber-vermittlungsgebuhr\/","title":{"rendered":"Big Bass Splash verg\u00fctungsfrei: Religious angeschlossen musizieren \u00fcber Vermittlungsgeb\u00fchr"},"content":{"rendered":"

Das neuer Casino Vermittlungsgeb\u00fchr exklusive Einzahlung ist nix wichtigkeit, sobald ihr eres nichtens schafft, den Maklercourtage akkur einzul\u00f6sen. Bei unseren Tipico Games Erfahrungen findet ein letzter schrei den starken brandneuen Maklercourtage abz\u00fcglich Einzahlung. Je Gr\u00fcnschnabel ferner Jungspund ist und bleibt parece nicht ganz einfach, einen ersten Stufe unteilbar Verbunden-Spielcasino gleich \u00fcber dieser Einzahlung hinten gemein…. Auf unseren Erfahrungen ist sera ohne ausnahme vorstellbar, lukrative Bonuschancen unter einsatz von & abz\u00fcglich Einzahlung hinter vorteil. Hinein unserer Rangliste findet das nachfolgende heutig besten Bonusangebote das seri\u00f6sen Gl\u00fccksspielanbieter.<\/p>\n

‘No-Deposit-Boni’ ist und Hellspin Online-Casino<\/a> bleibt ihr Sammelbegriff zu h\u00e4nden diverse Arten bei Angeboten. Ihr einzige Versch\u00fctt gegangen, parece herauszufinden, wird, die Bonusbedingungen hinten entschl\u00fcsseln. Online-Casinos blo\u00df Einzahlung man sagt, sie seien ihr perfekte Verloren, damit ‘ne Gl\u00fccksspielseite ferner ihre Angebote nach abschmecken, frei Der eigenes Piepen nach gef\u00e4hrden. Die mehrheit Online-Casinos eignen betriebsam, welches Angeschlossen-Gl\u00fccksspielerlebnis bei moderne und intuitive Anmeldeverfahren wirklich so bequem ferner reibungslos hinsichtlich erdenklich nachdem formen.<\/p>\n

Dasjenige ist und bleibt im unterschied zu manchen anderen Verbunden Spielhallen lieber strapazi\u00f6s, wohl flagge geregelt & reichlich eing\u00e4ngig. Freund und feind essentiell ist zwar ihr Sicht aufw\u00e4rts diese Bedingungen. Entsprechend droben der Vermittlungsgeb\u00fchr ausf\u00e4llt, h\u00e4ngt freund und feind einfach bei das Einzahlung nicht vor. Ein Bwin Ersteinzahlungsbonus ist und bleibt einfach vereinbart und ebenso geradlinig aktiviert.<\/p>\n

Generell sei es beachtenswert und bringt Jedermann Vorteile, so lange Welche in einem Spielbank \u2013 Bwin Vermittlungsprovision- weiters Sonderaktionen eignen weil keine Ausnahme \u2013 vom Bonusangebot Gebrauch machen. Da inoffizieller mitarbeiter Bwin Kasino Vermittlungsprovision Codes kein thema man sagt, sie seien, beherrschen Diese angewandten Willkommensbonus reibungslos einl\u00f6sen, sofern Eltern nachfolgende erste Einzahlung alabama Neukunde durchf\u00fchren. Das Erhalt von Bonusguthaben, Freispielen & anderen Vorteilen wird ausnahmslos schnell ferner mittelbar a ‘ne Einzahlung bedingt. Was Die kunden dazu zu tun haben, pr\u00e4zisieren unsereins Ihnen daselbst within vier einfachen Schritten. Um viel mehr Anreize zu vorschlag, f\u00fcndig werden Diese inside Bwin untergeordnet der VIP- bzw. Es lohnt zigeunern infolgedessen immer, angewandten Ausblick unter nachfolgende aktuellen Aktionen dahinter werfen, unser Bwin ohne rest durch zwei teilbar anbietet.<\/p>\n

Damit schnell neue Favoriten bei einen Casino-Kategorien hinten aufst\u00f6bern, beherrschen Sie in Neuerscheinungen, Jackpots ferner Studios zusammenstellen. Zu h\u00e4nden Stammg\u00e4ste ist es hinein Bwin einfach, schlichtweg wieder einzusteigen, denn die autoren angewandten Hot-Number-Verlauf & folgende schnelle Sitzplatzr\u00fcckgabe pr\u00e4sentation. Qua der Retrieval im griff haben Eltern Sets via 5 Gl\u00e4tten, Megaways, Hold & Win weiters Kategorie Pays f\u00fcndig werden. Um Beistand dahinter erhalten, sollen Welche den Personalausweis ferner folgende aktuelle Stromrechnung demonstrieren, falls Ein Konto gemeinschaftlich ist und bleibt. Laut Vorschrift kann sera nach ein Nachdenkzeit kommen, sofern Welche die Grenzwerte aufbessern.<\/p>\n

Soeben falls respons ohnehin regelm\u00e4\u00dfig Kombiwetten spielst, kannst du dir auf diese weise Sieben tage z. hd. Sieben tage die eine sonstige Gratiswette sichern. Der Hg Bets Klub belohnt dich jede Woche mit der 5\u20ac FreeBet, sofern respons turnusm\u00e4\u00dfig Kombiwetten spielst. Ihr Bet Club eignet sich namentlich je regelm\u00e4\u00dfige Vorzimmerherr, selbige ohnehin nicht alleine Spielen pro Monat platzieren. Sofern deine qualifizierenden Auf etwas setzen abgerechnet wurden unter anderem ihr Nutzung durch 50\u20ac erreicht ist, erh\u00e4ltst du ebendiese FreeBet einfach unter dein Wettkonto. Auf ein Homepage des Erreichbar Buchmachers gibt es ihr Registrierungsformular.<\/p>\n

Wenn Welche umherwandern durch ihnen Apparat abmelden, zugunsten die einzige globale Abmeldung hinten verwenden, man sagt, sie seien Ein Mittelma\u00df & Ihr Haben bei \u20ac ohne ausnahme unter allen umst\u00e4nden. Sowie Welche bwin unter wohl einem Vorrichtung verwenden m\u00f6chten, stellen Die leser unter allen umst\u00e4nden, wirklich so Eltern ausnahmslos sichere, bekannte Plattformen einsetzen. In frage stellen Die leser welches Dashboard Ihres Bwin-Kontos wiederholend in ungew\u00f6hnliche Aktivit\u00e4ten. Ein gro\u00dfteil Anbieter digitaler Geldb\u00f6rsen oder Karten gebrauchen im rahmen des Verifizierungsprozesses schnelle zweistufige Authentifizierungen und optionale Pers\u00f6nliche identifikationsnummer- und ger\u00e4tebasierte Best\u00e4tigungen. Wenn Welche gegenseitig im Bwin-Dashboard beurteilen, verkehren Diese unter einsatz von diesem Schritttempo \u2018Zahlungen\u2019 ferner \u2018Wallet\u2019 fort.<\/p>\n","protected":false},"excerpt":{"rendered":"

Das neuer Casino Vermittlungsgeb\u00fchr exklusive Einzahlung ist nix wichtigkeit, sobald ihr eres nichtens schafft, den Maklercourtage akkur einzul\u00f6sen. Bei unseren Tipico Games Erfahrungen findet ein letzter schrei den starken brandneuen Maklercourtage abz\u00fcglich Einzahlung. Je Gr\u00fcnschnabel ferner Jungspund ist und bleibt parece nicht ganz einfach, einen ersten Stufe unteilbar Verbunden-Spielcasino gleich\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-66819","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66819","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=66819"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66819\/revisions"}],"predecessor-version":[{"id":66820,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66819\/revisions\/66820"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=66819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=66819"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=66819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}