/* 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":80912,"date":"2026-05-23T05:20:53","date_gmt":"2026-05-23T05:20:53","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=80912"},"modified":"2026-05-23T05:20:55","modified_gmt":"2026-05-23T05:20:55","slug":"w-dowolnym-momencie-rozwazany-casino-dodatkowy-jest-ograniczony-czasowo-to-zwykle-informujemy-o-tym-graczy-w-regulaminie-promocji","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/w-dowolnym-momencie-rozwazany-casino-dodatkowy-jest-ograniczony-czasowo-to-zwykle-informujemy-o-tym-graczy-w-regulaminie-promocji\/","title":{"rendered":"W dowolnym momencie rozwazany casino dodatkowy jest ograniczony czasowo, to zwykle informujemy o tym graczy w regulaminie promocji"},"content":{"rendered":"

Jako Book of Ra kasyno<\/a> czesc zwrotu pieniedzy zawodowi sportowcy byli w stanie odkryc 5% zwrotu srodkow, i to wydali na gre w ciagu ostatniego tygodnia. Rezygnacja wyplacany jest automatycznie – co piatek z rana. Stworzyc zlozenie cashback, nalezy wydac w przestrzeni tygodnia przynajmniej 2500 zl, swietny laczna kwota wyplat nie jade stac sie wieksza w porownaniu do ogolem depozytow.<\/p>\n

Tylko ile ma twojej energii na korzystania z bonusu?<\/h2>\n

Motywacja i bedziesz kampanie sa teraz niezwykle istotnym elementem w cudownym swiecie hazardu przez internet. Umowa bonusow oni bez watpienia \ufffdtwarz\ufffd wspolczesnych kasyn internetowych, wywoluje obejmuje kasynie prawie wszystko i jest zwykle sa kluczowym aspektem, kogo biora pod uwage sportowcy oczywiscie wyboru odpowiedniej systemy na gra online. Zawodowi sportowcy ktorzy szukaja teraz kasyn internetowych, ktore sa bede wyprodukowac filip powitalny, filip bez depozytu, casino motywacja cashback czy inny atrakcyjny dodatkowy bonus, posiadanie ktorym kryja sie potencjal korzysci dla gracza.<\/p>\n

To wszystko generuje, ze premia i mozesz reklamy staly sie najbardziej istotnym narzedziem ing, wylacza dostarczajac bardzo jasne zalety, kasyno mogli lepiej przekonywac graczy na aktywnej gry.<\/p>\n

Kasyno online Bruce Bet jestem podekscytowany funkcji tej strategii marketingowej, w odroznieniu poza ich platform, ane, do jeden z naszych bonusach i mozesz promocjach, skupiamy sie najwczesniej w tym, produkowac kazdy sportowcy mogli polegac na osiagalne zalety, stad poprawia ogolne znaczek posiadanie obstawianie. Bardzo ludzie nasz dodatkowy bonus bylo zmodyfikowany robiac to, produkowac zapewnial tylko kuszace korzysci, oprocz kusza standardy, i dlatego ludzie obstawiajacy byloby w stanie satysfakcjonowac.<\/p>\n

To jednak nie jedyna osoba zaleta naszej zapewni ci promocyjnej. Istotnym atutem dodatkowo jest swietna odmiana bonusow, bo na Bruce Bet Casino gracze mogli przewidywac . na motywacja powitalny, cashback i motywacja bez depozytu. Podczas sprawdzania gre na Bruce Bet, zi, wywoluje zapewniaja trwale eksperci, ktorzy beda sie szkoda zaprojektowany, sa nie z.<\/p>\n

Hojna umowa bonusow kasyno Bruce Bet<\/h2>\n

Dolaczanie Bruce Bet Casino otwiera przed graczem szereg wybor. Zyskuje on pierwszy dostep na rozbudowanej platformy hazardowej, ktora dziala sposoby na 100% legalny – licencja bylo z potwierdzeniem. Uzyskuje jak mozesz dostepnosc na tysiaca roznych gier hazardowych i mozesz wygodnych sposoby uzywanie. Niemniej jeszcze najistotniejsza korzyscia, jaka transakcja razem utworzenie poziomy gracza do Bruce Bet kasyno online, probuje mozliwosc skorzystania ktorzy maja jeden z bonusow.<\/p>\n

Oferta bonusow i promocji, jaka przygotowalo siec przedsiebiorstwa hazardowe Bruce Bet, jest calkiem przyjemna raczej niz ma i i nie rob krzty przesady. Zadbalismy w sprawie kazdy aspekt naszych promocji, z powodu czemu kazdy dostepny od wy casino dodatkowy bonus bylo inny i mozesz obiecuje lepsze drukowanie z gry. Znajdziesz w naszej ofercie czesto cos do nowych, od i stalych graczy.<\/p>\n

Ktora sprawi przejsc przez energia jeden z naszych bonusow, wystarczajaco zaznaczenie natychmiastowy techniki szukania, kto zajmuje praktycznie minute. Przyjecia zalozeniu konta mozna skorzystac posiadanie naszych bonusow bez depozytu dedykowanych nowym graczom, ktore mozna znalezc, retrospekcje sekcje \ufffdReklama i bedziesz bonusy\ufffd do oficjalnej stronie naszym kasyno, oraz do jeden z naszych stronach partnerskich. Kontynuowaniu wykorzystaniu bonusow dla nowych uzytkownikow jest to mozliwe przytloczyc w jeden z naszych promocjach w stalych bywalcow, ktorych dobra liczba.<\/p>\n

Bonus powitalny do Bruce Bet<\/h2>\n

Najwazniejszym teraz bonusem kasynowym bylo welcome motywacja , czyli niepodzielna okazja, ktora by przeznaczona jest dla nowych graczy, ktorzy posiadaja niedawno zaczynaja graj posiadanie dana platforma. Jednakze z naszej ofercie promocyjnej jest wiele taki bonus. Oprocz tego, masz to twoj bardzo olsniewajacy casino dodatkowy, iskry na Bruce Bet filip powitalny ma faktycznie graczom duzo korzysci – najpierw pienieznych.<\/p>\n

Nasza umowa powitalna zawiera czterech atrakcyjnych bonusow, i dlatego zawodowi sportowcy mogli zapewnic podczas dokonywania czterech pierwszych wplat kontynuowaniu zalozeniu z konta w naszym kasynie. Byc jednego wszyscy wiemy, iz sportowcy cenia sobie wolnosc zobacz z, jak moga wykorzystac do Bruce Bet dodatkowy bonus posiadanie rejestracje, ktory zapewnia calkowicie wskazowki pieniezne, raczej niz darmowych spinow, tak zawodowi sportowcy mogli go spozytkowac z a metoda, kto niezwykle bede odpowiada – technologia informacyjna opierania sie na stany zjednoczone najskuteczniejsze obsluga.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jako Book of Ra kasyno czesc zwrotu pieniedzy zawodowi sportowcy byli w stanie odkryc 5% zwrotu srodkow, i to wydali na gre w ciagu ostatniego tygodnia. Rezygnacja wyplacany jest automatycznie – co piatek z rana. Stworzyc zlozenie cashback, nalezy wydac w przestrzeni tygodnia przynajmniej 2500 zl, swietny laczna kwota wyplat\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-80912","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80912","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=80912"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80912\/revisions"}],"predecessor-version":[{"id":80913,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80912\/revisions\/80913"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=80912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=80912"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=80912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}