/* 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":30562,"date":"2026-05-16T12:42:03","date_gmt":"2026-05-16T12:42:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30562"},"modified":"2026-05-16T12:42:03","modified_gmt":"2026-05-16T12:42:03","slug":"glowny-bonus-powitalny-na-hugo-casino-%ef%bf%bd-na-500-pln-i-mozesz-setki-darmowych-spinow","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/glowny-bonus-powitalny-na-hugo-casino-%ef%bf%bd-na-500-pln-i-mozesz-setki-darmowych-spinow\/","title":{"rendered":"Glowny Bonus Powitalny na Hugo Casino \ufffd Na 500 PLN i mozesz setki Darmowych Spinow!"},"content":{"rendered":"

Premia i mozesz Oferty do Hugo Casino Polska \ufffd Odkryj Najlepsze Zapewnia ci!<\/h2>\n

Witamy w czesc bonusowej Hugo Casino, miejscu stworzonym, stworzyc zaopatrzenie najbardziej kusza zapewnia ci promocja otwarte dla graczy na Polsce! A moze nowi uzytkownicy, jak i nasi lojalni bywalcy mogli polegac na szczegolnie przygotowane zachety, ktore znaczaco zwieksza mysli plynne ktorzy maja gry. Dokladamy wszelkich staran, produkowac nasza oferta wczesna stale aktualna i bedziesz dostosowana dla ciebie osobiscie, pomagajac maksymalizowac szanse na wygrana. Jest swiat hojnych propozycji, i to przygotowalismy specjalnie dla Ciebie i delektuj sie kazda chwila spedzona na Hugo Casino.<\/p>\n

Wez swoja ekscytujaca zaryzykuj na Hugo Casino ktorzy maja wyjatkowym pakietem startowym, kto przygotowalismy specjalnie dla nowych graczy! Mozesz wykorzystac odebrac ogromny dodatkowy powitalny siegajacy az do piecset PLN, skuteczny dodatkowo mozesz dostac sto darmowych spinow dostepne z najpopularniejszych automatach na naszej wybor. Technologia informacyjna doskonala swietna okazja, produkowac zamiast wiekszego przygody zapoznac sie z nasza platforma, probowac roznorodne gry i mozesz, po pierwsze i najwazniejsze, znaczaco zwiekszyc swoje pierwsze wyplaty. Aby dostepnego tej daje ci, wystarczajaco zalozyc ranking, co procesem szybkim i mozesz intuicyjnym, a nastepnie zrobic swojej pierwszej wplaty, spelniajac mniejszy wymog depozytu na wysokosci zaledwie L PLN. Po spelnieniu z tych prostych krokow, bonus gotowkowy oraz bezplatne spiny zostana natychmiast zadanie z czlonkostwo gracza. Rozwaz, ty do przyznany motywacja i mozesz bezplatne spiny sa niezbedne przez 1 tydzien kiedys momentu twoje aktywacji. Bardzo wazne wymagania, o ktorych nalezy pamietac, to koniecznosc obrotu w bonusu gotowkowego wynoszacy x35 oraz dla wygranych pochodzacych z darmowych spinow \ufffd x25. Takze, podczas gry ktorzy maja aktywnym bonusem, maksymalna stawka na jeden obliczony wynosi dwadziescia PLN. Nie przeskocz-pomin tej wyjatkowej mozliwosc na wybitny poczatkujacy i mozesz wiecej nastawienie \ufffd Utworz Hugo Casino zaczety niezwlocznie i bedziesz chwyc swoj warty dodatkowy powitalny!<\/p>\n

Kompletny Pakiet Bonusow Powitalnych z Hugo Casino \ufffd Wszystko to samo na \ufffd600 + 275 Darmowych Spinow!<\/h2>\n

W graczy, ktorzy maja oczekuja najbardziej mistrzowie i mozesz potrzebuja w pelni wykorzystac rozwiazania naszej zapewni ci, Hugo Casino przygotowalo rozbudowany program bonusow powitalnych, ktory towarzyszy az okolo trzech gora depozyty! Z powodu tej wieloetapowej promocji, mozesz skorzystac z tot zgarnac imponujaca kwote z \ufffd600 (lub ich rownowartosc na polskiej walucie) oraz robie 275 darmowych spinow, stad urozmaica Twoja https:\/\/trafcasino-pl.com\/<\/a> rozgrywke. Informacje z atrakcyjnego pakietu prezentuja sie nastepujaco: w pierwszym depozycie dostaniesz filip niezliczona ilosc% z stopien \ufffd150 oraz 100 darmowych spinow, dokonujac wplaty przynajmniej \ufffd20. Drugi przyklejac premiowany bylo bonusem 75% w \ufffd150 i kolejnymi 75 darmowymi spinami, a takze liczbie atomowej 85 minimalnej wplacie \ufffd1920. Natomiast trzeci depozyt, wynoszacy przynajmniej \ufffdxxx, wlacza bonus piecdziesiat dolarow% do \ufffdtrzysta oraz dodatkowe 100 darmowych spinow. Dla z tych trzech bonusow obowiazuje wymog obrotu w tempie 45x. Technologia informacyjna dobra okazja, ktora sprawi regularnie dostarczac masz konto dodatkowymi srodkami i bedziesz darmowymi szansami na wygrana, po prostu co umozliwi ci cieszyc sie dluzsza jeszcze jeszcze bardziej satysfakcjonujaca gra.<\/p>\n

Ankiety Wziac pod uwage Bonusow na Hugo Casino<\/h2>\n

Pomoc ci zorientowanie sie na bogactwie naszych ofert, przygotowalismy nizej niz przekaski kluczowych bonusow rozwazyc lokalnie z Hugo Casino. Rozwaz, ze okazja to zrobi ulegac zmianom, tak nieprzerwanie warte zachodu patrzec najnowsze zalecenia bezposrednio na stronie kasyno hazardowe. Wszyscy wymienionych bonusow cieszy sie masz pokaz standard, z ktorymi nalezy sie zapoznac przed aktywacja.<\/p>\n

Rozne inne Prywatne Zapewnia ci i bedziesz Stale Reklamy<\/h2>\n

Oprocz tego wymienionymi w tabeli glownymi bonusami, na Hugo Casino dbamy o dlugoterminowy do wewnatrz atrakcji w naszych graczy. Kazdego dnia organizujemy reklamy okresowe, turniej posiadanie pulami nagrod oraz oferujemy unikalne kuponow, ktore sa rozladowac zwiekszenie wigoru, podobne premia bez depozytu, kolejne darmowe spiny czy kuszace zapewnia ci cashback. Stworzyc nie przegapic zadnej okazji, zachecamy w kupuj w odwiedzania naszej strony posiadanie promocjami oraz w subskrypcji newslettera, w drodze czemu wszystkie informacje w sprawie nowosciach trafia na Twoja skrzynke wiek-mail. Rozwaz, jednego do kazda przelomy oni mozliwosc dluzsza i mozesz znacznie bardziej ekscytujaca gre na Twoje wlasne preferowane gra na Hugo Casino.<\/p>\n","protected":false},"excerpt":{"rendered":"

Premia i mozesz Oferty do Hugo Casino Polska \ufffd Odkryj Najlepsze Zapewnia ci! Witamy w czesc bonusowej Hugo Casino, miejscu stworzonym, stworzyc zaopatrzenie najbardziej kusza zapewnia ci promocja otwarte dla graczy na Polsce! A moze nowi uzytkownicy, jak i nasi lojalni bywalcy mogli polegac na szczegolnie przygotowane zachety, ktore znaczaco\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-30562","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30562","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=30562"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30562\/revisions"}],"predecessor-version":[{"id":30563,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30562\/revisions\/30563"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30562"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}