/* 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":163730,"date":"2026-06-22T12:05:01","date_gmt":"2026-06-22T12:05:01","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=163730"},"modified":"2026-06-22T12:05:01","modified_gmt":"2026-06-22T12:05:01","slug":"eine-ein-zwei-einzahlungsfreien-aktionen-wa-casinos-ist-das-startguthaben-in-highlight-in-29-ecu-6","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/eine-ein-zwei-einzahlungsfreien-aktionen-wa-casinos-ist-das-startguthaben-in-highlight-in-29-ecu-6\/","title":{"rendered":"eine ein zwei einzahlungsfreien Aktionen wa Casinos ist das Startguthaben in Highlight in 29 Ecu"},"content":{"rendered":"

Verde Casino thirty Ecu Provision abzuglich Einzahlung<\/h2>\n

Verde https:\/\/coinsgame-de.de\/bonus\/<\/a> Casino 29 Ecu Echtgeld Provision frei Einzahlung gar kein Provision Code, Gultig f\u00fcr 2 Tage Umsatzanforderung 3x Umsatzfrist (Tage) 5 Maximum. Ausschuttung thirty Mindesteinzahlung – Auszahlungsdauer 0-3 tage Mehr Details<\/p>\n

Diese Verde Casino 25 \ufffd Provision ohne Einzahlung<\/h2>\n

Als Erstes muss adult male naturlich uberblicken, wie gentleman uberhaupt angeschaltet einen Provision herankommt. Dafur zu tun sein in einen Spielern jedoch einige Dienst unternommen sind. Hier es sich dar\u00fcber eine Provision f\u00fcr diese Anmeldung handelt, programmiert am anfang selbstverstandlich beilaufig ein erfolgreich abgeschlossene Registrierungsprozess. Dann zu tun sein noch diese angegebene Telefonnummer und diese E-Mail-Adresse bestatigt man sagt, sie sind.<\/p>\n

Eine mehrere Anfang von Pramie Code ist fur jedes dieses Prasentation nicht notwendig. Berucksichtigen Sie darauf, solch 30 \ufffd Registrierungs Provision in Verde Casino jedoch inwendig von funf Konferieren nutzbar ist & dann verfallt.<\/p>\n

Diese Bonusbedingungen ein Tatigkeit<\/h2>\n

Wie in ihnen Promotionen abzuglich Einzahlung sind auch in diesem Angebot, wenn Sie inoffizieller mitarbeiter Verde Casino 29 \ufffd Startguthaben erhalten, einige Bedingungen umfassen. Diese Umsatzbedingungen geben einen three-fachen Umsatz vos Startguthabens inwendig in 3 Besprechen vorab, bevor eine Auszahlung m\u00f6glich ist. Es ist in einzahlungsfreien Bonusangeboten erwartet, so von einen Casinos ein h\u00f6chstens moglicher Auszahlungsbetrag vorgegeben ist. Dar\u00fcber soll sich das Verlust ein Spielbanken inoffizieller mitarbeiter Gewinnfall wa Spielers in Ansto?en tragen. Hier sind es 26 Ecu, diese hochstmoglich gewonnen sind k\u00f6nnen.<\/p>\n

Diese Verde Casino fifty Freispiele ohne Einzahlung<\/h2>\n

Ein Versorger gibt in einen kostenfrei Freispielen ahnliche Voraussetzungen wie beim Startguthaben vorab. Das hei?t, so man sich auch am anfang ausf\u00fcllen muss, um diese Verde Casino fifty Cuma-cuma Spins erhalten nach inoffizieller mitarbeiter griff haben. Diese “, in diesem Angebot diese Telefonnummer & diese Basis des naturlichen logarithmus-Mail-Schreiben \u00fcberpr\u00fcfen nach zu tun sein, greift hier inoffizieller mitarbeiter gleichen sinne. Sind diese Schritte erledigt, sind diese Freispiele sofort gutgeschrieben. Ein Provision Code ist nicht benotigt.<\/p>\n

Verde Casino fifty Cuma-cuma Spins frei Einzahlung in E-book Concerning Sirens (Spinomenal) Umsatzanforderung 3x Umsatzfrist (Tage) 5 Fullest. Auszahlung 26 Mindesteinzahlung – Auszahlungsdauer 1-3 Mehr Details<\/p>\n

Diese Freispiele konnen meistens schnell auf ein Gutschrift am Spielautomaten Publication of Sirens von Spinomenal eingelost sind. Das Versorger ist nach handen unterhaltsame Slots bekannt. \u00dcber diese fur nusse Freispiele k\u00f6nnen Sie Zeitung for Sirens bekanntschaft machen und haben selbst Wege auf echte Gewinne inoffizieller mitarbeiter Verde Casino.<\/p>\n

Diese Umsatzbedingung lernt einen 5-fachen Umsatz inwendig in 3 Besprechen vorab. Alternativ ja beim Startguthaben bezieht sich diese Umsatzbedingung noch auf diese uber einen Complimentary Spins erzielten Gewinne. Ein h\u00f6chstens auszahlbare Absoluter wert, ein \u00fcber diese Verde Casino Freispiele verfugbar ist, liegt ebenfalls in 30 Ecu.<\/p>\n

Startguthaben dagegen. Freispiele \ufffd Irgendwo liegen diese Unterschiede?<\/h2>\n

Schaut guy sich diese zwei Bonusformen etwas bzw. angeschaltet, als nachstes ist charakter schnell event, so es in der regel viel mehr Gemeinsamkeiten als Unterschiede zwischen ihnen gibt. Beiderlei m\u00f6glichkeit schaffen einen Kunden des diesen Casinos, Spiele \u00fcber echten Geldeinsatzen nach geben. Es bedeutet verstandlicherweise sekundar, so guy echtes Geld erlangen kann. Hinzu passiert, so fur jedes beiderlei Bonusversionen ma?ig zuneigung Bedingungen gelten und selbst diese sind so gut wie dasselbe.<\/p>\n

Ja es sich noch um verschiedene Gestalten des Pramie handelt, findet man beilaufig einen einen & anderen Kontrast. Diese Verde Casino Freispiele vermogen zum Beispiel nur beim vorgegebenen Spielautomaten eingelost sind, dabei charakter \u00fcber dem Startguthaben etwas mehr Wahl verf\u00fcgt. Die ein zwei Bonusformen diese bessere ist, entscheidet zuletzt Diese personliche Wahl. \u00dcber zwei k\u00f6nnen Diese ja in samtlichen Vorzugen des Verde Casino No Pranumeration Vermittlungsgebuhr profitieren.<\/p>\n

Ein Willkommensbonus de l’ensemble des neuen VerdeCasinos<\/h2>\n

Nicht noch einen, stattdessen gleich mehrere Bonuspunkte kann sich diese Casino uber dem Willkommensbonus schutzen, einen Fans annahernd f\u00fcr ihre Einzahlungen erhalten konnen. Insgesamt mitbekommt es als nachstes aus, so gentleman sich amyotrophic au\u00dfen sclerosis Neukunde einen Vermittlungsgebuhr as part of ein Highlight bis zu 1.300 Ecu wenn 300 Verde Casino Kosteloze Spins sch\u00fctzen kann. Dieses Angebot ist in unseren Informationen auf diese ersten 4 Einzahlungen gewahrt:<\/p>\n","protected":false},"excerpt":{"rendered":"

Verde Casino thirty Ecu Provision abzuglich Einzahlung Verde https:\/\/coinsgame-de.de\/bonus\/ Casino 29 Ecu Echtgeld Provision frei Einzahlung gar kein Provision Code, Gultig f\u00fcr 2 Tage Umsatzanforderung 3x Umsatzfrist (Tage) 5 Maximum. Ausschuttung thirty Mindesteinzahlung – Auszahlungsdauer 0-3 tage Mehr Details Diese Verde Casino 25 \ufffd Provision ohne Einzahlung Als Erstes muss\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-163730","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/163730","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=163730"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/163730\/revisions"}],"predecessor-version":[{"id":163733,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/163730\/revisions\/163733"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=163730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=163730"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=163730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}