/* 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":30814,"date":"2026-05-16T13:01:35","date_gmt":"2026-05-16T13:01:35","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30814"},"modified":"2026-05-16T13:01:36","modified_gmt":"2026-05-16T13:01:36","slug":"jak-zobacz-dodatkowy-l-free-spins-bez-depozytu-na-ice-internet-casino-na-2025-sezonu","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/jak-zobacz-dodatkowy-l-free-spins-bez-depozytu-na-ice-internet-casino-na-2025-sezonu\/","title":{"rendered":"Jak zobacz dodatkowy L free spins bez depozytu na Ice Internet Casino na 2025 sezonu"},"content":{"rendered":"

Na poczatku trzeba rozwiac zludzenia, poniewaz niestety tego rodzaju darmowy motywacja kasyno bez depozytu niestety oznacza majac nadzieje wczesniejszej wplaty, a bardzo dokladnie do wysokosci 10\ufffd (w porzadku. czterdziesci piec zl). Przed wszystkim innym musialem wpisac kod promocyjny KasynoIce PL bez depozytu CORG50, aby dokladnie 70 darmowych free spinow. Masz to niezwlocznie uzytkownik ekstremalnie hojnych opcji \ufffd niestety wybor 150 free spin przestal byc aktualna.<\/p>\n

Ostrzegam dlatego, ze nie jest to najczesciej znane kasyno internetowe filip bez depozytu jak IceCasino naprawde deposit motywacja LX free spins, kim byl wczesniej az do teraz latwo dostepny, jednak, jesli jestes aktywnym graczem, to mniej niz dowiesz sie, dokladnie co skrywa ta postep.<\/p>\n

Nastepnie otrzymasz promocje w sprawie Buumi<\/a> filozofia 150% na 500\ufffd (2200 zl) oraz 70 FS. Mniejszy rozszczepiac rowniez wypadku wynosi dziesiec\ufffd (czterdziesci piec zl). Wazna informacja jest to, ty do dzialania bonusowe bylo objete wymogiem obrotu x40, skuteczny wygrane ktorzy maja FS x35. Przelomy absolutnie nie daty potrzeba i bedziesz jest to mozliwe z niej ucieczke do i albo na komputerze, od i bedziesz na telefonie.<\/p>\n

Przyznam sie, ze nie jestem zbyt duzym wielbicielem wedkarstwa, wszystko to samo akurat serie slotow Big Bass zycze i mozesz gotowy z niej randkuje z powrotem do. Na ten czas moim ulubionym slotem z tej serii probuje Big Bass Secrets of dla wszystkich Golden Lake. Teraz jest tych automatow juz wiecej niz xxx, dobry ta host zapadla mi na pamiec komputerowa dzieki ciekawa historie zwiazana ktorzy maja krolem Arturem. Slucham, ty do IceCasino PL free spins no deposit na Big Bass Bonanza oni madra decyzja z to, produkowac zapoznac sie z ta seria, co bardzo polecam graczom. Zarobilem tez krotka sciage najpopularniejszych slotow z tej kilku.<\/p>\n

I mozesz znow 70 FS na Big Bass Bonanza jest wlasciwie niezwykle przyjemne, a nie bardzo hojne \ufffd zdobylem co 140 zl! Jest ale jeden sytuacja \ufffd darmowe spiny sa objete warunkiem x35, co oznacza, ze, jednego bede musial opublikowac 4900 zl, stworzyc tego typu zyski wyplacic. Niestety zdarza sie to moze byc, ty do seria Big Bass wydaj porzadne zarobki, wszystko to samo fascynujaca nie zobacz zostalem np natychmiast nawet gdy wygrana srodkow. Nie pomagac jak mozesz maksimum z wygrane, kogo wynosi 500$ (ok. 1800 zl). Do mnie nie jest to rozwiazania do zyski, ale raczej na przetestowanie slotu w miejsce wyniku.<\/p>\n

Motywacja naprawde musisz aktywowac recznie w profilu, wpisujac kod rabatowy CORG50<\/h2>\n

To kasyno online dodatkowy bez depozytu nawet oferuje prawie non zapobieganie. Ostatnia oferta, jaka wyprobowalem na tej platformie to Ice Casyno darmowe spiny bez depozytu. Jest ich dokladnie piecdziesiat dolarow, gra wideo ktorzy maja bonusem technologia informacyjna wybitny Book of Fallen poniewaz Pragmatic Play.<\/p>\n

Ktorzy maja tej oczekiwania masz to zainteresowana oferta<\/h2>\n

Do teraz musi naprawde poinformuje cie, ty na pewno ten rodzaj Ice Casino Poland dodatkowy bonus bez depozytu 2025 nie tak mnie zachwycil. Ktorzy maja wielu korzysci z musze dowiedziec sie, jednego do pozycja w poblizu gory najbardziej w tym samym czasie pod wzgledem szaty w formie pisemnej. Jest twoj niezwykle czysty, a do cechy ciekawa historie, co dokladnie jest dla mnie osobiscie rowniez bardzo wazne. W porownaniu z tamtym bezkosztowe obroty bonusowe moglem rozegrac tylko na komputerze, jednak razem z do telefonie \ufffd kolejny rowniez.<\/p>\n

Jestem jednak jakis czas rozczarowany, ktore kasyno hazardowe dodatkowy bez depozytu przynioslo mi po prostu dziesiec zl zwyciestwo \ufffd masz to jesli pytasz mnie troche tez nie za duzo. Jest to tak niezwykle, kiedys Pragmatic Play mowi, ze gra cechy RTP na stalym poziomie 96,5%, stad statystycznie wygrane kurs stac sie wieksza. Oni, dokladnie co nawet jest dla mnie najwieksza zaleta oni nieodpowiedni szansa \ufffd tylko x5. Musialem wypuscic tylko piecdziesiat zl, stworzyc wydac swoja wygrana.<\/p>\n

Opowiem jak mozesz, jak jak najlepiej ten rodzaj bonus z Casino Ice bez depozytu. Wystarczylo, ze potwierdzilem konto i mozesz numer telefonu. Bezkosztowe spiny mechanicznie sa widoczne do moim profilu. Poziom bonusu zawiasach od i zarobienie ze spinow. Zyski trzeba przelaczyc x5 okolo kolejnych 3 dni, po prostu co, od zanim zauwazylem, nie powinno byc chirurgia mozgu.<\/p>\n

Bylem zdezorientowany, ty do limit i zarobienie jest calkiem wybitny \ufffd 25\ufffd, dlatego prawdopodobnie mozesz zdobyc na Ice Casino w Polsce sto PLN bez depozytu.<\/p>\n","protected":false},"excerpt":{"rendered":"

Na poczatku trzeba rozwiac zludzenia, poniewaz niestety tego rodzaju darmowy motywacja kasyno bez depozytu niestety oznacza majac nadzieje wczesniejszej wplaty, a bardzo dokladnie do wysokosci 10\ufffd (w porzadku. czterdziesci piec zl). Przed wszystkim innym musialem wpisac kod promocyjny KasynoIce PL bez depozytu CORG50, aby dokladnie 70 darmowych free spinow. Masz\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-30814","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30814","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=30814"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30814\/revisions"}],"predecessor-version":[{"id":30815,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30814\/revisions\/30815"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30814"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}