/* 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":159272,"date":"2026-06-18T07:16:51","date_gmt":"2026-06-18T07:16:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=159272"},"modified":"2026-06-18T07:16:51","modified_gmt":"2026-06-18T07:16:51","slug":"casino-wyns-4","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/casino-wyns-4\/","title":{"rendered":"Wyns Casino \u2013 Zagraj w Ulubione Gry Sto\u0142owe Live w Polsce"},"content":{"rendered":"
\n

Mi\u0142o\u015bnicy gier z Polski, kt\u00f3rzy pragn\u0105 prawdziwych emocji kasyna bez wychodzenia z domu, znale\u017ali w\u0142a\u015bnie nowy adres. Nowe Online Wyns<\/a> to platforma, kt\u00f3ra przywodzi na my\u015bl klimat salon\u00f3w gier wprost na ekran komputera lub smartfona. Scala klasyk\u0119 z innowacj\u0105, dostarczaj\u0105c gry sto\u0142owe na \u017cywo z wykwalifikowanymi krupierami. To po\u0142\u0105czenie \u0142atwo\u015bci gry online z prawdziw\u0105 atmosfer\u0105 przy stole. Zarejestruj si\u0119 do Wyns Casino i zobacz, jak gra live rewolucjonizuje rozrywk\u0119.<\/p>\n

Dlaczego Live Casino to Nowatorskie Do\u015bwiadczenie?<\/h2>\n

Rozgrywki z \u017cywym krupierem odmieni\u0142y hazard online, a Wyns Casino \u015bwietnie to stosuje. Odmiennie ni\u017c w grach na automatach, tutaj wszystko dzieje si\u0119 naprawd\u0119. Karty s\u0105 dzielone fizycznie, a ko\u0142o ruletki wiruje w studiu. Mo\u017cesz pisa\u0107 na czacie z krupierem i innymi graczami, co kszta\u0142tuje poczucie wsp\u00f3lnoty. To gwarantuje transparentno\u015b\u0107 rozgrywki i zupe\u0142nie inne doznania. Szelest kart, d\u017awi\u0119k kr\u0119c\u0105cego si\u0119 ko\u0142a, widok prawdziwego sto\u0142u \u2013 t\u0119 magi\u0119 do\u015bwiadczysz u siebie w domu.<\/p>\n

Autentyczna Atmosfera na Wyci\u0105gni\u0119cie R\u0119ki<\/h3>\n

Wyns Casino pracuje z czo\u0142owymi dostawcami, takimi jak Evolution, Pragmatic Play Live czy Ezugi, by zagwarantowa\u0107 stream w najlepszej jako\u015bci. Wyra\u017ana obraz, p\u0142ynne prze\u0142\u0105czanie kamer i profesjonalne studio wywo\u0142uj\u0105, \u017ce czujesz si\u0119 jak w kasynie. Krupierzy nie tylko nadzoruj\u0105 gr\u0119, ale te\u017c rozmawiaj\u0105 z graczami, odpowiadaj\u0105 na pytania. Dzi\u0119ki temu ka\u017cda sesja ma osobisty wyd\u017awi\u0119k. Nie musisz jecha\u0107 do ekskluzywnego kasyna \u2013 ono teraz trafia do Ciebie.<\/p>\n

Absolutne Zaufanie i Transparentno\u015b\u0107<\/h3>\n

Najwi\u0119ksz\u0105 si\u0142\u0105 gier na \u017cywo jest ich przejrzysto\u015b\u0107. Obserwujesz na ekranie ka\u017cdy ruch krupiera, ka\u017cde rozdanie karty, ka\u017cdy obr\u00f3t b\u0105czka. To usuwa wszelkie w\u0105tpliwo\u015bci co do losowo\u015bci, kt\u00f3re czasem wywo\u0142uj\u0105 gry oparte tylko na algorytmie. W Wyns Casino obserwujesz fizyczny proces gry. To zaufanie jest fundamentem relacji z graczem i g\u0142\u00f3wnym powodem, dla kt\u00f3rego tak wielu decyduje si\u0119 na t\u0119 form\u0119 rozrywki.<\/p>\n

Jak Startowa\u0107 Przygod\u0119 z Grami Transmitowanymi w Wyns Casino?<\/h2>\n

Granie na \u017cywo w Wyns Casino startuje natychmiast. Wymagasz dobrego \u0142\u0105cza i ka\u017cdego sprz\u0119tu \u2013 komputera, laptopa, tableta lub smartfona. Interfejs strony jest prosty i ca\u0142kowicie po polsku, r\u00f3wnie\u017c obs\u0142uga klienta, co dla polskich graczy ma du\u017ce znaczenie. Po logowaniu kliknij w zak\u0142adk\u0119 \u201eLive Casino\u201d lub \u201eGry na \u017cywo\u201d, by przenie\u015b\u0107 si\u0119 w centrum wydarze\u0144. Asortyment sto\u0142\u00f3w jest szeroki, a informacje o limitach i dost\u0119pnych miejscach pomog\u0105 Ci podj\u0105\u0107 decyzj\u0119.<\/p>\n

Kroki do Pierwszej Gry<\/h3>\n
    \n
  1. Tworzenie konta:<\/strong><\/li>\n
  2. Wp\u0142ata \u015brodk\u00f3w:<\/strong><\/li>\n
  3. Odnajd\u017a Sekcj\u0119 Live:<\/strong><\/li>\n
  4. Wybierz St\u00f3\u0142 i Do\u0142\u0105cz:<\/strong><\/li>\n<\/ol>\n

    Taktyki i Porady dla Uczestnik\u00f3w Live Casino<\/h2>\n

    Gry sto\u0142owe rz\u0105dz\u0105 si\u0119 szans\u0105, ale znajomo\u015b\u0107 podstawowych zasad i strategii umo\u017cliwia lepiej si\u0119 bawi\u0107 i gra\u0107 rozs\u0105dniej. Na pocz\u0105tek od\u015bwie\u017c zasady danej gry, zanim zasi\u0105dziesz do sto\u0142u z prawdziwymi pieni\u0119dzmi. W blackjacku stosowanie podstawowej strategii redukuje przewag\u0119 kasyna. W ruletce uchwycenie r\u00f3\u017cnicy mi\u0119dzy zak\u0142adami wewn\u0119trznymi (wy\u017csze wyp\u0142aty, mniejsze szanse) a zewn\u0119trznymi (ni\u017csze wyp\u0142aty, wi\u0119ksze szanse) wesprze zarz\u0105dza\u0107 bud\u017cetem.<\/p>\n

    Najwa\u017cniejsza jest samodyscyplina finansowa. Zawsze wyznacz z g\u00f3ry maksimum, kt\u00f3ry planujesz przeznaczy\u0107 na gr\u0119, i si\u0119 go trzymaj. Gry na \u017cywo przebiegaj\u0105 w naturalnym tempie, co pozwala na spokojniejsze decyzje ni\u017c przy automatach. Skorzystaj to. Obserwuj st\u00f3\u0142, nie \u015bpiesz si\u0119 z zak\u0142adami i ciesz si\u0119 sam\u0105 rozgrywk\u0105. Komunikuj si\u0119 z krupierem przez czat \u2013 przyjazna atmosfera u\u0142atwia si\u0119 zrelaksowa\u0107. Zapami\u0119taj, \u017ce idzie przede wszystkim o zabaw\u0119, a wygrana to mi\u0142y dodatek.<\/p>\n

    Per\u0142y Gier Sto\u0142owych Obecne w Wyns Casino Live<\/h2>\n

    Propozycja live w Wyns Casino to rarytas dla mi\u0142o\u015bnik\u00f3w klasyki. Platforma zgromadzi\u0142a tytu\u0142y, kt\u00f3re od lat dominuj\u0105 w kasynach na ca\u0142ym \u015bwiecie, i ukazuje je w interaktywnej formie. Niezale\u017cnie od tego, czy lubisz strategicznego blackjacka, eleganck\u0105 ruletk\u0119 czy szybkie baccarat, odnajdziesz tu wiele wariant\u00f3w ka\u017cdej gry. Ka\u017cdy tytu\u0142 dost\u0119pny jest w r\u00f3\u017cnych limitach zak\u0142ad\u00f3w, wi\u0119c zar\u00f3wno pocz\u0105tkuj\u0105cy, jak i wprawni gracze znajd\u0105 st\u00f3\u0142 dla siebie.<\/p>\n