/* 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":140069,"date":"2026-06-10T17:12:47","date_gmt":"2026-06-10T17:12:47","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=140069"},"modified":"2026-06-10T17:12:47","modified_gmt":"2026-06-10T17:12:47","slug":"turbowinzcasino-5","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/turbowinzcasino-5\/","title":{"rendered":"TurboWinz Casino \u2013 Begin Your Journey in Canada"},"content":{"rendered":"
\n

Au Canada, Turbowinzcasino<\/a>, les joueurs veulent un divertissement vif et des r\u00e9compenses stimulantes. TurboWinz Casino satisfait cette attente. La plateforme appr\u00e9hende les besoins locaux, o\u00f9 le jeu responsable et une exp\u00e9rience lisse comptent beaucoup. Nous avons donc construit un espace avec une interface claire, une s\u00e9lection de jeux exigeante et un engagement total pour la s\u00e9curit\u00e9. Plongez dans un univers o\u00f9 l’aventure d\u00e9marre d\u00e8s que vous vous connectez. Vous y trouverez des moments fascinants et des services con\u00e7us pour le march\u00e9 canadien, accessibles depuis votre maison ou en d\u00e9placement.<\/p>\n

Salut dans l’Univers TurboWinz<\/h2>\n

TurboWinz Casino vous re\u00e7oit dans un environnement dynamique, imagin\u00e9 pour vous plonger dans l’action. La plateforme se caract\u00e9rise \u00e0 son design moderne et minimaliste. La navigation s’av\u00e8re simple, que vous soyez d\u00e9butant ou joueur exp\u00e9riment\u00e9. Nous faisons en sorte \u00e0 ce que chaque \u00e9tape, de l’inscription \u00e0 la recherche d’un jeu, reste simple et efficace. TurboWinz, c’est l’essence de la rapidit\u00e9 et du frisson : des retraits acc\u00e9l\u00e9r\u00e9s, des tours gratuits qui surviennent \u00e0 l’improviste. Nous avons cr\u00e9\u00e9 un espace o\u00f9 la convivialit\u00e9 et l’action continue caract\u00e9risent chaque visite. C’est le point de d\u00e9part d’une aventure canadienne dont vous vous souviendrez.<\/p>\n

La Caverne d’Ali Baba des Machines \u00e0 Sous<\/h2>\n

Les adeptes de slots trouveront chez TurboWinz un catalogue vaste. Il rassemble des centaines de titres venant des plus grands studios. Vous appr\u00e9ciez les classiques aux fruits, les vid\u00e9o-slots \u00e0 histoires, ou les jackpots progressifs aux montants vertigineux ? Nous avons ce qu’il vous faut. Nous mettons \u00e0 jour constamment la collection avec les derni\u00e8res sorties, aux graphismes saisissants et aux fonctionnalit\u00e9s comme les tours gratuits ou les symboles sp\u00e9ciaux. Cette diversit\u00e9 offre que chaque session est une exploration, gorg\u00e9e de potentiel et de surprises.<\/p>\n

Types de Slots \u00e0 D\u00e9couvrir<\/h3>\n

Pour vous y retrouver dans cette offre riche, nous avons class\u00e9 nos machines \u00e0 sous. Filtrez les jeux par th\u00e8me, par m\u00e9canique de jeu ou par niveau de volatilit\u00e9. Cela vous assiste \u00e0 choisir une exp\u00e9rience qui correspond \u00e0 votre style. Les jackpots progressifs peuvent transformer vos gains, tandis que les slots \u00e0 faible volatilit\u00e9 proposent des paiements plus r\u00e9guliers, m\u00eame s’ils sont souvent moins \u00e9lev\u00e9s. Nous mettons aussi en lumi\u00e8re les jeux les plus populaires de la semaine et nos coups de c\u0153ur. C’est un bon moyen de d\u00e9couvrir vos prochains favoris.<\/p>\n

Notre Gamme de Fournisseurs<\/h4>\n

La qualit\u00e9 de nos jeux vient de nos partenaires. Nous travaillons avec des studios de renom comme NetEnt, Play’n GO, Pragmatic Play, Evolution et bien d’autres. Chaque fournisseur apporte son style unique, son savoir-faire en conception et sa propre approche des math\u00e9matiques du jeu. Gr\u00e2ce \u00e0 ces collaborations, nous vous proposons une vari\u00e9t\u00e9 impressionnante de styles graphiques, de bandes-son immersives et de m\u00e9caniques de bonus inventives. En jouant sur TurboWinz, vous profitez \u00e0 une s\u00e9lection premium, r\u00e9guli\u00e8rement audit\u00e9e pour son \u00e9quit\u00e9 et son caract\u00e8re al\u00e9atoire.<\/p>\n

Service Client : Nous Demeurons \u00e0 Votre \u00c9coute<\/h2>\n

Notre \u00e9quipe de support est le pilier de votre aventure TurboWinz. Saisir et solutionner vos interrogations ou probl\u00e8mes techniques est notre objectif principal. Nous proposons un service sur diff\u00e9rents canaux pour vous accompagner comme vous le souhaitez. Vous choisissez une r\u00e9solution imm\u00e9diate via le chat en direct ? Un email d\u00e9taill\u00e9 ? Ou consulter notre base de connaissances exhaustive ? Nous restons disponibles. Nos collaborateurs sont entra\u00een\u00e9s pour donner des r\u00e9ponses claires et utiles, avec le s\u00e9rieux et l’amabilit\u00e9 que vous m\u00e9ritez. Cela garantit que votre exp\u00e9rience se passe sans accroc.<\/p>\n

Une Certification et une Protection Impeccables<\/h2>\n

La fiabilit\u00e9 est essentielle dans notre relation avec vous. TurboWinz Casino fonctionne avec une licence internationale valid\u00e9e. Toutes nos op\u00e9rations respectent des standards rigoureux, sous supervision normative. Vos donn\u00e9es et vos transactions sont prot\u00e9g\u00e9es par un chiffrement de niveau bancaire. Notre engagement pour le jeu responsable est tout aussi s\u00e9rieux. Nous mettons \u00e0 disposition des outils pour g\u00e9rer vos d\u00e9p\u00f4ts, vos limites de temps, et un acc\u00e8s direct \u00e0 des organismes de soutien. Jouer en toute s\u00e9r\u00e9nit\u00e9 n’est pas une phrase marketing. C’est le principe qui dirige chacune de nos d\u00e9cisions pour la plateforme.<\/p>\n

Jouer sur Mobile : L’Aventure en Tout Lieu<\/h2>\n

Votre casino vous escorte partout. L’univers TurboWinz est totalement optimis\u00e9e pour les terminaux mobiles, smartphones et tablettes. Inutile de t\u00e9l\u00e9charger une application ; notre site web s’adapte parfaitement \u00e0 la taille de votre \u00e9cran. Il garde toutes les fonctionnalit\u00e9s, la qualit\u00e9 graphique et la fluidit\u00e9 de la version bureau. Vous pouvez cr\u00e9diter des fonds, faire tourner les rouleaux de votre slot de pr\u00e9dilection, int\u00e9grer une table de blackjack en direct ou solliciter le service client, o\u00f9 que vous soyez. Cette adaptabilit\u00e9 correspond au mode de vie actuel et vous procure un divertissement de qualit\u00e9, simplement dans votre poche.<\/p>\n

D\u00e9p\u00f4ts et paiements : Rapidit\u00e9 et Facilit\u00e9<\/h2>\n

Nous avons d\u00e9velopp\u00e9 nos processus financiers pour correspondre au rythme de vie au Canada. G\u00e9rez votre bankroll chez TurboWinz est facile et transparent. Nous offrons une grande vari\u00e9t\u00e9 de m\u00e9thodes de paiement courantes ici, des cartes de cr\u00e9dit et d\u00e9bit aux portefeuilles \u00e9lectroniques comme MuchBetter, sans oublier les virements Interac. Cette derni\u00e8re solution est tr\u00e8s recherch\u00e9e localement pour sa protection et sa c\u00e9l\u00e9rit\u00e9. Les d\u00e9p\u00f4ts sont cr\u00e9dit\u00e9s instantan\u00e9ment, ce qui vous permet de jouer sans attendre. Pour les retraits, nous traitons toutes les demandes aussi vite que possible, avec une v\u00e9rification d’identit\u00e9 facilit\u00e9e lors du premier retrait. Notre but est que vous puissiez profiter de vos gains presque aussi vite que vous les avez gagn\u00e9s.<\/p>\n

Offres Sp\u00e9ciales pour les Joueurs Canadiens<\/h2>\n

Pour lancer votre aventure, TurboWinz r\u00e9serve un accueil g\u00e9n\u00e9reux \u00e0 ses nouveaux membres canadiens. Notre offre de bienvenue est destin\u00e9e pour augmenter votre bankroll d\u00e8s le d\u00e9but, vous procurant plus de chances d’explorer la plateforme. Notre g\u00e9n\u00e9rosit\u00e9 continue apr\u00e8s l’inscription. Nous croyons \u00e0 la fid\u00e9lisation sur la dur\u00e9e, alors nous proposons des promotions fr\u00e9quentes, des tours gratuits sur les nouveaux slots, des tours de bonus et un programme de cashback. Chaque offre ajoute de la valeur \u00e0 votre temps de jeu. Souvenez-vous \u00e0 lire les conditions g\u00e9n\u00e9rales attach\u00e9es \u00e0 chaque bonus, en particulier les exigences de mise, pour en profiter pleinement.<\/p>\n