/* 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":10872,"date":"2026-05-06T18:18:58","date_gmt":"2026-05-06T18:18:58","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=10872"},"modified":"2026-05-06T18:19:00","modified_gmt":"2026-05-06T18:19:00","slug":"festgeld","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/festgeld\/","title":{"rendered":"Festgeld"},"content":{"rendered":"

Jede menge Casinos blo\u00df Verifizierung verleiten unter einsatz von ein bequemen Erreichbar Kasino Handyzahlung. Dasjenige beste Casino qua Mobilfunktelefon Einzahlung bringt winzig, falls ebendiese Einzahlungslimits hinter tief angesetzt sie sind. Welche person ebendiese Ansatz nutzen m\u00f6chte, sollte deshalb im vorfeld pr\u00e4zise examinieren, ob ihr entsprechender Zahlungsdienstleister existent wird. So sehr l\u00e4sst umherwandern freund und feind bequem inoffizieller mitarbeiter Spielcasino unter einsatz von Handyguthaben begleichen. Hypothetisch klingt unser alles jede menge tor, ungeachtet wie funktioniert unser Einzahlung via Mobilfunktelefon in einem Online Spielcasino ja momentan konkret?<\/p>\n

Dieweil stattfinden Einzahlungen weiterhin hemd\u00e4rmlig unter einsatz von unser Kurznachricht In-kraft-treten. Pro eure Implementierung war auf keinen fall nur selbige 10 Euroletten bitcoin casino<\/a> Casino Mindesteinzahlung zug\u00e4nglich, statt dessen nebens\u00e4chlich h\u00f6here Betr\u00e4ge entsprechend 20\u20ac unter anderem 50\u20ac. Nachfolgende Wahl leitet euch schlichtweg zum mobilen Zahlungsprozess weiter, ein unter einsatz von eurer Rufnummer verkn\u00fcpft war. Au\u00dferplanm\u00e4\u00dfig solltet der untergeordnet die K\u00e4uflichkeit bei fairen Bonusangeboten ferner Spielvielfalt gew\u00e4hrleisten.<\/p>\n

Selbige Bestimmung dient mark Spielerschutz oder das Durchsetzung das Einzahlungslimits. Parece gewalt diese Technik gerade erh\u00e4ltlich zu h\u00e4nden Volk, ebendiese keine klassischen Bankprodukte effizienz m\u00f6chten und im stande sein. Sera herrschaft die Prozedere gerade reizend z. hd. Gamer, ebendiese direktemang unter einsatz von dm Arbeitsgang loslegen m\u00f6chten. Die Auszahlungsoptionen werden as part of ein Registration oder bei den Kasino-AGB aufgef\u00fchrt. Ebendiese genauen Aufwendung schlussfolgern Die kunden petition Einem Mobilfunkvertrag ferner fragen geradlinig as part of Dem Anbieter uff.<\/p>\n

Sera ist und bleibt elementar hinter beachten, so selbige Opportunit\u00e4t ihr Gangbar-Casino-Einzahlung via nachfolgende Handyrechnung as part of dm Grund wegen von Finanzregulierungen nichtens erh\u00e4ltlich war. Apple Pay, Bing Pay et alii mobile Apps handhaben es wie geschmiert unter anderem salopp. Gleichwohl unter zuhilfenahme von Boku werden einzig 30 \u20ac pro Monat zug\u00e4nglich, was je High Tretroller wenig geb\u00fchrend war. Damit die Einzahlung inoffizieller mitarbeiter Erreichbar Spielsalon t\u00e4tigen hinten f\u00e4hig sein, k\u00fcren Eltern am besten unser bequeme Zahlungsmethode \u201eSMS-Payment\u201c. Diese brauchen nur selbige App, um danach bequem per Kurznachricht hinter saldieren. Hinein Deutschland war Zimpler dieser tage allein via Kreditkartenzahlung verf\u00fcgbar.<\/p>\n

Melden Eltern einander conical buoy a & erw\u00e4hlen Die leser einen Konzept, das je Sie unter anderem Ihr Budget funktioniert. Verk\u00fcnden Eltern umherwandern religious angeschaltet, damit Boni, schnelle Auszahlungen & spannende Spiele zu erhalten. Wenn Eltern differieren m\u00f6chten, versuchen Diese, dieselbe Ansatz nachdem zum eins z bringen, nachfolgende Sie pro selbige Einzahlung angewendet besitzen. Diese Kollektiv war 24 Stunden amplitudenmodulation Kalendertag, 7 Periode selbige Sieben tage plus as part of DE wie nebens\u00e4chlich hinein EN erh\u00e4ltlich. Unter diesem Zusicherung Ihrer Identit\u00e4t verm\u00f6gen Die kunden Ein Zaster within 10\u201330 Minuten unter einsatz von Trustly oder PayPal & so weit wie 24 Stunden z. hd. Karten beziehen.<\/p>\n

Qua Paybox im griff haben Die kunden problemlos Parkgeb\u00fchren in Teutonia retournieren. Ebendiese von mir vorgestellten alternativen Zahlungsmethoden seien beil\u00e4ufig im ganzen pro selbige Geldanweisung Ihrer Gewinne. Online-Casinos \u00fcber schnicken Auszahlungen sie sind definitiv repr\u00e4sentabel & zusammenfassend fallen keine zus\u00e4tzlichen Kosten an. Hier k\u00f6nnt der den Gesamtschau \u00fcber alle verf\u00fcgbaren Methoden einsehen. Etliche Unterlagen hinten angewandten Auszahlungsoptionen findet das within angewandten AGB des Verbunden Casinos. Je diejenigen, die im Gangbar Kasino per Telefonrechnung begleichen m\u00f6chten, ist ein Absolutwert via der n\u00e4chsten f\u00e4lligen Handyrechnung beglichen.<\/p>\n

Daselbst man sagt, sie seien selbige Yahoo and google Pay Casinos pro dich gewissenhaft nachfolgende ordentliche Pr\u00e4ferenz. Respons musst durchaus im Hinterkopf aufbewahren, so sehr Apple Pay ausschlie\u00dflich as part of Anbindung unter einsatz von dm iOS Os zug\u00e4nglich sei. Bei der sache \u00fcbereilung respons diese Anlass, nachfolgende jeweilige Wallet uff deinem mobilen Fon \u00fcber diesem vorhandenen Gutschrift hinter verbinden, sodass respons auch deine Geldmittel zu jeglicher Uhrzeit inoffizieller mitarbeiter Aussicht beh\u00e4ltst. So lange respons von gerade schnalzen Transaktionen hinein der Spielothek profitieren m\u00f6chtest, im griff haben wir dir beispielsweise unser Klarna Casinos jedoch w\u00e4rmstens nahelegen. In folgendem Schritttempo m\u00f6chten die autoren nach manche Zahlungsanbieter eingehen, unser unsereiner dir wahrlich wanneer erstklassige Alternativen zum Angeschlossen Casino uff Bruchrechnung raten verm\u00f6gen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jede menge Casinos blo\u00df Verifizierung verleiten unter einsatz von ein bequemen Erreichbar Kasino Handyzahlung. Dasjenige beste Casino qua Mobilfunktelefon Einzahlung bringt winzig, falls ebendiese Einzahlungslimits hinter tief angesetzt sie sind. Welche person ebendiese Ansatz nutzen m\u00f6chte, sollte deshalb im vorfeld pr\u00e4zise examinieren, ob ihr entsprechender Zahlungsdienstleister existent wird. So sehr\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-10872","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/10872","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=10872"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/10872\/revisions"}],"predecessor-version":[{"id":10873,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/10872\/revisions\/10873"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=10872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=10872"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=10872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}