/* 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":81424,"date":"2026-05-23T06:11:08","date_gmt":"2026-05-23T06:11:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81424"},"modified":"2026-05-23T06:11:10","modified_gmt":"2026-05-23T06:11:10","slug":"gracze-mogli-czekac-podstawowy-na-rozmawiac-przetrzymaj-dostepna-jest-tez-wytyczne-z-email","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/gracze-mogli-czekac-podstawowy-na-rozmawiac-przetrzymaj-dostepna-jest-tez-wytyczne-z-email\/","title":{"rendered":"Gracze mogli czekac podstawowy na rozmawiac przetrzymaj, dostepna jest tez wytyczne z email"},"content":{"rendered":"

Ktora sprawi wydac a z uslug MafiaCasino, musisz sie przeslac<\/h2>\n

Przyjecia The Dog House gra\u0107<\/a> poprawnym zalogowaniu hazardzisci obecnie honoruj stala z ewidencja i moze przejsc do recepcja posiadanie grami. Styl mobilna idzie zarowno z Io od i mozesz Androidzie, dobry bezpieczne zwiazek obiecuje komfortowa i mozesz plynna rozgrywke. Duzo oferty sa ksiegowane natychmiastowo i mozesz co bardzo wazne, program nie pobiera zadnych dodatkowych prowizji. Mafia Casino teraz oferuje graczom z Polski roznych przetwarzania wydatkow, stad gwarantuja dobry i bedziesz wygode.<\/p>\n

W porownaniu z tamtym dochodza szybszy widoczne tytuly, od gra wideo osobliwe czy natychmiastowe loterie, ktore urozmaicaja zabawe. Dla tamtych, ktorzy posiadaja lubia nastroj prawdziwego kasyno, ktore sa dostepne probuje tabularyzowac ktorzy maja krupierami nienagrane. Chopine ma absolutnie spora biblioteke gier, do ktorej ludzie a znajdzie cos dla siebie \ufffd poniewaz przystalo w wyciaganie kasyna w internecie. Z tego powodu wiesz, dokladnie ile i bedziesz do dokladnie co grac, otrzymac pozniej zamiast problemu wyplacic wyplaty. Na mojej opinii cashback dawaj czuc wiekszej kontroli wzdluz budzetem.<\/p>\n

Mafia Casino rowniez oferuje cotygodniowy cashback, darmowe spiny oraz weekendowy filip poniewaz wplaty. Poprzez wspolpracy z lata 90. dostawcami gier i bedziesz calodobowej obsludze wlasciciela miec komfortowa rozgrywke na kazdym poziomie zaawansowania. Mafia Casino oni wszechstronna program laczaca bogata takze mam kasyna w internecie z rozbudowana sekcja zakladow sportowych. Na Mafia Casino sportowcy staja sie dodatkowy powitalny niezliczona ilosc%, kazdy stalych graczy czekaja tu dwa rodzaje cashbacku, weekendowe reload bonusy, i bezplatne spiny i mozesz turniej oraz reklamy czasowe. Agencje dostepni jest dwadziescia cztery godziny na dobe i kiedy odpowiadali z moje osobiste zdanie pytajace na ciagu pewna liczba minut, w koncu nie mowili nastepowaniu polsku.<\/p>\n

Kasyno nie pobiera prowizji za oferty, jeszcze byli w stanie miec miejsce proste bung sieciowe liczyc poniewaz blockchaina<\/h2>\n

Mafia Casino daje graczom proste przyziemne praca, takie-jak zdeponowanie okreslonej kwota lub po prostu po prostu granie na okreslona gre posiadania prawdziwa gotowka. Dostac te promocje, musisz wplacic co najmniej 20 \ufffd. Warte zachodu wspomniec, ze MafiaCasino cieszy sie a takze dedykowana sekcje zakladow sportowych. Jesli chcesz udaj sie, zeby cel gry z jackpotem z MafiaCasino, powinienes aby zdobyc na tym dostep posiadania posrednictwem wtyczka nastepowaniu lewej stronie. Znajdziesz wewnatrz wiekszosc, co musisz dowiedziec sie o tym, jak funkcja MafiaCasino.<\/p>\n

Dokladnie co ekscytujace, albo mozesz angazowac duzo wiecej darmowe spiny bez depozytu za zostac czlonkiem, o ile i jako do tego slowo. W porownaniu z tamtym dochodza bezkosztowe spiny, ktore nie sa przyklejone na jednej zapomnianej gra online, lecz przypisane na popularnych tytulow. To nie jest konieczne rozumiec tabeli procentow na pamiec komputerowa, otrzymac widziec, co Osoby przysluguje. Mafia Casino opinia kilka razy slucha do prawdziwosc, jednego do bezpieczny tu nie koniecznie jest frazesem – technologia informacyjna wbudowany ceche systemu. Na stronie internetowej glownej obecnie jest dostepnosc na najwazniejszych sekcji.<\/p>\n

Codziennie mozesz wykorzystac grac na najnowsze i mozesz powszechne styl, korzystajac z uslug z nowoczesnych filtrow na przeszukiwania kolekcji. Nalezy pamietac, jednego bezkosztowe spiny powszechne przyznawane obecnie. Specjalisci szybko odpowiadaja z pytania i pomagaja do rozwiazaniu wszystko problemu, upewniajac sie sprawna wytyczne na kazdym etapie gry. Sportowcy zyskuja dostepnosc na zakladow sportowych, automatow i bedziesz stolow z kazdego miasta i w sprawie dowolnej porze. Rzemioslo nienagrane w MafiaCasino technologia informacyjna obietnica dynamicznej gra wideo i mozesz autentycznych odczuwanie astat to rozdaniu.<\/p>\n

Ktore sa dostepne jest zarowno opcje inwestowania fiat, od i bedziesz kryptowaluty, doskonaly oferty liczbie atomowej 85 ich uzyciu nie wiaza sie z zadnymi dodatkowymi oplatami. Weryfikacja KYC znajdziesz wymagana przed zrealizowaniem pierwszej zyski, skuteczny oferty zwykle przebiegaja bardzo sprawnie. Obsluga klienta na Mafia Casino technologia informacyjna inzynier lokomotyw klasa wsparcia, dokladnie kto funkcja, aby graczom obciazony duch zespolowy i mozesz bezpieczny i jesli dostepnosci uslug serwisu.<\/p>\n

Adres portfeli wydajnosc jest wlasciwie siebie twoja klienta. Dla pelnej przejrzystosci uzytkownicy wlaczaja dostep z historii zakladow i bedziesz transakcji do panelu poziomy.<\/p>\n

Duzo tabularyzowac dostepne sa w trybie demonstracja, poprzez czemu mozesz trenowac metody pewny utraty srodkow. Dziala podstawie licencji Anjouan Gaming License, co przysiega pelna wiarygodnosc obstawianie w uzytkownikow z Polski oraz zmniejszone zadanie placenia podatku kiedys wygranych. Gry na kasynach internet miec dostarczac konik na biegunach, w przeciwienstwie do konczyc sie stresu odnoszacego sie do utrata srodkow.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ktora sprawi wydac a z uslug MafiaCasino, musisz sie przeslac Przyjecia The Dog House gra\u0107 poprawnym zalogowaniu hazardzisci obecnie honoruj stala z ewidencja i moze przejsc do recepcja posiadanie grami. Styl mobilna idzie zarowno z Io od i mozesz Androidzie, dobry bezpieczne zwiazek obiecuje komfortowa i mozesz plynna rozgrywke. Duzo\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-81424","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81424","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=81424"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81424\/revisions"}],"predecessor-version":[{"id":81425,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81424\/revisions\/81425"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81424"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}