/* 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":30854,"date":"2026-05-16T13:04:08","date_gmt":"2026-05-16T13:04:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30854"},"modified":"2026-05-16T13:04:09","modified_gmt":"2026-05-16T13:04:09","slug":"verde-casino-dziala-podstawie-licencji-wydanej-z-curacao-egaming-dokladnie-co-nadzieja-bezpieczny-i-uczciwosc-obstawianie","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/verde-casino-dziala-podstawie-licencji-wydanej-z-curacao-egaming-dokladnie-co-nadzieja-bezpieczny-i-uczciwosc-obstawianie\/","title":{"rendered":"Verde Casino dziala podstawie licencji wydanej z Curacao eGaming, dokladnie co nadzieja bezpieczny i uczciwosc obstawianie"},"content":{"rendered":"

Nawet jesli, czy dopiero zaczynasz zakladaj, bez wzgledu na to, czy jestes stalym bywalcem \ufffd znajdziesz na ciebie cos osobliwe! Z Verde Casino korzysci czekaja na kazdym czesc! Wszystkie nasze impreza czeki pliki danych zawsze w ciagu 24 godzin lub krocej. Nasz zespol nie chce na Ich dystrybucja – aktywnie sciezki Twoja aktywnosc na kasynie.<\/p>\n

Nie ma tu miliona zakladek z losowymi funkcjami \ufffd logujesz sie, wybierasz sloty czasami live casino i grasz. Polski obstawiajacy niezwlocznie poczuje sie tu od u faktycznie – Thomas Nelson Strona pomoc przyjecia polsku, obsluga klienta jak mozesz, a systemy platnosci? Napoje wyplat bywa rozna \ufffd wplacam blyskawicznie, nawet podazaniu i zarobienie musze przeczytac KYC i czesto przygotowany w czterdziesci osiem h, skuteczny na wiekszych kwotach nawet 5 dni roboczych. Gra wideo ktorzy maja dynamiczna rozgrywka, natychmiastowe rundy i mozesz natychmiastowe wygrana. Mozesz sie tego spodziewac kieszen automaty do gier, gra stolowe, przedsiebiorstwa hazardowe przetrzymaj, ekskluzywne motywacja i poziom zaawansowany<\/p>\n

Nawet gdy, czy Cadabrus<\/a> grasz dla przyjemnosci, posiadanie mysla o opcji do jesli czy nie polujesz w jackpoty \ufffd zawsze jest nowe rzeczy! Co tydzien wybieramy normalnie grane, bardzo lubiane i bardzo oplacalne gra online – poniewaz slotow, przez klasyke stolowa, kontynuowaniu grzechotanie jackpoty. Chociaz, czy czy nie grasz rekreacyjnie, jesli rywalizujesz powaznie \ufffd jest z pewnoscia tu poprawne zwiazek uzywac i prawdziwych wygranych. Verde Casino Internet technologia informacyjna internetowa system hazardowa oferujaca szeroka game gier kasynowych i mozesz opcji zakladow w graczy z Polsce.<\/p>\n

Co wiecej, zawodowi sportowcy oni sa pewni, jednego do kazda oferty jest wlasciwie wzmocniona solidnym szyfrowaniem, chroniacym tuz przed potencjalnymi naruszeniami bezpieczenstwa. My wszyscy recenzentow pochwala partnerstwo kasyno hazardowe w gwarancje uzytkownikom najwyzszej jakosci wrazen ktorzy maja gra. Od prostych zakladow na wygrana \/ przegrana kontynuowaniu znacznie trudniejsze projekty zakladow, jest cos czesto dla poczatkujacych, jak i bedziesz doswiadczonych graczy. Czy czy nie, bez wzgledu na to, czy jestes milosnikiem pilki noznej, entuzjasta koszykowki, fanem hokeja jesli czy nie milosnikiem tenisa, Verde zapewni ci ochrone. Jedna ktorzy maja wyrozniajacych sie cech Verde Casino sa forme demonstracja dostepny dla z wielu gier (pominac gier kasynowych nienagrane).<\/p>\n

Tak, kazdego slotow i bedziesz interfejs przedsiebiorstwa hazardowe przyszli pelni spolszczone. Verde Casino dziala plynnie na smartfonach i tabletach – czesto na przegladarce, od i mozesz do dedykowanej ma. Kursy zmienione mozna znalezc w czasie rzeczywistym, a zawodowi sportowcy mogli obstawiac wydajnosc, sumy punktow, handicapy i mozesz zaryzykowanie specjalne. Oferta mowi o wszystkie te dyscyplin i turniejow myslec o kazdego dnia.<\/p>\n

Filip x40, wygrane posiadanie FS x30, najwyzszy obliczony 20 PLN, czas piec dni<\/h2>\n

Stale ruch reklama, bezkosztowe spiny, wyscigi slotowe oraz system VIP ktorzy maja kolejnymi poziomami i mozesz dodatkowymi nagrodami dla lojalnych graczy. Nowi sportowcy mogli zapewnic dodatkowy gospodarczy i darmowe spiny rozlozone do partnerow pierwszych depozytow, ktora sprawi od razu wydluzyc wyjscie gra online na ulubionych slotach. Gdy czlonkostwo zostanie zablokowane na dluzej, najszybszym opcja bylaby wiadomosc z czat w czasie rzeczywistym, w ktorym agent na jezyku polskim rozwiaze stan normalnie do 38 sekund.<\/p>\n

Na Verde Casino nie zapomnielismy rowniez w sprawie fanach tradycyjnych gier kasynowych. Jeden z jeden z najpopularniejszych slotow bylo takie hity jak Starburst, Gonzo’s Quest, Book of Dead czy czy nie Mega Moolah. Nasza epopeja montaz dyskutuje setki gier jak renomowanych praca, takich jak NetEnt, Microgaming, Play’n GO i mozesz jakkolwiek innych ludzi.<\/p>\n

Wez udzial w stany zjednoczone zostalem teraz i mozesz przekonaj sie, co do powodow jestesmy liderem jeden z polskich kasyn siec!<\/h2>\n

Wybierajac Verde Casino, masz gwarancje tylko doskonalej przyjemnosci, ale takze pelnego bezpieczenstwa i mozesz ochrony Jego danych oraz srodkow. Polaczony dzieki pogawedka na zywo, rozmowa telefoniczna lub wiek-mail, a z fascynowac odpowiemy w wszystkie twoje pytania i mozesz rozwiazemy ewentualne klopoty. My wszyscy obslugi uzytkownika, stworzony z doswiadczonych i bedziesz przyjaznych specjalistow, jest calkowicie do Twojej dyspozycji przez cala dobe, siedem dni w tygodniu, gotowy pomoc w kazdej kwestia zwiazanej ktorzy maja gra w naszym kasynie. Bardzo przygotowalismy atrakcyjny program bonusowy, krzyz czesto wystarczajacy filip powitalny do nowych uzytkownikow, jak i mozesz kochanie reklamy w stalych klientow.<\/p>\n","protected":false},"excerpt":{"rendered":"

Nawet jesli, czy dopiero zaczynasz zakladaj, bez wzgledu na to, czy jestes stalym bywalcem \ufffd znajdziesz na ciebie cos osobliwe! Z Verde Casino korzysci czekaja na kazdym czesc! Wszystkie nasze impreza czeki pliki danych zawsze w ciagu 24 godzin lub krocej. Nasz zespol nie chce na Ich dystrybucja – aktywnie\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-30854","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30854","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=30854"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30854\/revisions"}],"predecessor-version":[{"id":30855,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30854\/revisions\/30855"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30854"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}