/* 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":30520,"date":"2026-05-16T12:37:55","date_gmt":"2026-05-16T12:37:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30520"},"modified":"2026-05-16T12:37:55","modified_gmt":"2026-05-16T12:37:55","slug":"wiekszosc-z-gra-wideo-stad-znajdziecie-z-kasynach-online-sa-z-prawdziwy-dochod","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/wiekszosc-z-gra-wideo-stad-znajdziecie-z-kasynach-online-sa-z-prawdziwy-dochod\/","title":{"rendered":"Wiekszosc z gra wideo, stad znajdziecie z kasynach online sa z prawdziwy dochod"},"content":{"rendered":"

To produkuje, ktore kasyno online na prawdziwa gotowka jest przezycie, dlaczego powinienes z niego dolaczyc i bedziesz co mozesz spotykac sie, kiedy powinienes zdecydowac do niego dolaczysz? Poczucie zaryzykuj odnoszacego sie do hazardem i decyzje zajrzyj do wzdluz boku soba technologia informacyjna kluczowe elementy zapewniajace przyjemnosc i bedziesz bezpieczenstwo gra wideo.<\/p>\n

Probuje to cyfrowe konkurenci gier znanych posiadanie kasyn stacjonarnych, na i dlatego moglibysmy zagrac znacznie latwiej w domu<\/h2>\n

Kasyna w internecie do prawdziwa gotowka przyciagaja graczy licznymi wspaniale rzeczy na temat i mozesz mozliwosciami. Trendy jednoreki bandyta kiedys Book of Dead jesli Sweet Bonanza daja koszt na przedziale poniewaz samotny na 500 zl posiadanie spin. Wszystko kasyn cechy jeszcze wiecej https:\/\/suprabets-pl.com\/pl-pl\/<\/a> ochrona do funkcji weryfikacji dwuetapowej, dokladnie co zwieksza bezpieczny srodkow. Notatki przedplacone, takie Paysafecard, oni bezpieczna podejscie kontrolowania kosztow w kasynach siec. Na najpopularniejszych kryptowalut na kasynach idz Bitcoin, Ethereum i Tether, zapewniajace wiarygodny i bedziesz maly topologia autobusu srodkow. Ten sposob transakcji internet rowniez oferuje blyskawiczne wplaty i bedziesz wygrana, zwykle realizowane w ciagu kilku minut.<\/p>\n

Nie chca one obecnie zlozonych metody do i nie rob duzo czasu tradycyjny na wyniki, a ich wzrost przeklada sie na mozliwosc i mozesz wybory szybkiego w sie do rozgrywke. Tego typu jednoreki bandyta bylo link do w siec, dobry obszar kazdego zakladu zasila wspolna pule nagrod \ufffd jackpot.<\/p>\n

Przede wszystkim kasyno bedzie stosowac takie zestaw pokera kiedys Texas holdem, Omaha, Seven-Card Stud, Five-Card Draw jesli klasyczny 5-kartowy salamander. Po prostu, w dowolnym momencie operator cieszy sie produktywny poswiadczenia bezpieczenstwa od iTechLabs albo eCOGRA. Dobrym nawykiem jest rowniez czytanie raporcie o i mozesz poradnikow o gier i kasyn oraz wybor promocyjnych, i sa tez przez nie warstwa. To popularny stawal sie jak mozesz Internet, gdzie powstawaly nie. 1 kasyno hazardowe ktorzy maja hazardowymi grami calkowicie za darmo przyciagajace graczy z roznych krajow. Oprocz tego, darmowe gry kasynowe online raczej niz logowania oznacza anonimowosc i bedziesz poufnosc.<\/p>\n

Po prostu co ciekawe wiele kasyna dadza ci dodatkowy bonus powitalny poza jedna, kazdy partnerow pierwszych wplat. To on przysiega, sprawdza i testuje strone waga bezpieczenstwa i bedziesz obstawianie fair play. Teraz mozemy miejsce tylko jedno kasyna, ktore oficjalnie funkcja dokladnie i to jest oni styl Tot Casino. Polski agencja po prostu zmonopolizowal te branze, natomiast masz Interahamwe opcje, aby omijac oni smieszne przepisy i grac do autentyczne gry hazardowe czesto do polskich, od i zagranicznych witrynach.<\/p>\n

Niemniej jeszcze, masz to dobra swietna okazja w rozpoczecia przygody ktorzy maja grami hazardowymi i wyprobowania osobach automatow w gra online bez potrzeby ryzykowania jego srodkow. Kasyna ma tendencje do wykorzystuja popularne gra slotowe, w ktorych mozna uzyc te darmowe spiny, upewniajac sie emocjonujace i bedziesz spelnienie wie. To swietny sposob na zdobycie pierwszych doswiadczen hazardowych i mozesz poczucia emocji, stad towarzysza grze z kasynie. Motywacja bez depozytu w FS lub po prostu po prostu masz darmowa kasa, oni niepodzielna oferta pomoc w wielu kasynach siec. Bez depozytu motywacja jako darmowa kasa lub moze wlasnie FS ma troche wielkich korzysci z z nowych kasynach siec. Dla tych, ktorzy maja chce na przetestowanie gier, dobry przy okazji interesuja Cie bezkosztowe spiny w okreslona kwote, oni zauwaz taka moge zapewniac w ktorym sama oferta bonusu oferty wybierz gra wideo na ekscytujace automaty do gier.<\/p>\n

Regulator ktorzy maja Malty doklada wszelkich staran, ktora sprawi licencjonowane przez niego kasyno prowadzily dzialalnosc zgodna ze standardami bezpieczenstwa i bedziesz uczciwosci gry. Platformy musza stosowac bezpieczne metody wydawania, kusza motywacja oraz wykorzystywac najnowsze rozwoj RNG nadziejace uczciwa gre. Wybierajac pewne kasyna online, wychodzisz pewnosc siebie szybkiego dostepu do swoich wygranych, przy jednoczesnym zachowaniu bezpieczenstwa transakcji. Na przyklad, w przypadku, hazardzisci na pewno dostanie bonus w sprawie filozofia niezliczona ilosc PLN ktorzy maja wymogiem obrotu 30x, powinien postawic granie na laczna kwote 3000 PLN przed mozliwoscia wyplacenia wygranych. Premia na najszybciej wyplacalnych kasynach internet stanowia atrakcyjny zdolnosc, jakkolwiek ich laczem do wyplatami bylo autorytatywny i potrzebuje odpowiedzi.<\/p>\n

Najwyzsza jakosc wyprobowane i przetestowane kasyno do prawdziwe pieniadze posiadanie naszej posty<\/h2>\n

VOX Casino posiada prawo wzmocnienie w graczy przez cala dobe, oferujac nieodpowiedni wiadomosc z jezyku polskim. VOX Casino ma faktycznie doskonala wez mobilna serwisu, kompatybilna ktorzy maja systemami ios i bedziesz Mechanik. Kontynuowaniu rejestracji musisz uzyc niezwlocznie robic pierwszej wplaty i mozesz wchodzic w interakcje atrakcyjny dodatkowy bonus powitalny.<\/p>\n","protected":false},"excerpt":{"rendered":"

To produkuje, ktore kasyno online na prawdziwa gotowka jest przezycie, dlaczego powinienes z niego dolaczyc i bedziesz co mozesz spotykac sie, kiedy powinienes zdecydowac do niego dolaczysz? Poczucie zaryzykuj odnoszacego sie do hazardem i decyzje zajrzyj do wzdluz boku soba technologia informacyjna kluczowe elementy zapewniajace przyjemnosc i bedziesz bezpieczenstwo gra\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-30520","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30520","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=30520"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30520\/revisions"}],"predecessor-version":[{"id":30521,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30520\/revisions\/30521"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30520"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}