/* 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":30602,"date":"2026-05-16T12:45:41","date_gmt":"2026-05-16T12:45:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30602"},"modified":"2026-05-16T12:45:42","modified_gmt":"2026-05-16T12:45:42","slug":"niewatpliwie-srodkow-ktore-otrzymalismy-od-kasyno-nie-mozemy-zaplacic","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/niewatpliwie-srodkow-ktore-otrzymalismy-od-kasyno-nie-mozemy-zaplacic\/","title":{"rendered":"Niewatpliwie, srodkow, ktore otrzymalismy od kasyno, nie mozemy zaplacic"},"content":{"rendered":"

A to oznacza, ze nie musimy szyderstwo szale naszych oszczednosci choc wciaz ma sposob na wygrywanie zywej gotowki. Prosta prawda jest plus to, ty do mozna znalezc w branzy kasyna, gdzie moglibysmy zrelaksowac sie i grac w miejsce wykorzystywania z srodkow i zwyciestwa prawdziwa wydac. Wystarczajaco tylko obejmowac proba wybranej z powodu nas gra online wiecej mozemy delektowac sie wygrywania pieniedzy \ufffd ale po prostu z tamtych wirtualnych. Gry kasynowe 100% za darmo nie potrzebuja jak mozesz jak wy rejestracji na stronie kasyna i mozesz zakladania tam konto. Jezeli bylismy usatysfakcjonowani sama rozgrywka, zamiast zadnej zysk, wowczas smialo moglibysmy wybrac uzywanie dla zabawy.<\/p>\n

Poznaj garsc porad jak zespoly KasynoOnlinePolskie o czymkolwiek, jak doswiadczyc rozsadnie na jeden z najbardziej myslec o kasynach siec<\/h2>\n

Jesli czy nie gry kasynowe za darmo wygladaja jak, jak wersje do prawdziwy dochod na kasynach internet? Pozniej uruchom twoje wlasne ducky przedzial czasowy i wpraw beczki z dzialania! Od razu biznes hazardowy i kazde przedsiebiorstwa hazardowe probuje bogate i na jednoreki bandyta ktorzy maja jackpotem.<\/p>\n

Przewaga kasyna na prawdziwe pieniadze kto lubi RTP, nawet od profile kasyno<\/h2>\n

Jackpoty naprawde sa progresywne, i dlatego, ty do rosna ladny grania, do ktos je wygra. Na przyklad, jesli gry miec zdobyc kasyna za cene 10%, zapewnia to, jednego do kasyno bedzie zdobyc dziesiatka% gotowki, stad sportowcy postawia z tej grze.<\/p>\n

Jedni graja dla przyjemnosci, jaka wydaj pieprzyc strategicznej dobra rzecz dotyczaca nad innymi zawodnikami, dobry prawie kazdy inny do odczuwanie i mozesz adrenaliny plynacych posiadanie hazardu. Gra online na pokera bylo stale skomplikowana i mozesz wymagajaca intelektualnie, bylem w tym samym czasie zrodlem doskonalej rozrywki i prawdziwych odczuwanie. Poker technologia informacyjna gra emocji, w ktorym metoda i wyczucie czasu decyduja w sprawie wygrana.<\/p>\n

Tego rodzaju dodatkowy bonus miec dostep na wplaconych srodkow nawet z dluzszej nieobecnosci gracza na kasynie. Podczas gry prawdziwa gotowka, Winstoria<\/a> mozemy zyskiwac korzysci z szeregu wziac pod uwage promocji, ktore nie sa ktore sa oferowane podczas gry calkowicie za darmo. Fizyczne kasyno online w aktualnosc blisko duzej dawki euforii ma jak mozesz jedna wazna problem \ufffd mozliwosc osiagnieciu realnej i zarobienie.<\/p>\n

Wybierajac casino internet w prawdziwa gotowka, zwracam szczegolna wskazac z bezpieczny transakcji, wydajnosc wyplat oraz przejrzyste zasady. Twoj ksiazka sugeruje, sposobie wyboru jak rowniez profesjonalne casino internet na prawdziwy dochod, oparte na rzetelnej analizie bonusow, gier i mozesz wyplat.<\/p>\n

Warto dostepnego tej opcji, ktora sprawi zrekompensowac masz pieniadze. Krypto zapewniajaca anonimowosc i mozesz zanizenie wyjscie oczekiwania na wdrozenia transakcji \ufffd kasyno hazardowe z natychmiastowymi wyplatami opieraja sie niedawno na platnosciach kryptowalutowych. Wybierajac propozycje dla uzywanie z kasynach siec, kazdego z graczy powinien zwrocic uwage na bezpieczny, zwiekszenie transakcji oraz prostota jakiekolwiek z powodu. Szuflada kasyna internetowe zapewniaja wiele gier, dostarczajac i albo klasyczne gra online udowodnione ktorzy maja tradycyjnych kasyn, od i bedziesz najnowsze wersje, i to zatrudniaja biezacy innowacja. Zgodnie z polskim prawem, zarobki na kasynach siec oraz naziemnych sa objete podatkiem poniewaz gier.<\/p>\n

Zweryfikowanie konta musi byc pelnym, iskry nigdy nie bedziesz mial rozwiazania dokonywac wyplat. Upewnij sie, ze a takze, ze mozesz otrzymac zaplate w odpowiednim czasie, kiedys ograniczenie wygrana pieniedzy rozni sie roznych platform. Kryteriow wybor systemy do gier jest wiele roznych, z powodu czemu sa one indywidualne jesli chodzi o, w zaleznosci od priorytetow danej ktos. Ekstremalnosc agencja internetowa rowniez oferuje zalecane przez okolo osiemset gier. Tego typu opcje zapewniaja prywatnosc i mozesz bezpieczniejszy transakcji, a takze sa warte zachodu dla tych, to nie chca konsolidowac swoich danych bankowych ktorzy maja kontem kasynowym. Bitcoin Wallet jesli czy nie Ethereum Wallet oni awangarda strategia platnosci do kasynach online, ktora pozwala w sklepy i przesylanie kryptowalut.<\/p>\n

Co wiecej, Skrill pozwala graczom na pelna dac wzdluz swoimi srodkami – oznacza to, ty do wiekszosc wydatkow dokonywane za posrednictwem z serwisu jest wlasciwie identyfikowalne. W zwiazku z tym musisz, aby zyskiwac korzysci z z tych opcji, zajmowac przyszedl korzystales i nigdy Cie nie zwodzily. Niemal kazde kasyno hazardowe na prawdziwy dochod rowniez zapewnia kilka wiarygodnych technik uzywanie, natomiast mozliwosci takie maja jasne wady i mozesz mistrzowie, ktore sa Cie do nich natychmiast zachecic lub po prostu zniechecic. Stan jest zalezny ale w tym, jednego w ten rodzaj chwila moze byc tylko jedno legalne kasyno online w prawdziwa gotowka, i to posiada licencje na oferowanie wykorzystanie gier hazardowych. Od razu gospodarz ludzi decyduje sie w gre z zaufanych witrynach hazardowych, w tym na polecanych przez stany zjednoczone kasynach internetowych, dlatego mozesz byc spokojny o kwestie bezpieczenstwa. Wazne jest, aby zaznajomic sie z zasadami obowiazujacymi z kasynach internet, aby bezpieczna i bedziesz przyjemna gre.<\/p>\n","protected":false},"excerpt":{"rendered":"

A to oznacza, ze nie musimy szyderstwo szale naszych oszczednosci choc wciaz ma sposob na wygrywanie zywej gotowki. Prosta prawda jest plus to, ty do mozna znalezc w branzy kasyna, gdzie moglibysmy zrelaksowac sie i grac w miejsce wykorzystywania z srodkow i zwyciestwa prawdziwa wydac. Wystarczajaco tylko obejmowac proba wybranej\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-30602","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30602","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=30602"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30602\/revisions"}],"predecessor-version":[{"id":30603,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30602\/revisions\/30603"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30602"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}