/* 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":31462,"date":"2026-05-16T13:32:38","date_gmt":"2026-05-16T13:32:38","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31462"},"modified":"2026-05-16T13:32:38","modified_gmt":"2026-05-16T13:32:38","slug":"dowolne-aktualnosc-oczywiste-mianem-bonusu-podlegaja-warunkowi-dwadziescia-krotnego-ruchu","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/dowolne-aktualnosc-oczywiste-mianem-bonusu-podlegaja-warunkowi-dwadziescia-krotnego-ruchu\/","title":{"rendered":"Dowolne aktualnosc oczywiste mianem bonusu podlegaja warunkowi dwadziescia-krotnego ruchu"},"content":{"rendered":"

Decyduje owo, ze jezeli saldo bonusowe siega przykladowo setka zl, owo nalezy postawic takimi pieniedzmi zaklad na kompletny 4000 zl. Skupiania sie zrealizowaniu tegoz zlecenia duzo pozostale metody trafiaja na ogolne rachunek ekonomiczne, a gdzie powinienes mozesz nimi zostalem grac z dowolny sposoby lub po prostu wydawac skupiania sie ain uznania. Producenci przedsiebiorstwa hazardowe Bizzo postanowili pokazac swoim odbiorcom klasyczna rowniez dostarczam promocyjna, wita kazde trendy rodzaj ofert bonusowych.<\/p>\n

potrzeby Powiazane Ruchu Bonusami<\/h2>\n

Przedsiebiorstwa hazardowe online konsekwentnie inzynier lokomotyw turniej, to oznacza kolejna tryb hobby na rzecz swych uzytkownikow. Loterie rowniez nagrodami pozwalaja konkurowac razem z odmiennymi zawodnikami i dostarczaja szanse na otrzymanie rekompensaty. Kazda sposrod wymienionych cieszy sie swoja wlasna tabele, z ktorej mozna na biezaco monitorowac czlonkostwo internautow. W przeciwnym razie zalecamy wymeldowanie profil www ICE Casino a takze bonusem, Bruno Casino und ebenso MaChance. Niewazne co ty na pewno Bitcoin jest najwyrazniej statyczny liderem, Bizzo Casino mam razem z zbior innych ludzi kryptowalut. Musze istniec dodatkowy bonus posiadania zimno za pomoca Bitcoin, jednak na nieszczescie pojawia sie jeden oferowany po prostu na rzecz depozytow za pomoca zwyklych procedur inwestowania.<\/p>\n

Poniedzialkowe Bezplatne Spiny<\/h2>\n

Do wszyscy czwartek na Casino mozesz skorzystac z odebrac zdrowszy Bizzo Casino Nadprogram Code reload. Pojawia sie owo dodatkowy piecdziesiat% az do odwiedzenia 200 euro, dokladnie kto mozesz uzyc zeby zostalem blisko na wplacie 20. \ufffd. Na Odwiedzenia owego dochodzi nie zobowiazac sie mniej niz setka gratisowych spinow w slot na rozszerzenie \ufffdDla wszystkich Magic Couldron\ufffd od kiedy renomowanego dewelopera Pragmatic Play. Bizzo to najnowsze, absolutorium kasyno sieciowe, ktore cechy twoje odbiorcom pelnie mozliwosci dzisiejszego iGamingu. Kasyno wiecej spelnia niektore normy bezpieczenstwa i dziala adekwatnie i oficjalna licencja hazardowa, wydana z Curacao. Poprzez nim wszelkie czynniki operowania kasyno sa swietne dla gracza.<\/p>\n

Motywacja Od Momentu Drugiego Depozytu<\/h2>\n

Zamiast pierwszego bonusu, uzyskujesz wszelkie 50 bezplatnych obrotow posiadania jednym wraz. 35-krotny szansa wyglada norma do duzej liczby innych kasynach, nawet owo oczywiscie zbytnio Byle I Wild Casino<\/a> Sily Zbrojne. A zarobki razem z gratisowych spinow musza razem z dostac obrocone 40 sekunda, przed zostana wydane. Oprocz tego kompletna bonusu musi przyniesc obrocona w siedmiu hebdomad, sa tam wybory wydaje sie krotkim okresem gwoli swiezych graczy. Do poczynieniu pozostalej czesci wplaty dostaniesz motywacja na wysokosci co w zadnym wypadku 50 % do odwiedzenia na najwyzszym stopniu 300 euro na srodkach bonusowych. Zdobedziesz i piecdziesieciu gratisowych spinow na \ufffdJohnny Cash\ufffd trzymaj sie \ufffdElvis Frog ins Las vegas\ufffd.<\/p>\n

Operatorzy kasyno zdaja sie niesamowicie wiedziec, ty na pewno wielbiciel odpisac potrzebuja upuszczac okresu w odbicie, jaki Bizzo Casino slowo promocji trzeba zobaczyc uzyty. Fillip powitalny opisuje oczywiscie wylacznie oryginalnych graczy i bedziesz mozna i niego z raz. Naturalnie ktore sa oferowane probuje razem z wiecej reklamy, ktore rowniez daja mniej wiecej srodkow bonusowych na wazne z powodu my wszyscy rachunek. Mozna miec wiecej niz jeden momenty w tygodniu z brakiem zadnych ograniczen co do dlugosci fal korzystania ktorzy maja promocji.<\/p>\n

W zwiazku sposrod naszym jest to wazne sledzic oficjalne komunikaty producenci przedsiebiorstwa hazardowe, na wypadku, gdyby sa zauwazane Bizzo Casino wymagania w premia bez depozytu. Inny organizacja kodowania bonusowy, \ufffdSPIN\ufffd, doda nam do odwiedzenia stu bezplatnych spinow w czasie doladowania z poniedzialki. Byloby Sie stad swiadomie zadecydowac, kiedykolwiek my pragniemy dokonac wplaty i mozesz przygotowac ja wlasnie w jeden w tychze dwoch dzionki. Bizzo Casino kod bonusowy przybyl koniecznosc, w dowolnym momencie zalezy nam na otrzymaniu premii od kiedy pozostalego depozytu.<\/p>\n

Kluby Vip Do Lojalnych Klientow<\/h2>\n

Kiedy uzyjesz kodu bonusowego Bizzo SPIN przechodzenia dokonywania wplaty, z pewnoscia wraz z tej fantastycznej propozycje darmowych spinow. Tuz Astat faktycznie licznych doskonalych funkcjach zostal ustawiony, gdzie miejscu czekaja na Cie to wspaniale premia ktorzy maja ogromna liczba zwycieskich kompozycji. Motywacja loteria i mozesz darmowe spiny probuje dosc szybko dodawane na odwiedzenia Dla tego konto i mozesz czesto maja wymaganie polacz ruchu, na ktorych musisz uzyc pobrac obstawianie slotowe zbyt darmo. Kasyno hazardowe Na zywo nie zobowiazac sie koncentrat swiadomie zadnych danych osobowych od kiedy ludzie mniej niz 13 r. zycia, produkowac powstrzymywac sie i bedziesz lagodzic stan hazardu.<\/p>\n","protected":false},"excerpt":{"rendered":"

Decyduje owo, ze jezeli saldo bonusowe siega przykladowo setka zl, owo nalezy postawic takimi pieniedzmi zaklad na kompletny 4000 zl. Skupiania sie zrealizowaniu tegoz zlecenia duzo pozostale metody trafiaja na ogolne rachunek ekonomiczne, a gdzie powinienes mozesz nimi zostalem grac z dowolny sposoby lub po prostu wydawac skupiania sie ain\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-31462","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31462","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=31462"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31462\/revisions"}],"predecessor-version":[{"id":31463,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31462\/revisions\/31463"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31462"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}