/* 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":145071,"date":"2026-06-12T11:09:44","date_gmt":"2026-06-12T11:09:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=145071"},"modified":"2026-06-12T11:09:44","modified_gmt":"2026-06-12T11:09:44","slug":"mi-experiencia-completa-de-tres-meses-jugando-en-wazamba-casino-en-espana","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/mi-experiencia-completa-de-tres-meses-jugando-en-wazamba-casino-en-espana\/","title":{"rendered":"Mi Experiencia Completa de Tres Meses Jugando en Wazamba Casino en Espa\u00f1a"},"content":{"rendered":"
\n\"Wazamba<\/p>\n

Durante los \u00faltimos tres meses, me he convertido en un jugador real en Wazamba Casino, con licencia espa\u00f1ola. He documentado cada paso: las recargas, las apuestas en docenas de juegos, la utilizaci\u00f3n de ofertas y cada contacto con el departamento de ayuda. Este periodo largo de actividad ofrece una perspectiva integral del casino. Me centro en lo que interesa a un jugador espa\u00f1ol: c\u00f3mo est\u00e1 adaptado el contenido a nuestro mercado, los m\u00e9todos de pago que podemos usar aqu\u00ed y la utilidad real de los bonos. Lo que sigue a continuaci\u00f3n es un relato directo, sustentado en mi experiencia diaria con el sitio y la app.<\/p>\n

Primer Impacto y Procedimiento de Alta<\/h2>\n

Lo primero que ves al entrar en Wazamba es una tem\u00e1tica de aventura y selva. La plataforma est\u00e1 repleta de tonos y componentes visuales, pero se maneja bien. Para un espa\u00f1ol, es un descanso ver el web dedicada para Espa\u00f1a y la explicaci\u00f3n detallada sobre la autorizaci\u00f3n de la Direcci\u00f3n General de Ordenaci\u00f3n del Juego (DGOJ). El registro sigue las normativas nacionales. Pide los detalles privados necesarios, incluido el DNI, para validar tu perfil. El documento es est\u00e1ndar y se finaliza en unos minutos. Ahora bien, no puedes apostar al punto porque necesitas verificar tu perfil despu\u00e9s. Esto no es un error de Wazamba, sino lo com\u00fan en el \u00e1mbito espa\u00f1ol regulado, que prioriza la defensa del cliente.<\/p>\n

Cuando envi\u00e9 mi documentaci\u00f3n, la verificaci\u00f3n del usuario se finaliz\u00f3 en menos de un d\u00eda de trabajo. La plataforma detalla los tr\u00e1mites con claridad, lo que quita preguntas. Una vez registrado, te topas con un balance a cero y una interfaz que muestra toda la variedad de juegos de una vez. La impresi\u00f3n es que accedes a una web \u00edntegra y seria, que sigue las reglas desde el inicio. La personalizaci\u00f3n al mercado nacional es evidente no solo en los procesos, sino tambi\u00e9n en el apoyo en espa\u00f1ol de Espa\u00f1a y en que todo se encuentra en euros.<\/p>\n

Atenci\u00f3n al Cliente y Ayuda<\/h2>\n

Examin\u00e9 el servicio de atenci\u00f3n al cliente de Wazamba en m\u00faltiples ocasiones durante la evaluaci\u00f3n. Consult\u00e9 dudas t\u00e9cnicas, sobre t\u00e9rminos de bonos y sobre procedimientos de verificaci\u00f3n. Los canales habilitados son el chat en vivo, el correo electr\u00f3nico y un formulario de contacto. El chat en vivo es la opci\u00f3n m\u00e1s eficaz. Los tiempos de espera son generalmente inferiores a dos minutos en horario est\u00e1ndar espa\u00f1ol. Los agentes responden en un espa\u00f1ol correcto y con tono profesional, resolviendo cuestiones comunes sin necesidad de escalar el problema.<\/p>\n

Para temas m\u00e1s profundos que necesitaban investigaci\u00f3n, como preguntar por la contribuci\u00f3n concreta de un juego a un requisito de apuesta, la respuesta por correo se recibi\u00f3 en unas 12 horas. Fue precisa y con referencias a los t\u00e9rminos relevantes. No detect\u00e9 evasividad en las respuestas. Un punto que se podr\u00eda optimizar es la falta de un n\u00famero de tel\u00e9fono directo. Es un canal que algunos jugadores espa\u00f1oles, sobre todo los menos acostumbrados a entornos digitales, siguen echando en falta. Aun as\u00ed, el soporte que ofrece puede considerarse fiable y adecuado para lo que necesita un usuario normal.<\/p>\n

Promociones de Bienvenida y Ofertas Activas<\/h2>\n

El bono de bienvenida de Wazamba se divide en varios dep\u00f3sitos iniciales, algo habitual. En mi an\u00e1lisis, me centr\u00e9 en el bono para casino, que ofrec\u00eda un porcentaje de coincidencia sobre el primer pago. Los condiciones son extensos y hay que examinarlos con paciencia, sobre todo la parte del requisito de apuesta. Este coeficiente, que se aplica a la cantidad del dep\u00f3sito y el bono, est\u00e1 en el rango habitual del mercado espa\u00f1ol. Pero satisfacerlo fue m\u00e1s trabajoso de lo que imaginaba, debido a c\u00f3mo contribuyen los varios juegos.<\/p>\n

Fuera del bono inicial, la web tiene una rotaci\u00f3n constante de ofertas para usuarios inscritos. Hay competiciones de slots con rankings, bonos de recarga para el fin de semana y giros gratis ligados a pagos determinados. Mi evaluaci\u00f3n aqu\u00ed es variada. La frecuencia es correcta y mantienen el inter\u00e9s, pero su valor aut\u00e9ntico a menudo se diluye entre requisitos de apuesta altos y estrictos l\u00edmites de ganancia. Hay que ser pr\u00e1ctico: en un entorno regulado, los bonos son una herramienta adicional de entretenimiento con t\u00e9rminos claros, no un m\u00e9todo para conseguir dinero sin esfuerzo.<\/p>\n

Valoraci\u00f3n de los T\u00e9rminos<\/h3>\n

Revis\u00e9 con lupa la honestidad y equidad de los condiciones de las promociones. Wazamba los presenta de forma comprensible, con enlaces directos desde cada oferta. Los puntos clave est\u00e1n detallados: el porcentaje de contribuci\u00f3n de cada juego al rollover, los l\u00edmites de apuesta con un bono activo y el plazo para cumplir los requisitos. No encontr\u00e9 cl\u00e1usulas ocultas o especialmente abusivas frente al est\u00e1ndar del sector. Pero la dificultad de estas normas hace que incumplirlas por error sea un riesgo real para quien no presta atenci\u00f3n. Por ejemplo, la mayor\u00eda de las tragamonedas contribuyen un 100%, pero los juegos de mesa suelen aportar mucho menos, a veces solo un 10%. Esto prolonga el proceso de liberar el bono de forma significativa.<\/p>\n

Ofertas Recurrentes y su Provecho Pr\u00e1ctico<\/h3>\n

Evalu\u00e9 promociones recurrentes como el “Reload del Viernes” o los torneos semanales en varias ocasiones. Su mec\u00e1nica es b\u00e1sica: al participar, tus apuestas generan puntos para una clasificaci\u00f3n. Pero el volumen de apuesta necesario para llegar a los puestos con premio es significativo. Est\u00e1 claramente dirigido a jugadores que apuestan con mucha frecuencia. Para el usuario casual, su valor es m\u00e1s bien simb\u00f3lico, un peque\u00f1o incentivo mientras juega normalmente. No encontr\u00e9 ofertas con trampa, s\u00ed una segmentaci\u00f3n clara: las recompensas de verdad est\u00e1n reservadas para quienes m\u00e1s depositan.<\/p>\n

La Selecci\u00f3n de Juego: Slots y Otros<\/h2>\n

El repertorio de juegos de Wazamba es amplio y heterog\u00e9neo. Las tragamonedas son las reinas, con miles de t\u00edtulos de proveedores l\u00edderes como NetEnt, Pragmatic Play, Play’n GO o Red Tiger. Explorar por el lobby es \u00e1gil, con filtraciones por desarrollador, \u00e9xito o caracter\u00edsticas como “Megaways” o “Jackpots”. Para el jugador espa\u00f1ol, es importante ver ediciones con topes de apuesta adaptados a la regulaci\u00f3n nacional y juegos con autorizaci\u00f3n local. Mi prueba en este \u00e1rea fue \u00e1gil, con intervalos de carga adecuados y una solidez t\u00e9cnica destacable durante toda la comprobaci\u00f3n.<\/p>\n

Acompa\u00f1ando a las slots, la plataforma tiene una parte s\u00f3lida de juegos de mesa y de dealer en vivo. Ruleta, blackjack y banca francesa est\u00e1n en m\u00faltiples variantes. La secci\u00f3n de casino en vivo, gestionada sobre todo por Evolution Gaming, es singularmente completa. Hay mesas con crupiers reales y l\u00edmites de apuesta que incluyen tanto a jugadores casuales como a los de gran volumen. La nitidez del streaming es buena y la relaci\u00f3n en espa\u00f1ol en estas mesas hace la experiencia m\u00e1s envolvente. Echo de menos, eso s\u00ed, una propuesta m\u00e1s amplia de p\u00f3ker contra la casa u otros juegos de cartas menos comunes.<\/p>\n