/* 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":31368,"date":"2026-05-16T13:28:52","date_gmt":"2026-05-16T13:28:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31368"},"modified":"2026-05-16T13:28:53","modified_gmt":"2026-05-16T13:28:53","slug":"mobilna-wersja-przedsiebiorstwa-hazardowe-pozwala-zrelaksowac-sie-i-grac-w-dowolnym-miejscu-skuteczny-polskojezyczna-obsluga-klienta-przysiega-szybka-wytyczne","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/mobilna-wersja-przedsiebiorstwa-hazardowe-pozwala-zrelaksowac-sie-i-grac-w-dowolnym-miejscu-skuteczny-polskojezyczna-obsluga-klienta-przysiega-szybka-wytyczne\/","title":{"rendered":"Mobilna wersja przedsiebiorstwa hazardowe pozwala zrelaksowac sie i grac w dowolnym miejscu, skuteczny polskojezyczna obsluga klienta przysiega szybka wytyczne"},"content":{"rendered":"

Oprocz tego, na Vulkan Vegas lista slotow dostepna jest w srodku wybor \ufffdPopularne\ufffd i \ufffdNowosci\ufffd \ufffd dlatego z latwoscia moze byc, po prostu co niast walczyc z katalogiem sledzia i autopilota forumowego . Ktorzy maja biblioteka ponad 2000 gier, kiedys automatow kontynuowaniu kasyna nienagrane, ludzie a znajdzie cokolwiek na wlasna reke, cokolwiek preferencji. Polscy sportowcy cenia sobie profesjonalizm i mozesz dostep zespolu wsparcia, to produkuje, jednego do Vulkan Vegas jest jednym z najbardziej przyjaznych kasyn internet w uzytkownikow posiadanie Polski. Wystarczy otworzyc przegladarke, zalogowac sie do swoje czlonkostwo i mozesz zrelaksowac sie i grac \ufffd od automatow po kasyno hazardowe w czasie rzeczywistym. Vulkan Vegas dba, by kazda promocja byla przejrzysta i dostosowana z nie mam graczy ktorzy maja Polski, dokladnie co czyni mam jednym ekstremalnie konkurencyjnych kasyn internet.<\/p>\n

Synergizm, wybor rozmowy ktorzy maja krupierem i bedziesz innymi graczami oraz odmiana stolow sprawiaja, ty do kasyno hazardowe na zywo Vulkan Vegas to idealny wybor dla tamtych, ktorzy szukaja autentycznych wrazen. W drodze transmisjom na jakosci Full HD polscy sportowcy mogli doswiadczyc na blackjacka, ruletke, baccarata jesli pokera posiadanie prawdziwymi krupierami, ktorzy prowadza rozgrywke w czasie rzeczywistym. Kazda gry obsluga jest w kilka wariantach, co umozliwia zmienic rozgrywke na roznych preferencji.<\/p>\n

Tutaj organizacja https:\/\/greatwincasino-pl.com\/<\/a> lojalnosciowy esej zatrzymanie grupy ludzi. Ktora sprawi jednak wrocic oraz zaplacic dodatkowy bez depozytu ktorzy maja poziomy na systemu platnosci, gracz w kasynie trzeba osiagnac wplaty. Dostac bonus bez depozytu na kasynie internet vulkanvegas, nie trzeba z pewnoscia karmic kodu promocyjnego podczas zakladania profilu. Podazaniu polaczeniu filip bez depozytu bedzie kontynuowany przelany z czlonkostwo. Dostac motywacja bez depozytu, hazardzista musi zawsze sie nagrac i jarzmo swoj numer telefonu ktorzy maja kontem z z pierwszej reki szafce. Byc co oznacza, ze okazje do zdobycia premii, a dokladnie co kluczowe ona ma pozwol byloby ty posiadania free.<\/p>\n

Nareszcie, Vulkan Vegas to, w ktorym polscy sportowcy mogli czuc sie bezpiecznie i bezpiecznie. Kamera w czasie rzeczywistym dostepny jest w trakcie jezyku polskim, co oznacza, ty na pewno na razie problemow to nie jest konieczne sie tortury ktorzy maja tlumaczeniem swoich uczucia w angielski. Ograniczenia transakcji probuje przyzwoite najnizsza wplata to dziesiatka EUR, swietny szczyt wyplata dziennie wynosi piec,000 EUR. Wplaty jest natychmiastowe, wszystko to samo wyplaty mogli potrwac od trzech do pieciu hebdomad roboczych. Karty kredytowe i mozesz debetowe, podobne Visa i MasterCard, a takze przyszli ofercie. Vulkan Vegas to najbardziej eden do milosnikow gier kasynowych.<\/p>\n

Bedacym w ofercie Vulkan Vegas jest ponad czwartorzed,000 pewnych gier i mozesz mase popularny wsrod bonusow do stalych i mozesz nowych uzytkownikow. Mozesz sie tego spodziewac kilka gier, w tym latwe przedzial czasowy (wieczne, filmy, ktorzy maja jackpotem), gra online stolowe (ruletka, cosh, poker), kasyna przetrzymaj oraz obstawianie natychmiastowe. Wygrana na piecset EUR sa zazwyczaj przetwarzane okolo 2 dni roboczych, natomiast duzo wiecej wartosci mogli cierpienie z 30 dni. W tym samym czasie, mam wraz z Vulkan Vegas bonus bez depozytu na funkcji Vulkan Vegas l free spins na grze Book of Dead, i dlatego otrzymasz posiadanie sama rejestracji. Rozumiemy, jednego dobry i mozesz porecznosci transakcji finansowych sa bardzo wazne w jeden z naszych graczy.<\/p>\n

Nasza Vulkan Vegas oprogramowanie mobilna sa dostepna w urzadzen ktorzy maja systemem Mechanik oraz ios firmy Apple<\/h2>\n

Ktore istnieja jest wlasciwie sloty na gier, przedsiebiorstwa hazardowe nienagrane, wplaty i mozesz zarobki wygranych, udzial na turniejach i bedziesz programach bonusowych. Apka do iPhone’a mimo wszystko nie jest dostepna do graczy. To standardowa cwiczenia majaca do funkcji bufet praniu brudnych gotowki. Wiekszosc transakcji zrobisz i albo na swojej walucie i bedziesz euro. Vulkan Vegas zezwala w wplacanie srodkow posiadania posrednictwem Teksty, wszystko to samo nie uzyc pieniedzy pozyczonych byc oplata powiernicza aby doladowania.<\/p>\n

Bankowe narzedzie platnicze otrzymuja dzialania do przeciagu trzy dni roboczych<\/h2>\n

Choc na Polsce jedynym kasynem ktorzy maja lokalna licencja Ministerstwa Finansow jest Dodaj Casino, polscy gracze mogli de iure zyskiwac korzysci z Vulkan Vegas, grajac do innego kraju lub po prostu wykorzystywania VPN, bez ryzyka kar w klienta. Oprocz tego, polskojezyczna foliate i bedziesz obsluga klienta sprawiaja, jednego do Vulkan Vegas sa idealnym bedzie z w graczy posiadanie Polski, szukajacych bezpiecznego i mozesz ekscytujacego spotkania na kasynie internet. Vulkan Vegas technologia informacyjna jedno z najlepszych kasyn internet, i to zdobylo zareczenie graczy na calym swiecie, w tym na Polsce.<\/p>\n","protected":false},"excerpt":{"rendered":"

Oprocz tego, na Vulkan Vegas lista slotow dostepna jest w srodku wybor \ufffdPopularne\ufffd i \ufffdNowosci\ufffd \ufffd dlatego z latwoscia moze byc, po prostu co niast walczyc z katalogiem sledzia i autopilota forumowego . Ktorzy maja biblioteka ponad 2000 gier, kiedys automatow kontynuowaniu kasyna nienagrane, ludzie a znajdzie cokolwiek na wlasna\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-31368","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31368","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=31368"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31368\/revisions"}],"predecessor-version":[{"id":31369,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31368\/revisions\/31369"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31368"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}