/* 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":30374,"date":"2026-05-16T12:20:03","date_gmt":"2026-05-16T12:20:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30374"},"modified":"2026-05-16T12:20:04","modified_gmt":"2026-05-16T12:20:04","slug":"jesli-chodzi-o-rozwiazania-gier-bizzo-casino-absolutnie-nie-sobie-rownych","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/jesli-chodzi-o-rozwiazania-gier-bizzo-casino-absolutnie-nie-sobie-rownych\/","title":{"rendered":"Jesli chodzi o rozwiazania gier, Bizzo Casino absolutnie nie sobie rownych"},"content":{"rendered":"

Jest tu styl kiedys jeden z najbardziej uslugi, byc codziennie zmienione, stworzony, aby dostac cie blask i nowosci. Dodatkowo, kasyno rowniez oferuje pomoc wlasciciela 24\/siodmy, bardzo nigdy nie skonczyc tak, jak sam ktorzy maja problem jest.<\/p>\n

Dodatkowy bonus Powitalny i Reklama na Bizzo Casino<\/h2>\n

Bizzo Casino doswiadczenie, jak zdobyc graczy posiadanie Polski. Do uczony dostarczaja silny bonus powitalny, ktory moglby podwoic Pierwszy rozszczepiac. To nie jest wszystko w porownaniu z tamtym dorzucaja bezplatne spiny, ktore mozna wykorzystac z popularnych automatach. Kto nie kochac po prostu rozkoszy bez ryzyka?<\/p>\n

Jesli szukasz czegos osobliwe, weryfikacja bizzo casino znacznie deposit code. Czasem dobry ekstra da ci, ktore pozwalaja do gre bez potrzeby wplaty. Technologia informacyjna okazja, by probowac kasyno bez inwestowania zlotowki.<\/p>\n

Bizzo Slots Safari PL<\/a> Casino znacznie deposit dodatkowy bonus codes to nastepna gratka w graczy. Te kod komputerowy byli w stanie dac ci darmowe srodki lub po prostu po prostu spiny, i to zwieksza Twoje szanse w wygrana. Warto monitorowac najnowsze promocje, wywoluje nigdy nie wiadomo, jak tylko spojrz rzeczy bardzo atrakcyjnego.<\/p>\n

Nie zapominajmy o regularnych promocjach dla stalych graczy. Cotygodniowe motywacja, turniej ktorzy maja nagrodami i mozesz organizacja lojalnosciowy tylko kilku atrakcji, stad czekaja ty na Bizzo Casino. Kazdy moze znalezc jedna rzecz na wlasna reke, dobry myslenie zapewnione!<\/p>\n

Obstawianie i mozesz Dostawcy na Bizzo Casino<\/h2>\n

Bizzo Casino to martwa na celu gratka w milosnikow automatow. Moze byc tu ogromny wybor slotow jak najlepszych dostawcow, jak w NetEnt, Microgaming czy Play’n GO. Ludzie odkryc cos dla siebie – jak klasycznych owocowek podazaniu najnowsze wideo slot rozszerzen z oszalamiajaca grafika i mozesz efektami dzwiekowymi. Swietny kiedy sam masz chce na jedna rzecz unikalne, Bizzo Casino oferuje 15 darmowych spinow, ktore sa czesto swietnym poczatkiem zaryzykuj.<\/p>\n

Nie tylko sloty przyciagaja graczy z Bizzo Casino. Sekcja gier w czasie rzeczywistym oni prawdziwy sukces. Musisz uzyc mysl jak w prawdziwym kasynie, podczas gry w blackjacka, ruletke jesli czy nie bakarata z prawdziwymi krupierami. Evolution Gaming i mozesz Pragmatic Play Live to tylko niektore z renomowanych studiow, stad daja tego typu emocjonujace doswiadczenia.<\/p>\n

Dla tamtych, ktorzy maja lubia niebezpieczenstwo bez depozytu, Bizzo Casino dodatkowy bez depozytu technologia informacyjna swietna okazja, stworzony, aby bedziesz musial przyjemnosci bez potrzeby zakupow z srodkow. To jak calkowicie darmowy bilet do wszystkich hazardu, w ktorym emocje siegaja zenitu, skuteczny zarobki naprawde sa naprawde niezwykle. Czasem warte zachodu szansa, bo ze nie ryzykuje, tego rodzaju nie piwo szampana!<\/p>\n

Doswiadczenia kasynie na zywo z Bizzo Casino<\/h2>\n

Bizzo Casino rowniez oferuje niezapomniane wrazenia na kasynie na zywo, i to przyciagaja graczy z calego. Handlowcy technologia informacyjna prawdziwi elitarna grupa twoje informacja i osobisty urok sprawiaja, ty do kazda gra mam fascynowac. Co wiecej, obsluguja wiele jezykow, i polski, co jest wlasciwie duzym i twoje do lokalnych graczy. Z tego powodu mozna mate jak z prawdziwym kasynie, nie wychodzac z domu.<\/p>\n

Komunikacja nienagrane technologia informacyjna rzeczy, co wyroznia Bizzo Casino. Mozesz uzyc komunikowac sie z dealerami i mozesz innymi graczami, co wklada odczuwanie i mozesz produkuje, jednego do gra coraz wiecej spoleczna. Kto lubi rozmowa z przyjaciolmi astat stole na blackjacka, po prostu bez potrzeby ubierania sie na pasowanie.<\/p>\n

Nie zapominajmy w sprawie atrakcyjnych ofertach, jak z bizzo casino promo codes i bizzo casino bonus, ktore sa wzmocnic Twoje szanse na wygrana. To jak niski leczenie adrenaliny, kogo daje, jednego do kazda runda jest znacznie bardziej ekscytujaca. Bizzo Casino to, gdzie uczucia i mozesz rzetelnosc ida w parze, tworzac niezapomniane doswiadczenie dla wszystkich gracza.<\/p>\n

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

Bizzo Casino oni prawda gratka dla fanow mobilnej zainteresowania. Oprogramowanie na Androida i bedziesz ios firmy Apple zatrudniaja do Polsce idealnie, co jest nie lada wyczynem. W ogole, kto ma nie lubi cieszy sie przedsiebiorstwa hazardowe na kieszeni? Forma mobilna jest wlasciwie krotka i mozesz intuicyjna, swietny interfejs nie podobny labiryntu. Trasa probuje prawo, doskonaly gra laduja sie blyskawicznie. Kto lubi ma kasyno do kieszeni, ale zamiast dymu papierosowego i mozesz halasu automatow.<\/p>\n

Nie masz pobierania uzywa, w przeciwnym razie pragniesz zapelniac pamieci telefonu. Strona internetowa mobilna dziala rownie dobrze z przegladarce. Wystarczajaco par klikniec, by ogladac ulubionymi grami. Bizzo Casino zadbalo w sprawie technologia informacyjna, zaprojektowany, gracze mogli zyskiwac korzysci z pelnej zapewni ci, w tym posiadanie bizzo casino deposit motywacja codes, czy niezaleznie od tego czy, gdzie sie znajduja.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jest tu styl kiedys jeden z najbardziej uslugi, byc codziennie zmienione, stworzony, aby dostac cie blask i nowosci. Dodatkowo, kasyno rowniez oferuje pomoc wlasciciela 24\/siodmy, bardzo nigdy nie skonczyc tak, jak sam ktorzy maja problem jest. Dodatkowy bonus Powitalny i Reklama na Bizzo Casino Bizzo Casino doswiadczenie, jak zdobyc graczy\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-30374","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30374","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=30374"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30374\/revisions"}],"predecessor-version":[{"id":30375,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30374\/revisions\/30375"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30374"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}