/* 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":138875,"date":"2026-06-01T20:39:46","date_gmt":"2026-06-01T20:39:46","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=138875"},"modified":"2026-06-02T13:14:47","modified_gmt":"2026-06-02T13:14:47","slug":"couvrez-exclusivit-monsterwin","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/couvrez-exclusivit-monsterwin\/","title":{"rendered":"D\u00e9couvrez L’Exclusivit\u00e9 De Monsterwin Casino En Ligne Pour Les Joueurs Fran\u00e7ais"},"content":{"rendered":"

Lorsque l’on parle de casino en ligne, la France est l’un des march\u00e9s les plus convoit\u00e9s. Les joueurs fran\u00e7ais sont attir\u00e9s par les promotions et les bonus propos\u00e9s par les casinos en ligne, mais ils sont souvent victimes des pi\u00e8ges cach\u00e9s. Les bonus de d\u00e9p\u00f4t et sans d\u00e9p\u00f4t peuvent \u00eatre particuli\u00e8rement attractifs, mais comment les g\u00e9rer efficacement pour \u00e9viter les pertes financi\u00e8res ? Dans cet article, nous allons explorer les exclusivit\u00e9s de Monsterwin Casino en ligne pour les joueurs fran\u00e7ais et fournir des conseils de strat\u00e9gie pour maximiser vos chances de gain.<\/p>\n

L’Impact Des Bonus De D\u00e9p\u00f4t Et Sans D\u00e9p\u00f4t Sur La Strat\u00e9gie De Jeu<\/h2>\n

Les joueurs fran\u00e7ais sont souvent attir\u00e9s par les promotions et les bonus propos\u00e9s par les casinos en ligne. Cependant, la compr\u00e9hension des conditions de ces bonus est cruciale pour \u00e9viter les pi\u00e8ges.<\/p>\n

Les Diff\u00e9rents Types De Bonus<\/h3>\n

– Les bonus sans d\u00e9p\u00f4t : comment les g\u00e9rer efficacement Les bonus sans d\u00e9p\u00f4t sont des promotions qui vous permettent de jouer sans d\u00e9poser d’argent. Cependant, il est essentiel de comprendre les conditions de ces bonus, car ils peuvent comporter des r\u00e8gles de jeu sp\u00e9cifiques et des limites de retrait. – Les bonus de d\u00e9p\u00f4t : quels sont les risques et les avantages Les bonus de d\u00e9p\u00f4t sont des promotions qui vous permettent de recevoir des fonds suppl\u00e9mentaires lorsque vous d\u00e9posez de l’argent. Cependant, il est essentiel de comprendre les conditions de ces bonus, car ils peuvent comporter des r\u00e8gles de jeu sp\u00e9cifiques et des limites de retrait. – Les conditions d’exploitation des bonus : attention aux pi\u00e8ges Les conditions d’exploitation des bonus sont essentielles pour \u00e9viter les pertes financi\u00e8res. Il est essentiel de comprendre les r\u00e8gles de jeu, les limites de retrait et les conditions de validation des bonus.<\/p>\n\n\n\n\n\n\n
Types de bonus<\/th>\nConditions d’exploitation<\/th>\nRisques<\/th>\n<\/tr>\n<\/thead>\n
Bonus sans d\u00e9p\u00f4t<\/td>\nR\u00e8gles de jeu sp\u00e9cifiques, limites de retrait<\/td>\nPerte de fonds si les conditions ne sont pas respect\u00e9es<\/td>\n<\/tr>\n
Bonus de d\u00e9p\u00f4t<\/td>\nR\u00e8gles de jeu sp\u00e9cifiques, limites de retrait<\/td>\nPerte de fonds si les conditions ne sont pas respect\u00e9es<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Les Avantages De L’Application Monsterwin Casino<\/h2>\n

L’application Monsterwin Casino est une alternative pratique pour les joueurs qui pr\u00e9f\u00e8rent jouer en ligne depuis leur appareil mobile.<\/p>\n

Les Fonctionnalit\u00e9s Avanc\u00e9es De L’Application<\/h3>\n

– Comment t\u00e9l\u00e9charger et installer l’application L’application Monsterwin Casino peut \u00eatre t\u00e9l\u00e9charg\u00e9e depuis le site internet du casino ou depuis les stores mobiles. Il est essentiel de comprendre les conditions d’utilisation de l’application et les r\u00e8gles de jeu sp\u00e9cifiques. – Les avantages de l’application par rapport \u00e0 la version web L’application Monsterwin Casino offre des avantages par rapport \u00e0 la version web, notamment une exp\u00e9rience de jeu plus fluide et une acc\u00e8s plus rapide aux jeux. – Comment g\u00e9rer vos transactions et vos donn\u00e9es personnelles L’application Monsterwin Casino permet de g\u00e9rer vos transactions et vos donn\u00e9es personnelles de mani\u00e8re s\u00e9curis\u00e9e. Il est essentiel de comprendre les conditions de protection des donn\u00e9es et les r\u00e8gles de s\u00e9curit\u00e9.<\/p>\n

[Jeu](Jeu<\/a><\/h2>\n

Les Conseils De Strat\u00e9gie Pour Les Joueurs Fran\u00e7ais<\/h2>\n

Pour maximiser vos chances de gain, il est essentiel de comprendre les r\u00e8gles de base des jeux et de g\u00e9rer efficacement vos finances.<\/p>\n

Les R\u00e8gles De Base Des Jeux De Casino<\/h3>\n

– Les diff\u00e9rences entre les jeux de casino en ligne et en terre Les jeux de casino en ligne et en terre ont des r\u00e8gles de jeu diff\u00e9rentes. Il est essentiel de comprendre ces diff\u00e9rences pour \u00e9viter les pertes financi\u00e8res. – Les strat\u00e9gies de jeu optimales pour les jeux de chance Les strat\u00e9gies de jeu optimales pour les jeux de chance peuvent varier en fonction du jeu et du type de strat\u00e9gie. Il est essentiel de comprendre ces strat\u00e9gies pour maximiser vos chances de gain. – Comment g\u00e9rer vos finances pour minimiser les pertes La gestion des finances est essentielle pour minimiser les pertes. Il est essentiel de comprendre les r\u00e8gles de jeu, les limites de retrait et les conditions de validation des bonus pour \u00e9viter les pertes financi\u00e8res.<\/p>\n

Les \u00c9valuations Et Les Avis Des Joueurs<\/h2>\n

Les avis des joueurs sont cruciaux pour comprendre les points forts et les points faibles du casino Monsterwin.<\/p>\n

Les Avis Des Joueurs Satisfait<\/h3>\n

– Quels sont les points forts du casino Monsterwin ? Les points forts du casino Monsterwin incluent une exp\u00e9rience de jeu fluide, des jeux vari\u00e9s et une s\u00e9curit\u00e9 des transactions. – Quels sont les points faibles du casino Monsterwin ? Les points faibles du casino Monsterwin incluent des r\u00e8gles de jeu complexes et des limites de retrait restrictives. – Comment les joueurs ont-ils v\u00e9cu leur exp\u00e9rience de jeu ? Les joueurs ont v\u00e9cu leur exp\u00e9rience de jeu de mani\u00e8re positive, avec une exp\u00e9rience de jeu fluide et des jeux vari\u00e9s. Cependant, certains joueurs ont signal\u00e9 des r\u00e8gles de jeu complexes et des limites de retrait restrictives.<\/p>\n","protected":false},"excerpt":{"rendered":"

France: Lorsque l’on parle de casino en ligne, la France est l’un des march\u00e9s les plus convoit\u00e9s. Les joueurs fran\u00e7ais sont attir\u00e9s par les promotions et les bonus propos\u00e9s par les casinos en ligne, mais ils sont souvent victimes des pi\u00e8ges cach\u00e9s.<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117],"tags":[],"class_list":["post-138875","post","type-post","status-publish","format-standard","hentry","category-monsterwin"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=138875"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138875\/revisions"}],"predecessor-version":[{"id":138876,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138875\/revisions\/138876"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=138875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=138875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=138875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}