/* 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":7679,"date":"2026-04-25T18:44:55","date_gmt":"2026-04-25T18:44:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=7679"},"modified":"2026-04-25T18:44:57","modified_gmt":"2026-04-25T18:44:57","slug":"pierwsze-wystapienie-ritzo-casino-internet-dla-kazdego-brama-logiczna-na-luksusowego-hazardu","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/pierwsze-wystapienie-ritzo-casino-internet-dla-kazdego-brama-logiczna-na-luksusowego-hazardu\/","title":{"rendered":"Pierwsze wystapienie Ritzo Casino Internet: Dla kazdego brama logiczna na luksusowego hazardu"},"content":{"rendered":"

Dolacz do Ritzo Casino zostal dzis i mozesz odbierz swoj rozniacy sie dodatkowy bonus! Zaloguj sie niezwlocznie, produkowac przyjsc do wyprobowac i mozesz wygrywac z powodu swoim spersonalizowanym nagrodom! Nie pomin prawdopodobienstwa z predkosci swoich wygranych w drodze twoje specjalnym ofertom!<\/p>\n

Wkrocz na krainy niezrownanych odczuwanie i bedziesz pozadanie na Ritzo Casino, gdzie oczekuje skarbiec ekskluzywnych bonusow, stad wzniosa Ole777 logowanie do kasyna<\/a> Twoje wlasne mysli posiadanie gry internetowe na nowe wyzyny! Witamy w szerokim swiecie, w ktorym podniecenie towarzyszacy z wygrana spotyka sie posiadanie nagrodami zaawansowane, obiecujac zaryzykuj, jakiej nie jest nie ma miejsca indziej w swiecie wirtualnych kasyn. Z Ritzo Casino Dla kazdego wycieczka nie jest zalezny po prostu w graniu w gra wideo \ufffd patrzysz na odblokowanie wszechswiata wybory, w ktorym kazdy spin przybliza Cie na niezwyklych bonusow zarezerwowanych tylko dla Ciebie.<\/p>\n

Proba na wyprawe, jakiej wlasciwie kiedykolwiek nie bylo, zaglebiajac sie na kraine bonusow Ritzo Casino, zaprojektowanych, produkowac kolejka Twoja pasje na hazardu i bedziesz nagrodzic Twoja rozgrywke niezrownanymi korzysciami. Moze byc, o tym jak takie osobiste fillip mogli zmienic proste instrukcje gra do dziwne eskapady pelne niespodzianek i mozesz bogactw wykraczajacych oprocz zasoby. Na Ritzo Casino nadzieja niezapomnianych chwil i nie z pobicia nagrod przyciaga \ufffd czy nie nadszedl juz czas, strzelac problem i mozesz zwolnic caly potencjal z dzialania na kasynie siec? Czas otworzyc drzwi na prestizu, odczuwanie i mozesz wystawnych nagrod \ufffd zarejestrowal sie Ritzo Casino i bedziesz spraw, zeby, ktora sprawi podroz sie rozpoczela!<\/p>\n

Wielu korzysci z odblokowania ekskluzywnych bonusow na Ritzo Casino sa niewiarygodne niezrownane, poprzez dostarczanie graczom kasyn online opcja podniesienia poziomu swoich wrazen ktorzy maja gra w manierach. Jedna z najbardziej kuszacych kluczowych korzysci z probuje mozliwosc znacznego zwiekszenia wygranych. Przypuscmy zwiekszenie an z bankrolla w sprawie dodatkowe procedury lub po prostu po prostu darmowe spiny, ktore sa skutkuc znacznych wyplat na ulubionych slotach lub grach stolowych. Tego typu fillip nie tylko zwiekszaja Twoje szanse z wygrana, ale takze wydluzaja rozgrywke, umozliwiajac ci odkrywac duzo wiecej gier i bedziesz poprawiac ogolna wart hobby.<\/p>\n

Zrobic wydac, dodaj ranking na stronie Ritzo Casino i mozesz zaloguj sie w swojego profilu<\/h2>\n

Oprocz tego, premia Ritzo Casino daja szereg zalety zaprojektowanych w tym, zrobic sprostac roznym preferencjom graczy. Kiedys lukratywnych ofert cashback, ktore daja siec bezpieczenstwa w przypadku przegranych, po zywe bezkosztowe spiny, ktore sa rozladowac rundy bonusowe i mozesz jackpoty, gracze maja duzy wybor, w odniesieniu do nagrody bonusowe do Ritzo Casino. Takze osobliwe kampanie, takie jak kontestacja z tabeli liderow i bedziesz osobiste turnieje, dodaja ekscytujacej korzysci konkurencyjnej na rozgrywki, utrzymujac zwiazek i motywacje graczy.<\/p>\n

Wyobraz sobie otrzymanie spersonalizowanego bonusu urodzinowego jak Ritzo Casino, dostosowanego szczegolnie z toba stawac sie cenionego gracza. Podobne gesty ciala nie tylko sprawiaja, ktore odkryles sie wartosc, a takze demonstruja polaczenie Ritzo Casino do szczescie swoich graczy. Wiecej programy lojalnosciowe, stad nagradzaja czesta gre punktami comp lub moze wlasnie przywilejami VIP, z drugiej strony zwiekszaja globalne kluczowych korzysci z bycia czescia spolecznosci Ritzo. Dzieki eksploracje z tych wiele przywilejow i zachet zapewnianych z prywatne fillip na Ritzo Casino, sportowcy mogli zwiekszyc swoje uczucia docenianie, natychmiast prawdopodobnie zbierajac kwadratowe korzysci po drodze.<\/p>\n

Jak dostac sie do ekskluzywnych bonusow na kasynie Ritzo<\/h2>\n

Dostepnosc na ekskluzywnych bonusow do Ritzo Casino technologia informacyjna prosty proces, ktory moglby najbardziej poprawic Ich depresja ktorzy maja gry internetowe. Po zalogowaniu sprawdz czesc promocji lub po prostu bonusow, na ktorej bylo wiele kuszacych ofert dostosowanych do roznych preferencji. Nawet jesli, czy jestes fanem darmowych spinow, nagrod cashback jesli bonusow posiadania dopasowanie depozytu, Ritzo Casino miec cos dla wszystkich.<\/p>\n

Szukajac rozne rodzaje bonusow wziac pod uwage na Ritzo Casino, skoncentruj sie na wszelkie wymagania bonusowe lub specjalne standard potrzebne do ich odblokowania. Roznych premia wymagaja minimalnego depozytu lub po prostu po prostu spelnienia okreslonych warunkow zakladow, zanim stana sie ktore sa dostepne. Zapoznajac sie posiadanie warunkami i mozesz zasadami zwiazanymi z kazda oferta bonusowa, masz pewnosc siebie, ty na pewno maksymalizujesz korzysci i mozesz w pelni wykorzystujesz swoja rozgrywke.<\/p>\n","protected":false},"excerpt":{"rendered":"

Dolacz do Ritzo Casino zostal dzis i mozesz odbierz swoj rozniacy sie dodatkowy bonus! Zaloguj sie niezwlocznie, produkowac przyjsc do wyprobowac i mozesz wygrywac z powodu swoim spersonalizowanym nagrodom! Nie pomin prawdopodobienstwa z predkosci swoich wygranych w drodze twoje specjalnym ofertom! Wkrocz na krainy niezrownanych odczuwanie i bedziesz pozadanie na\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-7679","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7679","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=7679"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7679\/revisions"}],"predecessor-version":[{"id":7680,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7679\/revisions\/7680"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=7679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=7679"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=7679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}