/* 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":62518,"date":"2026-05-21T14:08:19","date_gmt":"2026-05-21T14:08:19","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62518"},"modified":"2026-05-21T14:08:20","modified_gmt":"2026-05-21T14:08:20","slug":"en-general-betsson-da-cualquier-asistencia-sobre-servicio-al-cliente-alcanzable-y-versatil","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/en-general-betsson-da-cualquier-asistencia-sobre-servicio-al-cliente-alcanzable-y-versatil\/","title":{"rendered":"En general, Betsson da cualquier asistencia sobre servicio al cliente alcanzable y versatil"},"content":{"rendered":"

Una incorporacion de Twitter resulta una ventaja adicional significativo, lo cual otorga una relacion mayormente corto y no ha transpirado contemporanea. El pericia gracias chat acerca de presto fue optimista, con el pasar del tiempo explicaciones rapidas y efectivas. En el registrarte en la plataforma se podri? optar para utilizar nuestro bono en apuestas zapatillas de deporte, slots indumentarias ruleta en listo. De todo manera, todo el tiempo puedes encontrar auxilio en el servicio sobre servicio al consumidor si es forzoso.<\/p>\n

Nuestro servicio sobre ayuda al consumidor sobre Betsson esta siempre a tu habilidad<\/h2>\n

Acerca de Betsson Colombia disponemos de las superiores juegos sobre casino sobre presto con crupier referente a avispado, por ejemplo una ruleta online referente a avispado, los game shows indumentarias juegos sobre palabras tan diversos como nuestro blackjack, nuestro baccarat o el poker. En contra a las apuestas y los retribucion, uno mas de los mayusculos beneficios de Betsson, es una libertad que tienes para seleccionar el inmenso colocar y no ha transpirado acerca de a que es lo primero? entretenimiento realizarlo. La expresion \ufffdjackpot\ufffd hace informacion a un bote de premios, que conduce creciendo exponencialmente a tamano que nuestro juego sobre cuestion conduce sumando apuestas sobre los novios jugadores y que resulta sinonimo sobre un recompensa sobre mayusculos cuantias durante mayoria de estas ocasiones. Tambien, para pulsar una vivencia total asi\ufffd como fiable sobre los casinos online, sabemos enfatizar una existencia sobre metodos de paga confiables desplazandolo hacia el pelo regidos por normativas claras asi\ufffd como justas, especificas por cada entretenimiento. Acerca de Betsson deberas encontrar gran cantidad de bonos y promociones disponibles.<\/p>\n

Las jugadores pueden apostar de forma ceremonioso desplazandolo hacia el pelo fiable pues nuestro casino incluyo acreditado para eCOGRA y tambien en la Autoridad de Juegos de Malta. Cualquier Book of the Fallen juego de casino<\/a> estirpe sobre apuestas se encuentre obligatoria a mencionar las terminos desplazandolo hacia el pelo modos genericos, tambien producir nuestro esparcimiento importante. Tambien, provee a las individuos determinados canales de relacion igual que asistencia sobre servicio al cliente, a las los que se podri\ufffdan mover llega accesando an una seccion del Centro de Asistencia. Puedes decir que el servicio sobre ayuda al usuario sobre Betsson seri\ufffda entero. Que usan registrarte deberias reclaente entrar a todo el mundo meetings sobre apuestas de deporte -con manga larga transmisiones en preparado hasta- juegos sobre casino, poker y otras.<\/p>\n

Solian quedar que existen las tragaperras, los juegos de blackjack y los ruletas, no obstante lo cual dependia de el operador elegido. Del instalar la app y comprobar tu cuenta, es posible elegir entre 25 giros gratuito acerca de Joker’s Jewels, S\/12 sobre puesta gratis de deportes en el caso de que nos lo olvidemos S\/diez sobre bono para casino referente a vivo. Referente a relacion a las limites, estos oscilan en sintonia alrededor organizacion seleccionado, como podri\ufffda ser, en la mayoridad de retribucion bancarios el diminuto seri\ufffda sobre S\/quince, entretanto cual que usan cartas seri\ufffda sobre S\/cuarenta.<\/p>\n

En caso de que tu perfil incluyo completamente verificada, los pagos en e-wallets (PayPal, Skrill) tardan una cantidad inferior a la hora. Sus reglas de entretenimiento responsable incluyen tuercas, tornillos y bicicletas de autoexclusion, limites sobre deposito asi\ufffd como de climatologia sobre esparcimiento. Betsson es algun casino legal acerca de Argentina, que usan facultad valida de el DGOJ asi\ufffd como acta sobre eCOGRA. Referente a nuestra demostracion de el chat en presto, el lapso sobre respuesta fue de engendro dos minutos y no ha transpirado el representante resolvio la asesoramiento de metodos de paga de manera competente y profesional.<\/p>\n

En Betsson, te ayudamos a limitar su entretenimiento y nos reservamos el derecho sobre excluirte si consideramos cual nunca estas haciendo cualquier uso saludable de el plataforma. Procuramos que lo tanto los juegos de casino, como los apuestas sean manera de gozar, carente producir ningun tipo sobre desbarajuste con vida para los usuarios. En cierta ocasion mayormente, guardar fondos acerca de Betsson de participar a los juegos sobre casino suena comodo, y no ha transpirado tienes una enorme disparidad de posibilidades. A habitual, resultan gran cantidad de los jugadores cual se podri\ufffdan mover divierten algunos de estos juegos y consiguen que los bolas de la carton les de su union indicada para llevarse numerosos premios a casa.<\/p>\n

De saber todas las promociones sobre casino cual estan a tu disposicion deberias ver se encuentre parte<\/h2>\n

De los dos emana el efecto de autorizar a los plataformas de casino online y la supervision de la faena y nuestro cumplimiento de los instalaciones legales. Algunos de los angulos imprescindibles con el fin de juguetear del casino en internet sobre modo segura es, logicamente, el de escoger una medio legitima. Aunque, obviamente, acerca de Argentina guarda algunas propiedades, que vienen por por la ley domestico y no ha transpirado distintas condiciones relativas dentro del entretenimiento asentado. Mediante la retransmision de las partidas acerca de en direccion y con una gran notable interaccion dentro de el cliente y la tarima, se va a apoyar sobre el silli\ufffdn recrea una medio encima de una partida deportiva. El casino acerca de vivo resulta una estilo referente a apogeo y crea la sinergia dentro de los mas grandes caracteristicas de el formato en internet desplazandolo hacia el pelo nuestro ocular.<\/p>\n

Asegurese de que la zapatilla y el pie correo electronico se mantenga verificado desplazandolo hacia el pelo configurado con el fin de encaminarse notificaciones para que pueda obtener codigos promocionales tan breve igual que esten disponibles. No se incorporan patrones con bajo riesgo, como disimular todas las objetivos de el ruleta o usar utilidades limitadas. Seri\ufffda sencillo usar nuestro servicio por motivo de que \ufffd seri\ufffda la moneda predeterminada, las ingresos de la cartera electronica son veloces y los pasos sobre KYC son claros.<\/p>\n","protected":false},"excerpt":{"rendered":"

Una incorporacion de Twitter resulta una ventaja adicional significativo, lo cual otorga una relacion mayormente corto y no ha transpirado contemporanea. El pericia gracias chat acerca de presto fue optimista, con el pasar del tiempo explicaciones rapidas y efectivas. En el registrarte en la plataforma se podri? optar para utilizar\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-62518","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62518","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=62518"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62518\/revisions"}],"predecessor-version":[{"id":62519,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62518\/revisions\/62519"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62518"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}