/* 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":143072,"date":"2026-06-12T10:17:23","date_gmt":"2026-06-12T10:17:23","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=143072"},"modified":"2026-06-12T10:17:23","modified_gmt":"2026-06-12T10:17:23","slug":"ringospin-casino-strumenti-di-gioco-sostenibile-per-i-utenti-italiani","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/ringospin-casino-strumenti-di-gioco-sostenibile-per-i-utenti-italiani\/","title":{"rendered":"Ringospin Casino: Strumenti di Gioco Sostenibile per i Utenti Italiani"},"content":{"rendered":"
\n

La consapevolezza \u00e8 un aspetto fondamentale per il gioco digitale in Italia ringosspin.it<\/a>. Questo articolo esamina gli strumenti concreti che Ringospin Casino offre dei giocatori italiani. Si fa riferimento di funzioni pensate per una amministrazione proattiva del piacere, non di banali alternative inattive.<\/p>\n

Strumenti di Autolimitazione e Gestione Personale<\/h2>\n

Il gioco responsabile parte con confini personali stabiliti. Ringospin propone opzioni flessibili per definire regole nette prima di iniziare a giocare. Variare questi limiti necessita un periodo di attesa, una barriera contro le scelte affrettate.<\/p>\n

Limiti di Versamento e di Esborso<\/h3>\n

Stabilire un tetto alla spesa \u00e8 il passo pi\u00f9 immediato. I giocatori hanno la possibilit\u00e0 di configurare tetti di versamento su base giornaliera, ogni sette giorni o ogni trenta giorni. Una volta toccato il limite, nessun altro accredito \u00e8 ammesso fino al azzeramento del periodo selezionato. Lo strumento aiuta a gestire il budget destinato al gioco.<\/p>\n

Come Funziona la Variazione dei Limiti<\/h4>\n

Diminuire un limite produce effetto immediato, per una tutela senza indugi. Aumentarlo o cancellarlo, invece, attiva un periodo di attesa obbligatorio, generalmente di 24 ore. Questo lasso di tempo \u00e8 un ‘periodo di pausa’ che incoraggia a pensare prima di cambiare idea.<\/p>\n

Soglie Temporali di Gioco e Promemoria<\/h3>\n

Il tempo trascorso a giocare \u00e8 un elemento fondamentale, ma spesso si sottovaluta. Ringospin consente di configurare promemoria regolari che indicano quanto si protrae la sessione. \u00c8 anche fattibile definire un tempo limite per sessione: allo scadere, l’account si scollega in modo automatico.<\/p>\n

Supporto e Strumenti per il Gioco responsabile Consapevole<\/h2>\n

Ringospin non si ferma a fornire strumenti e basta. Il sito facilita l’accesso a fonti di supporto specializzate, comprendendo che a volte un aiuto professionale \u00e8 fondamentale per mantenere un rapporto corretto con il gioco.<\/p>\n

Link a Organizzazioni di Sostegno<\/h3>\n

Sul piattaforma e nell’applicazione si trovano collegamenti specifici a organismi come l’Agenzia delle Dogane e dei Monopoli per la DAC, e a linee verdi di ascolto. Enti no-profit come ‘Gioco Responsabile’ propongono consulenza anonima e a titolo gratuito, un primo punto di contatto per chi ha dubbi.<\/p>\n

Ringospin invita esplicitamente i utenti e le loro persone care a rivolgersi a questi canali in caso di necessit\u00e0. Questo approccio di agire rivela una coscienza etica che va oltre i compiti di legge, collocando il interesse del giocatore al cuore della sua operato in Italia.<\/p>\n

Verifica della realt\u00e0 e Registro delle Attivit\u00e0<\/h2>\n

L’onest\u00e0 contribuisce a giocare con attenzione. Ringospin mette a disposizione mezzi che forniscono una visione obiettiva del personale comportamento, consentendo di restare all’erta durante l’attivit\u00e0.<\/p>\n

Funzionalit\u00e0 di Reality Check<\/h3>\n

Il ‘Reality Check’ \u00e8 un promemoria modificabile che compare sullo schermo mentre si partecipa. Mostra dettagli importanti: la lunghezza della seduta e il conto netto di premi e puntate perse in quel momento. Rompe il ‘flusso’ del gioco e fa tornare i piedi a terra.<\/p>\n

Il scommettitore stabilisce la periodicit\u00e0 di questi notifiche, ad esempio ogni 30 minuti. Alla visualizzazione, pu\u00f2 interrompere la partita, verificare la storico completa o nascondere l’avviso e andare avanti. In ogni caso, ora ha dati tangibili sotto gli occhi.<\/p>\n

Visione alla Cronologia di Gioco<\/h3>\n

Nell’area personale si trova un archivio completo e sempre aggiornato di tutte le movimenti e le partite di gioco. Consultare questa cronologia permette di osservare le individuali tendenze nel tempo, individuare modelli ricorrenti e optare con consapevolezza come impiegare gli risorse di controllo.<\/p>\n

Opzioni di Autoesclusione e Stop<\/h2>\n

Se \u00e8 necessaria una pausa lunga, Ringospin offre strumenti precise. Questi strumenti aiutano nei momenti di meditazione, per limitare il gioco al solo intrattenimento e prevenire intromissioni con la vita di ogni giorno.<\/p>\n

Esclusione Provvisoria<\/h3>\n

L’autoesclusione temporanea, chiamata anche ‘take a break’, disattiva l’account per un periodo fissato. Le possibilit\u00e0 vanno da 24 ore fino a sei periodi. In questo lasso di tempo l’accesso all’account \u00e8 bloccato e non si ricevono promozioni, garantendo una pausa completa.<\/p>\n

Il cliente gestisce questa opzione dal proprio pannello di controllo. La riattivazione dell’account non \u00e8 istantanea e avviene solo al termine stabilito del periodo selezionato. \u00c8 uno metodo semplice da utilizzare e dimostratosi valido per ritrovare equilibrio.<\/p>\n

Sospensione Definitiva (DAC)<\/h3>\n

Per le casi che esigono un passo importante, \u00e8 presente l’autoesclusione totale, chiamata DAC (Divieto di Accesso al Gioco). Chi la attiva viene inserito nel Registro Unico delle Persone Interdette e non sar\u00e0 in grado di collegarsi a alcun sito di gioco autorizzato in Italia per almeno tre periodi.<\/p>\n

Il Quadro Normativo Italiano e l’Impegno di Ringospin<\/h2>\n

L’ADM (ADM) controlla il settore italiano con leggi stringenti per salvaguardare i scommettitori. Ringospin Casino si muove osservando integralmente queste regole e aggiunge una sua linea guida di gioco affidabile. Il esito \u00e8 un contesto dove il giocatore conserva il dominio.<\/p>\n

Ringospin va oltre il semplice rispetto alla legge. Il sito si impegna in modo dinamico, comunicando i utenti sui rischi e inducendo verso comportamenti equilibrati. Da questa filosofia deriva un set di dispositivi disponibili a ogni giocatore italiano direttamente dal proprio profilo.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

La consapevolezza \u00e8 un aspetto fondamentale per il gioco digitale in Italia ringosspin.it. Questo articolo esamina gli strumenti concreti che Ringospin Casino offre dei giocatori italiani. Si fa riferimento di funzioni pensate per una amministrazione proattiva del piacere, non di banali alternative inattive. Strumenti di Autolimitazione e Gestione Personale Il\u2026<\/p>\n

Continue reading<\/span><\/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-143072","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/143072","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=143072"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/143072\/revisions"}],"predecessor-version":[{"id":143074,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/143072\/revisions\/143074"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=143072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=143072"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=143072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}