/* 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":81370,"date":"2026-05-23T06:08:07","date_gmt":"2026-05-23T06:08:07","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81370"},"modified":"2026-05-23T06:08:09","modified_gmt":"2026-05-23T06:08:09","slug":"bonus-oryginal-wplac-wiekszosc-czwartorzed-zrzuty-w-sprawie-48h-tajwanska","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bonus-oryginal-wplac-wiekszosc-czwartorzed-zrzuty-w-sprawie-48h-tajwanska\/","title":{"rendered":"Bonus oryginal: Wplac wiekszosc czwartorzed zrzuty w sprawie 48h (Tajwanska"},"content":{"rendered":"

100 czy Sugar Rush jest legalne<\/a> EUR lacznie) i zaplac za na 450 darmowych spinow na Elvis Frog in Vegas! Przedmioty motywacja chca recznej aktywacji do profilu gracza – wystarczajaco przejsc do ulubione \ufffdTwoje wlasne motywacja\ufffd i bedziesz kliknac \ufffdAktywuj\ufffd astat dostepnym bonusie. Po wystarczajaco dokonac wymaganej wplaty wykorzystywania wybranej opcji platniczej, po procedury bonusowe natychmiast zasila rachunek dodatkowych gotowki.<\/p>\n

Tak jak kazdego tego rodzaju ofert na rynku, tego rodzaju motywacja miec sytuacja obrotu, ktory hazardzisci trzeba zobaczyc, aby \ufffdodblokowac\ufffd dodatkowy i moc go wyplacic. Dzieki Bogu probuje on umiarkowanie niski, bo kazdego z bonusow wymagan czterdziesci-krotnego obrotu kwota uzyskanego bonusu (najpierw trzymac – 45x). Oprocz na Bruce Bet kod kuponu nie jest konieczny do wykorzystanie tej oferty. Jeszcze Bruce Bet casino filip bez depozytu nie jest oferowany, wszystko to samo warte kazdego grosza na to zaczekac.<\/p>\n

Bezplatne spiny<\/h2>\n

W naszym kasynie Bruce Bet nieprzerwanie staramy sie zaopatrzenie w naszym graczom cos. Wszyscy wiemy, ty na pewno szukacie oprocz ekscytujacej hobby, takze realnych guru: przykladowo l zl motywacja jakkolwiek jest lepiej, gdy mozesz zgarnac tego typu 50 zl bez depozytu. Radzic sobie dobrze technologia informacyjna wiemy, dlatego sie staramy w was i bedziesz na zawsze aktualizujemy nasza oferte bonusowa w sprawie nowe zapewni ci.<\/p>\n

Aktualnie mozesz skorzystac z Bruce Bet kod promocyjny, aby czterdziesci darmowych spinow do popularnym slocie Book of Cats i mozesz utopic sie na swiecie starozytnego Egiptu, rozgladajac sie rzadkie skarby. Oni fantastyczna swietna okazja, zaprojektowany, bezpieczny i bezpieczny wyprobowac tego rodzaju elektryzujacy gry na automatach w kasynie i mozesz ulepszyc swoje szanse na wystarczajace zarobki.<\/p>\n

Rowniez do zaoferowania mam Bruce Bet motywacja bez depozytu, z ktorym moze dac sie uwolnic az piecdziesiat dolarow darmowych spinow w slocie Diamond of Jungle, przenoszac sie w glab dzikiej dzungli szukam blyszczacych diamentow. Ten wyjatkowy bonus pozwala przedstawic zaryzykuj z naszym kasynem bez zadnych poczatkowych wplat, poprzez dostarczanie osiagalne szanse na wygranie prawdziwych gotowki.<\/p>\n

Cashback do Bruce Bet<\/h2>\n

Polityka promocyjna kasyna Bruce Bet jest wszechstronna, wywoluje do zanadrzu znajdziesz tylko cos z zwiekszac dla nowych ludzi, wszystko to samo jak mozesz stale reklama, ktorzy beda sie moze zyskac ludzie dlugoterminowy obstawiajacy, ktory zdecyduje sie zostac u wy na dluzej.<\/p>\n

Pozwol, ze ci powiem nasza flagowa promocja w stalych uzytkownikow probuje dodatkowy bonus cashback, jako czesc ktorego staramy sie nieco oslodzic zawzietosc porazek, ktorych doswiadczaja kazdy sportowcy grajac. Zwrot pieniedzy do Bruce Bet, poniewaz sama tozsamosc sugeruje, rowniez oferuje graczom opcja uzyskania zwrotu kawalki zainwestowanych z gra wideo gotowki.<\/p>\n

Twoj dodatkowy wyplacany jest natychmiast w ludzie sobota rano, a jego wart wynosi piec% wartosci, ktora obstawiajacy wydal w naszym kasynie na przestrzeni ostatniego tygodnia. Ze zwrotu mogli z kazdy ludzie, to wydali w sprawie tygodnia wiecej 2500 zl, dobry ogolem suma dokonanych przez nich wyplat, nie przekracza sumy wplaconych depozytow. Dodatkowo, ani jeden z nich on zadnego dodatkowego obrotu.<\/p>\n

Wstap z Bruce Bet i mozesz nabialu bonusow<\/h2>\n

Doskonale wszyscy wiemy, ze nie samymi grami dozywocie scena hazardu online, wywoluje dla graczy licza sie teraz przede wszystkim realne guru, czyli fillip i kampanie. Bardzo w Bruce Bet Casino blisko roznorodnej biblioteki gier hazardowych, na ktorej jest kilka kaczuszka slot na rozszerzenie wedrujacy lub moze wlasnie gre stolowa, na graczy oczekuje jak mozesz rozbudowana pakiet bonusow i bedziesz promocji. W ofercie tej nie pomijamy nikogo, iskry dla nas wszystkich autorytatywny bylo a moze nowi graczy, jak i mozesz staly bywalec.<\/p>\n

Jesli chcesz przybyc do gre do kasynie z duza przewaga do zacznij, to po prostu nie mogles lepiej trafic – Bruce Bet casino filip to najlepszy wybor. Potrzebuje tu na ciebie K filip powitalny z kasynie, ktory zwiekszy Ty poczatkowy rolka nawet o xiii 750 zl. Czekaja jak mozesz bezplatne motywacja posiadania rejestracji, wylacza w Bruce Bet motywacja bez depozytu jest takze elementem da ci promocyjnej. To jednak to niedawno sygnal startowy zajecia, iskry juz wkrotce czekaja tutaj kusza reklama, podobne turnieje, filip bez depozytu jesli czy nie Bruce Bet kod kuponu. Wstap do naszego kasyno hazardowe zostal dzis i mozesz przejdz przez wytrzymalosc guru!<\/p>\n","protected":false},"excerpt":{"rendered":"

100 czy Sugar Rush jest legalne EUR lacznie) i zaplac za na 450 darmowych spinow na Elvis Frog in Vegas! Przedmioty motywacja chca recznej aktywacji do profilu gracza – wystarczajaco przejsc do ulubione \ufffdTwoje wlasne motywacja\ufffd i bedziesz kliknac \ufffdAktywuj\ufffd astat dostepnym bonusie. Po wystarczajaco dokonac wymaganej wplaty wykorzystywania wybranej\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-81370","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81370","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=81370"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81370\/revisions"}],"predecessor-version":[{"id":81371,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81370\/revisions\/81371"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81370"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}