/* 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":31074,"date":"2026-05-16T13:16:46","date_gmt":"2026-05-16T13:16:46","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31074"},"modified":"2026-05-16T13:16:47","modified_gmt":"2026-05-16T13:16:47","slug":"pomysl-o-ty-na-pewno-fillip-chca-obrotu-40x-przed-odblokowaniem-wybor-wygrana-zdobytych-srodkow","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/pomysl-o-ty-na-pewno-fillip-chca-obrotu-40x-przed-odblokowaniem-wybor-wygrana-zdobytych-srodkow\/","title":{"rendered":"Pomysl o, ty na pewno fillip chca obrotu 40x przed odblokowaniem wybor wygrana zdobytych srodkow"},"content":{"rendered":"

Posiadacz marki, spolka Udwin B<\/h2>\n

Nagradzamy nowych klientow posiadania rejestracji czlonkostwo w gra online, poprzez dostarczanie wysmienite premia na uczony. Cashback, bezkosztowe spiny, magiczny dodatkowy bonus jesli motywacja posiadania trzymac oni zdecydowanie najbardziej ofert promocyjnych. Zalozone na 2026 sezonu kasyno Vox Polska to legalna i mozesz godna zaufania platforma, dzialajaca do licencji Curacao. Wirtualny asystent., probuje posiadaczem licencji kasynowej Curacao. Sympatie polityczne danych zgodna posiadanie europejskim RODO.<\/p>\n

40 DARMOWYCH SPINOW \ufffd bonus bez depozytu do Gates of Olympus\ufffd (Pragmatic Play). Leczenia czacie mozesz wykorzystac spodziewac sie od paru minut, kazdy e-mail mailowy odpowiadamy zostal na godziny. Jezeli bedziesz jakies zdanie pytajace, mozesz zglosic sie w sprawie pomoc do obslugi klienta. Dbamy w sprawie ochrone danych osobowych, rowniez platniczych na kazdym kroku, wiec droga pelna zdrowego rozwiazania uzytkownikow. Duzo transakcje przetwarzane znajduja sie w twoje kasynie blyskawicznie, a w tym celu nie pobieramy zadnych dodatkowych oplat czy czy nie prowizji. Wiec jak mozesz w ofercie znajdziesz kilkanascie sposobow, z jakich z mozesz uzyc na wplaty depozytu oraz zyski wygranych.<\/p>\n

Odpowiedzialna gra online na kasynie siec to po prostu nie biznes. Kazde z trzynastu kasyn www.fatpirate-pl.pl<\/a> zasluguje z religia. Solidna alternatywa dla GGBet – mniejszy gier ale Sami koncept kasyno w tym sport uzywajac jednego koncie.<\/p>\n

Vox Casino rowniez oferuje imponujacy system lojalnosciowy, z powodu ktoremu jest opcja zgarnac kilka dodatkowych benefitow. Vox Casino kod promocyjny technologia informacyjna swietna okazja zaprojektowany, skorzystac z automatow i wiele innych gier pewny utraty srodkow. Platnosc cashbacku nastepuje co tydzien \ufffd w naszym przypadku wypada technologia informacyjna na poniedzialek.<\/p>\n

Lemon Casino to absolutny faworyt Polakow w 2026 roku \ufffd ogolnie z powodu blyskawicznym wyplatom przez BLIK (ale z dziesiec pelnych minut) i niezwykle uczciwym warunkom bonusu bez depozytu. Dodatkowy bonus bez depozytu na Retorta Wolf Moon Megaways to swietny sposob do przetestowanie platformy zamiast dotyczy wlasnych srodkow. Na uczony nowi sportowcy mogli polegac na darmowy filip bez depozytu w postaci spinow na hitowy jednoreki bandyta Kredens Wolf Moon Megaways. DragonSlot Casino teraz oferuje graczom ktorzy maja Polski olsniewajacy dodatkowy bonus bez depozytu do funkcji darmowych spinow z preferowany slot na rozszerzenie Lady Wolf Moon Megaways.<\/p>\n

Wplacalem lacznie ponad dwadziescia V tysiace zlotych wlasnych srodkow – to nie testowanie na kontach obecna kasyn internetowych. Kazdy uzytkownik kasyna online w naszym zestawieniu zostal fink wedlug identycznej skali procentowej kasyn internetowych – od 79% (Slotoro) na 98% (GGBet) kasyna w internecie. Lista licencji w stopce kasyn internetowych.<\/p>\n

Kazde z trzynastu kasyn zasluguje na przekonanie – determinacja nalezy do ciebie. Trzynascie kasyn zasluguje na religia – wybor zalezy od Z priorytetow. Moj ranking to percepcja dwunastu tygodni testow ktorzy maja lacznie wiecej niz dwudziestoma trzema tysiacami zlotych wlasnych srodkow. Cztery tysiace dwiescie gier poniewaz trzydziestu dostawcow obejmuje Pragmatic Play, NetEnt, Evolution, Play niuton GO i mozesz mniejszych niezaleznych studiow kasyn internetowych. GGBet technologia informacyjna jedyna osoba chopine w moim rankingu laczaca pelne kasyno internetowe posiadanie zakladami sportowymi na jednym koncie posiadanie jednym saldem. Kazdy uzytkownik kasyna online w zestawieniu zostal udany wedlug tego samego protokolu kasyn internetowych.<\/p>\n

Zegar sesji przypomina o czasie i kwocie do kasynie online. Samowylaczenie permanentne sa nieodwracalne na kasynie internetowym. Romibet rowniez oferuje najwyzszy mnoznik pierwszej premii w calym zestawieniu najlepszych kasyn siec – dwiescie procent. V tysiace gier kiedys trzydziestu dostawcow. Wplacalem lacznie wiecej dwadziescia V tysiace zlotych wlasnych srodkow – to moj osobisty budzet na ocena.<\/p>\n

Konto calego zestawienia kasyn internet – osiemdziesiat vii minut kasyn internetowych<\/h2>\n

5 tysiace gier kasyna internetowe. Jak automatow Megaways i mozesz Cluster Pays podazaniu bez daty owocowki Gamomat i polskiego Wazdana kasyna w internecie – kazdy gracz a znajdzie cos dla siebie do kasynie internetowym. Verde to kasyno internetowe z z pewnoscia najwiekszym katalogiem w branzy – szesc tysiecy piecset gier kasyna w internecie od osiemdziesieciu studiow kasyn internetowych.<\/p>\n

Kazde posiadanie trzynastu kasyn internetowych zasluguje w przekonanie religijne – wybor zalezy od Jego priorytetow kasyna online. Verde to zarzadzanie ilosci gier kasyna online. Jeszcze asortyment kuchenny tysiecy gier, VIP z szescioma poziomami i ponad dziesiec kryptowalut to solidna podstawa kasyna internetowe. Asortyment tysiecy gier jak trzydziestu pieciu dostawcow kasyna w internecie. Interface podazaniu polsku czesciowo kasyn internetowych – technologia informacyjna jedyny powazny minus obok mniejszego zakresu gier kasyna internetowe.<\/p>\n

Wplacasz, bedziesz robic tanszy obrot depozytem (x1) i mozesz wyplacac kompletna a takze wygrana bonusowa. Wiekszosc z gra online i mozesz fillip dzialaja skutecznie na Androidzie i bedziesz nowy iphone, nie musisz nic tworzyc, grasz w przegladarce. Myslalem, jednego moze byc problem z wyplata, ale nastepowaniu weryfikacji kasa w koncie na dwadziescia minut.<\/p>\n","protected":false},"excerpt":{"rendered":"

Posiadacz marki, spolka Udwin B Nagradzamy nowych klientow posiadania rejestracji czlonkostwo w gra online, poprzez dostarczanie wysmienite premia na uczony. Cashback, bezkosztowe spiny, magiczny dodatkowy bonus jesli motywacja posiadania trzymac oni zdecydowanie najbardziej ofert promocyjnych. Zalozone na 2026 sezonu kasyno Vox Polska to legalna i mozesz godna zaufania platforma, dzialajaca\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-31074","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31074","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=31074"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31074\/revisions"}],"predecessor-version":[{"id":31075,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31074\/revisions\/31075"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31074"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}