/* 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":143051,"date":"2026-06-12T10:16:55","date_gmt":"2026-06-12T10:16:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=143051"},"modified":"2026-06-12T10:16:55","modified_gmt":"2026-06-12T10:16:55","slug":"zacznij-zabawe-i-otrzymaj-swoj-pakiet-startowy-w-robocat-casino-w-polsce","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/zacznij-zabawe-i-otrzymaj-swoj-pakiet-startowy-w-robocat-casino-w-polsce\/","title":{"rendered":"Zacznij zabaw\u0119 i otrzymaj sw\u00f3j pakiet startowy w Robocat Casino w Polsce"},"content":{"rendered":"
\n\"Crypto<\/p>\n

Robocat Casino przyci\u0105ga polskich graczy. To miejsce, gdzie wra\u017cenia \u0142\u0105cz\u0105 si\u0119 z atrakcyjnymi nagrodami. Zaczynasz tu pewn\u0105 i intensywn\u0105 przygod\u0119. Pierwszy krok to wykorzystanie z hojnego prezentu powitalnego, kt\u00f3ry otwiera drzwi do wszystkich atrakcji naszego kasyna.<\/p>\n

Pozdrawiamy w Robocat Casino \u2013 Tw\u00f3j o\u015brodek rozrywki<\/h2>\n

Robocat Casino to portal, na kt\u00f3rej aktualny design \u0142\u0105czy si\u0119 z intuicyjn\u0105 nawigacj\u0105 i mas\u0105 rozrywki. Po\u015bwi\u0119cili\u015bmy du\u017c\u0105 wag\u0119 do detali, by\u015b by\u0142 komfortowo. D\u0105\u017cymy, aby\u015b prze\u017cy\u0142 gry na najwy\u017cszym poziomie, fundowanej na uczciwych zasadach. Przy\u0142\u0105cz si\u0119 do grona, kt\u00f3ra zna, co to dobra zabawa i profesjonalne podej\u015bcie.<\/p>\n

Wst\u0119p na nasz\u0105 stron\u0119 to rozpocz\u0119cie podr\u00f3\u017cy. Wsp\u00f3\u0142czesny interfejs od razu pokazuje, co mamy do zaoferowania. Platforma dzia\u0142a bez zarzutu na komputerze, urz\u0105dzeniu mobilnym i tablecie. Twoje preferowane gry s\u0105 na wyci\u0105gni\u0119cie d\u0142oni , gdziekolwiek przebywasz. Nie przejmuj si\u0119 o standard \u2013 grafiki pozostan\u0105 p\u0142ynne, a funkcjonowanie niezawodne.<\/p>\n

Jak za\u0142o\u017cy\u0107 konto i rozpocz\u0105\u0107 gr\u0119<\/h2>\n

Zarejestrujesz w Robocat Casino w niewiele czasu. Nale\u017cy wype\u0142ni\u0107 prosty formularz niezb\u0119dnymi danymi. Po naci\u015bni\u0119ciu linku aktywacyjnego z maila, konto jest dost\u0119pne. Od razu masz mo\u017cliwo\u015b\u0107 do ca\u0142ego kasyna. Wpisz prawdziwe informacje \u2013 to przyspieszy p\u00f3\u017aniejsze wp\u0142aty i wyp\u0142aty.<\/p>\n

Etap po etapie do Twojego konta<\/h3>\n

Niniejszy przewodnik poprowadzi Ci\u0119 przez rejestracj\u0119. Ka\u017cdy etap jest przejrzysty. Je\u015bli napotkasz problem, nasza pomoc techniczna s\u0142u\u017cy, by Ci s\u0142u\u017cy\u0107.<\/p>\n

Kluczowe etapy rejestracji<\/h4>\n

Najwa\u017cniejsze to precyzyjne wype\u0142nienie formularza. Pola z gwiazdk\u0105 s\u0105 konieczne. Podanie prawdziwego adresu e-mail zapewni weryfikacj\u0119. Gdy sko\u0144czysz, od razu zalogujesz si\u0119 na swoje nowe konto.<\/p>\n

    \n
  1. Wybierz przycisk \u201eZarejestruj si\u0119\u201d w prawym g\u00f3rnym rogu strony g\u0142\u00f3wnej.<\/li>\n
  2. Wprowad\u017a sw\u00f3j adres e-mail, stw\u00f3rz has\u0142o i zdecyduj walut\u0119 (zalecamy PLN).<\/li>\n
  3. Uzupe\u0142nij dane osobowe zgodnie z dowodem to\u017csamo\u015bci.<\/li>\n
  4. Potwierd\u017a regulamin oraz potwierd\u017a, \u017ce masz uko\u0144czone 18 lat.<\/li>\n
  5. Aktywuj link aktywacyjny dostarczony na Twoj\u0105 skrzynk\u0119 e-mail.<\/li>\n<\/ol>\n

    Weryfikacja konta dla bezpiecze\u0144stwa<\/h4>\n

    Weryfikacja to norma w licencjonowanych kasynach. Czasami poprosimy Ci\u0119 o skan dowodu i potwierdzenia adresu. To dzia\u0142anie, kt\u00f3ra chroni Twoje konto przed osobami postronnymi i zapewnia bezpieczne wyp\u0142aty. Twoje dokumenty obs\u0142ugujemy z pe\u0142n\u0105 poufno\u015bci\u0105.<\/p>\n

    Opcje p\u0142atno\u015bci przygotowane dla graczy z Polski<\/h2>\n

    Dost\u0119pny u nas jest bogaty wyb\u00f3r b\u0142yskawicznych i pewnych metod p\u0142atno\u015bci, znanych polskim graczom. Wp\u0142acisz i wyp\u0142acisz pieni\u0105dze znanymi przelewami, kartami oraz portfelami elektronicznymi. Wi\u0119kszo\u015b\u0107 operacji jest realizowana natychmiast, a minimalne sumy s\u0105 niskie. Zale\u017cy nam, by zarz\u0105dzanie finansami w kasynie by\u0142o dla Ciebie \u0142atwe.<\/p>\n

    Najpopularniejsze metody depozyt\u00f3w i wyp\u0142at<\/h3>\n

    Polacy stosuj\u0105 BLIK, karty Visa i Mastercard oraz portfele Skrill czy Neteller. Ka\u017cde z tych rozwi\u0105za\u0144 jest bezpieczna. Zanim si\u0119 zdecydujesz, zweryfikuj mo\u017cliwe op\u0142aty i czas oczekiwania na wyp\u0142at\u0119. Kompletne informacje odnajdziesz w zak\u0142adce \u201eP\u0142atno\u015bci\u201d na koncie.<\/p>\n

    Wp\u0142aty przez BLIK, karty czy e-portfele s\u0105 natychmiastowe. Wyp\u0142aty realizujemy w 24 godziny od zatwierdzenia, a dalszy czas jest zale\u017cny od metody. Przelew bankowy mo\u017ce zaj\u0105\u0107 1-3 dni robocze. Nie stosujemy ukrytych op\u0142at za standardowe przelewy.<\/p>\n

    Program lojalno\u015bciowy i regularne promocje<\/h2>\n

    Szanujemy graczy, kt\u00f3rzy pozostaj\u0105 z nami na d\u0142u\u017cej. Opracowali\u015bmy wielopoziomowy program lojalno\u015bciowy. Za gr\u0119 realnymi pieni\u0119dzmi zbierasz punkty, kt\u00f3re konsumujesz na bonusy i nagrody. Urz\u0105dzamy te\u017c turnieje z funduszami nagr\u00f3d, oferty cashback i regularne promocje. Zapisz si\u0119 do newslettera, a nie ominiesz \u017cadnej okazji na ekstra korzy\u015bci.<\/p>\n

    Program lojalno\u015bciowy opiera si\u0119 na etapach. Im wy\u017cej dotrzesz, tym wi\u0119cej zyskasz. Znajduje si\u0119 na Ciebie wy\u017cszy cashback, bonusy urodzinowe, dodatki od depozyt\u00f3w, a czasem nawet prezent od naszego hosta. Twoje oddanie po prostu si\u0119 wynagradza.<\/p>\n

    Zawody i imprezy specjalne<\/h3>\n

    Opr\u00f3cz regularnymi promocjami, regularnie organizujemy turnieje slotowe i sto\u0142owe. Pule nagr\u00f3d wynosz\u0105 kilkudziesi\u0119ciu tysi\u0119cy z\u0142otych. Potrzeba, \u017ce pograsz w wybran\u0105 gr\u0119 w czasie przebiegu turnieju, by samoczynnie wzi\u0105\u0107 w nim udzia\u0142. To mo\u017cliwo\u015b\u0107, by walczy\u0107 o dodatkowe nagrody obok standardow\u0105 rozgrywk\u0105.<\/p>\n

    \"No<\/p>\n

    Oferta gier: sloty, gry karciane i na \u017cywo<\/h2>\n

    Nasz katalog gier to tysi\u0105ce tytu\u0142\u00f3w od wiod\u0105cych producent\u00f3w. Mamy nowoczesne sloty video, klasyczne automaty i du\u017cy wyb\u00f3r gier na stole. Dla fan\u00f3w autentycznej atmosfery mamy kasyno live z wykwalifikowanymi krupierami. Nowe gry dodajemy cyklicznie, by propozycja ci\u0105gle si\u0119 zmienia\u0142a.<\/p>\n