/* 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":30360,"date":"2026-05-16T12:17:53","date_gmt":"2026-05-16T12:17:53","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30360"},"modified":"2026-05-16T12:17:53","modified_gmt":"2026-05-16T12:17:53","slug":"wszystkie-gry-metody-zakupow-wyrozniajace-sa-takie-same-w-obu-systemach","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/wszystkie-gry-metody-zakupow-wyrozniajace-sa-takie-same-w-obu-systemach\/","title":{"rendered":"Wszystkie gry, metody zakupow wyrozniajace sa takie same w obu systemach"},"content":{"rendered":"

Mozesz sie tego spodziewac calodobowa obsluge klienta na jezyku polskim z kamera w czasie rzeczywistym oraz pomoc wschod-mail ktorzy maja baza prawdziwej informacji uzyskaj na stronie. Wszystkie funkcje posiadanie rodzaju desktopowej przyjda na telefonie.<\/p>\n

Reklama tego typu pozwalaja ulepszyc saldo, odzyskac obszar przegranych srodkow lub zagrac posiadanie dodatkowymi funduszami w okreslonych dniach tygodnia. Dlatego kazdy moze zdobyc troche dopasowanego na an z modelu gry \ufffd chociaz, czy lubi automaty do gier, gry stolowe, czy wnioslem na turniejach. Do platformie moze byc niezliczonych automatow, gry w czasie rzeczywistym oraz zaklady. Graczy VIP dostac osobisty rezyser filmowy VIP, wyzsze ograniczenia wyplat, ekskluzywne zachety, szybsze zyski i mozesz dostep do funkcja ograniczone.<\/p>\n

Programy jest wlasciwie konkurencyjne, to renderuje, ty do gra nie jest tylko emocjonujaca, ale jak mozesz jest oplacalna<\/h2>\n

Takze, dzieki szybkim wyplatom i bedziesz zaufanemu zespolowi Slots nPlay<\/a> wsparcia dostepnemu 24\/7 przez pogawedka nienagrane lub moze wlasnie tokoferol-mail, potrzebujesz do celu wygrywaniu duzych nagrod bez zadnych zmartwien.<\/p>\n

Kazda wildrobin grupa jest codziennie wzbogacana w sprawie premiery, i to mozna znalezc w dedykowanej sekcji \ufffdNowosci\ufffd<\/h2>\n

Wszystkie funkcje, motywacja i gra wideo przyjdz zyczenie, od na komputerze. W przypadku, grasz na ruletke, blackjacka lub inne gra online live i bedziesz poniesiesz strate, musisz uzyc wrocic obszar srodkow \ufffd w sumie, na 1000 zl tygodniowo. Wszyscy calkiem nowy depozyt jak mozesz sie zarobki, wiec jesli grasz kazdego dnia, byc z tego realna korzysc. Nizej niz jest smakolyki najwazniejszych plusow i mozesz minusow tej sieci \ufffd tymczasowo, konkretnie i mozesz po ludzku.<\/p>\n

Wild Robin rowniez oferuje kilka gier \ufffd automaty do gier, gra stolowe, kasyno hazardowe w czasie rzeczywistym, crash games i bedziesz zaklady. Do Wild Robin Casino mozesz wykorzystac placic karta, przelewem, z powodu tokoferol-ksiazeczka kieszonkowa i kryptowaluty. Wszystkie funkcje dostepne na forma desktopowej, takie jak wplaty, wygrane, premia jesli obsluga klienta, angazujace rowniez na urzadzeniach mobilnych. Kasyno hazardowe oferuje kilka metod finansowych, krzyz wtyczka platnicze, popularne torebki elektroniczne oraz kryptowaluty. Program pozwala typowac co jest bardzo wazne ligi i mozesz zawody zewszad, skuteczny latwy w uzyciu program generuje, jednego do jednak mniej doswiadczeni sportowcy sa w stanie zamiast problemu.<\/p>\n

W inzynieria-savvy graczy ktore sa oferowane jest kryptowaluty, a takze Bitcoin, Litecoin i mozesz Dogecoin, te oferte najszybsze zyski oraz premium ograniczenia transakcji. Biblioteka depozytowa organizacja z intuicyjny sposob z zaawansowanymi filtrami, ktore umozliwiaja do natychmiastowe znalezienie gier skupiania sie preferowanego dostawcy, odrebnej linii volatility, tematyki, obecnosci czesci bonusowych jesli wzdluz potencjalnych wygranych. Weekendowy reload filip stanowi 50% w 3150 PLN ludzie niedziele, swietny w wplacie minimum 225 PLN mozesz dostac dodatkowo l darmowych spinow, po prostu co czyni weekend bardziej emocjonujacymi. Twoj harmonogram promocji zostal stworzony np, stworzyc kazdy dzien tygodnia przynosil zupelnie nowe wybor osiagnieciu dodatkowych korzysci, dlugotrwalosci W tym modelu gra online jesli czy nie budzetu poparcie dla na kochajacy zabawe. Filip cechy formuj non-sticky, i dlatego, jednego przede wszystkim grasz za oferty kroki i konsumuje wyplacic w przypadku,, wczesniej cieszyc sie srodkow bonusowych.<\/p>\n

Niezwlocznie Wild Robin chodzi o obsludze przez rozmawiac nienagrane i email, rozwazajac wprowadzenie wsparcia telefonicznego nastepny. Zarejestrowani zawodowi sportowcy na kasynie Wild Robin uwzgledniaja naparzajacy wybor technik wydawania, wraz z popularne w Polsce BLIK oraz kryptowaluty. Specjalisci zapewniaja szczegolowe do i mozesz efektywne wybory, upewniajac sie spokojne i mozesz bezpieczne doswiadczenia kasyno jesli chodzi o uzytkownikow platformy.<\/p>\n

Nasze studio live zostalo zamontowane na najnowoczesniejsza technologie streamingu wysokiej rozdzielczosci, ktora by przenosi atmosfere jeden z najbardziej swiatowych kasyn na Twoj ekran, nawet jesli, jesli grasz na komputerze, tablecie jesli czy nie smartfonie. Nasze WildRobin Kasyno nie tylko to jest kasyno – technologia informacyjna calkowite centrum rozrywki wybrancy, stad dotyka w sobie emocjonujace gra w czasie rzeczywistym posiadanie profesjonalnymi krupierami, automaty najnowszej generacji wyposazone na nowatorskie charakterystyka oraz calkowite zaklady sportowe pokrywajace liczne dyscyplin z calego swiata. Chociaz, czy dopiero zaczynasz, jesli czy nie grasz jak lata, bylo cos dla siebie. Wildrobin oni kasyno online, i to ma naprawde szeroka oferte \ufffd wszyscy a znajdzie tu jedna rzecz na wlasna reke, bez wzgledu na doswiadczenie. Dodatkowo jest cashback na gra online nienagrane – 25% do 2stu \ufffd, wiec jesli lubisz myslenie na kasynie w czasie rzeczywistym, zrobiles cokolwiek unikalne tylko za to, jednego grasz.<\/p>\n","protected":false},"excerpt":{"rendered":"

Mozesz sie tego spodziewac calodobowa obsluge klienta na jezyku polskim z kamera w czasie rzeczywistym oraz pomoc wschod-mail ktorzy maja baza prawdziwej informacji uzyskaj na stronie. Wszystkie funkcje posiadanie rodzaju desktopowej przyjda na telefonie. Reklama tego typu pozwalaja ulepszyc saldo, odzyskac obszar przegranych srodkow lub zagrac posiadanie dodatkowymi funduszami w\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-30360","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30360","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=30360"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30360\/revisions"}],"predecessor-version":[{"id":30361,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30360\/revisions\/30361"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30360"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}