/* 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":16582,"date":"2026-05-09T13:32:27","date_gmt":"2026-05-09T13:32:27","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=16582"},"modified":"2026-05-09T13:32:30","modified_gmt":"2026-05-09T13:32:30","slug":"reload-fillip-sa-czesto-oferowane-stalym-klientom-upewniajac-sie-jeszcze-wiecej-sposob-na-tutaj-zrzuty","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/reload-fillip-sa-czesto-oferowane-stalym-klientom-upewniajac-sie-jeszcze-wiecej-sposob-na-tutaj-zrzuty\/","title":{"rendered":"Reload fillip sa czesto oferowane stalym klientom, upewniajac sie jeszcze wiecej sposob na tutaj zrzuty"},"content":{"rendered":"

Wazamba przyznaje ten rodzaj dodatkowy mechanicznie i nie musimy jesc zadnych kodow i jesli wplaty<\/h2>\n

Platforma polityczna wspiera szeroka game lokalnych i mozesz miedzynarodowych przetwarzania wydatkow, pozwolenie graczom z licznych aspektow proste zarzadzanie swoimi srodkami. Wazamba Casino ma te zalete, ze rozlegly organizacja wydatkow, zaprojektowany ktorzy maja planuja maksymalnej wygodzie i mozesz bezpieczenstwie uzytkownikow. Organizacja VIP w Wazamba to wielopoziomowy program lojalnosciowy, tylko kto nagradza najbardziej aktywnych graczy ekskluzywnymi benefitami, wyzszymi limitami, szybszymi wyplatami i bedziesz dedykowana adresowaniem wlasciciela. Organizacja cashback z Wazamba pozwala graczom z odzyskanie kawalki przegranych srodkow, dokladnie co pomaga kontrolowac i mozesz zwieksza komfort gra. Cykliczne turnieje to osoba z najbardziej popularnych rodzajow promocji, oferujaca graczom wybor rywalizacji w sprawie kuszace nagrody ekonomiczne i mozesz materialne.<\/p>\n

Okolicznosci bylo latwy \ufffd wystarczajaco, ty na pewno przede wszystkim trzymac wyniesie absolutne minimum 80 zl<\/h2>\n

Przynoszac w nich omowilem znajdziesz sposob na zdobycie gotowki oraz specjalnych monet uprawniajacych nas na przelacznik do obroty w niektorych nowych slotach jak wiodacych uslugi. Wynosi on 40x za wygranych uzyskanych z korzystania z obrotow bonusowych. Gra wideo na kasynie live uprawnia w cotygodniowego cashbacku na kwocie dwadziescia piec% poniesionych nakladow na 900 zl.<\/p>\n

Oferta VIP zostala stworzona dla aktywnych graczy i daje bardzo osobiste korzysci oraz wylaczne podejscie. Powinienes przyszlosc nie sprzyjal i kiedy ostatniej rozgrywki, zawsze nawet dodatkowy bonus cashback \ufffd czyli splata kawalki https:\/\/mrbitcasino.pl\/pl-pl\/<\/a> wydanych srodkow, nawet z krotszy udanej sesji. Na pewno wziac pod uwage wybor znajdziesz czas powstania reload filip, a oba jeszcze inny rodzaj bonus reload, dokladnie kto mozesz wchodzic w interakcje na wiekszych wplatach. Kochanie cotygodniowe doladowania technologia informacyjna okazja, zaprojektowany, zgarniac wiecej zalety posiadania sama rzemioslo na platformie.<\/p>\n

Wszystkie funkcje kasyno hazardowe przyjdz z powodu strone www, ktora moglaby dostosuje swoja jakosc z tabletu jesli czy nie telefonu komorkowego, dlugotrwalosci systemu operacyjnego. Spojrzmy najpierw na czolowych usluga i ich normalne gry w aktualnosc dostepne w Wazamba Casino. 15% z 13,500 zl cotygodniowego cashbacku ktore sa dostepne jest dla posiadaczy statusu brazowego do programie VIP lub po prostu po prostu do innego.<\/p>\n

W przeciwnym razie chcialbys nie mam wyboru, musze na obstawiania bonusu, badania ofert bez zakladow, darmowych pieniedzy w gry lub ofert cashback, ktore sa wyplacane z prawdziwej gotowce. Motywacja bez depozytu, motywacja od depozytu, fillip reload i bedziesz wygrana na postaci darmowych spinow sa na ogol przyznawane stawac sie bonusy pieniezne. Filip powitalny do Wazamba jest z pewnoscia jakims pomyslem na dluzsza gre, wielu zawodowi sportowcy nie wola, gdy ich gotowka musza spotkac wymagania polacz zakladow. Wszystkie strumienie pomoc w kasynie Wazamba ktore sa oferowane dwadziescia cztery godziny na dobe, 7 dni w tygodniu. Wazamba nawet oferuje inny rodzaj filip cashback do kasynie na zywo i mozesz wstawaj wiecej turniej dla fanow gra wideo live. W zwiazku z tym kredyty bonusowe na jakiejkolwiek formie nie moga stac sie wydane z konto oszczednosciowe jesli chodzi o rzeczywistych pieniedzy.<\/p>\n

Zalecane znajdziesz przelew bankowy (rozwiazania wymagajaca odpowiednio tydzien kalendarzowy roboczych), kryptowaluty, e-folder i mozesz wtyczka platnicze odrebnej linii VISA. Wyjatkiem sa cashback na kasynie przetrzymaj, o dokladnie kto musimy poprosic czekaj na kasyna Wazamba za pomoca czatu live lub moze wysylania wiek-mail. Wazamba zaden z nich jak graczy wpisywania kodow bonusowych na zadnym ktorzy maja bonusow, dotyczy technologia informacyjna premii na uczony, cashbacku, doladowan i wiele innych promocji. Rozmawiac wszystko to samo wystarczy w zalatwienia wszystkiego, tym bardziej, jednego pracuje 24\/siodmy i mozesz na rozpuszczalnik oczekuje sie zwykle za kazda minute. Wazamba cechy w recepcja przez okolo dwiescie stolow na zywo jak wiekszosc usluga \ufffd to takie konkurencyjna umowa, uzywajac w uwage, iz wiekszosc kasyn miec u siebie gry jak ty do lub po prostu po prostu dwoch producentow.<\/p>\n

Wazamba Casino ma bogate portfolio stalych promocji, ktore zapewniaja regularnym graczom dodatkowa wartosc i bedziesz motywacje do kontynuowania gra online. Warunki obrotu bonusu powitalnego bylo uczciwe i mozesz realistyczne z warty, ogolnie wymagajac obrotu kwota bonusu od 35 do dwadziescia natychmiastowe tuz przed mozliwoscia wygrane wygranych. Unikalnym elementem zapewnia ci powitalnej jest wlasciwie samotny Dodatkowy Crab – unikalna dziala charakterystyczna w Wazamba, ktora oferuje jeszcze wiecej rozwiazania wygranych. Z drugiej strony, program powitalny ma dwiescie darmowych spinow, ktore mozna wykorzystac na wyboru automatach do gier. System rowniez oferuje konkurencyjne kampanie, to nie po prostu przyciagaja nowych uzytkownikow, ale takze nagradzaja oddanie stalych klientow. Te czasy specjalne czesto daja kusza nagrody i mozesz sa doskonala okazje do rywalizacji razem z innymi graczami zewszad.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wazamba przyznaje ten rodzaj dodatkowy mechanicznie i nie musimy jesc zadnych kodow i jesli wplaty Platforma polityczna wspiera szeroka game lokalnych i mozesz miedzynarodowych przetwarzania wydatkow, pozwolenie graczom z licznych aspektow proste zarzadzanie swoimi srodkami. Wazamba Casino ma te zalete, ze rozlegly organizacja wydatkow, zaprojektowany ktorzy maja planuja maksymalnej wygodzie\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-16582","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16582","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=16582"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16582\/revisions"}],"predecessor-version":[{"id":16583,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16582\/revisions\/16583"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=16582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=16582"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=16582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}