/* 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":62888,"date":"2026-05-21T14:21:08","date_gmt":"2026-05-21T14:21:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62888"},"modified":"2026-05-21T14:21:09","modified_gmt":"2026-05-21T14:21:09","slug":"alli-aparecen-automaticamente-los-posibilidades-disponibles-conforme-el-poblado-y-la-moneda-elegida","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/alli-aparecen-automaticamente-los-posibilidades-disponibles-conforme-el-poblado-y-la-moneda-elegida\/","title":{"rendered":"Alli aparecen automaticamente los posibilidades disponibles conforme el poblado y la moneda elegida"},"content":{"rendered":"

Los esposos sistemas cumplen en compania de estrictos protocolos de decision y criptografico, lo que garantiza cual las bienes logren la cuenta de manera corta y sin complicaciones. Igualmente la zapatilla y el pie solida oferta sobre juegos sobre casino, Betonred online anade la total division sobre apuestas zapatillas deportivas que deja a las personas combinar entretenimiento y pronosticos sobre cualquier separado lugar. La seccion sobre casino sobre avispado sobre Betonred casino es una de las de mas completas del mercado.<\/p>\n

Referente a BetOnRed Espana premiamos su juego con manga larga publicaciones nitidas acerca de EUR<\/h2>\n

BetOnRed llegan a Crazy Time slot<\/a> convertirse en focos de luces distingue por sus promociones exclusivas, igual que bonos de recibimiento incluso 450\ufffd de mas giros regalado, cashback semanal desplazandolo hacia el pelo una rutina VIP. Nuestro tratamiento sobre VPN de esconder localizacion real asi\ufffd como registrarse desde poblacion acotado viola terminos de asistencia asi\ufffd como resulta referente a cerradura sobre tiene confiscacion sobre bienes alrededor detectarse, tipicamente a lo largo de el transcurso de demostracion KYC cuando nuestro dato de personalidad revela una naturaleza eficaz. Inaugurar una 2? perfil es sobre cerradura perpetuo sobre ambas curriculums desplazandolo hacia el pelo confiscacion sobre medios segun palabras sobre trabajo, aplicable incluso si los perfiles se va a apoyar sobre el silli\ufffdn abrieron desprovisto destino sobre superabundancia (como podri\ufffda ser, despreciar una cuenta vieja desplazandolo hacia el pelo iniciar otra). Con el fin de dudas urgentes fuera del hora espanol, recomendamos usar el chat referente a ingles sin intermediarios para eludir distorsiones de version automatica.<\/p>\n

A pesar de estas observaciones, BetOnRed se podri\ufffdan mover consolida igual que la coleccion segura, legal desplazandolo hacia el pelo importante en De cualquier parte del mundo de aquellos que requieren la convergencia sobre apuestas zapatillas de deporte y juegos de casino, una habilidad iphone optimizada desplazandolo hacia el pelo algun flujo invariable de promociones sobre pensamiento. El relaciones usando esparcimiento serio esto es otra monolito angular acerca de el modo de pensar operativa de BetOnRed. Estas medidas conjuntas refuerzan la honestidad inherente a la medio, consolidandola como algun entorno sobre esparcimiento plenamente regulado y merecedor de la decision de sus individuos. BetOnRed gestiona los reclamaciones a traves de su chat referente a listo y e-mail.<\/p>\n

Operamos con manga larga altos generales de seguridad y esparcimiento formal en compania de limites con flexibilidad y no ha transpirado verificacion sencilla<\/h2>\n

Ademas de las bonos de tanque en serie, recibes cualquier boleto de sorteo la cual da la oportunidad sobre ganar premios adicionales. Deben bastantes bonos asi\ufffd como anuncios sobre deposito practicos. Nuestro trabajo sobre servicio al cliente seri\ufffda atento asi\ufffd como responde rapidamente.<\/p>\n

Contribuye referente a torneos periodicos con clases acerca de presto desplazandolo hacia el pelo premios en competente en EUR. Hallaras productos que usan premios instantaneos asi\ufffd como obsequios sobresalto. Ofrecemos recargas semanales, giros sin cargo desplazandolo hacia el pelo cashback calculado de perdidas netas referente a EUR. Nuestro aparato responde referente a min. desplazandolo hacia el pelo mantienes dominacion con el pasar del tiempo limites personalizables.<\/p>\n

Las dineros de el bono se encuentran individuos a algun condicion sobre envite de 44 ocasiones el pensamiento, asi\ufffd como levante deberia ser atendido acerca de un entorno material sobre seis momentos articulo-activacion. A pesar de estas cuestiones a considerar, BetOnRed se mantiene igual que la seleccion segura, judicial asi\ufffd como sumamente atrayente acerca de Argentina para aquellos que buscan la sinergia entre apuestas zapatillas de deporte desplazandolo hacia el pelo juegos de casino, complementada por una practica ipad optimizada y no ha transpirado algun flujo continuo de promociones sobre concepto. El noviazgo usando juego formal presenta otro de los principios fundacionales y irrenunciables de su operadora.<\/p>\n

Si, BetOnRed es fiable a traves del cifrado SSL, auditorias regulares desplazandolo hacia el pelo metodos de remuneracion usadas referente a Argentina. Igualmente llamado Bet On Emboscada Casino, publicamos RTP y no ha transpirado disponemos de la mecanica y la bicicleta de juego responsable cual funcionan joviales precision.<\/p>\n

Una nautica es lo mismo de fluida cual sobre la version de bufete, y aquellos juegos se encuentran a tu disposicion sin tapujos. Su lugar net se enfoca perfectamente a cualquier tamano sobre monitor, facilitando participar empezando desde nuestro buscador de su iphone o en la barra tablet sin problemas. Con el fin de organizar tus medios, unicamente necesitas ingresar an ustedes perfil gracias al Bet On Lazo Login. Una incorporacion de criptomonedas es un momento a atencion para aquellos que solicitan transacciones de mas rapidas desplazandolo hacia el pelo en compania de mayor intimidad. Esa asistencia con diversos niveles de renombre resulta una senal de empuje y cualquier indicativo de que Bet On Red disfruta en serio la calidad de su oferta. Esta disparidad asegura cual tanto los aficionados de las slots como las estrategas para juegos de entidad financiera encuentren su puesto.<\/p>\n

Aca no unicamente encontraras mesas de ruleta, blackjack, baccarat o bien poker joviales crupieres reales, estrella igualmente juegos arquetipo acto acerca de aquellos que el fisico optico asi\ufffd como el esparcimiento estan extremadamente presentes. Ademi?s aparecen figuras clasicas como Poseidon, lo cual complementa diversidad y una medio alguna cosa epica cual acompana debido a nuestro prototipo sobre esparcimiento que ofrece una tarima. Esto asegura la pericia ocular pulida, gran jugabilidad y temas para las parejas aficiones, bien hagas los tragaperras clasicas, juegos sobre asiento o en la barra partidas sobre preparado. Por otro, cuenta con una zona sobre apuestas zapatillas de deporte que abarca empezando por pruebas populares inclusive sucesos menos relaciones, desplazandolo hacia el pelo entre la mayori\ufffda, la cantidad sobre mercados a su disposicion seri\ufffda pasmoso. Para un flanco, provee una division de casino con una gran disparidad sobre importes desarrollados por cultura sobre primer grado, donde nunca deben faltar promociones para superar la experiencia.<\/p>\n","protected":false},"excerpt":{"rendered":"

Los esposos sistemas cumplen en compania de estrictos protocolos de decision y criptografico, lo que garantiza cual las bienes logren la cuenta de manera corta y sin complicaciones. Igualmente la zapatilla y el pie solida oferta sobre juegos sobre casino, Betonred online anade la total division sobre apuestas zapatillas deportivas\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-62888","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62888","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=62888"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62888\/revisions"}],"predecessor-version":[{"id":62889,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62888\/revisions\/62889"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62888"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}