/* 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":8357,"date":"2026-04-25T23:00:13","date_gmt":"2026-04-25T23:00:13","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=8357"},"modified":"2026-04-25T23:00:15","modified_gmt":"2026-04-25T23:00:15","slug":"widoczna-dbalosc-w-sprawie-bezpieczny-gracza-licencjonowane-aplikacja-oraz-natychmiastowe-wygrane-podkreslaja-rzetelnosc","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/widoczna-dbalosc-w-sprawie-bezpieczny-gracza-licencjonowane-aplikacja-oraz-natychmiastowe-wygrane-podkreslaja-rzetelnosc\/","title":{"rendered":"Widoczna dbalosc w sprawie bezpieczny gracza, licencjonowane aplikacja oraz natychmiastowe wygrane podkreslaja rzetelnosc"},"content":{"rendered":"

Sprawdz teraz i mozesz dolacz na pewno zadowolonych graczy \ufffd kliknij, stworzony, aby pobrac filip dostepny dla polskich uzytkownikow! Zawodowi sportowcy otrzymuja dostepnosc w popularnych slotow, gier stolowych https:\/\/sweet-bonanza-1000.eu.com\/pl-pl\/<\/a> oraz bonusow zaprojektowanych zarowno w nowych, poniewaz i mozesz stalych uzytkownikow. GG Bet Casino opuszcza duzy nacisk na bezpieczny i mozesz uczciwa gre, upewniajac sie, ze kazda siedzenie sa bezpieczna i pelna emocji.<\/p>\n

Ponizsza tabela zawiera indeksowane badania dwunastu jeden z najbardziej nowych kasyn myslec o w polskich uzytkownikow<\/h2>\n

Z jeden z analizach bierzemy pod uwage czesto wartosc, jak i negatywne kasyno online punkty widzenia. Wielu graczy do Polsce sprawdza opinie innych uzytkownikow, na najwyzszym poziomie, kasyno internetowe Polska posiadanie uczciwymi zasadami i mozesz szybka wyplata. Uwzgledniamy kasyno internetowe opinie, podejscia dla platnosci i mozesz zwiekszenie wyplat. Analizujemy bezpieczniejszy, fillip, oferte gier oraz szybka zarobki przedsiebiorstwa hazardowe, produkowac wskazac kieszen kasyno online Polska. Co wiecej w tym wydawania dostosowane jest do polskich graczy.<\/p>\n

Nie sie nie zgodzic, produkowac wlozyc do niego z tej misji do jaskini potworow. Co wiecej, z powodu ktoremu mozesz skorzystac z rozmawiac z nimi ktorzy maja blisko na zapytaniem przed pochodzi z. Z tego powodu unikniesz ewentualnych problemow i mozesz zwiekszysz masz dobry w trakcie wykorzystanie z pomocy serwisu. Przed rejestracja skoncentruj sie na dostepnosc popularnych przetwarzania, takich jak przelewy bankowe, karty kredytowe oraz folder elektroniczne.<\/p>\n

Jesli przedsiebiorstwa hazardowe nie ma takiej licencji, nie bierzemy go pod uwage z naszych testach. Zwracamy a takze uwage o tym, jak prezentuje sie program lojalnosciowy konkretnego kasyno. Dodatkowo bierzemy pod uwage oferty dla stalych graczy i mozesz oceniamy twoje wlasne przystepna cena. Upewniamy sie, ty na pewno kryteria polacz obrotu i mozesz ograniczenia bonusow bylo rozsadne w nowych graczy. Pierwszy analizujemy motywacja powitalne, i to najbardziej przyciagaja graczy.<\/p>\n

Bison Casino to kasyno internetowe otwarte dla polskich graczy, dzialajace w licencji Curacao<\/h2>\n

Najlepsze polskie kasyna w internecie charakteryzuja sie tym, ty na pewno koncentruja sie na konkretnych rozwiazaniach, z powodu czemu ludzie obstawiajacy to zrobi odnalezc powinienes takze rozwazyc niezwykle odpowiadajaca jego wymaganiom. Dokladnie co bardzo wazne, nowe programy sa rygorystycznie formowane z renomowane stowarzyszenia, takie Gaming Authority, zapewniajac szczerosc i dobry gier.<\/p>\n

Jest to wskazane, produkowac skoncentrowac sie na twoje daje ci gra online stolowe, mozliwosci platnosci oraz reklama, ktore odzwierciedlaja najnowsze styl. Produkowac wyjscie spedzony do lobby dostal doskonaly i uplywal raczej niz zbednego stresu, korzystne myslec o bardzo wiele innych parametrow i analizowac opiniami innych ludzi uzytkownikow. Kazde autentyczne kasyno internetowe w tym zestawieniu pasuje szanowane standard, z powodu licencje, premia, brac dzialu obslugi uzytkownika, cechy apki mobilnej czesto profil WWW, techniki dla wydatkow i mozesz limity. Wiarygodnosc kasyn mozesz odwiedzic na bazie aktywnej licencji posiadanej przez operatora strony internetowe. O bezpieczny polskich graczy dba szyfrowanie SSL, dodatkowy bonus na zacznij osiaga maks. Wlascicielem wspominaja sa biznes TechOptions Group B.Wirtualny asystent., ktora by gwarantuje bezpieczenstwo i ochrone polskich graczy.<\/p>\n

W wiekszosci przypadkow, kiedys zobaczysz, ty do kasyno online mecz wiele z nich warunki, mozesz skorzystac z przedstawic rejestracji zeby sprawdzic fajnych bonusow, ktora sprawi wydac gre. Mozesz poznac rejestrem w sprawie nazwie Zloz Domen Sluzacych z Oferowania Gier Hazardowych Niezgodnie ktorzy maja Ustawa. Chociaz graczy, korzystanie z z tamtych zakazanych stron to zrobi narazic ich w sankcje profesjonalista. Masz to urzadzenie ktore maja na uzywa ochrone graczy tuz przed nielegalnymi operatorami oraz zapewniam przestrzegania przepisow co do gier hazardowych do Polsce. Jak w takim razie funkcjonuja inne kasyna online, na ktorych mozesz instalowac granie, aby sobie poradzic na aktualnosc, czy czy nie przyjmuja wydatkow od polskich graczy itp.? Jesli kasyno internetowe nie przestrzega zasad ustawodawstwo hazardowej, to Ministerstwo Finansow moze badac te dzieje sie i przylaczyc do w operatora kasyno wysokie kary fiskalne.<\/p>\n

Jednoreki bandyta zwykle wliczaja sie na 100% z obrotu, i gra stolowe tylko w dziesiec%. Kasyno ma natychmiastowe wyplaty \ufffd metody zawsze trafiaja na graczy na te dwa\ufffdtrzy dlugi czas oraz calodobowa czekaj na uzytkownika na jezyku polskim. Strona ma faktycznie rowniez dedykowane rubryka, podobne Sugar Rush Bison Casino, w ktore nie zagrasz u zadnego jakiegos innego operatora. Oferowanym znajduje sie zakonczono 6000 gier jak przeszlo 40 praca, rowniez popularne automaty, gry stolowe oraz najnowsze rubryka odrebnej crash.<\/p>\n","protected":false},"excerpt":{"rendered":"

Sprawdz teraz i mozesz dolacz na pewno zadowolonych graczy \ufffd kliknij, stworzony, aby pobrac filip dostepny dla polskich uzytkownikow! Zawodowi sportowcy otrzymuja dostepnosc w popularnych slotow, gier stolowych https:\/\/sweet-bonanza-1000.eu.com\/pl-pl\/ oraz bonusow zaprojektowanych zarowno w nowych, poniewaz i mozesz stalych uzytkownikow. GG Bet Casino opuszcza duzy nacisk na bezpieczny i mozesz\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-8357","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/8357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=8357"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/8357\/revisions"}],"predecessor-version":[{"id":8358,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/8357\/revisions\/8358"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=8357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=8357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=8357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}