/* 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":135224,"date":"2026-05-26T20:07:52","date_gmt":"2026-05-26T20:07:52","guid":{"rendered":"http:\/\/klecet.edu.in\/alumni\/?p=135224"},"modified":"2026-05-26T20:07:52","modified_gmt":"2026-05-26T20:07:52","slug":"1win-et-la-simplicite-du-pari-en-ligne-une-experience-fluide-pour-les-neophytes","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/1win-et-la-simplicite-du-pari-en-ligne-une-experience-fluide-pour-les-neophytes\/","title":{"rendered":"1win et la simplicit\u00e9 du pari en ligne : une exp\u00e9rience fluide pour les n\u00e9ophytes"},"content":{"rendered":"

1win et la simplicit\u00e9 du pari en ligne : une exp\u00e9rience fluide pour les n\u00e9ophytes<\/title><\/p>\n<h3>1win et la simplicit\u00e9 du pari en ligne : une exp\u00e9rience fluide pour les n\u00e9ophytes<\/h3>\n<p>Dans le monde des jeux d’argent en ligne, la plateforme <a href=\"https:\/\/latelier-ressources-developpement.com\">1win<\/a> se distingue par sa facilit\u00e9 d\u2019utilisation, offrant une interface intuitive qui facilite l\u2019acc\u00e8s au pari pour les d\u00e9butants. Ce caract\u00e8re accessible permet de surmonter les barri\u00e8res techniques souvent associ\u00e9es \u00e0 ce type d\u2019activit\u00e9. Gr\u00e2ce \u00e0 une navigation claire et des fonctionnalit\u00e9s pens\u00e9es pour accompagner les nouveaux utilisateurs, 1win propose une exp\u00e9rience fluide, favorisant une prise en main rapide et efficace.<\/p>\n<h3>Une interface pens\u00e9e pour la simplicit\u00e9 d\u2019acc\u00e8s<\/h3>\n<p>La force de 1win r\u00e9side avant tout dans sa conception ergonomique, qui \u00e9vite les menus complexes et les options confuses. L\u2019utilisateur peut rapidement comprendre comment placer un pari, g\u00e9rer son compte, et suivre l\u2019\u00e9volution de ses mises. Ce positionnement est particuli\u00e8rement adapt\u00e9 aux n\u00e9ophytes, qui appr\u00e9cient de ne pas \u00eatre submerg\u00e9s par un trop grand nombre de choix techniques. La plateforme privil\u00e9gie ainsi une exp\u00e9rience utilisateur simplifi\u00e9e, tout en garantissant un acc\u00e8s complet aux diff\u00e9rentes fonctionnalit\u00e9s.<\/p>\n<p>Par ailleurs, cette simplicit\u00e9 ne signifie pas pour autant un manque de richesse dans l\u2019offre. 1win propose une vari\u00e9t\u00e9 d\u2019options de pari couvrant plusieurs sports et \u00e9v\u00e9nements, permettant \u00e0 chacun de trouver son domaine de pr\u00e9dilection sans complication. Cette combinaison entre simplicit\u00e9 et diversit\u00e9 rend la plateforme attractive pour un large public.<\/p>\n<h3>La gestion des transactions : rapidit\u00e9 et s\u00e9curit\u00e9<\/h3>\n<p>Un \u00e9l\u00e9ment cl\u00e9 pour les d\u00e9butants dans le pari en ligne est la facilit\u00e9 avec laquelle ils peuvent effectuer des d\u00e9p\u00f4ts et retraits. Sur 1win, les processus sont con\u00e7us pour \u00eatre directs et s\u00e9curis\u00e9s, avec des m\u00e9thodes de paiement vari\u00e9es qui r\u00e9pondent aux pr\u00e9f\u00e9rences des utilisateurs. Cette accessibilit\u00e9 financi\u00e8re contribue \u00e0 rendre le pari plus accessible, notamment pour ceux qui ne souhaitent pas s\u2019attarder sur des op\u00e9rations complexes.<\/p>\n<p>La s\u00e9curit\u00e9 joue \u00e9galement un r\u00f4le essentiel dans cette \u00e9quation. En proposant des protocoles fiables pour la protection des donn\u00e9es personnelles et financi\u00e8res, la plateforme rassure ses utilisateurs, ce qui est particuli\u00e8rement important pour les d\u00e9butants qui pourraient se sentir h\u00e9sitants face \u00e0 l\u2019aspect num\u00e9rique du pari.<\/p>\n<h3>Les outils d\u2019accompagnement pour les novices<\/h3>\n<p>1win inclut des fonctionnalit\u00e9s p\u00e9dagogiques qui facilitent la compr\u00e9hension des m\u00e9canismes de pari, telles que des guides simples, des explications sur les diff\u00e9rents types de mise et des conseils pratiques. Ces aides sont pr\u00e9cieuses pour \u00e9viter les erreurs fr\u00e9quentes et encourager une approche r\u00e9fl\u00e9chie du pari.<\/p>\n<p>Par ailleurs, la disponibilit\u00e9 d\u2019options comme la pr\u00e9visualisation des gains potentiels ou le suivi en temps r\u00e9el des \u00e9v\u00e9nements sportifs permet aux utilisateurs de mieux appr\u00e9hender les enjeux de leurs d\u00e9cisions. Cela participe \u00e0 une prise de d\u00e9cision plus \u00e9clair\u00e9e, r\u00e9duisant ainsi les risques li\u00e9s \u00e0 une m\u00e9connaissance des r\u00e8gles ou des probabilit\u00e9s.<\/p>\n<h3>Responsabilit\u00e9 et gestion des risques dans le pari en ligne<\/h3>\n<p>Engager des fonds dans une activit\u00e9 telle que le pari en ligne n\u00e9cessite une attention particuli\u00e8re \u00e0 la gestion des risques. Il est important d\u2019adopter une approche mod\u00e9r\u00e9e et de ne jamais parier au-del\u00e0 de ses moyens. Les plateformes comme 1win encouragent implicitement cette prudence en proposant des limites personnalisables et en mettant l\u2019accent sur l\u2019importance d\u2019un usage responsable.<\/p>\n<p>Les n\u00e9ophytes doivent garder \u00e0 l\u2019esprit que le pari reste une activit\u00e9 incertaine, o\u00f9 la chance joue un r\u00f4le d\u00e9terminant. Comprendre cette r\u00e9alit\u00e9 peut aider \u00e0 adopter une posture \u00e9quilibr\u00e9e, o\u00f9 le divertissement prime sur la recherche syst\u00e9matique de gains. Cette perspective est essentielle pour pr\u00e9server une exp\u00e9rience positive et \u00e9viter les cons\u00e9quences n\u00e9gatives li\u00e9es \u00e0 des comportements excessifs.<\/p>\n<h3>Conclusion : une porte d\u2019entr\u00e9e accessible dans le monde du pari en ligne<\/h3>\n<p>En somme, 1win offre une exp\u00e9rience de pari en ligne particuli\u00e8rement adapt\u00e9e aux d\u00e9butants, gr\u00e2ce \u00e0 une interface claire, une gestion simplifi\u00e9e des transactions et des outils d\u2019accompagnement adapt\u00e9s. Cette plateforme permet d\u2019explorer l\u2019univers des paris sportifs avec confiance et simplicit\u00e9, tout en tenant compte des enjeux li\u00e9s \u00e0 la responsabilit\u00e9. L\u2019objectif est de proposer une immersion progressive qui valorise autant la convivialit\u00e9 que la s\u00e9curit\u00e9, ce qui en fait une option int\u00e9ressante pour ceux qui souhaitent s\u2019initier sans complexit\u00e9 excessive.<\/p>\n<div class=\"tc-manager-wp-inner\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Discover how 1win simplifies online betting with a smooth experience perfect for beginners exploring casino games, slots, and crash betting.<\/p>\n<p> <a class=\"continue-reading-link\" href=\"http:\/\/klecet.edu.in\/alumni\/1win-et-la-simplicite-du-pari-en-ligne-une-experience-fluide-pour-les-neophytes\/\"><span>Continue reading<\/span><i class=\"icon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-135224","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=135224"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135224\/revisions"}],"predecessor-version":[{"id":135225,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135224\/revisions\/135225"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=135224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=135224"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=135224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}