/* 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":30892,"date":"2026-05-16T13:06:33","date_gmt":"2026-05-16T13:06:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30892"},"modified":"2026-05-16T13:06:33","modified_gmt":"2026-05-16T13:06:33","slug":"bonusy-bez-depozytu-przyznawane-jest-rowniez-na-w-sprawie-licznych-zmniejszone-stopien","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bonusy-bez-depozytu-przyznawane-jest-rowniez-na-w-sprawie-licznych-zmniejszone-stopien\/","title":{"rendered":"Bonusy bez depozytu przyznawane jest rowniez na w sprawie licznych zmniejszone stopien"},"content":{"rendered":"

Aczkolwiek masz to skuteczny sposob, aby umocnic swoj fundusze zostal przed dokonaniem pierwszej wplaty oraz zaznajomic sie z tym, od dziala dochodzenie przedsiebiorstwa hazardowe. Nizej niz podajemy par przykladowych bonusow bez depozytu:<\/p>\n

\ufffd Bob Casino \ufffd 10 darmowych spinow \ufffd Spinia \ufffd pietnasty darmowych spinow do pozycja Dla kazdego Golden Owl Of Athena \ufffd OneCasino \ufffd 10 EUR na poczatkujacy<\/p>\n

Ofert bez https:\/\/casinodudespin.pl\/<\/a> depozytu w porownaniu z ofertami od depozytu jest wlasciwie wszystko to samo pozornie nie za duzo. Wszystko kasyn sklania sie jedynie ku promocjom skierowanym w graczy gotowych wplacic masz wskazowki. Aczkolwiek mam mozemy odkryc kilka atrakcyjnych bonusow, ktore pozwola nam pograc w kasynie posiadania prawdziwe pieniadze bez potrzeby uiszczenia depozytu. Przewazajaca obszar tego rodzaju promocji oni sa ale bezplatne spiny, czesto wydawanie wylacznie na wybrana gre \ufffd jak z przypadku przedsiebiorstwa hazardowe Spinia.<\/p>\n

Bezplatne spiny<\/h2>\n

Bezplatne spiny technologia informacyjna swiezy rodzaj bonusu. Juz on wraz z wychowany powyzej, masz jednego bonusy bez depozytu w wiekszosci opieraja sie niedawno z darmowych spinach \ufffd aczkolwiek oprocz.<\/p>\n

Ludzie drugi spin do naszej ulubionej rozgrywki moze byc bardzo przydatny i przerodzic sie z calkiem spora wygrana. W takim przypadku dostawcy nie teraz oferuje graczom bezposrednio pieniedzy do gre, jeszcze pozwala na bezplatne konflikt z rozgrywce.<\/p>\n

Spiny jestesmy w stanie dostac bez depozytu (znacznie mniej popularna opcja) lub po prostu od depozytu (bedziesz w prawie kazdym kasynie). W tym licznych bonusow powitalnych sa polaczonych ktorzy maja darmowymi spinami \ufffd tak czesto w pierwszym zlozonym depozycie w tym bonusu powitalnego dostajemy razem z dodatkowe spiny z gre.<\/p>\n

Powinnismy ale rozumiec, ty do darmowe spiny przeznaczone sa typowo wylacznie w pokaz przez kasyna gry. Kasyno ze lubia wszystko to samo dziwic sie swoich graczy i regularnie zmieniaja te obstawianie \ufffd raz postep roznia sie od trzy okreslone styl, a za miesiac zaczety par zupelnie innych.<\/p>\n

\ufffd Betsson \ufffd lata 90. darmowych spinow w ramach promocji \ufffdKasynowa klasa\ufffd \ufffd Malina Casino \ufffd 2stu darmowych spinow zawartego w bonusu powitalnego \ufffd Astralbet \ufffd 129 darmowych spinow liczbie atomowej 85 bonusie powitalnym, XXX spinow jako czesc srodowej promocji i bedziesz L spinow do piatki \ufffd Boa Boa \ufffd 50 darmowych spinow na zawsze porodu tygodnia i piecdziesiat dolarow spinow z niedziele<\/p>\n

Motywacja Cashback<\/h2>\n

Motywacja Cashback, czesto spotykany i do zakladach bukmacherskich, oni wersja promocji zawartego w ktorej moglibysmy otrzymac zwrot postawionych srodkow w okreslonej kwoty \ufffd ogolnie rzecz biorac wyrazanej byc procent postawionej z nas kwoty.<\/p>\n

Jak, dodatkowy bonus cashback 10% na 1000 zl oznaczaloby zwrot dziesiatka% ktorzy maja sumy postawionych przez USA. srodkow. Przykladowo, jezeli zawartego w tej promocji przegramy 2000 zl, otrzymamy 200 zl zwrotu na uzyj srodkow bonusowych. Musimy wszystko to samo wiedziec, jednego cashbacki sa na ogol ograniczone na jakiejs kwota, na przyklad. bazujac do powyzszym przykladzie \ufffd \ufffdw 1000 zl\ufffd, ma na mysli to, nigdy otrzymamy zwrotu wiekszego w porownaniu chiliad zlotych.<\/p>\n

Wszystko cashbackow technologia informacyjna motywacja \ufffdstale\ufffd \ufffd mozemy z tych subskrybowac czesciej niz raz. Czesto to sa ogolnie 1 dzien tygodnia \ufffd jak. srode, niedziele, badz piatek. Wyjscie tygodnia tutaj zaczety ustalany naprawde przez kasyna. Podobnie byl okresem trwania z bonusu \ufffd ogolnie masz to dwadziescia cztery godziny \ufffd jedna doba, aczkolwiek spotykane sa rozne wariancje tej formy bonusu warunkowo od kasyno.<\/p>\n

\ufffd Boa Boa \ufffd 15% cashback na 3000 EUR \ufffd Bonanza Game \ufffd 20% cashback na piecset EUR \ufffd PlayFortuna \ufffd inny organizacja CashBack inny rodzaj tego kasyno<\/p>\n

\ufffdParachute dodatkowy\ufffd<\/h2>\n

\ufffdParachute dodatkowy bonus\ufffd technologia informacyjna tozsamosc ktorzy maja ktora jeszcze wczesniej stazem gracze nie sa zaznajomieni. Ten rodzaj bonusu, zrozumiany jak mozesz w nazwa \ufffdNo sticky bonus\ufffd, to takie sliczna promocja, ktora niedawno niedawno zagoscila z ofertach kasyn internetowych i wciaz nie jest szeroko spotykana. Jednak o czym ona ma opiera sie? Juz tlumaczymy…<\/p>\n

Stwierdzaj, ze kasyna rowniez zapewnia nam \ufffdParachute filip\ufffd dopasowywac niezliczona ilosc% zlozonego depozytu w jedno C zl. Wplacamy sto zl i mozesz zawartego w tej promocji otrzymujemy z drugiej strony to niesamowite sto zl w gre \ufffd lacznie mam 200 zl. Gdzie wiec lezy prawdziwa roznica schowany tym rodzajem bonusu, dobry zwyklym bonusem od depozytu? W tym przypadku srodki nie zostaja ze soba \ufffdzlaczone\ufffd przyszedl z samym konflikt!<\/p>\n","protected":false},"excerpt":{"rendered":"

Aczkolwiek masz to skuteczny sposob, aby umocnic swoj fundusze zostal przed dokonaniem pierwszej wplaty oraz zaznajomic sie z tym, od dziala dochodzenie przedsiebiorstwa hazardowe. Nizej niz podajemy par przykladowych bonusow bez depozytu: \ufffd Bob Casino \ufffd 10 darmowych spinow \ufffd Spinia \ufffd pietnasty darmowych spinow do pozycja Dla kazdego Golden\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-30892","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30892","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=30892"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30892\/revisions"}],"predecessor-version":[{"id":30893,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30892\/revisions\/30893"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30892"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}