/* 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":80960,"date":"2026-05-23T05:31:12","date_gmt":"2026-05-23T05:31:12","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=80960"},"modified":"2026-05-23T05:31:14","modified_gmt":"2026-05-23T05:31:14","slug":"pozwala-technologia-informacyjna-uniknac-dodatkowych-konsumpcji-przewalutowania-i-mozesz-uczynic-gre-jednak-wygodniejsza","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/pozwala-technologia-informacyjna-uniknac-dodatkowych-konsumpcji-przewalutowania-i-mozesz-uczynic-gre-jednak-wygodniejsza\/","title":{"rendered":"Pozwala technologia informacyjna uniknac dodatkowych konsumpcji przewalutowania i mozesz uczynic gre jednak wygodniejsza"},"content":{"rendered":"

Sportowcy mogli otworzyc ranking w kilku walutach, rowniez do dolarach amerykanskich (USD), euro (EUR) oraz, co najwazniejsze w graczy ktorzy maja Polski, do polskich zlotych (PLN).<\/p>\n

Normalnie, Crazy Time<\/a> program uzywanie w Candy Przedsiebiorstwa hazardowe bylo gietki, zaawansowany i bedziesz latwy w uzyciu. Moja opinia \ufffd cztery.6 na 5, jak kasyna rowniez zapewnia szeroki asortyment sposoby i mozesz natychmiastowe obsluga transakcji.<\/p>\n

Dolaczanie Candy Casino<\/h2>\n

Procesy rejestracja w celu do Candy Casino jest w sumie, uproszczony, a ja poradzilem sobie wdrazajac go doslownie w minute. Spodobalo mi sie, ze nie trzeba z pewnoscia wypelniac dlugich formularzy. Wszystko jest intuicyjne, szybkie raczej niz sprawia zadnych klopoty.<\/p>\n

    \n
  1. Kliknij przycisk \ufffdZarejestruj sie\ufffd na stronie glownej.<\/li>\n
  2. Na formularzu, ktory sie pojawi, wpisz swoj adres wiek-mail i bedziesz wymysl bezpieczne kod.<\/li>\n
  3. Jakosc walute poziomy, tak PLN.<\/li>\n
  4. Udowodnij, masz ukonczone 18 lata i bedziesz zgadzasz sie posiadanie regulaminem kasyno.<\/li>\n
  5. Kliknij opcja \ufffdZaloguj sie\ufffd, produkowac pozbyc sie operacja.<\/li>\n<\/ol>\n

    I potem od razu zalogowalem sie do swoje ranking i mozesz udalo mi sie robic depozytu. Warto rozumiec, ty na pewno przed pierwsza wyplata srodkow kasyna poprosi w sprawie dokumenty w celu weryfikacji tozsamosci. Masz to standardowa proces, chociaz na rynku wystepuja wraz z kasyno zamiast weryfikacji, ktore oferuja inny konto teoretyczne gra.<\/p>\n

    Regiony objete ograniczeniami na Candy Casino<\/h4>\n

    Kwestia srodkow dostepu kasyno jest zmienna przez licencje Curacao, rowniez z orzecznictwo kraju, gdzie znaleziony obstawiajacy. Warte kazdego grosza wskazac, ty na pewno Candy Casino oni jedno z wielu zagraniczne kasyna internetowe dostepnych w Polakow. Ludzie obstawiajacy rachunki sprawdzenie, czy czy nie hazard online jest przeznaczenie w jurysdykcji i mozesz czy badanie kasyno internetowe profesjonalne idzie na jego terenie. Tuz przed rejestracja stale bardzo polecam zapoznanie sie ktorzy maja regulaminem kasyna, gdzie jest podana numer krajow, ktorych zawodowi sportowcy nie moga nie czlonkostwo.<\/p>\n

    Obsluga klienta w Candy Kasyno<\/h2>\n

    Obsluga klienta w Candy Kasyno hazardowe funkcja o kazdej godzinie i mozesz siedem dni w tygodniu (24\/7), co jest ogromnym i twoje. Kilka razy kontaktowalem sie ktorzy maja czatem na stronie internetowej z roznymi pytaniami, dobry kierowca odpowiadal mi w razy. Komunikacja wczesna profesjonalna, a moje osobiste trudnosci byly rozwiazywane szybko i mozesz merytorycznie. Rowniez czatu w czasie rzeczywistym, mozna a takze odkryc pomoc, piszac w adres na wschod-mail Pomoc sa udzielane w kilku jezykach, razem z nastepowaniu angielsku i polsku, co jest wlasciwie bardzo przydatne.<\/p>\n

    Jakosc obslugi uzytkownika jest najbardziej kluczowych wskaznikow wiarygodnego przedsiebiorstwa hazardowe. Moja ocena obslugi klienta \ufffd piec na piec, od pracuja oni sprawnie, umiejetnie i bedziesz skutecznie.<\/p>\n

    Podsumowanie<\/h2>\n

    W koncu moje osobiste doswiadczenia z gra na Candy Casino, moge po prostu to zrob ujawnie, to przedsiebiorstwa hazardowe pozostawilo u mnie najbardziej korzysci wrazenia. Podobal mi sie pewien i doskonaly design, liczne gier jak najlepszych dostawcow oraz niezwykle dobry organizacja bonusowy, kogo zaczyna sie od milego bonusu bez depozytu. Konflikt alternatywa plynna, strona internetowa dziala szybko i albo na komputerze, od i mozesz na urzadzeniu mobilnym. W tym ucieszyla mnie predkosci wyplat i mozesz calodobowa obsluga klienta, to bedzie pomaga opiekowac sie klopoty. Jednakze, chce zobaczyc pelnoprawna uruchom ponownie mobilna, nawet styl PWA razem z w pelni pasuje masz zadania. Oczywiscie organizuje wrocic do na kasyno, jak zaprojektowano tu wszystkie wymagania na komfortowej, bezpiecznej i mozesz ekscytujacej gra online.<\/p>\n

    Jakiekolwiek bonusy pojawia sie w Candy Przedsiebiorstwa hazardowe w nowych graczy?<\/h4>\n

    Nowi sportowcy na Candy Kasyna mogli oczekiwac setki darmowych obrotow za rejestracji, i na paczka powitalny przeciagniecie numer jeden trzy depozyty. W pierwszym depozycie mozna wybrac jeden w trzech bonusow: 200%, 100% lub moze wlasnie 150 darmowych spinow. Czasem w branzy dzwiek jak mozesz zapewni ci na bezplatne 100 zl bez depozytu, ale oferta Candy Casino skupia sie na obrotach i bedziesz bonusach procentowych.<\/p>\n

    Jesli mozna znalezc ograniczenia polacz srodkow dostepu bonusow?<\/h4>\n

    W tym, dla wielu bonusow wystepuja standardy obrotu (wager), i dlatego nalezy spelnic przed wyplata wygrana. Mogli rowniez obowiazywac ograniczenia istotne maksymalnej koszt podczas gry ze srodkami bonusowymi. Zawsze bardzo polecam uwazne sortowanie warunkow kazdej promocji.<\/p>\n","protected":false},"excerpt":{"rendered":"

    Sportowcy mogli otworzyc ranking w kilku walutach, rowniez do dolarach amerykanskich (USD), euro (EUR) oraz, co najwazniejsze w graczy ktorzy maja Polski, do polskich zlotych (PLN). Normalnie, Crazy Time program uzywanie w Candy Przedsiebiorstwa hazardowe bylo gietki, zaawansowany i bedziesz latwy w uzyciu. Moja opinia \ufffd cztery.6 na 5, jak\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-80960","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80960","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=80960"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80960\/revisions"}],"predecessor-version":[{"id":80961,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/80960\/revisions\/80961"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=80960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=80960"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=80960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}