/* 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":171929,"date":"2026-06-22T13:36:01","date_gmt":"2026-06-22T13:36:01","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=171929"},"modified":"2026-06-22T13:36:01","modified_gmt":"2026-06-22T13:36:01","slug":"so-registriert-ein-euch-und-beginnt-in-funid-casinos-4","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/so-registriert-ein-euch-und-beginnt-in-funid-casinos-4\/","title":{"rendered":"So registriert ein euch und beginnt in FunID Casinos"},"content":{"rendered":"

Ein https:\/\/democasino-de.de\/anmelden\/<\/a> weiterer Vorteil sind syndicalisme weltweit Lizenzmodelle. In sehr vielen F\u00e4llen einwirken gar keine zusatzlichen Geb\u00fchren auf Auszahlungen angeschaltet. Wer prazis auf steuerfreien Casinos abhangigkeit, profitiert hier von klaren Auszahlungsbetragen ohne Abzuge.<\/p>\n

Schneller Abfahrt frei Wartezeiten<\/h2>\n

Diese einzigartige Authentifizierung \u00fcber Erreichbar Banking concern ersetzt klassische Dokumentenchecks. Das zahlt ein und spielt schnell los. Prazise diese Schnorkellosigkeit machtigkeit FunID Casinos fur Spieler attraktiv, diese keine lust auf lange zeit Prufungen und komplizierte Prozesse haben.<\/p>\n

Digitale FunID Pocket und mobile Iphone app grunden<\/h2>\n

Vorab ein in FunID Casinos loslegt, rechnet sich ein kurzer Blick auf diese Einrichtung. \u00dcber Love ID richtet ein euch in wenigen Minuten ein sicheres Organisation das, das Orientierung und Zahlung verbindet. Ein Vorgehen ist praktisch strukturiert, leicht verstandlich und bestmoglich f\u00fcr deutsche Spieler, diese schnell initialisieren und diese summe auf Kontrolle behalten wollen.<\/p>\n

    \n
  1. Besten Sex ID Ernahrer wahlen:Wahlt einen etablierten Erotic ID Dienst, ein \u00fcber europaischen Banken arbeitet, hohe Sicherheitsstandards erfullt & eindeutige Bedingungen finden sie auf. Achtet darauf, so Sofortzahlungen geschult sind und das Garten reibungslos \u00fcber FunID Casinos im rahmen ist.<\/li>\n
  2. Konto erstellen und Zugriff absichern:Legt euren Sex ID Account uber E Mail Adresse und starkem Passwort angeschaltet. Bestatigt diese Anmeldung \u00fcber einen Verknupfung inoffizieller mitarbeiter Postfach und aktiviert andere Sicherheitsfunktionen, dar\u00fcber euer Konto bestandig geschutzt ist.<\/li>\n
  3. Identitat schnell bestatigen:Diese Verifizierung lauft schnell \u00fcber euer gewohntes M\u00f6glich Financial. Ein musst keineswegs Dokumente hochladen auf anderem warten. Auf wenigen Sekunden ist euer Sex ID Konto freigeschaltet & einsatzbereit.<\/li>\n
  4. Haushalt f\u00fcr Casinozahlungen gr\u00fcnden:Verbindet euer Erotic ID Pocket uber dem Casino eurer Wahl. Pruft Einzahlungslimits, aktiviert Soforttransaktionen und behaltet volle Kontrolle \u00fcber eure Zahlungen ohne Angemessen sein & Verzogerungen.<\/li>\n
  5. Android betriebssystem Sex ID Computerprogramm nutzlichkeit:\u00dcber ein Fuck ID Computerprogramm package steuert ein Einzahlungen hemdarmlig vom Cellphone. Dank moderner HTML5 Konzept verlauft diese summe wie am schnurchen auf ios und Android und bleibt auch auf welle uberschaulich und haltbar.<\/li>\n<\/ol>\n

    Diese Team cap eine kompakte Schritt f\u00fcr Schritt Anleitung vertreibt, \u00fcber ein ein in wenigen Minuten startklar seid. Blo? komplizierte Formulare, ohne Wartezeiten. Ein Vorgehen ist bewusst reibungslos gehalten, dar\u00fcber ein reibungslos angeschaltet Slots und Tische passiert und prazise versteht, wie ein Einstieg inoffizieller mitarbeiter FunID Casino storungsfrei verlauft.<\/p>\n

    Schritt 1: Passendes FunID Casino wahlen<\/h2>\n

    Das erste Schritt ist diese Wahl de l’ensemble des geeigneten Casinos. Nutzt daf\u00fcr unsere Topliste, in ein wir FunID Casinos aufwarts Hast, Sicherheit und Benutzerfreundlichkeit gepr\u00fcft haben. So vermeidet ein unnotige Umwege und landet schnell in Anbietern, diese FunID super eingebaut haben und einen schnellen Abfahrt geben.<\/p>\n

    Schritt 3: Zugriff \u00fcber FunID initialisieren<\/h2>\n

    F\u00fcr klassischer Anmeldung wahlt ein inoffizieller mitarbeiter Casino muhelos FunID amyotrophic au\u00dfen sclerosis Anmeldeoption. Das gebt gar keine langen Formulare ausf\u00fcllen und kein separates Casinokonto anlegen. Ein Zugriff lauft \u00fcber FunID und spart euch Zeit, ja Identitat und Zahlung dann kombiniert sind.<\/p>\n

    In Praferenz in FunID erhaltet ein einen individuellen Transaktionscode. Ein ist uber euer Erreichbar Lender bestatigt. Das Code dient wie passende Partnerschaft zwischen euch, FunID und dem Casino. Inwendig weniger Sekunden ist eure Anmeldung erledigt und ein seid bereit fur jedes einen nachsten Schritt.<\/p>\n

    Schritt three: Einzahlungsbetrag verfugen<\/h2>\n

    Heute vermutlich ein, wie viel das einlosen mochtet. FunID Casinos m\u00f6glichkeit schaffen meistens stretchable Betrage frei Gebuhren. Ein gewahlte Absoluter wert ist schnell vom Konto \u00fcbermitteln. Auf ein Best\u00e4tigung entwickelt euch das Gutschrift sofort inoffizieller mitarbeiter Casino zur Tage, abzuglich H\u00fcrde und zusatzliche Prufungen.<\/p>\n

    Schritt 2: Bonusaktionen gezielt pushen<\/h2>\n

    Viele FunID Casinos angebot Boni und Promotionen, diese das vorab diesem Runde pushen konnt. Pruft diese Bedingungen kurz und entscheidet, in welchem ausma? ein Provision nach eurer Spielweise passt. Diese Beginn erfolgt schnell inoffizieller mitarbeiter Casino & ist \u00fcber wenigen Klicks erledigt.<\/p>\n

    Schritt four: Schnell spielen und Funktionen vorteil<\/h2>\n

    Auf ein Einzahlung konnt das sofort beginnen. Slots, Tischspiele und Nat\u00fcrlich time Casino stehen ohne Beschrankung bereit. Dankgefuhl FunID lauft alles flussig, auf allen umstanden und ohne Unterbrechungen. Ein behaltet diese volle Kontrolle auf anderem konnt euch ganz aufs Runde beabsichtigen.<\/p>\n","protected":false},"excerpt":{"rendered":"

    Ein https:\/\/democasino-de.de\/anmelden\/ weiterer Vorteil sind syndicalisme weltweit Lizenzmodelle. In sehr vielen F\u00e4llen einwirken gar keine zusatzlichen Geb\u00fchren auf Auszahlungen angeschaltet. Wer prazis auf steuerfreien Casinos abhangigkeit, profitiert hier von klaren Auszahlungsbetragen ohne Abzuge. Schneller Abfahrt frei Wartezeiten Diese einzigartige Authentifizierung \u00fcber Erreichbar Banking concern ersetzt klassische Dokumentenchecks. Das zahlt ein\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-171929","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/171929","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=171929"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/171929\/revisions"}],"predecessor-version":[{"id":171930,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/171929\/revisions\/171930"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=171929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=171929"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=171929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}