/* 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":154876,"date":"2026-06-15T04:03:33","date_gmt":"2026-06-15T04:03:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=154876"},"modified":"2026-06-15T04:03:33","modified_gmt":"2026-06-15T04:03:33","slug":"le-casino-en-ligne-concu-pour-les-gagnants-en-france-est-wyns-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/le-casino-en-ligne-concu-pour-les-gagnants-en-france-est-wyns-casino\/","title":{"rendered":"Le Casino en Ligne Con\u00e7u pour les Gagnants en France est Wyns Casino"},"content":{"rendered":"
\n\"42<\/p>\n

Dans le paysage num\u00e9rique des jeux virtuels, un nom appara\u00eet pour les passionn\u00e9s fran\u00e7ais : Wyns Casino. Cet \u00e9tablissement se positionne comme un compagnon de jeu, imagin\u00e9 avec une vision centr\u00e9e sur le joueur. De la cr\u00e9ation de compte \u00e0 l’encaissement des gains, chaque \u00e9tape offre simplicit\u00e9, s\u00e9curit\u00e9 et enthousiasme. Wyns Casino offre une gamme de jeux minutieusement s\u00e9lectionn\u00e9e, des primes avantageuses et un support client r\u00e9actif. Pour les amateurs en France, il repr\u00e9sente l’espace o\u00f9 la chance se conjugue avec une plateforme \u00e0 la mesure des plus grands gagnants.<\/p>\n

Une Approche Centr\u00e9e sur le Participant Fran\u00e7ais<\/h2>\n

Wyns Casino se distingue par son approche ancr\u00e9e dans les besoins sp\u00e9cifiques de sa client\u00e8le fran\u00e7aise. La plateforme repose sur le fondement d’une aventure transparente, \u00e9quitable et enrichissante. Cela se traduit par une interface enti\u00e8rement localis\u00e9e, un support en fran\u00e7ais et des options de paiement appropri\u00e9es comme le virement bancaire et les portefeuilles \u00e9lectroniques populaires. Cette philosophie se ressent dans le accueil des joueurs, avec des promotions pens\u00e9es et un programme de fid\u00e9lit\u00e9 qui r\u00e9compense v\u00e9ritablement l’engagement. Chez Wyns, le joueur est le c\u0153ur battant de la plateforme.<\/p>\n

Un Choix de Jeux Qui \u00c9pate les Connaisseurs<\/h2>\n

La fondation de Wyns Casino est sa collection de jeux impressionnante, qui satisfait les go\u00fbts les plus diff\u00e9rents. En collaboration avec les plus grands cr\u00e9ateurs, la plateforme propose un vaste catalogue de plusieurs milliers de titres. Les passionn\u00e9s de machines \u00e0 sous d\u00e9couvriront des jeux traditionnels, des machines \u00e0 sous modernes et des jeux \u00e0 jackpot croissant. Les sp\u00e9cialistes du jeu de table ne sont pas en reste, avec des versions multiples de blackjack, de roulette et de poker. L’atmosph\u00e8re du live casino, avec des croupiers en direct, enrichit cette offre exceptionnelle.<\/p>\n

Les Machines \u00e0 Sous : Un Univers de Possibilit\u00e9s<\/h3>\n

Le univers des slots \u00e0 Wyns Casino est un terrain de jeu infini. Des titres l\u00e9gendaires de NetEnt accompagnent les cr\u00e9ations de Pragmatic Play. Chaque jeu propose des caract\u00e9ristiques bonus enthousiasmantes, des spins offerts importants et des facteurs multiplicateurs. Que vous aimiez les aventures th\u00e9matiques ou les ic\u00f4nes r\u00e9tro, vous trouverez une machine \u00e0 sous qui correspond \u00e0 votre style et \u00e0 vos aspirations financi\u00e8res.<\/p>\n

Les Jeux de Table et le Live Casino : L’Authenticit\u00e9 \u00e0 Quelques Clics<\/h3>\n

Pour l’essence pure du casino, Wyns propose une gamme compl\u00e8te de jeux de table en version al\u00e9atoire et live. Affrontez le logiciel au blackjack, pariez sur la roulette europ\u00e9enne, ou risquez le baccara. Le live casino transporte l’atmosph\u00e8re palpitante d’un \u00e9tablissement terrestre sur votre moniteur. Communiquez avec de vrais animateurs et regardez chaque mouvement en temps v\u00e9ritable, depuis votre domicile.<\/p>\n

Bonus et Promotions : Un Accueil \u00e0 la Hauteur<\/h2>\n

D\u00e8s le d\u00e9part, Wyns Casino marque le coup avec une promotion d’accueil pens\u00e9e pour augmenter vos d\u00e9buts. Cette promotion, habituellement divis\u00e9e sur plusieurs recharges, renforce votre potentiel de jeu. L’\u00e9tat d’esprit g\u00e9n\u00e9reux se poursuit avec un agenda r\u00e9gulier : tours gratuits sur les derni\u00e8res machines \u00e0 sous, bonus de d\u00e9p\u00f4t, tournois organis\u00e9s et surprises. Chaque promotion poss\u00e8de des exigences de mise transparentes et justes, permettant d’en profiter pleinement sans emb\u00fbches cach\u00e9es.<\/p>\n

S\u00fbret\u00e9 et Autorisation : La Fiabilit\u00e9 comme Fondation<\/h2>\n

Exercer en France requiert le plus haut niveau de conformit\u00e9. Wyns Casino fonctionne sous une licence de jeu en ligne accr\u00e9dit\u00e9e, garantissant que toutes ses activit\u00e9s sont contr\u00f4l\u00e9es par les autorit\u00e9s. La s\u00e9curit\u00e9 des donn\u00e9es et des transactions est une priorit\u00e9 absolue, avec un chiffrement SSL de pointe. Les g\u00e9n\u00e9rateurs de nombres al\u00e9atoires (RNG) sont v\u00e9rifi\u00e9s r\u00e9guli\u00e8rement par des laboratoires sp\u00e9cialis\u00e9s, offrant une \u00e9quit\u00e9 totale \u00e0 chaque partie jou\u00e9e.<\/p>\n

Exp\u00e9rience Mobile Parfaite : Jouez Partout<\/h2>\n

Dans un monde o\u00f9 la mobilit\u00e9 prime, Wyns Casino brille par une exp\u00e9rience de jeu fluide et totale sur smartphone et tablette. L’interface s’adapte parfaitement \u00e0 votre \u00e9cran, que vous utilisiez un navigateur ou une application. La totalit\u00e9 des jeux, y compris le live casino, sont optimis\u00e9s avec des graphismes pr\u00e9serv\u00e9s et des temps de chargement rapides. Vous pouvez donc g\u00e9rer votre compte et jouer \u00e0 vos titres favoris peu importe votre position, sans sacrifice sur la qualit\u00e9.<\/p>\n

M\u00e9thodes de Paiement Con\u00e7ues au March\u00e9 Fran\u00e7ais<\/h2>\n

Pour offrir une exp\u00e9rience sans friction, Wyns Casino offre des solutions de paiement populaires et s\u00e9curis\u00e9es en France. Les d\u00e9p\u00f4ts et retraits sont simples, avec des options qui correspondent aux habitudes des joueurs. Les retraits sont r\u00e9alis\u00e9s avec promptitude, dans le respect des proc\u00e9dures de v\u00e9rification d’identit\u00e9 (KYC), pour que vous puissiez jouir de vos gains rapidement.<\/p>\n