/* 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":140762,"date":"2026-06-11T01:40:36","date_gmt":"2026-06-11T01:40:36","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=140762"},"modified":"2026-06-11T01:40:36","modified_gmt":"2026-06-11T01:40:36","slug":"spinsy-casino-comienza-en-minutos-con-la-guia-de-inscripcion-en-espana","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/spinsy-casino-comienza-en-minutos-con-la-guia-de-inscripcion-en-espana\/","title":{"rendered":"Spinsy Casino \u2013 Comienza en Minutos con la Gu\u00eda de Inscripci\u00f3n en Espa\u00f1a"},"content":{"rendered":"
\u00a1Bienvenidos, jugadores de Espa\u00f1a! Si buscan un casino online moderno y lleno de emoci\u00f3n, este es su espacio https:\/\/spinsycasinoo.net\/es-es\/<\/a>. En Spinsy Casino les ofrecemos una plataforma de primer nivel con los juegos m\u00e1s nuevos y bonos jugosos, y hemos hecho que empezar a jugar sea cuesti\u00f3n de minutos. Esta gu\u00eda les gu\u00eda en cada paso del registro, les ense\u00f1a todo lo que hallar\u00e1n en el lobby y les da los consejos para aprovechar al m\u00e1ximo su experiencia. Desde registrar la cuenta hasta girar la primera ruleta o activar la primera tragamonedas, nos aseguramos de que todo sea f\u00e1cil, seguro y, sobre todo, muy entretenido. \u00a1Prep\u00e1rense para el entretenimiento!<\/p>\n En Spinsy Casino sabemos que la rapidez en las transacciones es clave<\/a> para su seguridad. Por eso ponemos a su disposici\u00f3n una extensa gama de m\u00e9todos de pago conocidas y confiables en Espa\u00f1a. Todos los procesos utilizan cifrado SSL de grado bancario, lo que asegura que cada euro est\u00e9 asegurado. Queremos que realizar ingresos y cobrar premios sea un proceso sin problemas y r\u00e1pido. Los periodos de tramitaci\u00f3n var\u00edan seg\u00fan el m\u00e9todo escogido, pero en general, los dep\u00f3sitos son instant\u00e1neos y los retiros se procesan con la mayor celeridad posible. Para retirar, es necesario completar el proceso de validaci\u00f3n de identidad (KYC), un requisito de la industria y una acci\u00f3n preventiva que les beneficia.<\/p>\n Sin duda. Spinsy Casino trabaja con una autorizaci\u00f3n de juego supervisada y utiliza encriptaci\u00f3n SSL moderna para proteger sus datos personales y financieros. Respetamos con los niveles m\u00e1s exigentes de seguridad y juego limpio, lo que proporciona una vivencia clara y protegida. Son capaces de apostar con total confianza.<\/p>\n El registro en s\u00ed lleva menos de 3 min. La verificaci\u00f3n de la cuenta de usuario por email o SMS es instant\u00e1nea. Para cobrar ganancias, deber\u00e1n completar la validaci\u00f3n KYC (cargar DNI). Una vez enviada, nuestro departamento normalmente procesarla en 24 o 48 h. Es muy r\u00e1pido.<\/p>\n Por supuesto. Spinsy Casino est\u00e1 totalmente optimizado para smartphones. Son capaces de acceder de forma directa desde el navegador de su tel\u00e9fono o tableta sin bajar nada, y disfrutar de una vivencia \u00e1gil y total. Tambi\u00e9n tenemos una app dedicada para instalar, que da un entrada m\u00e1s r\u00e1pido y notificaciones especiales.<\/p>\n No se inquieten, es f\u00e1cil recobrarla. En la pantalla de login, pinchen clic en el v\u00ednculo “\u00bfPerdiste tu contrase\u00f1a?”. Introduzcan la cuenta de e-mail con la que se dieron de alta y les remitiremos un v\u00ednculo seguro para cambiarla en unos minutos. Les pondremos de vuelta en juego al momento.<\/p>\n Registrarse y iniciar a participar en Spinsy Casino es un camino r\u00e1pido, protegido y repleto de emoci\u00f3n. Desde que completan el sencillo formulario hasta que conocen nuestra gran colecci\u00f3n de juegos y disfrutan los bonos generosos, cada fase se dise\u00f1\u00f3 para su disfrute. Les convidamos a sumarse a nosotros hoy mismo d\u00eda y a averiguar por qu\u00e9 Spinsy se est\u00e1 transformando en el casino virtual de confianza para los usuarios en Espa\u00f1a. Su pr\u00f3xima gran ganancia podr\u00eda encontrarse a solo unos min.<\/p>\n \u00a1Manos a la obra! Abrir una cuenta en Spinsy Casino es tan r\u00e1pido que estar\u00e1n jugando en un instante. Suprimimos todo tr\u00e1mite innecesario para que se centren en lo que importa: la emoci\u00f3n del juego. Solo precisan un par de minutos y tener a mano su DNI y algunos datos b\u00e1sicos. Cumplan estos pasos y en un momento se integrar\u00e1n de nuestra familia. Nuestro sistema emplea la \u00faltima tecnolog\u00eda de encriptaci\u00f3n, as\u00ed que sus datos personales y financieros siempre est\u00e1n seguros. \u00bfPreparados para comenzar? Vamos all\u00e1.<\/p>\n Lo primero es visitar la web oficial de Spinsy Casino desde su navegador. En la p\u00e1gina de inicio observar\u00e1n de forma prominente el bot\u00f3n de “Registrarse” o “\u00danete Ahora”, normalmente en colores llamativos que no pasan desapercibidos. Un clic en ese bot\u00f3n despliega el formulario de registro, su puerta a un universo de posibilidades. No hace falta descargar software pesado; la plataforma funciona al instante desde el navegador. Tambi\u00e9n tenemos una app m\u00f3vil optimizada para una experiencia m\u00e1s fluida cuando se encuentran fuera.<\/p>\n Ahora hay que introducir sus datos. El formulario es claro y requiere informaci\u00f3n esencial: nombre y apellidos, fecha de nacimiento (para confirmar que son mayores de 18 a\u00f1os), un correo electr\u00f3nico v\u00e1lido y un n\u00famero de tel\u00e9fono m\u00f3vil. Es clave que todos los datos sean exactos y concuerden con su documentaci\u00f3n oficial. Esto agilizar\u00e1 las verificaciones posteriores y los retiros de ganancias. Tambi\u00e9n definir\u00e1n un nombre de usuario y una contrase\u00f1a segura; les recomendamos una mezcla de letras, n\u00fameros y s\u00edmbolos para una protecci\u00f3n mayor.<\/p>\n Despu\u00e9s de presentar el formulario, obtendr\u00e1n un correo o un SMS con un c\u00f3digo de verificaci\u00f3n. Digitar este c\u00f3digo en la plataforma es el \u00faltimo paso para activar la cuenta. \u00a1Y eso es todo! Una vez verificados, ya pueden iniciar sesi\u00f3n con sus credenciales. En su primer acceso, el sistema les saludar\u00e1 y es probable que les redirija directamente a su bono de bienvenida. Lo \u00fanico que les distingue de la acci\u00f3n es hacer su primer dep\u00f3sito, un proceso tan r\u00e1pido y seguro como el registro.<\/p>\n \u00a1Felicidades por registrarse! A continuaci\u00f3n llega una de las partes m\u00e1s interesantes: obtener su bono de bienvenida en Spinsy Casino. Preparamos un paquete de inicio que incrementa su primer dep\u00f3sito, proporcion\u00e1ndoles m\u00e1s cr\u00e9ditos para probar una gran gama de juegos. Para activarlo, solo deben dirigirse a la secci\u00f3n “Promociones” en su cuenta, seleccionar la oferta de bienvenida y aplicar las instrucciones. Todos los bonos incluyen t\u00e9rminos y condiciones de apuesta, que son requisitos de juego equitativos y realizables. Les animamos a leerlos para saber exactamente c\u00f3mo cambiar esos cr\u00e9ditos bonus en ganancias reales. Es su trampol\u00edn hacia las primeras victorias.<\/p>\n Una vez dentro, el mundo es suyo. El lobby de Spinsy Casino es un ed\u00e9n para cualquier amante, con cientos de t\u00edtulos seleccionados minuciosamente. Cooperamos con estudios como NetEnt, Play’n GO, Pragmatic Play y Evolution Gaming para ofrecerles una experiencia de primera. Les guste la emoci\u00f3n de las tragamonedas, la estrategia de los juegos de mesa o la autenticidad de un casino en vivo, aqu\u00ed lo tienen todo. Renovamos la biblioteca constantemente con nuevos lanzamientos, as\u00ed que siempre existir\u00e1 algo nuevo y emocionante por descubrir.<\/p>\nTransacciones Financieras: \u00c1giles y Seguros<\/h2>\n
\n
Preguntas Frecuentes (FAQ)<\/h2>\n
\u00bfEs seguro registrarme y jugar en Spinsy Casino?<\/h3>\n
\u00bfCu\u00e1nto rato tarda el tr\u00e1mite de alta definitiva?<\/h3>\n
\u00bfPuedo apostar desde mi smartphone?<\/h3>\n
\u00bfQu\u00e9 pasa si pierdo mi contrase\u00f1a?<\/h3>\n
Gu\u00eda Paso a Paso para Alta Veloz en Spinsy Casino<\/h2>\n
Primer Paso: Acceso y Comienzo<\/h3>\n
Etapa 2: Llenar el Formulario<\/h3>\n
Paso 3: Verificaci\u00f3n y Primer Login<\/h3>\n
Activa Tu tu Bono de Bienvenida Especial<\/h2>\n
Conoce Nuestra Impresionante Variedad de Juegos<\/h2>\n
M\u00e1quinas tragaperras y Jackpots<\/h3>\n