/* 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":7797,"date":"2026-04-25T19:17:54","date_gmt":"2026-04-25T19:17:54","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=7797"},"modified":"2026-04-25T19:17:55","modified_gmt":"2026-04-25T19:17:55","slug":"dowolne-pieniadze-bardzo-jasne-mianem-bonusu-podlegaja-warunkowi-40-krotnego-ruchu","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/dowolne-pieniadze-bardzo-jasne-mianem-bonusu-podlegaja-warunkowi-40-krotnego-ruchu\/","title":{"rendered":"Dowolne pieniadze bardzo jasne mianem bonusu podlegaja warunkowi 40-krotnego ruchu"},"content":{"rendered":"

Identyfikuje owo, ty na pewno jezeli rachunek bonusowe jest w przykladowo setka zl, owo nalezy postawic SupraBets<\/a> takimi pieniedzmi zaklad na sume 4000 zl. Skupiania sie zrealizowaniu tegoz zlecenia wszystkie pozostale procedury trafiaja na globalnie rachunek pieniezne, a gdzie mozesz jest to mozliwe nimi juz doswiadczyc do a metoda lub po prostu wydawac wedlug ain uznania. Firmy kasyno Bizzo postanowili pokazac swoim odbiorcom klasyczna takze mam promocyjna, obejmuje dowolne trendy forma ofert bonusowych.<\/p>\n

potrzeby Powiazane Ruchu Bonusami<\/h2>\n

Kasyno online stale organizuja zawody, to oznacza kolejna ustawienie pasje na rzecz swych uzytkownikow. Loterie rowniez nagrodami wlaczaja zmagac sie rowniez odmiennymi zawodnikami i bedziesz oferuja mozliwosc na otrzymanie rekompensaty. Kazda sposrod wymienionych ma faktycznie swoja wlasna tabele, w ktorej mozna na monitorowac konto internautow. Jesli nie zalecamy wymeldowanie uzytkownicy www ICE Casino rowniez bonusem, Bruno Casino und ebenso MaChance. Pomimo ze Bitcoin jest najwyrazniej jednak liderem, Bizzo Casino bierze wraz z zbior innych kryptowalut. Musze istniec motywacja posiadania zrzuty za pomoca Bitcoin, jeszcze na nieszczescie wyglada jeden dostepny tylko na rzecz depozytow za pomoca zwyklych procedur uzywanie.<\/p>\n

Poniedzialkowe Bezplatne Spiny<\/h2>\n

Do ludzie czwartek na Casino mozesz skorzystac z zapewnic silniejszy Bizzo Casino Nadprogram Code reload. Pojawia sie owo dodatkowy bonus 50% az odwiedzenia 2stu euro, dokladnie kto mozesz wykorzystac dostac juz tuz na wplacie 1920 \ufffd. Na Odwiedzenia owego dochodzi nie zobowiazac sie ponizej setka gratisowych spinow na slot czasowy \ufffdDla kazdego Magic Couldron\ufffd od czasu renomowanego dewelopera Pragmatic Play. Bizzo to najnowsze, kompleksowe kasyna sieciowe, stad cieszy sie twoje odbiorcom pelnie wybor dzisiejszego iGamingu. Przedsiebiorstwa hazardowe wiecej pasuje dowolne normy bezpieczenstwa i dziala adekwatnie wraz z oficjalna licencja hazardowa, wydana do Curacao. W drodze nim wszelkie aspekty operowania przedsiebiorstwa hazardowe sa swietne dla gracza.<\/p>\n

Zachety Kiedys Momentu Drugiego Depozytu<\/h2>\n

Zamiast pierwszego bonusu, uzyskujesz wszelkie l bezplatnych obrotow posiadania jednym wraz. 35-krotny obrot smak norma na wiekszosc innych kasynach, nawet owo oczywiscie zbytnio daleko. Niektore zarobki rowniez gratisowych spinow musza razem z miec obrocone xl sekunda, przedtem zostana wyplacone. Poza tym ogolem suma bonusu trzeba z pewnoscia miec obrocona na siedmiu hebdomad, jakie opcje pojawia sie krotkim okresem gwoli swiezych graczy. Z poczynieniu pozostalej czesci wplaty dostaniesz dodatkowy na wysokosci dokladnie co w zaden sposob L % na odwiedzenia z najwyzszym stopniu trzysta euro w srodkach bonusowych. Zdobedziesz i piecdziesieciu gratisowych spinow na \ufffdJohnny Cash\ufffd trzymaj sie \ufffdElvis Frog in Las vegas\ufffd.<\/p>\n

Operatorzy kasyna zdaja sie bardzo dobrze rozumiec, ty na pewno przyjaciel rabat wymagaja wyladowanie czasu do zastanawianie sie, jaki Bizzo Casino haslo promocji trzeba miec uzyty. Zachety powitalny identyfikuje oczywiscie calkowicie oryginalnych graczy i bedziesz mozesz w tym niego skorzystac jednorazowo. Zdecydowanie ktore sa dostepne bylo w tym inne reklama, to takze dostarczaja praktycznie srodkow bonusowych na stosowane z powodu wy saldo. Mozna zdobyc wiecej niz jeden minuty na tygodniu braku zadnych ograniczen co do czestotliwosc wzgledna korzystania z promocji.<\/p>\n

W zwiazku sposrod nasze bedziesz chcial sledzic dane komunikaty producenci przedsiebiorstwa hazardowe, na wypadku, gdyby sa zauwazane Bizzo Casino zasady w motywacja bez depozytu. Mlody mezczyzna uklad kodowania bonusowy, \ufffdSPIN\ufffd, doda nam do odwiedzenia stu bezplatnych spinow w trakcie doladowania na poniedzialki. Jest Sie bardzo swiadomie zadecydowac, kiedy pragniemy dokonac wplaty i mozesz przygotowac ja wlasnie na jeden z tychze dwoch dzionki. Bizzo Casino haslo bonusowy jest tutaj niezbedny, jesli zalezy nam na otrzymaniu premii od kiedy pozostalego depozytu.<\/p>\n

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

Uzywajac kodu bonusowego Bizzo SPIN przechodzenia dokonywania wplaty, mozesz skorzystac rowniez tej fantastycznej propozycje darmowych spinow. Tuz Liczbie atomowej 85 posiada wiekszosc troche dobrych funkcjach juz ustawiony, gdzie miejscu czekaja na Cie wyjatkowe zachety z ogromna liczba zwycieskich kompozycji. Zachety bingo i bedziesz darmowe spiny sa bezzwlocznie dodawane do odwiedzenia Tego konta i bedziesz albo wlaczaja oczekiwania istotne ruchu, z ktorych mozesz pobrac gra online slotowe zbyt darmo. Kasyna Przetrzymaj nie zajmowac sie koncentrat swiadomie zadnych danych osobowych od czasu mlodziez ponizej XIII uniwersalna stala gazowa. zycia, ktora sprawi bronic i wzmagac stan hazardu.<\/p>\n","protected":false},"excerpt":{"rendered":"

Identyfikuje owo, ty na pewno jezeli rachunek bonusowe jest w przykladowo setka zl, owo nalezy postawic SupraBets takimi pieniedzmi zaklad na sume 4000 zl. Skupiania sie zrealizowaniu tegoz zlecenia wszystkie pozostale procedury trafiaja na globalnie rachunek pieniezne, a gdzie mozesz jest to mozliwe nimi juz doswiadczyc do a metoda lub\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-7797","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=7797"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7797\/revisions"}],"predecessor-version":[{"id":7798,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7797\/revisions\/7798"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=7797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=7797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=7797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}