/* 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":81178,"date":"2026-05-23T05:54:39","date_gmt":"2026-05-23T05:54:39","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81178"},"modified":"2026-05-23T05:54:40","modified_gmt":"2026-05-23T05:54:40","slug":"cos-bylo-zachety-bez-depozytu-w-kasynie-posiadanie-zostac-czlonkiem","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/cos-bylo-zachety-bez-depozytu-w-kasynie-posiadanie-zostac-czlonkiem\/","title":{"rendered":"Cos bylo zachety bez depozytu w kasynie posiadanie zostac czlonkiem?"},"content":{"rendered":"

Zazwyczaj zawodowi sportowcy moga wykorzystac bezplatne obroty z wybranym automacie<\/h2>\n

Witamy plinco<\/a> na stronie internetowej poswieconej bonusom bez depozytu w kasynach internet. Wez udzial w ekscytujacego na calym swiecie hazardu, gdzie duzo pieniedzy usmiech z odwaznych i mozesz ryzykownych graczy. Produkowac Za wycieczka rozpoczela sie z latwoscia i bez trosk, zacznij od darmowych bonusow za rejestracji. Bonusy bez depozytu w kasynie stana sie Twoim przewodnikiem w pierwszych zwyciestw i mozesz wielkich wygranych. To nie jest konieczne sa w niebezpieczenstwie wlasnych srodkow, zrobic przejsc przez prawdziwy doswiadczyc zdobywac. Wyprobuj masz szczescie zaczety niezwlocznie, nie inwestujac i nigdy grosza! Zowita zakladaj, w ktorym wszyscy obliczony moze przeksztalcic Wszystko i stac sie niezwykla historia sukcesu. Jesli jestes chetnie z gre, ktora moglaby ani jeden z nich poczatkowych inwestycji, kontynuuj w pierwszych zwyciestw! Poznaj motywacja bez depozytu w kasynach do 12 miesiecy 2025 i wybierz ten rodzaj odpowiedni dla bezposrednio.<\/p>\n

Dodatkowy bonus bez depozytu na Kasyna Cactus Stopnia premii: Kod kuponu: Dla Dog House Dostepne w krajach: W kazdym krajach z wyjatkiem Stany zjednoczone Bonus bez depozytu na Kasyno Vavada Kwota premii: Kod rabatowy: Dla wszystkich Great Pigsby Megaways, Dla kazdego Wicked Witches Dostepne w krajach: Motywacja bez depozytu na Przedsiebiorstwa hazardowe PlayFortuna Stopnia premii: Kod promocyjny: Book of Dead Dostepne w krajach: Dodatkowy bonus bez depozytu w Kasyno Booi Stopnia premii: Kod rabatowy: Cats and Cash Dostepne w krajach: Dodatkowy bonus bez depozytu na Kasyna 1xSlots Kwota premii: Kod promocyjny: Cybergirls Oferowane w krajach: Polska, Rosja, Kazachstan, Uzbekistan, Ukraina, Turcja, Tadzykistan, Kanada, Brazylia Motywacja bez depozytu na Kasyno Riobet Kwota premii: Kod promocyjny: FREEGAMBLE Book Of Dead Oferowane w krajach: Polska, Rosja, Bialorus, Kazachstan, Uzbekistan, Brazylia Dodatkowy bonus bez depozytu w Kasyno Spinbetter Kwota premii: Kod kuponu: Dla Dog House\ufffd Dostepne w krajach: Polska, Rosja, Kazachstan, Uzbekistan, Brazylia, Bialorus Dodatkowy bez depozytu na Kasyna Fresh Kwota premii: Kod promocyjny: Doors Of Fresh Dostepne w krajach: Dodatkowy bez depozytu na Przedsiebiorstwa hazardowe Starda Stopnia premii: Kod promocyjny: All Lucky Clover piec Dostepne w krajach: Dodatkowy bez depozytu na Kasyno Lex Poziom premii: Kod promocyjny: Book of Cats Dostepne w krajach: Polska, Rosja, Kazachstan, Uzbekistan, Ukraina, Azerbejdzan, Niemcy, Czechy, Litwa, Lotwa Filip bez depozytu z Kasyno Monro Kwota premii: Kod kuponu: Savage Buffalo Spirit Megaways Dostepne w krajach: Dodatkowy bonus bez depozytu na Kasyno Drip Stopnia premii: Kod promocyjny: Royal High-Road Oferowane w krajach: Bonus bez depozytu na Przedsiebiorstwa hazardowe 1Go Stopnia premii: Kod promocyjny: The Dog House, Cleocatra, Gates of Olympus, Book of Cats Oferowane w krajach: Dodatkowy bez depozytu na Kasyno hazardowe Izzi Poziom premii: Kod kuponu: Dragon`s Gold niezliczona ilosc Dostepne w krajach: Motywacja bez depozytu do Kasyno hazardowe Samolot Stopnia premii: Kod kuponu: Dragon`s Gold 100 Dostepne w krajach: Dodatkowy bez depozytu do Przedsiebiorstwa hazardowe Legzo Poziom premii: Kod promocyjny: Dragon`s Gold 100 Oferowane w krajach: Dodatkowy bez depozytu w Kasyno Auf Stopnia premii: Kod promocyjny: Dla kazdego Dog House Oferowane w krajach: Polska, Rosja, Bialorus, Kazachstan, Uzbekistan, Ukraina Motywacja bez depozytu na Przedsiebiorstwa hazardowe Cryptoboss Poziom premii: Kod kuponu: Dla wszystkich Dog House Oferowane w krajach: Polska, Rosja, Bialorus, Kazachstan, Uzbekistan, Ukraina Dodatkowy bez depozytu na Przedsiebiorstwa hazardowe Unlim Poziom premii: Kod kuponu: Dla kazdego Dog House Oferowane w krajach: Polska, Rosja, Bialorus, Kazachstan, Uzbekistan, Ukraina<\/p>\n

Sektor kasyn internet nieustannie rozwija sie, otwierajac przed graczami nowe zainteresowania i opcje<\/h2>\n

W ostatnich latach hazard online rosnie do zawrotnym tempie. Utrzymywac sie na rynku i mozesz przejsc konkurencje, strony kasyn powinni zwykle tworzenie nowe sugeruje atrakcyjny dla i zatrzymywania graczy. Bonusy bez depozytu na kasynach staly sie rozwiazaniem, stad pozwala satysfakcjonowac ktorego celem jest. Prezenty od kasyna jest wspanialym wyrazem goscinnosci i bedziesz lojalnosci stylu wobec graczy.<\/p>\n

Kasyna bez depozytu dostarczaja darmowe spiny za rejestracji nowym graczom, umozliwiajac miec ekscytujacej podrozy nastepowaniu swiecie hazardu zamiast wydawania gotowki. To daje wybor zapoznania sie ktorzy maja nowymi lub moze wlasnie popularnymi automatami z gier, i opinie kasyna w internecie oraz jakosci oferowanych uslug. Premia bez depozytu otwieraja drzwi do swiata darmowych zakladow i wielkich wygranych, niczym sztuczka.<\/p>\n","protected":false},"excerpt":{"rendered":"

Zazwyczaj zawodowi sportowcy moga wykorzystac bezplatne obroty z wybranym automacie Witamy plinco na stronie internetowej poswieconej bonusom bez depozytu w kasynach internet. Wez udzial w ekscytujacego na calym swiecie hazardu, gdzie duzo pieniedzy usmiech z odwaznych i mozesz ryzykownych graczy. Produkowac Za wycieczka rozpoczela sie z latwoscia i bez trosk,\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-81178","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81178","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=81178"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81178\/revisions"}],"predecessor-version":[{"id":81179,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81178\/revisions\/81179"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81178"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}