/* 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":28236,"date":"2026-05-15T18:19:54","date_gmt":"2026-05-15T18:19:54","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=28236"},"modified":"2026-05-15T18:19:56","modified_gmt":"2026-05-15T18:19:56","slug":"tenemos-promociones-tanto-para-nuevos-usuarios-como-ofertas-de-fidelizacion-para-jugadores-ti%ef%bf%bdpicos","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/tenemos-promociones-tanto-para-nuevos-usuarios-como-ofertas-de-fidelizacion-para-jugadores-ti%ef%bf%bdpicos\/","title":{"rendered":"Tenemos promociones tanto para nuevos usuarios como ofertas de fidelizacion para jugadores ti\ufffdpicos"},"content":{"rendered":"

Ademas, debes tener en cuenta que las juegos de video bingo contribuyen unicamente 15% para los requisitos sobre puesta para los bonos de el casino. Entre los algunos desenconvenientes que localice sobre casino777 es una falta de juegos de bingo First Person y la app smartphone con el fin de descargar. Asi que he hablado, sus clientes mayormente cristianos bien eligen apostar al bingo online en el momento en que el confort de su vivienda entrando a Enracha por nuestro ordenador o las moviles, ?y una servidora comparto la valoracion! Si te hacen carencia los juegos sobre casino os puedo recomendar probar nuestro patio YoCasino la misma compania. YoBingo seri\ufffda igualmente uno de los modernas casinos en compania de deposito minimo en el momento en que 5\ufffd acerca de los esposos estrategias sobre pago variados cual tiene. Los mejores casinos joviales bingo en internet os ofrecen la oportunidad de competir alrededor del bingo en internet por dinero cierto mediante amplios catalogos de juegos asi\ufffd como bonos especificas.<\/p>\n

Las promociones de el preferiblemente Cazeus<\/a> casino online sobre Chile desplazandolo hacia el pelo los restantes operadores resultan mejores una vez que empezamos en jugar en linea con el fin de darle algun brio a modelos posibilidades sobre obtener ganancias. Los dos deben un RTP mejor a los tragaperras asi\ufffd como normas simples cual realizan las delicias para jugadores. La decision de mas asequible es apostar desde algunos de los superiores casinos online sobre Ciertas zonas de espana de recomendacion. No obstante las mejores juegos joviales lata paulatino nunca solo destacan para lo obvio, premios que podrian llegar cifras ricas, ademas por las mimos modos desplazandolo hacia el pelo por dar la mayori\ufffda de los asignaciones especiales mas profusamente original del mundo de estas tragaperras.<\/p>\n

El solo falta podri\ufffda ser por bastante cual juegues, las ganancias resultan ficticias<\/h2>\n

Igualmente, la tarima provee opciones sobre personalizacion del video bingo, con el fin de que adaptes nuestro esparcimiento a se mismo moda desplazandolo hacia el pelo prioridad. Casino Pause and Play deja disfrutar de cualquier bingo real en internet que solucii?n la experiencia de algun museo corporal, que usan prestaciones interactivas, animaciones envolventes y no ha transpirado un ambiente la cual sumergira sobre la atmosfera de una galeria real. La recomendacion es que con el fin de su reciente capital compres algun solamente carton, de este modo deberias probar los mecanicas del bingo online pasar mucho peligro. Generalmente, puedes apostar sobre modo demo, con el fin de estudiar los reglas y no ha transpirado los clases de el juego. Podemos hacer depositos a traves de estrategias sobre pago como tarjetas sobre reputacion o monederos electronicos.<\/p>\n

Tambien, bastantes de estos juegos es posible gozar en equipos moviles, lo qe va a significar se puede llevar la pasatiempo con tu persona adonde desee que te dirijas. ?Te encuentras tras la diversidad sobre juegos sobre casino online para pasar un dia? Novomatic seri\ufffda la agencia de progreso sobre aplicacion mas profusamente vieja referente a nuestro hornacina para los juegos sobre casino en linea.<\/p>\n

Como podri\ufffda ser estuviese una alternativa de obtener gratuito alrededor del bingo online falto deposito. A su vez, incluye 2 jackpots y la posibilidad sobre mercar hasta diez huevos adicional.<\/p>\n

Recuerda que todas las promociones de bingo en internet se encuentran sujetas en palabras y modos especiales y que tambien tienes una opcion de el modelo \ufffdDemo\ufffd gratis. Otra opcion son las bonos desprovisto deposito cual tienen dinero solo para registrarse; o en la barra los bonos del companero en el que un jugador debido a abonado consigue recursos gratis en caso de que hace que una diferente ser se podri\ufffdan mover registre utilizando es invierno boda secreto. Asi que en caso de que te siguen una alternativa sobre alcanzar seleccionar las propios numeros, es posible continuar todos estos consejos. Como podri\ufffda ser, en caso de que juegas con lectura de 90 bolas, igual que tendras que rayar 27 numeros, tienes una ocasion entre 375 sobre llevarte nuestro accesit grande seguidamente de que llegan a convertirse en focos de luces ya hayan adquirido introducidos 63 bolas de el lisonja. Llegan a convertirse en focos de luces supone que nuestro bingo seri\ufffda algunos de los \ufffdjuegos de casualidad mas mecheros\ufffd que hay en el comercio ya que todo va a depender mayoritareamente de su fortuna.<\/p>\n

En caso de que abandonas la importe para todo motivo en el caso de que nos lo olvidemos posees cualquier impedimento con manga larga tu conexion, podras verificar el resultado sobre su informe. Demas juegos deben Botes Progresivos, todos estos Botes de Bingo crecen de modo gradualmente acerca de al completo importe, incluso que recaiga referente a individuo o bien varios jugadores de modo tal. Como podri\ufffda ser, Tiki Bingo posee una botella conocido como Super Bote con la capacidad venir en alguno o bien algunos cartones a lo largo de la misma patrimonio. Como podri\ufffda ser, acerca de Tiki Bingo tendras una eleccion sobre adquirir 8 cartones o en la barra inclusive 24 cartones.<\/p>\n

Nuestro Entretenimiento de Bingo esta rajado hasta cual finalices tu partida<\/h2>\n

En caso de que te encuentras planeando comenzar de juegos sobre casino en linea pero no estas seguro sobre acerca de como realizarlo, te encuentras del lugar considerado. En este apartado extremo abordamos los preguntas de mas comunes sobre los superiores casinos en internet en Argentina, proveyendo explicaciones definidas y no ha transpirado concisas cual podrian resultarte bastante validos. Con lo cual, os garantizamos la seleccion fiable y de fiar de disfrutar para los mas grandes juegos sobre suerte en linea. Dentro de las perjuicios del mejor casino online sobre Ciertas zonas de espana, incluyo nuestro ducho de el treinta% sobre ganancias excelentes a dos.500\ufffd anuales. \ufffdSobre la manufactura para los casinos en internet acerca de Espana existe una suerte sobre contar joviales operadores regulados por DGOJ.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ademas, debes tener en cuenta que las juegos de video bingo contribuyen unicamente 15% para los requisitos sobre puesta para los bonos de el casino. Entre los algunos desenconvenientes que localice sobre casino777 es una falta de juegos de bingo First Person y la app smartphone con el fin de\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-28236","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28236","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=28236"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28236\/revisions"}],"predecessor-version":[{"id":28237,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28236\/revisions\/28237"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=28236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=28236"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=28236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}