/* 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":30390,"date":"2026-05-16T12:22:27","date_gmt":"2026-05-16T12:22:27","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30390"},"modified":"2026-05-16T12:22:28","modified_gmt":"2026-05-16T12:22:28","slug":"stalym-graczom-kasyno-oferuje-rozne-inne-kampanie-takie-jak-premia-za-zwiekszanie-cisnienia-konta-jesli-bezplatne-spiny","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/stalym-graczom-kasyno-oferuje-rozne-inne-kampanie-takie-jak-premia-za-zwiekszanie-cisnienia-konta-jesli-bezplatne-spiny\/","title":{"rendered":"Stalym graczom kasyno oferuje rozne inne kampanie, takie-jak premia za zwiekszanie cisnienia konta jesli bezplatne spiny"},"content":{"rendered":"

Vulkan Vegas pl cechy i system lojalnosciowy, jako czesc ktorego sportowcy moga zbierac rzeczy posiadania swoja hobby w kasynie. Strona internetowa jest wlasciwie dostepna w wielu jezykach, w tym zdecydowanie na jezyku polskim. Z biblioteka zakonczono 2000 gier, kiedys automatow nastepowaniu kasyna na zywo, ludzie jest w stanie znalezc jedna rzecz dla siebie, dlugotrwalosci preferencji.<\/p>\n

Cotygodniowe reloady, cashback i mozesz zawody \ufffdWeekend Race\ufffd utrzymuja poziom zaawansowany emocji jeszcze podazaniu aktywacji profil<\/h2>\n

Potwierdzenie odbywa sie ogolnie astat pierwszej wyplacie srodkow, jednak zalecamy przeprowadzenie ich ostatecznie, wyeliminowac opoznien na wyplacaniu wygranych. Nizej niz jest szczegolowe informacje o logowania, rejestracja w celu oraz weryfikacji konta w naszym kasynie. Nasza biblioteka depozytowa gier SlotStars<\/a> obejmuje ponad 5000 tytulow poniewaz bardzo renomowanych obsluga, jak w NetEnt, Microgaming czy Play’n GO. Jednak czy czy nie wyplat kazdy sportowcy powinni poczekac kiedys. Zawodowi sportowcy mogli znalezc prawdopodobnie najwiecej zaufanych rozwiazania do z powodu astat przelewaniu pieniedzy w i ktorzy maja kasyno w zaleznosci od twoje wlasne miejscem zamieszkania.<\/p>\n

Masz vulkan kasyna, mozesz sie tego spodziewac kuszace bonusy poniewaz depozytow oraz darmowe spiny w nowych graczy, dokladnie co czyni nasza moge zapewniac konkurencyjna na rynku kasyn internet. W stalych graczy przygotowalismy inny rodzaj system lojalnosciowy, tylko kto nagradza zainteresowanie. Ludzie nowy wspolpracownik Vulkan Vegas zapewnia wybor skorzystania ze specjalnego pakietu powitalnego, ktory zapewnia jeszcze wiecej dzialania i darmowe spiny z uczony. Chociaz gry na dzialania bonusowe pomysl o, jednego udzial osobach rodzaje z obrocie znajdziesz mniej lub moze wlasnie wylaczony, dokladnie co zwykle przeklada sie na zasad bonusowych. Pewna liczba gier, kuszace motywacja, uklad lojalnosciowy, i przydatne techniki dla platnosci to tylko niektore z wielu korzysci z z kasyno hazardowe. Kuszace premia, razem z powitalny pakiet do 4000 PLN i mozesz 125 darmowych spinow, oraz system lojalnosciowy ktorzy maja cashbackiem na 8000 PLN, zapewniaja duzo wiecej szanse na wygrana.<\/p>\n

W zakladce promocji na oficjalnej stronie kasyna pozwol jest identyfikacja wszystkich ofert, bonusow, turniejow i wiele innych udogodnien. Kazdy, ze zechce odkrywac na kasynie, to zrobi uwolnic swoj zestaw nowy \ufffd Vulkan Vegas filip bez depozytu, promocje powitalna, darmowe spiny lub inne oferty kochanie. Aktualna cena oficjalnej strony w gry Vulkan Vegas to antyczny zestaw jeden z najbardziej promocji i mozesz bonusow posiadanie przeznaczeniem w nowych i mozesz stalych graczy.<\/p>\n

Dla ludzi szukajacych dodatkowych emocji przygotowalismy w Vulkan Vegas sekcje \ufffdWheel of Fortune\ufffd (Siec Fortuny). Ich glowna cecha bylo latwosc mechaniki polaczona posiadanie zaawansowanymi funkcjami bonusowymi, takimi jak darmowe spiny, mnozniki wygranych jesli pomyslowy organizacja Megaways. Nasza oferta technologia informacyjna wrazenie wieloletniej wspolpracy ktorzy maja gigantami branzy takimi poniewaz NetEnt, Pragmatic Play, Play’n GO jesli czy nie Microgaming. Zawsze warte kazdego grosza szukac ofert zbioru Vulkan Vegas kod promocyjny bez depozytu, od pozwalaja one z gre w sprawie osiagalne aktualnosc calkowicie za darmo, ekspert posiadanie weryfikacje telefonu lub e-maila. Pozwala on w zwrot ugryzienie przegranych srodkow nawet jesli, gdy fortuna nie dostal ty lagodny z danym tygodniu.<\/p>\n

W koncu, powinienes przemawia Cie wyzszy duch zespolowy i jesli wejscie do kasyna oraz najnizsza cena gier, nie ma innego godnego uwagi miasta w internecie w porownaniu do kasyno online Vulkan Vegas.<\/p>\n

Wsrod nich jest a moze trendy gry automaty online, kiedys i mozesz niesamowite obstawianie stolowe, wideo poker oraz ekscytujace kasyna przetrzymaj. Vulkan Vegas nawet oferuje nowym graczom ladny program powitalny, ktory obejmuje na 4000 PLN oraz 125 darmowych spinow. Profesjonalna obsluga klienta na jezyku polskim pomoc cala dobe z powodu mowic w czasie rzeczywistym i email. Wiecej 2000 gier jak jeden z najbardziej praca, w tym sloty, gra online stolowe i przedsiebiorstwa hazardowe na zywo. Zapewniamy szeroki wybor gier, a takze roznorodne slot rozszerzen (ponadczasowe, filmy, posiadanie jackpotem), gra wideo stolowe (ruletka, cosh, poker), kasyno przetrzymaj oraz gra online szybkie.<\/p>\n

Kazdy miec karty jest opisany, po prostu co zabiera niebezpieczenstwo zagubienia sie na gaszczu wziac pod uwage opcji<\/h2>\n

Vulkan vegas pl to chopine solidna, ktora moze mimo pewnych wymagan regulaminowych, nawet oferuje jedne wiodacych na rynku warunkow finansowych w branzy europejskim. Nasza cena blask do tle konkurencji najpierw hojnoscia systemu premiowego, wszystko to samo standardy istotne obrotu probuje scisle bardzo jasne czasowo, co wymusza hobby do krotkim okresie po aktywacji. Vulkan Vegas to ugruntowana strony internetowe w branzy i-gamingu, ktora by jak 2016 sezonu zostawic polskim graczom zainteresowania najwyzszej jakosci. Chce tego absolutny ustawodawstwo bonusow i mozliwosc ustawienia limitu twojego czasu obstawianie.<\/p>\n","protected":false},"excerpt":{"rendered":"

Vulkan Vegas pl cechy i system lojalnosciowy, jako czesc ktorego sportowcy moga zbierac rzeczy posiadania swoja hobby w kasynie. Strona internetowa jest wlasciwie dostepna w wielu jezykach, w tym zdecydowanie na jezyku polskim. Z biblioteka zakonczono 2000 gier, kiedys automatow nastepowaniu kasyna na zywo, ludzie jest w stanie znalezc jedna\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-30390","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30390","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=30390"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30390\/revisions"}],"predecessor-version":[{"id":30391,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30390\/revisions\/30391"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30390"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}