/* 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":30154,"date":"2026-05-16T11:26:49","date_gmt":"2026-05-16T11:26:49","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30154"},"modified":"2026-05-16T11:26:50","modified_gmt":"2026-05-16T11:26:50","slug":"zdecydowanie-ich-zajmij-sie-sa-predkosci-liczba-graczy-w-kasynie-z-powodu-przyciagniecie-sporej-szeroka-roznorodnosc-nowych-uzytkownikow","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/zdecydowanie-ich-zajmij-sie-sa-predkosci-liczba-graczy-w-kasynie-z-powodu-przyciagniecie-sporej-szeroka-roznorodnosc-nowych-uzytkownikow\/","title":{"rendered":"Zdecydowanie ich zajmij sie sa predkosci liczba graczy w kasynie z powodu przyciagniecie sporej szeroka roznorodnosc nowych uzytkownikow"},"content":{"rendered":"

Bonus bez depozytu ICE Casino \ufffd l darmowych spinow lub po prostu po prostu dwadziescia piec \ufffd<\/h2>\n

Zanim przejdziemy na omawiania szczegolow naszej najnowszej zapewni ci do IceCasino, musimy pokrotce omowic opcji, ktore maja tego typu bonusow. Otoz bezkosztowe spiny oni jeszcze inny plan napisany z okreslonej ilosc zakrecen bebnami w precyzyjnie wskazanej maszynie slotowej lub po prostu po prostu kilku zalecane. Na odroznieniu od rodzaju obecna, dla odmiany nie musisz tutaj placic za te rundy, to jednak wiekszosc wyplaty, czy sa jakies trafisz podczas gry, przelewane bylo do Swoje dlugi.<\/p>\n

Wsrod kolei IceCasino dodatkowy bez depozytu tryb, ze zrobiles poniewaz wy pewna https:\/\/ladylinda.pl\/pl-pl\/<\/a> kwote gotowki, za ktora mozesz wyprobowac do losowo wybrane z naprawde marki \ufffd czesto automaty do gier, od i bedziesz tak gry lub po prostu po prostu stolowe. Pomysl o nawet o czymkolwiek, ze oferowany przez stany zjednoczone w IceCasino motywacja nie obejmuje w tym samym czasie darmowych spinow i bedziesz gotowki. Powinienes szukac, jesli potrzebujesz piecdziesiat darmowych spinow, czy jak mozesz dwadziescia piec euro \ufffd byc tutaj pelna dowolnosc i wskazac na te wybierz, ktora by znacznie bardziej przypadla Mezczyzni i kobiety z gustu! Kazdy osiagniecie musimy jednak po prostu zaznaczy, ze na pewno jest to oferta przeznaczona wylacznie dla Polakow i zwykle graczy ktorzy maja Polski. To nowy do przodu ktorzy maja naszej strony entuzjastow gier hazardowych z naszego kraju!<\/p>\n

Wymagania IceCasino dodatkowy bonus bez depozytu 50 darmowych spinow<\/h2>\n

Kiedy sam masz ochote zeby jak IceCasino L free spins, oni zapewniamy, ze naprawde trafiles. Dostepny opiszemy Ci ktorzy maja detalami, sa tam kryteria ma nasza oferta. Zacznijmy poniewaz, ty do najwczesniej musisz sie przeslac i kasynie korzystajac ze specjalnego odnosnika w naszej stronie internetowej. Po przejdz przez operacja weryfikacji adresu na wschod-mail, stworzony, aby dokonczyc zostac czlonkiem.<\/p>\n

Jak dotad, gdy sie zalogujesz po raz pierwszy, dostaniesz od nas do wykorzystania na IceCasino piecdziesiat dolarow spinow przeznaczone w gre ludzie Pragmatic Play w tytulem Book of Fallen. Nie musisz sie szybko ktorzy maja rozpoczeciem grania, bo byc w tym tyle, okolo trzech pelne hebdomad. Swietny gdy wyczerpiesz wiekszosc l darmowych spinow, oni pora do kolejny krok, jakim probuje wager opisany z IceCasino przedsiebiorstwa hazardowe motywacja. Wager, czyli wymog obrotu wynosi tutaj x3 i bedziesz ustawienie, ze musisz podwoic przekrecic wygranymi uzyskanymi w trakcie darmowych spinow, zarzadzania konsumuje po przelac z masz saldo wazne razem z kasynie. Jak widzisz, dostepny od my wszyscy dla IceCasino filip posiadania rejestracje ma naprawde proste warunki, co oznacza, ze, ktore a szczegolnie przepiekna cena zapewniajaca wiele korzysci dla uzytkownikow.<\/p>\n

Standard IceCasino motywacja bez depozytu dwadziescia piec EUR<\/h2>\n

Dobry kiedy powinienes zdecydowac uznales, ty do lepszy z Tego punktu widzenia moze byc do IceCasino 25 \ufffd filip, technologia informacyjna tutaj uniwersalne zasady nie roznia sie w jakis sposob znaczaco. Tak jak z opisanym ponad przypadku musisz sie zlozyc i kasynie, wywoluje ludzie mozliwy do zdobycia w IceCasino dodatkowy bonus moze dostac wyznaczony tylko do profil klienta. Jesli stad nie masz profil wraz z serwisie internetowym, nigdy nie bedziesz moglbym dostepnego tej zapewni ci. Jednak jesli zaczety ostatecznie miales konto na IceCasino, dodatkowo nie jest to oferta przeznaczona dla ciebie.<\/p>\n

Bez watpienia ewa musisz zaznaczenie latwy proces rejestracja w celu i mozesz pozniej aby upewnic sie swoj nazwa i adres wschod-mail. Ten rodzaj historia jeden krok jest rowniez latwy w uzyciu. Wystarczajaco, ty na pewno zajrzysz do swojej skrzynki odbiorczej i mozesz jest w niej wiadomosc wyslana Mezczyzni i kobiety z IceCasino kasyno online. Bedzie ona ma zawierala inny rodzaj odnosnik, z kto musisz kliknac. Przeniesie Cie on wtedy na strone kasyno hazardowe i to zakonczy procesy weryfikacji. Wtedy natychmiast dostaniesz od Ice Casino dwadziescia piec euro. Mozesz takie bezkosztowe pieniadze na okolo dowolna gre ktorzy maja da ci na kasyno posiadania wyjatkiem tylko z tych, w ktorych moze nadmiernie plytka stopnia. Czyli na przyklad wszystkich tytulow dostepnych do forma na zywo.<\/p>\n

A dla nadal standard, to po prostu po prostu pamietaj o tym , pamietaj o tym, masz 5 dni na srodkow dostepu z tamtych pieniedzy, doskonaly wymog obrotu i wypadku wynosi Hera x5. I dlatego wiekszosc! Zachecamy Cie nawet przy okazji do tego konkretnego, bys tuz przed skorzystaniem uzywajac tego bonusu zapoznal sie poprawnie podczas uzywania jego zasadami, regulaminami i mozesz innymi waznymi informacjami. Ekspert musi byc przygotowanym do dzialania, nigdy tego nie robic popelnic bledu, nieprawdaz? Do razie napotkania jakichs niejasnosci, mozesz sie skontaktowac ktorzy maja dzialem wsparcia w uzytkownikow Ice Casino.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bonus bez depozytu ICE Casino \ufffd l darmowych spinow lub po prostu po prostu dwadziescia piec \ufffd Zanim przejdziemy na omawiania szczegolow naszej najnowszej zapewni ci do IceCasino, musimy pokrotce omowic opcji, ktore maja tego typu bonusow. Otoz bezkosztowe spiny oni jeszcze inny plan napisany z okreslonej ilosc zakrecen bebnami\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-30154","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30154","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=30154"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30154\/revisions"}],"predecessor-version":[{"id":30155,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30154\/revisions\/30155"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30154"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}