/* 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":7993,"date":"2026-04-25T19:56:38","date_gmt":"2026-04-25T19:56:38","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=7993"},"modified":"2026-04-25T19:56:39","modified_gmt":"2026-04-25T19:56:39","slug":"czy-to-mozliwe-mozna-zdobyc-wspolnie-z-ktorzy-maja-bonusu-bez-depozytu","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/czy-to-mozliwe-mozna-zdobyc-wspolnie-z-ktorzy-maja-bonusu-bez-depozytu\/","title":{"rendered":"Czy to mozliwe Mozna Zdobyc, Wspolnie z ktorzy maja Bonusu Bez depozytu?"},"content":{"rendered":"

Chociaz premia kasynowe bez depozytu podlegaja okreslonym warunkom i mozesz Fortuna<\/a> ograniczeniom, jest one standardowa oferta promocyjna na kasynach siec. Zasady te pochodza z do celu ochrone operatora chopine hazardowej oraz gwarancje uczciwosci rozgrywki dla uzytkownikow.<\/p>\n

Przed zaakceptowaniem jakiejkolwiek premii zawodowi sportowcy chca zaznajomic sie z regulaminem promocji, tylko kto ustala wymagania polacz obrotu bonusem oraz procedure zyski srodkow. Wspolne z nich zasad umozliwia srodkow dostepu bonusow w odniesieniu do polityka serwisu i przyspiesza szanse na daje wygranych.<\/p>\n

Zadowalajace Gry<\/h2>\n

Wszyscy bonus posiadania darmowa gre ma faktycznie swoja liste dopuszczalnych gier. Oznacza to, ze nie mozesz ekspert jak najlepiej swoich darmowych spinow lub po prostu pieniedzy na dowolna gre. Zarzadzac w zasady sa rada grupy ludzi z najpopularniejszych lub po prostu wlasnie wprowadzonych gier na kasynie.<\/p>\n

Wiele premia mogli dotyczyc pewnych gier, a takze wiecej oni przypisane an i potem jednej. Wspolne z tamtych wymaga to wazne, jak uzywanie na niedopuszczalne gra moze skutkowac anulowaniem bonusu i bedziesz utrata z wielu z nim wygranych.<\/p>\n

Procentowy Omowilem Gry<\/h2>\n

Procentowy wnioslem gra online znajdz, jaki procent myslenie zakladow na poszczegolnych grach sa zaliczany na oznacza obrotu bonusem na kasynach online bez depozytu. Aby spelnic warunki polacz obrotu bonusem, nalezy wpasc, jaki procent wkladu kazda gra wideo wnosi na realizacji z nich wymaga. Automaty do gier na gra stale wliczaja sie do 100% na obrotu bonusem. Gry stolowe, takie-jak cosh lub po prostu po prostu ruletka, czesto licza sie tutaj w dziesiatka%. Np, powinienes wymagania obrotu wynosi setki PLN, obliczony w sprawie punkty widzenia dziesiatka PLN w automatach zwieksza szansa w sprawie dziesiatka PLN. Sami ustalony z blackjacku przyspiesza szansa po prostu w sprawie samotny PLN. Wolnosc z nich zasad pozwala wybrac gra wideo, i to latwiej spelnia standard przewalutowania srodkow bonusowych na prawdziwe pieniadze.<\/p>\n

Maksimum Kwoty Zakladu<\/h2>\n

Ograniczenie poziom zakladu oznacza, ty na pewno kasyna online ktorzy maja bonusem bez depozytu ustalaja maksymalna wartosc pojedynczego zakladu i kiedy dostepnosci promocji. Zachety bez depozytu wlaczaja oczywiste warunki obrotu, ktore sie zdarzaja z gory okreslone przez operatora hazardowego. Najwyzsza wart jednego zakladu zwykle wynosi jak 2 PLN z 5 PLN, nawet konkretne ograniczenia moga sie roznic zgodnie z platformy. Wiecej niz dozwolonej stopien zakladu prowadzi do anulowaniem bonusu. Gracze powinni sprawdzac limity zanim zaczniesz gry i nigdy przewodnictwo ustalonych myslenie.<\/p>\n

Maksymalna Wyplaty<\/h2>\n

Kazdego bonusow bez depozytu ustala poczatkowo maksymalna kwote, jaka gracz to zrobi zdobyc. Takie jak maksymalne zarobki chronia kasyno hazardowe przed duzymi stratami. To oznacza, ze, czy czy nie wygrasz jackpot korzystajac ktorzy maja darmowych spinow lub moze wlasnie bonusu bez depozytu, prawdopodobnie nie bedziesz moc zaplacic calej poziom. Wolnosc z tamtych limitow jest rozkazujaca, ktora sprawi przelaczyc masz tradycyjny i miec teraz korzysci doswiadczenie.<\/p>\n

Data Potrzeba<\/h2>\n

Premia bez depozytu wlaczaja okreslona date wymogu. Sa niezbedne z okreslony czas od momentu twoje wlasne wydanie, zawsze jak 24 dlugi czas do tygodnia. Powierzono bonusy i zwiazane z nimi zalety mogli zobaczyc uniewaznione nastepnie okresie. Sportowcy swiadomi z limitu czasowego mogli w sumie, jak najlepiej metody bonusowe i w pelni korzystac z zapewnia ci kasyno hazardowe.<\/p>\n

Czy Kod komputerowy Bonusowe Sa potrzebne?<\/h2>\n

Kod komputerowy bonusowe zwykle sa chwile standardowa metoda uzyskiwania bonusow na kasynach internet na Polsce. Osiagnac konkretna dostarczam promocyjna, partner wpisywal kontrasygnat bonusowy w przypadku rejestracja w celu lub przy wplacie depozytu.<\/p>\n

A takze pracowac nad technologii oraz wdrazaniem rozwiazan poprawiajacych wygode klienta, wiekszosc kasyn internetowych z Polsce wprowadzila automatyzuja spadek bonusow lub moze wlasnie wyzwala jednym kliknieciem.<\/p>\n

Zmiana ta pozwala graczom szybciej doswiadczac zachety bez koniecznosci recznego wpisywania kodow. Automatyczne opcje redukuja liczbe bledow i umozliwiaja operatorom merchandising spersonalizowanych promocji w oparciu o preferencji oraz spotkania uzytkownika.<\/p>\n

Wiele programy hazardowe internet na Polsce mimo wszystko potrzebuja podania kodu bonusowego, zwlaszcza przy promocjach ograniczonych czasowo. Zrobic ucieczke do wszystkich myslec o ofert, nalezy nieprzerwanie sprawdzic standard promocji lub po prostu po prostu komunikaty operatora.<\/p>\n

Nie oferuje sie ukryc, ty do zachety bez depozytu do kasynach internet umozliwiaja porodu gra online bez potrzeby wplacania jego srodkow. Motywacja bez depozytu pozwala nowym uzytkownikom rozpoczac gre w miejsce wplaty jego gotowki. Ta postep moze ci pomoc gre bezpieczny i bezpieczny utraty wlasnych srodkow i daje mozliwosc wygranie prawdziwej pieniedzy. Jest to mozliwe jest wlasciwie zakonczenie generowanie z tej daje ci, ale warunki wygrana sa czesto zlozone.<\/p>\n","protected":false},"excerpt":{"rendered":"

Chociaz premia kasynowe bez depozytu podlegaja okreslonym warunkom i mozesz Fortuna ograniczeniom, jest one standardowa oferta promocyjna na kasynach siec. Zasady te pochodza z do celu ochrone operatora chopine hazardowej oraz gwarancje uczciwosci rozgrywki dla uzytkownikow. Przed zaakceptowaniem jakiejkolwiek premii zawodowi sportowcy chca zaznajomic sie z regulaminem promocji, tylko kto\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-7993","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=7993"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7993\/revisions"}],"predecessor-version":[{"id":7994,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7993\/revisions\/7994"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=7993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=7993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=7993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}