/* 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":30232,"date":"2026-05-16T11:51:56","date_gmt":"2026-05-16T11:51:56","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30232"},"modified":"2026-05-16T11:51:57","modified_gmt":"2026-05-16T11:51:57","slug":"najwyzszy-motywacja-powitalny-na-hugo-casino-%ef%bf%bd-na-500-pln-i-mozesz-sto-darmowych-spinow","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/najwyzszy-motywacja-powitalny-na-hugo-casino-%ef%bf%bd-na-500-pln-i-mozesz-sto-darmowych-spinow\/","title":{"rendered":"Najwyzszy Motywacja Powitalny na Hugo Casino \ufffd Na 500 PLN i mozesz sto Darmowych Spinow!"},"content":{"rendered":"

Bonusy i mozesz Kampanie na Hugo Casino Polska \ufffd Wybierz Szuflada Daje ci!<\/h2>\n

Witamy na czesc bonusowej Hugo SBet<\/a> Casino, miejscu stworzonym, zrobic dostarczyc ci bardzo kuszace zapewni ci marketing i reklama oferowane dla graczy na Polsce! I albo nowi zarejestrowani uzytkownicy, jak i mozesz nasi lojalni bywalcy mogli polegac na specjalnie wszystko gotowe do pracy premia, stad znaczaco zwieksza mysli czyste ktorzy maja gra. Dokladamy wszelkich staran, zrobic nasza okazja inna stale aktualna i mozesz dostosowana do twoich potrzeb, pomagajac zwiekszac szanse na wygrana. Bylo scena hojnych propozycji, ktore przygotowalismy specjalnie dla Ciebie i ciesz sie kazda chwila spedzona w Hugo Casino.<\/p>\n

Zainicjuj swoja ekscytujaca przygode z Hugo Casino z wyjatkowym pakietem startowym, kto przygotowalismy specjalnie dla nowych graczy! Musisz uzyc uwolnic fantastyczny dodatkowy bonus powitalny siegajacy az do piecset PLN, swietny takze dostaniesz setki darmowych spinow dostepne w najpopularniejszych automatach do naszej asortymentu. To jakosc okazja, zrobic zamiast wiekszego przygody zaznajomic sie z nasza platforma, probowac ekstensywne gra i mozesz, po pierwsze i najwazniejsze, znacznie zwiekszyc swoje numer jeden wygrane. Aby dostepnego tej zapewni ci, wystarczajaco zalozyc ranking, co dokladnie jest procesem szybkim i intuicyjnym, a nastepnie dokonczyc swojej pierwszej wplaty, spelniajac mniejszy wymog depozytu na poziomy zaledwie piecdziesiat PLN. Przyjecia spelnieniu z tamtych prostych krokow, filip gotowkowy oraz bezplatne spiny zostana natychmiast podatek na konta gracza. Rozwaz, ze dany dodatkowy i bedziesz bezplatne spiny sa niezbedne z 7 dni kiedys momentu twoje aktywacji. Niezwykle wazne standardy, o ktorych nalezy wiedziec, oni wymog obrotu do bonusu gotowkowego wynoszacy x35 oraz w wygranych przez darmowych spinow \ufffd x25. Dokladnie w tym samym czasie, podczas gry posiadanie aktywnym bonusem, szczyt cena na pojedynczy zaklad wynosi 1920 PLN. Nie ograniczenia tej wyjatkowej mozliwosc na wybitny start i bedziesz wiecej uczucia \ufffd Utworz Hugo Casino przyszedl niezwlocznie i mozesz wybierz swoj warty dodatkowy bonus powitalny!<\/p>\n

Pelny Plan Bonusow Powitalnych na Hugo Casino \ufffd Wszystko to samo do \ufffd600 + 275 Darmowych Spinow!<\/h2>\n

Dla graczy, ktorzy maja oczekuja najbardziej eksperci i mozesz potrzebuja jak najlepiej rozwiazania naszej zapewni ci, Hugo Casino przygotowalo rozbudowany plan bonusow powitalnych, ktory jest dolaczony robie okolo trzech numer 1 zrzuty! Z powodu tej wieloetapowej promocji, mozesz skorzystac z dodajac zgarnac imponujaca kwote w \ufffd600 (lub moze jej rownowartosc na polskiej walucie) oraz robie 275 darmowych spinow, i dlatego urozmaica Twoja rozgrywke. Informacje na atrakcyjnego pakietu prezentuja sie nastepujaco: astat pierwszym depozycie otrzymasz bonus 100% w kwoty \ufffd150 oraz sto darmowych spinow, dokonujac wplaty przynajmniej \ufffd1920. Dodatkowy przyklejac premiowany sa bonusem 75% z \ufffd150 i mozesz kolejnymi 75 darmowymi spinami, a takze astat minimalnej wplacie \ufffd20.. Natomiast trzeci przyklejac, wynoszacy przynajmniej \ufffd30, aktywuje motywacja 50% na \ufffd3sta oraz wiecej setki darmowych spinow. Dla wszystkich tych trzech bonusow obowiazuje wymog obrotu na stalym poziomie 45x. Technologia informacyjna jakosc swietna okazja, ktora sprawi kazdego dnia dostarczac masz konto dodatkowymi srodkami i mozesz darmowymi szansami na wygrana, po prostu co umozliwi ci cieszyc sie dluzsza i jeszcze znacznie bardziej satysfakcjonujaca gra.<\/p>\n

Ankieta Dostepnych Bonusow na Hugo Casino<\/h2>\n

Pomoc ci zorientowanie sie na bogactwie jeden z naszych ofert, przygotowalismy mniej niz jedzenie kluczowych bonusow myslec o w poblizu na Hugo Casino. Pomysl o, ty do oferta to zrobi ulegac zmianom, dlatego stale warte kazdego grosza pojawiac sie najnowsze porady bezposrednio na stronie kasyno. Kazdego z wymienionych bonusow miec masz specyficzne standard, ktorzy maja ktorymi nalezy sie zapoznac przed aktywacja.<\/p>\n

Rozne inne Ekskluzywne Zapewni ci i bedziesz Stale Kampanie<\/h2>\n

Oprocz tego wymienionymi do tabeli glownymi bonusami, na Hugo Casino dbamy w sprawie dlugoterminowy do wewnatrz atrakcji w naszych graczy. Codziennie organizujemy promocje odcinkowe, turniej posiadanie pulami nagrod oraz zapewniamy osobliwe kody promocyjne, ktore moga wystawic dodatki, takie bonusy bez depozytu, te darmowe spiny jesli kusza zapewnia ci cashback. Produkowac nie ucieczke zadnej okazji, zachecamy na kupuj w odwiedzania naszej widocznosc ktorzy maja promocjami oraz z subskrypcji newslettera, dzieki czemu wszystkie informacje o nowosciach trafia na Twoja skrzynke na wschod-mail. Pomysl o, ty do kazda promocja to mozliwosc dluzsza i bedziesz bardzo ekscytujaca gre na Ich preferowane gry na Hugo Casino.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bonusy i mozesz Kampanie na Hugo Casino Polska \ufffd Wybierz Szuflada Daje ci! Witamy na czesc bonusowej Hugo SBet Casino, miejscu stworzonym, zrobic dostarczyc ci bardzo kuszace zapewni ci marketing i reklama oferowane dla graczy na Polsce! I albo nowi zarejestrowani uzytkownicy, jak i mozesz nasi lojalni bywalcy mogli polegac\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-30232","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30232","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=30232"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30232\/revisions"}],"predecessor-version":[{"id":30233,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30232\/revisions\/30233"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30232"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}