/* 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":159296,"date":"2026-06-18T07:19:04","date_gmt":"2026-06-18T07:19:04","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=159296"},"modified":"2026-06-18T07:19:04","modified_gmt":"2026-06-18T07:19:04","slug":"casino-mr-vegas-2","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/casino-mr-vegas-2\/","title":{"rendered":"Activite et promotions permanentes sur Mr Vegas Casino pour la Belgique"},"content":{"rendered":"
\n\"Underdog<\/p>\n

Les joueurs belges qui cherchent un Casino Mr Vegas<\/a> en ligne dynamique et g\u00e9n\u00e9reux trouveront leur compte chez Mr Vegas Casino. Cette plateforme ne se contente pas de proposer des jeux. Elle construit un univers o\u00f9 quelque chose se produit toujours, stimul\u00e9 par des promotions et des \u00e9v\u00e9nements qui se relaient. Cet article vous montre ce qui rend Mr Vegas si vivant, en soulignant sur les offres r\u00e9serv\u00e9es \u00e0 la Belgique et sur la gamme des divertissements accessibles.<\/p>\n

Un flux constant de promotions destin\u00e9es aux joueurs belges<\/h2>\n

Mr Vegas Casino reconna\u00eet que les joueurs appr\u00e9cient \u00eatre valoris\u00e9s et gratifi\u00e9s r\u00e9guli\u00e8rement. Le calendrier promotionnel est donc organis\u00e9 pour \u00e9liminer les p\u00e9riodes creuses. Apr\u00e8s le bonus de bienvenue, les membres r\u00e9guliers b\u00e9n\u00e9ficient de chaque semaine de nouvelles raisons de jouer. Chaque offre suit strictement la r\u00e9glementation belge, pour promouvoir une pratique du jeu responsable. Les conditions de mise et les exigences sont toujours transmises transparentement, afin que vous profitiez de vos bonus en toute connaissance de cause.<\/p>\n

Nous multiplions les types d’offres pour convenir \u00e0 tous. Vous trouverez ainsi des tours gratuits sur les toutes derni\u00e8res machines \u00e0 sous, des tournois avec des prix en argent, des remboursements sur les pertes d’une journ\u00e9e ou des d\u00e9fis rattach\u00e9s \u00e0 vos jeux favoris. Ces promotions ne sont pas l\u00e0 pour faire joli. Elles ont pour but d’allonger votre temps de jeu et de maximiser vos chances de gagner. Nous les mettons en avant dans la section d\u00e9di\u00e9e du site et les adressons souvent par email \u00e0 nos membres les plus actifs.<\/p>\n

Le live casino : l’immersion au b\u00e9n\u00e9fice de la dynamique<\/h2>\n

Pour ceux qui cherchent l’exp\u00e9rience authentique d’un casino terrestre depuis votre salon, la section Live Casino est con\u00e7ue pour vous. Le jeu y est propos\u00e9e en direct depuis des studios professionnels, avec de vrais croupiers aux commandes. Vous pouvez discuter avec eux et parfois avec d’autres participants, ce qui reproduit l’atmosph\u00e8re sociale du jeu. Cette section du site est tr\u00e8s anim\u00e9e, avec ses tournois sp\u00e9cifiques et promotions qui compl\u00e8tent l’offre g\u00e9n\u00e9rale.<\/p>\n

Vous y d\u00e9couvrirez un large choix de classiques : blackjack, roulette, baccara, dans plusieurs variantes pour dynamiser les parties. Les limites de mise sur les tables correspondent \u00e0 tous les profils, du joueur occasionnel au plus exp\u00e9riment\u00e9. La qualit\u00e9 HD et la fluidit\u00e9 du stream vous garantissent de ne rien manquer. C’est la preuve que l’excitation la plus intense peut arriver directement chez vous, 24 heures sur 24.<\/p>\n

Le c\u0153ur de l’action : une s\u00e9lection de jeux \u00e9clectique et de qualit\u00e9<\/h2>\n

Les meilleures promotions n’ont d’int\u00e9r\u00eat que si elles s’appliquent \u00e0 des jeux de premier ordre. Mr Vegas offre une collection imposante qui correspond aux go\u00fbts divers des joueurs belges. Nos accords avec des studios comme NetEnt, Play’n GO et Pragmatic Play assurent des graphismes de qualit\u00e9, du son immersif et une gameplay fluide. Vous appr\u00e9ciez les histoires \u00e9labor\u00e9es ou les gains imm\u00e9diats ? Vous d\u00e9nicherez sans aucun doute un jeu qui vous convient.<\/p>\n

\"Quoten<\/p>\n

Notre force, c’est l’\u00e9quilibre et la constance. Nous ajoutons souvent de nouveaux titres pour conserver notre catalogue frais. Les joueurs ont toujours une nouveaut\u00e9 \u00e0 essayer, id\u00e9ale pour utiliser leurs tours gratuits. La plateforme dispose de des filtres intuitifs et d’une recherche performante pour vous guider \u00e0 naviguer des centaines de machines \u00e0 sous, les jeux de table habituels et les tables de live casino.<\/p>\n

Les bases d’une aventure de jeu fiable en Belgique<\/h2>\n

Agir en Belgique requiert une consid\u00e9ration renforc\u00e9e envers les participants. Mr Vegas Casino obtient une licence de la Commission des Jeux de Hasard belge. C’est la preuve de notre respect et de notre s\u00e9rieux. Cette licence implique le maintien des lois sur la sauvegarde des joueurs, le limitation des d\u00e9p\u00f4ts et la lutte du jeu excessif. Votre tranquillit\u00e9 et votre bien-\u00eatre guident nos d\u00e9cisions.<\/p>\n

Nos syst\u00e8mes de paiement sont choisis pour leur s\u00fbret\u00e9 et leur efficacit\u00e9, avec les m\u00e9thodes courantes en Belgique. La v\u00e9rification de compte, bien qu’obligatoire, est g\u00e9r\u00e9e avec le plus grand soin pour vos donn\u00e9es personnelles. Nous prot\u00e9geons toutes les transactions et informations importantes avec un cryptage avanc\u00e9. S’amuser chez nous, c’est privil\u00e9gier un divertissement qui ne sacrifie pas votre tranquillit\u00e9 d’esprit.<\/p>\n

D\u00e9vouement et service : notre accompagnement pour les joueurs belges<\/h2>\n

Une aventure sans accroc requiert un support robuste. Notre \u00e9quipe d’assistance r\u00e9pond vos questions en fran\u00e7ais, que ce soit sur une promotion, un d\u00e9p\u00f4t ou une r\u00e8gle de jeu. Nous mettons en \u0153uvre des canaux de communication rapides et efficaces. Le chat en direct est excellent pour une r\u00e9ponse imm\u00e9diate pendant votre session. L’email sert \u00e0 traiter les demandes plus complexes.<\/p>\n

Nous comptons aussi sur un service proactif. Le site propose une FAQ d\u00e9taill\u00e9e qui traite les sujets les plus courants, des retraits au programme de fid\u00e9lit\u00e9. Enfin, nous nous consacrons pour un jeu responsable. Nous proposons des outils pour garder le contr\u00f4le, comme des rappels de temps de jeu, des options d’auto-exclusion temporaire et des liens vers des organismes d’aide comme le Centre de Jeu Excessif.<\/p>\n

Optimiser votre exp\u00e9rience : astuces utiles<\/h2>\n

Pour b\u00e9n\u00e9ficier au maximum de l’action permanente sur Mr Vegas Casino, un peu de strat\u00e9gie est n\u00e9cessaire. Il ne faut pas cliquer sur chaque promotion, mais s\u00e9lectionnez celles qui correspondent \u00e0 votre fa\u00e7on de jouer. Lisez bien les conditions de chaque offre, en particulier le taux de contribution des diff\u00e9rents jeux aux conditions de mise. Vous serez ainsi en mesure de planifier vos sessions plus efficacement.<\/p>\n