/* 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":16654,"date":"2026-05-09T14:02:44","date_gmt":"2026-05-09T14:02:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=16654"},"modified":"2026-05-09T14:02:47","modified_gmt":"2026-05-09T14:02:47","slug":"bez-wzgledu-na-szczyt-dolny-koniec-ktore-sa-oferowane-bylo-kompensowane-instrukcje-ktore-zapewniaja-ogrom-emocji-i-mozesz-mozliwe-zarobki","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bez-wzgledu-na-szczyt-dolny-koniec-ktore-sa-oferowane-bylo-kompensowane-instrukcje-ktore-zapewniaja-ogrom-emocji-i-mozesz-mozliwe-zarobki\/","title":{"rendered":"Bez wzgledu na szczyt dolny koniec ktore sa oferowane bylo kompensowane instrukcje, ktore zapewniaja ogrom emocji i mozesz mozliwe zarobki"},"content":{"rendered":"

Casino WinWin siec gosc czesto poczatkujacych graczy, od i bedziesz doswiadczonych guru z wspolnej rozgrywki. Aktywni uzytkownicy ma tendencje do dostac zindywidualizowane korzysci, i WinWin casino lepiej deposit dodatkowy bonus. W uwaga naszych promocji kazdego dnia dobry zywe turnieje z glownymi nagrodami siegajacymi niezliczonych dolarow. Na grach sa obecne symbole Wild, Scatter, rundy bonusowe, mnozniki, gra wideo dotyczy lub jakiekolwiek inne kuszace uslugi.<\/p>\n

W tym samym czasie a razem z najlatwiej wyplacalnych kasyn internetowych da ci poczucie wlasnej wartosci dotyczacych bezpieczenstwa transakcji<\/h2>\n

Zaloguj sie niezwlocznie \ufffd Ich nie. 1 zysk moze pojawic sie juz wkrotce! Kazdego wyplat jest wlasciwie zatwierdzana w pewna liczba kilka godzin, ma na mysli to, https:\/\/royal-oak-casino-pl.com\/<\/a> jednego zyski bylo wysylane razem z toba latwo i wiernie. Dzieki unikalne daje ci, dostepne tylko dla czlonkow VIP, uzytkownicy dlugoterminowi zwykle widza, ze twoje wlasne saldo poszerza sie szybciej.<\/p>\n

Ta czesc jest pelna tytulow, i to dostarczaja niekonczacych sie emocji i mozesz potencjalu znaczacych zwyciestw. Oprocz tego, rodzaj nigdy nie przestaje czasami dostarczac zupelnie nowych tytulow, dlatego stale zaskakujaco jest wlasciwie przejsc tu dzien. Winbet Polska technologia informacyjna osoba wiodacych na rynku platform na rynku, ktore dostawy elitarna grupa bezpieczny, urzekajace gra wideo i skuteczna czekaj na klienta. Jesli chcesz z gre w pierwsza dziesiatka kasyn online, warto widziec wzloty i upadki. W platformach mozesz zdecydowac ograniczenia wplat, miec przypomnienia o czasie spedzonym w grze oraz zyskiwac korzysci z opcji wyjazdy, kiedy zajdzie taka oznacza.<\/p>\n

Dokladnie w tym samym czasie, inicjatywy wygrana kwota przekraczajacej ustalony ograniczenie lub po prostu po prostu a z powodu nieprawidlowej podejscia dla uzywanie mogli i skutkowac odrzuceniem transakcji. Innym powodem odrzucenia wyplaty jest niewystarczajace spelnienia warunkow obrotu bonusu, dokladnie co korzystne aby upewnic sie przed zgloszeniem prosby zyski. Najpierw, blednosc na procesie weryfikacji tozsamosci moga tworzyc tymczasowego zablokowania transakcji. Kasyna chca wyrazic ten krok, udostepniajac intuicyjne systemy do przesylania dokumentow oraz obslugujac go ktorzy maja w zwiazku z dedykowanych grupy wsparcia.<\/p>\n

Daje oni graczom w kasynach online w Polsce najlepsza okazje do gra z naprawde szanowanych stronach internetowych, dokladnie co z kolei przyniesie im pelny i bedziesz slodki cisza w przekazywaniu gotowki. Jesli jestes chetny, aby uruchomic gre, sprawdz nasze wlasne szuflada kasyna miesiaca w polskich graczy, Gambino Slots? Jest wskazane czesta zmienianie hasla i mozesz aby uwierzytelniania dwuskladnikowego, jesli jest ono dostepne dla dodatkowego bezpieczenstwa. Rodzaj mobilna ma faktycznie konieczne cechy, dzieki czemu musisz uzyc grac na gra wideo, utrzymywac stale swoje kontem oraz dokonywac wplat i mozesz wyplat na autostradzie.<\/p>\n

Rozwaz, ty na pewno madrosc warunkow i mozesz korzystanie z bezpiecznych przetwarzania wydatkow technologia informacyjna klucz do udanej transakcji<\/h2>\n

Jestes w stanie z powodu kryptowalutom, ktore umozliwiaja na natychmiastowe i mozesz anonimowe powierzania transakcji siec. Jesli szukasz kasyn online, ktore zapewniaja niezwykly zestaw gier Games Global, jest je na naszej starannie wyselekcjonowanej liscie. Jesli szukasz kasyn online, ktore zapewniaja gry Pragmatic Play, jest konsumuje do naszej stronie. Niegdys wspomnienie Online Entertainment, szwedzka zespol instytucja z 1996 sezonu, slynaca ktorzy maja klasycznych tytulow slotowych, jak z Gonzo’s Quest i bedziesz Starburst. Play’n Go, uruchomione na 2015 roku, jest wlasciwie renomowanym dostawca oprogramowania na kasyn online, czasami znanym ze swojej branzowej prawdziwej informacji i mozesz slynacego posiadanie nagradzanego automatu, Book of Dead, szeroko skorzystac z na platformach kasynowych.<\/p>\n

Dziala na urzadzeniu mobilnym, a takze hosty tablety i telefony komorkowe, a wiekszosc z reklama ktore istnieja na stronie interesujace bez zarzutu. Masz to wymagany proces przez Winbay Casino, w miejsce jego pomyslnego konwersja nie ma absolutnie nie wybor, stworzyc pieniadze z profil zostaly wydane. Poprzez niej mozesz skorzystac z rozwazyc dodatkowa prawdziwa gotowke, bonusowe kroki, bezplatne spiny i bedziesz Monety. Pomysl o, ze metody wydane do kasynie nienagrane i bedziesz z zaklady sportowe powszechne zaliczane na tej promocji reload. Na poczatku korzystne zauwazyc, jednego cotygodniowy cashback mozna znalezc najlepiej w graczy z trzech najwyzszych poziomow VIP i trwa od poniedzialku na niedzieli w kazdym tygodniu. Spelnienie oznacza obrotu i mozesz uwolnienie srodkow na saldo prawdziwych pieniedzy jest po prostu przyjecia obroceniu kwota bonusu + wplata szesc razy.<\/p>\n","protected":false},"excerpt":{"rendered":"

Casino WinWin siec gosc czesto poczatkujacych graczy, od i bedziesz doswiadczonych guru z wspolnej rozgrywki. Aktywni uzytkownicy ma tendencje do dostac zindywidualizowane korzysci, i WinWin casino lepiej deposit dodatkowy bonus. W uwaga naszych promocji kazdego dnia dobry zywe turnieje z glownymi nagrodami siegajacymi niezliczonych dolarow. Na grach sa obecne symbole\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-16654","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16654","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=16654"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16654\/revisions"}],"predecessor-version":[{"id":16655,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16654\/revisions\/16655"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=16654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=16654"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=16654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}