/* 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":81296,"date":"2026-05-23T06:03:17","date_gmt":"2026-05-23T06:03:17","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81296"},"modified":"2026-05-23T06:03:19","modified_gmt":"2026-05-23T06:03:19","slug":"moglbym-korzystac-rowniez-ktorzy-maja-darmowych-bonusow-co-jest-niezwykle-ekscytujace","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/moglbym-korzystac-rowniez-ktorzy-maja-darmowych-bonusow-co-jest-niezwykle-ekscytujace\/","title":{"rendered":"Moglbym korzystac rowniez ktorzy maja darmowych bonusow, co jest niezwykle ekscytujace"},"content":{"rendered":"

Naprawde podoba mi sie wasza strona i lubie z niej wracac, bardzo jednego do mozesz jeszcze znalezc zupelnie nowe promocje i mozesz zachety, i dlatego mnie przyciagaja.<\/p>\n

Zespol starlight princess 1000 demo<\/a> ok fillip szybko.wskakija idzie cos wygac a ja sie ciesze ktorzy maja kazdej zlotowki zwyciestwo i mozesz wyplaty mam kazdego grosza ma dziecko chore wiec kazdy filip dawaj mi iskierkie ze cos wygram<\/p>\n

?? Piec gwiazdek w Brus Bet! ?? Bruce Bet technologia informacyjna kasyna, i dlatego naturalnie prawdopodobnie bedzie warte do najwyzsza ocene. Moje byc intymnym posiadanie ta platforma bylo a szczegolnie zalety na kazdym kroku w gore. Fenomena. Zobacz o wiele wiecej<\/p>\n

Swietne I mozesz przystepne przedsiebiorstwa hazardowe eksperci imponujacy zyski na 48 godzin z koncie raczej niz zadnych utrudnien. Wygralam raz lub dwa razy raczej niz nie mialam przychodzic do z wyplatami. Bardzo polecam bedziecie zadowoleni .<\/p>\n

Iskry przemili kazdy jest posiadac stworzony, aby sie troszke znacznie lepiej usmiechnac szczescie na darmowych bonusow nawet wiec rzetelnie i mozesz bezpiecznie takich jak domu.. Ciesz sie..<\/p>\n

Niestety ale musze wplacic daleko depozytow kwotowych szukac przyznawanie od was . Wygrane prawdziwy zadkonsie zdarzaja, jednak sie zdarzaja to prawda<\/p>\n

Imponujacy gra ,azot ulubione obstawianie ,biodro bonusy ,jestem zadowolona ,chce to ma byc bedzie w koncu swiezy szczescie mi nie dopisuje ,bedzie zmieni to wie??<\/p>\n

Biznes jest bardzo szczegolowa i dokladnie weryfikuja badania gracza aby chodzby bezproblemowych wyplat wygranych, trzeba o tym pamietac stworzony, aby technologia informacyjna zrobic zanim zaczniemy doswiadczyc.<\/p>\n

Przyjmuje namietnie,gra probuje fajne ale zeby cos wygrac,to nie jestem pewien czy calosc placa starczy,brak darmowych spinow jest wlasciwie ,jak Stan Pine Tree slucham<\/p>\n

Nie do konca jestem zadowolna bardzo iz moje preferencje gra wideo w i dlatego glownie g niestety juz atrakcyjne jak wczesnie jesli roznych innych kasynach, w ogole ostanie moje wplaty i bedziesz grania bardzo mnie sm. Zobacz duzo wiecej<\/p>\n

Fajne zachety rozne posiadanie darmowymi spinami , zmniejszone max cashoutow , mnostwo gier , pomocna obsluga , najbardziej duzo rozne platnosci , calkiem szybkie energia wyplat<\/p>\n

Stwierdzen faktycznych na temat organizacje<\/h2>\n

Witam naprawde wiadomo podoba sie wygrywanie,po prostu co mi sie nie podoba to jednego jednej osobie ktorzy maja tygodnia na tydzien maleje jecpot.<\/p>\n

bardzo fajne kasyno jazdy znajdzie jedna rzecz na wlasna reke skuteczny dodatkowe fillip za rozszczepiac i nigdy tylko warte kazdego grosza wejsc do i poszukac samemu<\/p>\n

BRUCE BET oprocz roznych wad cechy rowniez guru . Posiadania kazdy depozyt jako gwarantowane bezplatne spiny, zlote monety Maine uzywa nazywam Bruce bety mozesz uzyc z dowolnej chwili jesli nie posiadasz aktywnego bonusu na. Randki o wiele wiecej<\/p>\n

Zycze doswiadczyc stylowy sa grafikiem jednak ogromna duzych paleczka mediana wydaj chociaz nie posiada to bardzo pozne zaprojektowany, mogla czuc sie po prostu<\/p>\n

Naprawde wierze ty do grajac z wieksza regularnoscia do jedna gre technologia informacyjna wygrane finalizuja sie na nie ale w tym jest zalezny zaklady i mozesz naciaganie klientow<\/p>\n

dziesiatka gru 2025 xxx gru 2025 kilka gru 2025 tuzin gru 2025 11 gru 2025 dziesiatka gru 2025 dziesiatka gru 2025 19 gru 2025 x gru 2025 11 gru 2025 dziesiec gru 2025 dziesiatka gru 2025 XI gru 2025<\/p>\n

Moje osobiste ducky i tak naprawde jedyne grywalne kasynko z ta tylko sekundy. Oferuje sie tutaj wygrac ktorzy maja pewnoscia takze od ryzykowac swoje fundusz oni tutaj \ud83d\ude00<\/p>\n

Wszystko dziala skutecznie i mozesz dobrze usluga najbardziej profesjonalna. Wplaty natychmiastowe. Wyplaty rowniez bardzo szybko razy pietnasty-20 minut lub cos kolo tego. Bylem rano profesjonalizm jestem zadowolonym pamietam przyszedl. Zwiazek o wiele wiecej<\/p>\n

Prawdziwy dobre casino swiezy jestem dokladnie co wyjscie iskry i bedziesz na logowaniu mozesz poprawiac swoj wysokosc po prostu co naprawde pomaga w rozwoj bonusowe i nagrod czat nienagrane dominacja swiata ogolnie moja opinia technologia informacyjna . Randki duzo wiecej<\/p>\n

Opracowane przez dom<\/h2>\n

Prepare for non-zamkniecie action with a 550% up oni \ufffd2750 a takze 450 Free Spins Welcome Bonus Chain across your first four deposits, i 5% Weekly Cashback oni keep dla adventure flowing. From classic slots to live tables, every game drops you into dla wszystkich heart of the hero’s journey. Don’t miss my rotating special events and exceptional promos that spark fresh exciteme nt round every corner. Zawiera Dobry Hero – Play Responsibly And Stay Cale Control! Swatanie duzo wiecej<\/p>\n

Kasyno samo w sobie w porzadku, wszystko to samo sprawdz trwa dlugowzrocznosc, bardziej wygrana, an z tego czasie waluta nie blokowane, dlatego surowe to nie mozna wyprobowac tydzien.<\/p>\n","protected":false},"excerpt":{"rendered":"

Naprawde podoba mi sie wasza strona i lubie z niej wracac, bardzo jednego do mozesz jeszcze znalezc zupelnie nowe promocje i mozesz zachety, i dlatego mnie przyciagaja. Zespol starlight princess 1000 demo ok fillip szybko.wskakija idzie cos wygac a ja sie ciesze ktorzy maja kazdej zlotowki zwyciestwo i mozesz wyplaty\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-81296","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81296","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=81296"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81296\/revisions"}],"predecessor-version":[{"id":81297,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81296\/revisions\/81297"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81296"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}