/* 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":81044,"date":"2026-05-23T05:42:35","date_gmt":"2026-05-23T05:42:35","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81044"},"modified":"2026-05-23T05:42:36","modified_gmt":"2026-05-23T05:42:36","slug":"motywacja-oryginal-wplac-wiekszosc-4-miejsca-w-sprawie-48h-minuta","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/motywacja-oryginal-wplac-wiekszosc-4-miejsca-w-sprawie-48h-minuta\/","title":{"rendered":"Motywacja oryginal: Wplac wiekszosc 4 miejsca w sprawie 48h (minuta"},"content":{"rendered":"

100 Ice Fishing<\/a> EUR wlaczajac) i mozesz zapytaj na 450 darmowych spinow z Elvis Frog in Vegas! Poszczegolne premia potrzebuja recznej aktywacji na profilu gracza – wystarczajaco isc do zakladka \ufffdTwoje wlasne fillip\ufffd i mozesz kliknac \ufffdAktywuj\ufffd astat dostepnym bonusie. Nastepnie wystarczajaco osiagnac wymaganej wplaty przy uzyciu wybranej opcji platniczej, po czym dzialania bonusowe natychmiast zasila saldo dodatkowych gotowki.<\/p>\n

Tak jak wszystko tego typu ofert w branzy, ten rodzaj dodatkowy bonus ma sytuacja obrotu, tylko kto gracz musi spelnic, ktora sprawi \ufffdodblokowac\ufffd dodatkowy bonus i wtedy go rozwidlic. Dzieki Bogu jest wlasciwie on ladna uzupelniajacy, bo wszyscy bonusow potrzeby dwadziescia-krotnego obrotu kwota uzyskanego bonusu (pierwszy rozszczepiac – 45x). Oprocz z Bruce Bet kod kuponu nie jest wezwany z srodkow dostepu tej oferty. Do teraz Bruce Bet casino dodatkowy bonus bez depozytu nie jest rozszerzony, nawet warte kazdego grosza na to zaczekac.<\/p>\n

Bezplatne spiny<\/h2>\n

W naszym kasynie Bruce Bet zwykle staramy sie zaopatrzenie naszym graczom cokolwiek. Zdajemy sobie sprawe, ty do szukacie nie tylko ekscytujacej zainteresowania, oprocz realnych korzysci: przykladowo L zl dodatkowy ale jest najlepiej, gdy jest to mozliwe zgarnac tego typu l zl bez depozytu. Doskonale to rozumiemy, bardzo sie staramy w was i bedziesz nieprzerwanie aktualizujemy nasza rowniez dostarczam bonusowa o zupelnie nowe daje ci.<\/p>\n

W poblizu mozesz skorzystac z Bruce Bet kod rabatowy, aby otrzymac XL darmowych spinow do popularnym slocie Book of Cats i mozesz przytloczyc w swiecie starozytnego Egiptu, rozgladajac sie niejasne skarby. Oni elegancka swietna okazja, stworzony, aby bezpieczny i bezpieczny zrelaksowac sie i grac ten ekscytujacy gra na automatach i mozesz zwiekszyc swoje szanse na wystarczajace wygrane.<\/p>\n

Rowniez do zaoferowania mam Bruce Bet dodatkowy bez depozytu, z ktorym da sie uwolnic robie piecdziesiat dolarow darmowych spinow na slocie Diamond of Jungle, przenoszac sie na glab dzikiej dzungli szukam blyszczacych diamentow. Ten typ filip pozwala wydac graj z tymi kasynem w miejsce zadnych poczatkowych wplat, poprzez dostarczanie osiagalne szanse na wygranie prawdziwych gotowki.<\/p>\n

Cashback na Bruce Bet<\/h2>\n

Rzad promocyjna kasyno Bruce Bet jest wszechstronna, wywoluje na zanadrzu mamy nie tylko cos na postep w nowych jednostki, jeszcze tez kochanie kampanie, ktorzy beda sie moze zyskac ktos staly obstawiajacy, dokladnie kto zdecyduje sie zobaczyc u ciebie wy na dluzej.<\/p>\n

Na pewno nasza flagowa promocja dla stalych uzytkownikow jest dodatkowy bonus cashback, zawartego w ktorego staramy sie w szczegolnosci oslodzic zawzietosc porazek, ktorych doswiadczaja nasi gracze podczas gry. Zwrot w Bruce Bet, poniewaz sama tozsamosc wskazuje, nawet oferuje graczom opcja posiadanie zwrotu kawalki zainwestowanych na gra wideo gotowki.<\/p>\n

Nasz bonus wyplacany sa natychmiast na ludzie poniedzialek kazdego ranka, a jego warty wynosi 5% wartosci, ktora obstawiajacy wydal w kasynie w przestrzeni ostatniego tygodnia. Ze zwrotu byli w stanie skorzystac ludzie ci ludzie, ktorzy maja wydali na tygodnia wiecej niz 2500 zl, dobry ogolem suma dokonanych przez nich wyplat, nie jest wyzsza niz liczby wplaconych depozytow. Dodatkowo, ani jeden z nich twoj zadnego dodatkowego obrotu.<\/p>\n

Wstap na Bruce Bet i mozesz pelnego mleka bonusow<\/h2>\n

Radzic sobie dobrze zdajemy sobie sprawe, ze nie samymi grami zyje scena hazardu online, wylacza w graczy licza sie teraz przede wszystkim realne zalety, czyli motywacja i bedziesz oferty. Dlatego z Bruce Bet Casino oboku roznorodnej biblioteki gier hazardowych, w ktorej sa ulubiony slot na rozszerzenie wedrujacy lub po prostu gre stolowa, do graczy potrzebuje tez rozbudowana okazja bonusow i bedziesz promocji. W ofercie tej nie pomijamy nikogo, iskry dla nas istotny bylo i albo nowi graczy, kiedys i dlugoterminowy bywalec.<\/p>\n

Jesli wolisz docierac gre na kasynie ktorzy maja duza przewaga w start, to nie mogles lepiej trafic – Bruce Bet casino bonus oni najlepsza opcja. Potrzebuje tu na ciebie fantastyczny dodatkowy powitalny do kasynie, tylko kto zwiekszy Ty pierwszy rolka ale w sprawie 13 750 zl. Czekaja jak mozesz bezplatne fillip posiadania rejestracji, bo z Bruce Bet filip bez depozytu jest takze elementem daje ci promocyjnej. To jednak dopiero start zaryzykuj, wylacza juz wkrotce czekaja to niesamowite kusza kampanie, takie jak turnieje, motywacja bez depozytu jesli Bruce Bet kod promocyjny. Wstap do kasyno zostalem w dzisiejszych czasach i mozesz przezyj elektrycznosc zalety!<\/p>\n","protected":false},"excerpt":{"rendered":"

100 Ice Fishing EUR wlaczajac) i mozesz zapytaj na 450 darmowych spinow z Elvis Frog in Vegas! Poszczegolne premia potrzebuja recznej aktywacji na profilu gracza – wystarczajaco isc do zakladka \ufffdTwoje wlasne fillip\ufffd i mozesz kliknac \ufffdAktywuj\ufffd astat dostepnym bonusie. Nastepnie wystarczajaco osiagnac wymaganej wplaty przy uzyciu wybranej opcji platniczej,\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-81044","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81044","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=81044"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81044\/revisions"}],"predecessor-version":[{"id":81045,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81044\/revisions\/81045"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81044"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}