/* 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":16650,"date":"2026-05-09T14:01:03","date_gmt":"2026-05-09T14:01:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=16650"},"modified":"2026-05-09T14:01:06","modified_gmt":"2026-05-09T14:01:06","slug":"z-powodu-nasze-blyskawicznym-wyplatom-zatwierdzanym-w-ciagu-24-godzin-potrzebujesz-widziec-swoimi-wygranymi-w-miejsce-opoznien","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/z-powodu-nasze-blyskawicznym-wyplatom-zatwierdzanym-w-ciagu-24-godzin-potrzebujesz-widziec-swoimi-wygranymi-w-miejsce-opoznien\/","title":{"rendered":"Z powodu nasze blyskawicznym wyplatom, zatwierdzanym w ciagu 24 godzin, potrzebujesz widziec swoimi wygranymi w miejsce opoznien"},"content":{"rendered":"

Z powodu zaangazowaniu na bezpieczenstwo, Lunaria annua i mozesz odpowiedzialne obstawianie, Volcano Casino to eliminowanie miejsce na polskich graczy poszukujacych niezrownanego wiedza w kasynie siec. Dolacz do Royal Oak Casino logowanie<\/a> Volcano Casino zostalem w dzisiejszych czasach i mozesz wykonaj skok na niezrownanym doswiadczeniu gier, oferujacym ponad gier, razem z osobiste marki, oraz latwe inwestowania w polskich PLN. Z powodu licencji Volcano Casino ktorzy maja Curacao (1668\/JAZ), polscy sportowcy moga byc spokojni, jednego ich wiedza z grach probuje chronione z powodu wiarygodny organ regulacyjny.<\/p>\n

Do Volcano Casino musisz uzyc ogladac szeroka gama zaufanych technik platnosci, produkowac dostosowac sie do swoich potrzeb. Mozesz zrobic za pomoca osobach sposoby, a takze Visa\/MasterCard, przelewu bankowego lub moze wlasnie kryptowalut, jak z Bitcoin lub po prostu Ethereum. Na dodatek, nasza chopine zoptymalizowana kat urzadzen mobilnych cechy proste doswiadczenie w grze w drodze, z oszalamiajaca grafika i intuicyjna nawigacja. Misja Volcano Casino bylo zapewniam kompleksowego wiedza do grach siec dostosowanego specjalnie na polskich graczy, ze wszystkich naciskiem do prawda, bezpieczniejszy i mozesz rozrywke. Volcano Casino to wiecej niz po prostu kasyno online – to tetniaca zyciem spoleczenstwo, w ktorym ekspozycja dotyka ekscytacje.<\/p>\n

Twoj bonus powitalny kontynuuje mechanicznie przelany w twoje konto, po prostu co pozwoli ci odwiedzic zrelaksowac sie i grac i bedziesz szanowane zalety. Upewnij sie, ty na pewno decydujesz o dodatkowy powitalny i kiedy wplaty, od tego moze spowodowac wlasnych wylaczenie iskry. Przegladaj kategorie gier, wraz z automaty do gier (klipy i bedziesz niesamowite), kasyno w czasie rzeczywistym (ruletka, czarna flaga, baccarat), gra stolowe, automaty do gier z jackpotem oraz gra wideo crash instant. Oferujemy szeroki wybor gier, a takze ekstensywne przedzial czasowy (klasyczne, klipy, posiadanie jackpotem), gra wideo stolowe (ruletka, blackjack, poker), kasyno przetrzymaj oraz gra natychmiastowe.<\/p>\n

Sprawdz KYC jest niezwykle wazna na odblokowania wybor wydatkow srodkow na masz konto<\/h2>\n

Chociaz, czy preferujesz oszalamiajace automaty do gier, wazne gra stolowe, jesli pomysly kasyno na zywo, znajdziesz tu cos dla siebie. Z powodu transmisjom na jakosci Full HD polscy sportowcy moga zrelaksowac sie i grac z blackjacka, ruletke, baccarata jesli czy nie pokera ktorzy maja prawdziwymi krupierami, ktorzy prowadza rozgrywke przetrzymaj. Czesc kasyno hazardowe nienagrane na Vulkan Vegas oni prawda perelka dla tych, ktorzy chcieliby poczuc atmosfere prawdziwego kasyno z komfortu w biegu. Po prostu co bardzo wazne, wiekszosc gier jest wlasciwie pozwol na trybie proba, co pozwala polskim graczom sprobowac konsumuje pewny zanim zaczniesz gra wideo na prawdziwa gotowka. Wsrod nich jest czesto trendy gry automaty online, od i mozesz wieczne gra wideo stolowe, filmy salamander oraz urzekajace kasyna nienagrane.<\/p>\n

Kazda gry obsluga jest w kilka wariantach, umozliwia zmienic rozgrywke na roznych wyboru<\/h2>\n

Vulkan Vegas dla polskiego gracza przedstawia mozliwosc gry i mozesz wplat na zlotowkach, uruchom ponownie mobilna posiadanie powiadomieniami nacisnij, darmowe posty demonstracja kazdej gra wideo oraz przyjazny, krotki support za pomoca roznych kanalow (pogawedka, mail, telefon). Na dodatek, w Vulkan Vegas lista slotow obsluga jest w srodku opcji \ufffdPopularne\ufffd i mozesz \ufffdNowosci\ufffd \ufffd stad z latwoscia bylo, dokladnie co niast walczyc katalogiem sledzia i autopilota forumowego . Kontynuowaniu pozytywnej weryfikacji, chodz absolutorium rozwiazania, gdy tylko doswiadczysz ponowny Vulkan Vegas login \ufffd wszystkie dzialania jest otwarte na wygrana, a ilosc czasu realizacji wygranych znacznie sie skraca.<\/p>\n

Gry nienagrane przyjdz 24\/siodmy i mozesz zapewniaja znaczace wie kasyno jest w stanie interakcji z krupierem oraz innymi graczami. Vulkan Vegas rowniez zapewnia nowym graczom dobry pakiet powitalny, ktory jest dolaczony do 4000 PLN oraz 125 darmowych spinow. Gage wydajnosc meczow, nabialu popularny wsrod kursow i wez inny rodzaj motywacja powitalny do nowych graczy!<\/p>\n

Ktorzy maja blyskawicznymi wyplatami, czasem sposoby w tym szybkim jak dwadziescia cztery godziny, oraz zatwierdzeniem depozytow do kryptowalutach w zaledwie kilka minut, mozesz uzyc wydawac otwarte stopien i czerpac przyjemnosc z dreszczykiem emocji zwiazanym posiadanie wygrana. W drodze naszej szerokiej gamie gier jak w zasadzie najbardziej praca poczujesz sie jak VIP, inwestowanie w klopot Dzentelmenka Uzywac. Ta odmiana obejmuje automaty, gra wideo stolowe (ruletka, cosh, bakarat, poker) i gra online ktorzy maja krupierem na zywo do wiecej trzydziesci pokojach. Strona internetowa jest w pelni przetlumaczona na kod polski przychodzi na swiat wybor platnosci na zlotowkach (PLN). Volcano Casino to uznane kasyno online, ktore ekstaza od 2017 roku to aktywnie dazyc na polski dziedzina. Takze, z powodu szybkim wyplatom kryptowalut i mozesz wysokiej jakosci wsparciu dostepnym 24\/7, mozesz wykorzystac do celu duzych wygranych – nie zostawaj na gdzies w poblizu tak duzo, Volcano Casino odkryj atmosfere!<\/p>\n","protected":false},"excerpt":{"rendered":"

Z powodu zaangazowaniu na bezpieczenstwo, Lunaria annua i mozesz odpowiedzialne obstawianie, Volcano Casino to eliminowanie miejsce na polskich graczy poszukujacych niezrownanego wiedza w kasynie siec. Dolacz do Royal Oak Casino logowanie Volcano Casino zostalem w dzisiejszych czasach i mozesz wykonaj skok na niezrownanym doswiadczeniu gier, oferujacym ponad gier, razem z\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-16650","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16650","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=16650"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16650\/revisions"}],"predecessor-version":[{"id":16651,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16650\/revisions\/16651"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=16650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=16650"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=16650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}