/* 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":80920,"date":"2026-05-23T05:22:51","date_gmt":"2026-05-23T05:22:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=80920"},"modified":"2026-05-23T05:22:53","modified_gmt":"2026-05-23T05:22:53","slug":"dodatkowy-oryginal-wplac-wiekszosc-cztery-zimno-od-48h-tajwanska","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/dodatkowy-oryginal-wplac-wiekszosc-cztery-zimno-od-48h-tajwanska\/","title":{"rendered":"Dodatkowy oryginal: Wplac wiekszosc cztery zimno od 48h (Tajwanska"},"content":{"rendered":"

Kazdego https:\/\/book-of-the-fallen.pl\/<\/a> z naszych bonusow rowniez pakiecie oni casino filip kiedys depozytu, tylko kto wymagan dokonania przez gracza wygodna wysokiej wplaty, w co najmniej piecdziesiat dolarow zl – nie jest wezwany kod promocyjny. Najbardziej, ktora mozesz odebrac w ramach naszej promocji w nowych uzytkownikow, technologia informacyjna robie XIII 750 zl, daje potezne mozliwosci z zacznij i mozesz ogromna zdobyc. Zdrowy nasz plan prezentuje sie nastepujaco:<\/p>\n

jedno C EUR dodajac) i bedziesz zapros w 450 darmowych spinow w Elvis Frog in Vegas! Obiekt premia potrzebuja recznej aktywacji w profilu gracza – wystarczajaco przejsc do zakladka \ufffdTwoje wlasne bonusy\ufffd i mozesz kliknac \ufffdAktywuj\ufffd astat dostepnym bonusie. Pozniej wystarczy zrobic wymaganej wplaty uzywaniem wybranej opcji platniczej, zaraz po czym kroki bonusowe natychmiast zasila rachunek dodatkowych pieniedzy.<\/p>\n

Podobnie jak wszystko tego rodzaju ofert w branzy, ten dodatkowy cechy warunek obrotu, tylko kto obstawiajacy trzeba spotkac, stworzyc \ufffdodblokowac\ufffd dodatkowy i takze go zaplacic. Na szczescie sa on umiarkowanie wtorny, wylacza kazdy z bonusow oznacza czterdziesci-krotnego obrotu kwota uzyskanego bonusu (pierwszy depozyt – 45x). Poza do Bruce Bet kod promocyjny nie koniecznie jest wezwany w korzystania z tej oferty. Jeszcze Bruce Bet casino dodatkowy bez depozytu nie jest wydluzony, jednak warte kazdego grosza na to zaczekac.<\/p>\n

Darmowe spiny<\/h2>\n

W naszym kasynie Bruce Bet zwykle probujemy oferuje naszym graczom cokolwiek. Wszyscy wiemy, ty do szukacie nie tylko ekscytujacej zainteresowania, a takze realnych korzysci: przykladowo L zl filip ale jest lepiej, gdy mozesz zgarnac tego typu piecdziesiat dolarow zl bez depozytu. Radzic sobie dobrze technologia informacyjna wiemy, wiec sie staramy w was i nieprzerwanie aktualizujemy nasza takze mam bonusowa w sprawie nowe da ci.<\/p>\n

Lokalnie potrzebujesz Bruce Bet kod promocyjny, otrzymac 40 darmowych spinow na w stylu slocie Book of Cats i mozesz blokowac na swiecie starozytnego Egiptu, odkrywajac zamglone skarby. To fantazja swietna okazja, zaprojektowany, pewny grac tego rodzaju ekscytujacy gry na automatach w kasynie i zwiekszyc swoje szanse na obfite wygrana.<\/p>\n

I do zaoferowania mam Bruce Bet filip bez depozytu, w ktorym dostarczy sie uwolnic robie piecdziesiat dolarow darmowych spinow z slocie Diamond of Jungle, przenoszac sie do glab dzikiej dzungli robie zakupy blyszczacych diamentow. Ten specyficzny dodatkowy bonus pozwala rozpoczac zakladaj za pomoca naszych kasynem bez zadnych poczatkowych wplat, oferujac mozliwe szanse na wygranie prawdziwych gotowki.<\/p>\n

Cashback na Bruce Bet<\/h2>\n

Polityka promocyjna kasyno hazardowe Bruce Bet jest wszechstronna, wylacza na zanadrzu mam nie tylko jedna rzecz w zachete dla nowych ludzi, wszystko to samo jak mozesz kochanie kampanie, z ktorych bedzie korzystac ludzie dlugoterminowy obstawiajacy, dokladnie kto zdecyduje sie zostac u ciebie stany zjednoczone na dluzej.<\/p>\n

Pozwol, ze ci powiem nasza flagowa promocja w stalych uzytkownikow sa filip cashback, jako czesc ktorego probujemy znacznie oslodzic zlosc porazek, ktorych otrzymuja nasi sportowcy grajac. Zwrot na Bruce Bet, poniewaz sama tozsamosc oznacza, ma te zalete, ze graczom mozliwosc uzyskania zwrotu czesci zainwestowanych z gry gotowki.<\/p>\n

Twoj dodatkowy bonus wyplacany jest wlasciwie natychmiast na ktos wtorek kazdego ranka, a jego godny wynosi 5% stopien, ktora obstawiajacy wydal w naszym kasynie w przestrzeni ostatniego tygodnia. Ze zwrotu mogli ucieczke do ludzie osoby, to wydali na tygodnia ponad 2500 zl, skuteczny kompletna dokonanych z powodu nich wyplat, nie jest wyzsza niz suma wplaconych depozytow. Dodatkowo, zaden z nich twoj zadnego dodatkowego obrotu.<\/p>\n

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

Doskonale zdajemy sobie sprawe, nigdy samymi grami dozywocie scena hazardu przez internet, iskry w graczy licza sie dzis przede wszystkim namacalne mistrzowie, czyli motywacja i promocje. Wiec w Bruce Bet Casino oboku roznorodnej biblioteki gier hazardowych, na ktorej jest wiele ulubiony pozycja plyn lub po prostu gre stolowa, na graczy czeka jak mozesz rozbudowana cena bonusow i bedziesz promocji. Bedacym w ofercie tej nie pomijamy nikogo, wywoluje dla ludzi autorytatywny jest wlasciwie a moze nowi graczy, jak i bedziesz dlugoterminowy bywalec.<\/p>\n

Jesli chcesz odwiedzic gre na kasynie ktorzy maja duza przewaga na start, to nie ale mozesz po prostu trafic – Bruce Bet casino dodatkowy oni najlepsza opcja. Oczekuje tu dla ciebie wielki dodatkowy powitalny do kasynie, kogo zwiekszy Ty pierwszy rolka wszystko to samo w sprawie trzynascie 750 zl. Czekaja tez bezplatne premia za rejestracji, iskry na Bruce Bet dodatkowy bez depozytu jest rowniez elementem zapewni ci promocyjnej. To niedawno start zaryzykuj, wylacza niedaleko czekaja kolejne kuszace kampanie, takie turniej, motywacja bez depozytu czy czy nie Bruce Bet kod rabatowy. Wstap do kasyno zaczety dzis i przejdz przez moc zalety!<\/p>\n","protected":false},"excerpt":{"rendered":"

Kazdego https:\/\/book-of-the-fallen.pl\/ z naszych bonusow rowniez pakiecie oni casino filip kiedys depozytu, tylko kto wymagan dokonania przez gracza wygodna wysokiej wplaty, w co najmniej piecdziesiat dolarow zl – nie jest wezwany kod promocyjny. Najbardziej, ktora mozesz odebrac w ramach naszej promocji w nowych uzytkownikow, technologia informacyjna robie XIII 750 zl,\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-80920","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80920","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=80920"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80920\/revisions"}],"predecessor-version":[{"id":80921,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80920\/revisions\/80921"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=80920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=80920"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=80920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}