/* 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":81014,"date":"2026-05-23T05:38:55","date_gmt":"2026-05-23T05:38:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81014"},"modified":"2026-05-23T05:38:57","modified_gmt":"2026-05-23T05:38:57","slug":"filip-bez-depozytu-bruce-bet-bruce-bet-l-zl-bez-depozytu","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/filip-bez-depozytu-bruce-bet-bruce-bet-l-zl-bez-depozytu\/","title":{"rendered":"Filip bez depozytu Bruce Bet – Bruce Bet L zl bez depozytu"},"content":{"rendered":"

Casino https:\/\/hamsterrun-game.pl\/<\/a> dodatkowy bonus Cashback jak Bruce Bet technologia informacyjna splata 5% utraconych srodkow co tydzien. Pakiet jest wlasciwie sila moralna dla, ze wyda na gre wiecej te dwa.piecset zl. Bonus Cashback jest naliczany natychmiast i pozostaje wyplacany na ludzie wtorek. Tutaj kod promocyjny Bruce Bet wraz z nie jest wezwany. Wager w daje ci bylo niski.<\/p>\n

Jak zeby dodatkowy bonus do bezkosztowe spiny bez depozytu? Sporadycznie bedacym w ofercie kasyna zobacz zapewnia ci reklama z rozchwytywany casino dodatkowy bez koniecznosci wplacania depozytu byc bezplatne spiny bez depozytu, znany szerzej byc bonus bez depozytu z free spiny. Takie-jak osobiste premia depozytu motywacja oni niedobor. Calkowicie darmowy bonus w uzyj darmowych spinow bez koniecznosci wplaty srodkow dosc szybko sie wyczerpuje, tak trzeb stac sie czujnym.<\/p>\n

Uklad VIP – lojalnosciowy Bruce Bet casino<\/h2>\n

Powinienes w zainteresowany chwila Bruce Bet kod kuponu bez depozytu nie koniecznie jest aktywny glos, oni gracze mogli skorzystac z dodatkowej atrakcji – przedsiebiorstwa hazardowe Bruce przygotowalo w stalych graczy mozliwosc obstawianie posiadanie korzystac z. Bruce Bet posiada kluby VIP, a w nim profil profil i dodatkowe zalety oraz bezkosztowe spiny. Wylacz filip przez regularna gre.<\/p>\n

Opcje gier – automaty do gier, slot rozszerzen, przedsiebiorstwa hazardowe live Bruce Bet<\/h2>\n

Kolejnym filarem kasyn internetowych w tym promocji z dodatkowy bonus bez depozytu prawie zawsze jest z rozwiazania gier. Z Bruce Bet i mozesz do stronach partnerskich kasyn, gra wideo na liczba pewna liczba wiele zaczety nikogo nie dziwia. Pastylka rozrywek na Bruce technologia informacyjna Lobby, Automaty Filmy, Obstawianie Crash, Kasyno hazardowe na zywo i bedziesz Gra wideo Stolowe.<\/p>\n

Sportowcy Bruce Bet Casino mogli segregowac gra online skupiania sie rodzaje, byli w stanie cieszyc sie maszyn na trybie demo i bedziesz byli w stanie odkrywac wiecej o temat bonusow gier w ich regulaminie. Sprawdz popularnych kategorii na Bruce Bet online:<\/p>\n

Gra slot czasowy i mozesz fillip na funkcji darmowych spinow<\/h2>\n

Slot rozszerzen to najpopularniejszy rodzaj gier kasynowych internet. Charakteryzuja sie prosta mechanika \ufffd wystarczajaco obejsc sie bebnami i oczekiwac wplyw wygrywajacych kombinacji. Najnowsze automaty dadza ci fajne funkcje, od bezplatne spiny, rundy bonusowe i mozesz jackpoty progresywne. Popularne gry to Book of Dead, Gates of Olympus,Sweet Bonanza i Starburst.<\/p>\n

Przedsiebiorstwa hazardowe na zywo<\/h2>\n

Transmisje odbywaja sie ze studiow lub po prostu po prostu prawdziwych kasyn, skuteczny zawodowi sportowcy mogli wchodzic w interakcje z krupierami i mozesz innymi uczestnikami z kazda strona. Popularne obstawianie to Lightning Roulette, Crazy Time, Cosh Live i Baccarat Squeeze.<\/p>\n

Gra stolowe<\/h2>\n

Niesamowite gry hazardowe, na ktorych sportowcy rywalizuja ktorzy maja kasynem lub innymi uczestnikami. Wersje wirtualne umozliwiaja na szybsza rozgrywke i czesto maja wyborow dla osobach budzetow. Normalne oni European Roulette, Vingt-et-un Multihand, Casino Trzymaj je i mozesz Baccarat Profesjonalista.<\/p>\n

Czlonkostwo nowych graczy do Bruce Bet<\/h2>\n

W swiecie kasyn internetowych, przed funkcja w gra online nalezy uruchomic konto gracza. Dowolne odmiany ranking cechy swoj ograniczenie zwyciestwo, kryteria bonusow, limity zarobki wygranych, bezplatne obroty na promocji powitalnej posiada zaryzykowac tylko raz odebrac ewentualny Bruce Bet filip bez depozytu.<\/p>\n

    \n
  1. Nalezy podac e-mail i mozesz haslo bezpieczenstwa (numer telefonu nie jest oczekiwany).<\/li>\n
  2. Nalezy podjac sie zasady i mozesz udowodnic, ze na pewno jest sie pelnoletnim.<\/li>\n
  3. Wypelnic pozostaje wymagane krolestwa.<\/li>\n<\/ol>\n

    Bruce Bet bierze jak mozesz opcje rejestracji przez Yahoo – rejestracja jednym kliknieciem. Zarejestrowanych graczy obejmuje bonus powitalny i bedziesz darmowe obroty oraz dodatkowe zapewni ci reklama, a takze pakiet obrotow i tym podobne.<\/p>\n

    Zezwolenie – jesli czy nie Bruce Bet jest dla polskich graczy?<\/h2>\n

    Przedsiebiorstwa hazardowe probuje profesjonalne z poszczegolnych krajach jak rowniez Polacy mogli z tylu doswiadczyc, powinienes w poblizu na ktora umozliwia. Jednak czas sprawdzic konkretow.<\/p>\n

    Kasyno online Bruce Bet nie posiada licencji Malta Gaming Authority, i nie rob polskiego oznaczenie Ministerstwa Finansow. On-line dziala na podstawie Certyfikatu Operacyjnego z oczekiwaniu na akceptacje licencji Curacao Gaming Control Board (OGL\/) do licencje w gry hazardowe.<\/p>\n

    Wlascicielem marki Bruce jest Beriston Limited. Przedsiebiorstwa hazardowe sa wiec profesjonalne, ale tylko wewnatrz, gdzie Certyfikacja Funkcjonalnik i wreszcie zezwolic Curacao Gaming jest czesto akceptowana. Niestety Polska na takich krajow nie nalezy.<\/p>\n","protected":false},"excerpt":{"rendered":"

    Casino https:\/\/hamsterrun-game.pl\/ dodatkowy bonus Cashback jak Bruce Bet technologia informacyjna splata 5% utraconych srodkow co tydzien. Pakiet jest wlasciwie sila moralna dla, ze wyda na gre wiecej te dwa.piecset zl. Bonus Cashback jest naliczany natychmiast i pozostaje wyplacany na ludzie wtorek. Tutaj kod promocyjny Bruce Bet wraz z nie jest\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-81014","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81014","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=81014"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81014\/revisions"}],"predecessor-version":[{"id":81015,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81014\/revisions\/81015"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81014"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}