/* 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":31118,"date":"2026-05-16T13:18:44","date_gmt":"2026-05-16T13:18:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31118"},"modified":"2026-05-16T13:18:45","modified_gmt":"2026-05-16T13:18:45","slug":"w-odniesieniu-do-wybory-gier-bizzo-casino-absolutnie-nie-sobie-rownych","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/w-odniesieniu-do-wybory-gier-bizzo-casino-absolutnie-nie-sobie-rownych\/","title":{"rendered":"W odniesieniu do wybory gier, Bizzo Casino absolutnie nie sobie rownych"},"content":{"rendered":"

Jest tu styl jak najlepszych uslugi, byc codziennie aktualizowane, stworzony, aby zapewnic promieniowanie i mozesz nowosci. Dokladnie w tym samym czasie, kasyno hazardowe rowniez zapewnia pomoc uzytkownika 24\/siodmy, wiec nigdy nie przeksztalcony sam z problemem.<\/p>\n

Bonus Powitalny i Oferty z Bizzo Casino<\/h2>\n

Bizzo Casino rozumie, jak zbudowac graczy z Polski. Na uczony daja solidny dodatkowy bonus powitalny, ktory moglby zwiekszyc Pierwszy rozszczepiac. To nie wszystko w porownaniu z tamtym dorzucaja darmowe spiny, wykazac jak najlepiej do popularnych automatach. Kto by nie kochac po prostu uzywac bezpieczny i bezpieczny?<\/p>\n

Jesli szukasz czegos ograniczone, weryfikacja bizzo casino no deposit code. Czasem pojawiaja sie osobliwe da ci, ktore pozwalaja w gre bez potrzeby wplaty. Technologia informacyjna swietna okazja, zaprojektowany, podjac kasyno hazardowe raczej niz platnosci zlotowki.<\/p>\n

Bizzo Casino naprawde deposit bonus codes technologia informacyjna kolejna gratka w graczy. Tego typu kod komputerowy moga zapewnic ci darmowe srodki lub po prostu spiny, i to zwieksza Twoje szanse na wygrana. Warto ogon aktualne kampanie, iskry nigdy nie wiadomo, kiedy przyjdz cos bardzo atrakcyjnego.<\/p>\n

Nie zapominajmy w sprawie regularnych promocjach dla stalych graczy. Cotygodniowe bonusy, zawody ktorzy maja nagrodami i bedziesz uklad lojalnosciowy to tylko niektore z atrakcji, i to czekaja na ciebie na Bizzo Casino. Kazdy jest w stanie znalezc cos dla siebie, swietny nastawienie zapewnione!<\/p>\n

Obstawianie i bedziesz Biznes z Bizzo Casino<\/h2>\n

Bizzo Casino to prawdziwa gratka w milosnikow automatow. Jest tu ogromny wybor slotow jak w zasadzie najbardziej obsluga, jak w NetEnt, Microgaming czy Play’n GO. Ktos odkryc cokolwiek dla siebie – od klasycznych owocowek po aktualne filmy sloty ktorzy maja oszalamiajaca grafika i bedziesz efektami dzwiekowymi. A dla tych, ktorzy maja pragnienie na jedna rzecz osobliwe, Bizzo Casino rowniez zapewnia pietnasty darmowych spinow, ktore sa ogolnie swietnym poczatkiem przygody.<\/p>\n

Nie tylko automaty do gier przyciagaja graczy na Bizzo Casino. Sekcja gier w czasie rzeczywistym to najbardziej popularny. Mozesz wykorzystac mate jak z prawdziwym kasynie, grajac forBET<\/a> na blackjacka, ruletke jesli bakarata ktorzy maja prawdziwymi krupierami. Evolution Gaming i mozesz Pragmatic Play Live tylko kilku renomowanych studiow, stad dostarczaja te emocjonujace doswiadczenia.<\/p>\n

Dla tamtych, to wola ryzyko bez depozytu, Bizzo Casino dodatkowy bez depozytu to okazja, by poczynic wysilek, zeby przyjemnosci bez koniecznosci platnosci wlasnych srodkow. To jak calkowicie darmowy dobrze do wszystkich hazardu, w ktorym mysli siegaja zenitu, doskonaly wyplaty oni bardzo imponujace. Czasem korzystne szansa, wywoluje kto ma nie ryzykuje, ten rodzaj nie pije szampana!<\/p>\n

Wiedza kasynie na zywo na Bizzo Casino<\/h2>\n

Bizzo Casino nawet oferuje niezapomniane mysli do kasynie nienagrane, i to przyciagaja graczy zewszad. Handlowcy technologia informacyjna prawdziwi elita twoje madrosc i mozesz osobisty magnetyzm sprawiaja, jednego kazda gra wideo dostane przyjemnoscia. Oprocz tego, obsluguja wiele jezykow, a takze polski, co dokladnie jest duzym plusem do lokalnych graczy. Z tego powodu mozesz poczuc sie jak w prawdziwym kasynie, nie wychodzac z domu.<\/p>\n

Interakcja na zywo technologia informacyjna cokolwiek, dokladnie co wyroznia Bizzo Casino. Mozesz utrzymywac kontakt z dealerami i mozesz innymi graczami, dokladnie co przynosi odczuwanie i mozesz generuje, ze gra wideo zaczyna byc wiecej spoleczna. To jak rozmowa z przyjaciolmi w stole w blackjacka, tylko bez potrzeby ubierania sie na garnitur.<\/p>\n

Nie zapominajmy w sprawie popularny wsrod ofertach, jak w bizzo casino promo codes i mozesz bizzo casino filip, ktore moga wzmocnic Twoje szanse na wygrana. To jak uzupelniajacy zastrzyki adrenaliny, ktory buduje, jednego do kazda runda dodatkowo jest jeszcze bardziej ekscytujaca. Bizzo Casino to, w ktorym uczucia i bedziesz rzetelnosc ida do parze, robiac niezapomniane wiedza dla gracza.<\/p>\n

Bizzo Casino w Urzadzeniach Mobilnych<\/h2>\n

Bizzo Casino technologia informacyjna martwa na celu gratka entuzjastow mobilnej rozrywki. Aplikacje w Androida i bedziesz ios firmy Apple dzialaja na Polsce idealnie, co nie blat wyczynem. W kazdym razie, kto ma nienawisc miec kasyno hazardowe na kieszeni? Styl mobilna bylo krotka i bedziesz intuicyjna, swietny oprogramowanie nie podobny labiryntu. Nawigacja jest wlasciwie prawo, doskonaly gra laduja sie blyskawicznie. Kto lubi posiada kasyno hazardowe w kieszeni, jednak bez dym papierosowego i bedziesz halasu automatow.<\/p>\n

Nie masz pobierania funkcji, lub nawet chcesz zapelniac trwalosc telefonu. Strona internetowa mobilna dziala rownie dobrze na przegladarce. Wystarczy kilka klikniec, by ogladac ulubionymi grami. Bizzo Casino zadbalo w sprawie oni, by zawodowi sportowcy mogli cieszyc sie pelnej daje ci, i ktorzy maja bizzo casino deposit bonus codes, czy, gdzie sie znajduja.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jest tu styl jak najlepszych uslugi, byc codziennie aktualizowane, stworzony, aby zapewnic promieniowanie i mozesz nowosci. Dokladnie w tym samym czasie, kasyno hazardowe rowniez zapewnia pomoc uzytkownika 24\/siodmy, wiec nigdy nie przeksztalcony sam z problemem. Bonus Powitalny i Oferty z Bizzo Casino Bizzo Casino rozumie, jak zbudowac graczy z Polski.\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-31118","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31118","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=31118"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31118\/revisions"}],"predecessor-version":[{"id":31119,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31118\/revisions\/31119"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31118"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}