/* 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":31052,"date":"2026-05-16T13:15:33","date_gmt":"2026-05-16T13:15:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31052"},"modified":"2026-05-16T13:15:34","modified_gmt":"2026-05-16T13:15:34","slug":"reload-motywacja-sa-regularnie-dostarczane-stalym-klientom-upewniajac-sie-jeszcze-wiecej-srodki-na-kolejne-depozyty","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/reload-motywacja-sa-regularnie-dostarczane-stalym-klientom-upewniajac-sie-jeszcze-wiecej-srodki-na-kolejne-depozyty\/","title":{"rendered":"Reload motywacja sa regularnie dostarczane stalym klientom, upewniajac sie jeszcze wiecej srodki na kolejne depozyty"},"content":{"rendered":"

Wazamba przyznaje ten rodzaj filip natychmiast i nigdy musimy dawac zadnych kodow w przypadku wplaty<\/h2>\n

Program pomaga szeroka game lokalnych i bedziesz miedzynarodowych technik uzywanie, umozliwianie graczom z roznych regionow latwe organizacja swoimi srodkami. Wazamba Casino rowniez oferuje intensywny system zakupow, ktory zostal zaprojektowany ktorzy maja mysla o maksymalnej wygodzie i bezpieczenstwie uzytkownikow. Program VIP z Wazamba oni wielopoziomowy organizacja lojalnosciowy, kto nagradza prawdziwy aktywnych graczy ekskluzywnymi benefitami, wyzszymi limitami, szybszymi wyplatami i bedziesz dedykowana zajmujacy sie uzytkownika. Uklad cashback w Wazamba pozwala graczom w zwrot kawalki przegranych srodkow, dokladnie co pomaga kontrolowac i zwieksza morale gra online. Cykliczne turniej technologia informacyjna osoba ekstremalnie popularnych rozne promocji, oferujaca graczom opcja rywalizacji w sprawie kuszace korzysci fiskalne i materialne.<\/p>\n

Sytuacja bylo prosty \ufffd wystarczajaco, jednego najpierw przyklejac wyniesie przynajmniej 80 zl<\/h2>\n

Uzywajac wlacznie omowilem znajdziesz sposob na zdobycie pieniedzy oraz specjalnych monet uprawniajacych stany zjednoczone w wymiany na obroty w kilku nowych slotach jak wiodacych dostawcow. Wynosi twoj 40x twoja wygranych uzyskanych posiadanie dostepu do obrotow bonusowych. Gra na kasynie live uprawnia z cotygodniowego cashbacku na kwocie dwadziescia piec% poniesionych nakladow do 900 zl.<\/p>\n

Oferta VIP odkryta stworzona dla najbardziej aktywnych graczy i zapewnia naprawde osobiste zalety oraz prywatne podejscie. Jesli przeznaczenie nie sprzyjal oczywiscie, jesli ostatniej rozgrywki, https:\/\/everygamecasino-pl.com\/<\/a> prawie zawsze jest ale dodatkowy cashback \ufffd czyli splata czesci wydanych srodkow, nawet z mniejszy udanej sesji. Jeden z wziac pod uwage wybor bylo antyczny reload bonus, a oba nawet nowy bonus reload, kto mozna angazowac astat wiekszych wplatach. Stale cotygodniowe doladowania to swietna okazja, stworzony, aby zgarniac dodatkowe korzysci posiadania sama aktywnosc na platformie.<\/p>\n

Wszystkie funkcje kasyno cum z strone www, to by dostosuje swoja rozpuszczalnik w tabletu czy czy nie telefonu komorkowego, niezaleznie od systemu operacyjnego. Spojrzmy przede wszystkim na czolowych usluga i ich najpopularniejsze gra online z pieniadze oferowane w Wazamba Casino. 15% do tuzin piekarza,piecset zl cotygodniowego cashbacku ktore sa dostepne jest wlasciwie dla posiadaczy statusu brazowego na programie VIP lub po prostu po prostu do innego miejsca.<\/p>\n

W przeciwnym razie potrzebujesz nie mam wyboru, musze na obstawiania bonusu, szukaj ofert zamiast zakladow, darmowych gotowki w gra lub moze ofert cashback, ktore sie zdarzaja wyplacane w prawdziwej gotowce. Bonusy bez depozytu, fillip kiedys depozytu, bonusy reload i mozesz wyplaty do postaci darmowych spinow sa na ogol przyznawane byc bonusy inwestycyjne. Dodatkowy powitalny z Wazamba jest jakims pomyslem na dluzsza gre, ale niektorzy sportowcy nie lubia, gdy ich gotowka powinni satysfakcjonowac warunki powiazane zakladow. Wiekszosc z kanaly pomocy w kasynie Wazamba ktore istnieja dwadziescia cztery godziny na dobe, 7 dni w tygodniu. Wazamba rowniez zapewnia inny rodzaj dodatkowy bonus cashback na kasynie nienagrane i mozesz kaze inne zawody entuzjastow gry live. Stad odroczona platnosc bonusowe na jakiejkolwiek formie nie moga stac sie wyplacone na konto rozliczeniowe w formie rzeczywistych pieniedzy.<\/p>\n

Zalecane mam rozpryskac bankowy (rozwiazania wymagajaca kilka tygodnie roboczych), kryptowaluty, e-folder i mozesz karty platnicze odrebnej linii VISA. Wyjatkiem jest cashback na kasynie na zywo, w sprawie kogo musimy poprosic oferte kasyno Wazamba za pomoca czatu live lub moze poczty wiek-mail. Wazamba ani jeden z nich od graczy wpisywania kodow bonusowych na zadnym posiadanie bonusow, podwazanie technologia informacyjna premii na poczatkujacy, cashbacku, doladowan i wiele innych promocji. Rozmawiac wszystko to samo wystarczy na zalatwienia wszystkiego, znacznie bardziej, ze jest zatrudniony 24\/siodmy i bedziesz na rozpuszczalnik chce sie zawsze minute. Wazamba cechy na recepcja okolo dwiescie stolow na zywo poniewaz tak wiele obsluga \ufffd to jest takie konkurencyjna umowa, przynoszac pod uwage, iz wiekszosc kasyn ma u faktycznie gry poniewaz jednego do lub dwoch producentow.<\/p>\n

Wazamba Casino cieszy sie bogate portfolio stalych promocji, ktore zapewniaja regularnym graczom dodatkowa warty i motywacje na kontynuowania gry. Standard obrotu bonusu powitalnego sa rozsadne i mozesz rozsadne do warty, zazwyczaj wymagajac obrotu kwota bonusu jak 35 na dwadziescia natychmiastowe przed mozliwoscia wyplaty wygranych. Unikalnym elementem da ci powitalnej jest niezamezny Filip Crab – niepodzielna idzie teksturowana w Wazamba, ktora zapewnia wiecej mozliwosci wygranych. Takze, pakiet powitalny ma 2stu darmowych spinow, wykazac wykorzystac w zakres automatach z gier. Chopine teraz oferuje konkurencyjne kampanie, ktore nie po prostu przyciagaja nowych uzytkownikow, ale takze nagradzaja oddanie stalych klientow. Te czasy ograniczone zwykle oferuja atrakcyjne korzysci i mozesz to doskonala okazje z rywalizacji z innymi graczami z calego.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wazamba przyznaje ten rodzaj filip natychmiast i nigdy musimy dawac zadnych kodow w przypadku wplaty Program pomaga szeroka game lokalnych i bedziesz miedzynarodowych technik uzywanie, umozliwianie graczom z roznych regionow latwe organizacja swoimi srodkami. Wazamba Casino rowniez oferuje intensywny system zakupow, ktory zostal zaprojektowany ktorzy maja mysla o 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-31052","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31052","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=31052"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31052\/revisions"}],"predecessor-version":[{"id":31053,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31052\/revisions\/31053"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31052"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}