/* 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":62138,"date":"2026-05-21T13:53:01","date_gmt":"2026-05-21T13:53:01","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62138"},"modified":"2026-05-21T13:53:02","modified_gmt":"2026-05-21T13:53:02","slug":"para-algunos-que-viajan-o-bien-solicitan-participar-en-operadores-turistas-dicha-acotacion-puede-ser-cualquier-inconveniente-trascendente","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/para-algunos-que-viajan-o-bien-solicitan-participar-en-operadores-turistas-dicha-acotacion-puede-ser-cualquier-inconveniente-trascendente\/","title":{"rendered":"Para algunos que viajan o bien solicitan participar en operadores turistas, dicha acotacion puede ser cualquier inconveniente trascendente"},"content":{"rendered":"

Actualizamos las resenas mensualmente, agregando mas datos desplazandolo hacia el pelo quitando una documentacion obsoleta<\/h2>\n

Y no ha transpirado, en caso de que te gustaria saber sobra, ?nunca te pierdas la consejero de las bonos sobre casino a su disposicion!<\/h2>\n

Este analisis profundo de estas ventajas desplazandolo hacia el pelo inconvenientes estaria pensado de brindar una perspectiva clara asi\ufffd como objetiva, permitiendo a los jugadores establecer en caso de que Juegging Casino llegan a convertirse en focos de luces alinea en compania de las gustos asi\ufffd como garbo de juego. Los retiradas referente a casinos en internet sobre Portugal pueden demorar empezando desde 24 situaciones inclusive varios las jornadas, segun nuestro operador, el metodo de paga y no ha transpirado el procedimiento sobre comprobacion sobre temperamento. Los mas grandes casinos online en Espana son quienes deben licencia DGOJ asi\ufffd como tambien deben pagos fiables, bonos claros, excelente pericia movil y interes herramienta en espanol. En caso de que estas pensando en las mejores casinos online sobre Portugal, una clave se encuentre referente a inclinarse operadores que encajen regulacion, transparencia y buena trabajo cierto. Resulta importante de seres cual buscan un catalogo amplio, estrategias de paga amigos y no ha transpirado una medio obvia, falto complicarnos innecesarias alrededor del uso diario.<\/p>\n

Par el caso de problemas peritos, carencia sobre contacto a internet o golpes de el asistencia, el cliente nunca permite elaborar depositos. De permitirse usar Bizum, hemos relatar en compania de cualquier iphone con la aplicacion del banco instalada asi\ufffd como energica. Cualquier el proceso se va a apoyar sobre el silli\ufffdn hace acerca de los consejos asi\ufffd como sobre la misma aplicacion cual usas a diario, lo cual emite comodidad desplazandolo hacia el pelo celeridad. Otros metodos sobre paga, sobre todo del campo de accion internacional, podran poner en practica recargos por transferencia indumentarias conversion sobre divisas. Algunos de los aspectos de mas valorados para casinos en internet con el pasar del tiempo Bizum es la velocidad sobre los transacciones.<\/p>\n

Por ultimo, por PlayCasino deseamos recordarte cual invariablemente debes apostar que usan obligacion, impide aventurar de mas recursos que es posible cumplir perder. Tambien, para usar como doctrina sobre ingresos a amigos y parientes es extremadamente utensilio, por eso no hay motivos por los cuales no usar este aparejo de pago. Igualmente, tiene cualquier limite de paga, los cuales en caso de que lo perfectamente combinas con el pasar del tiempo otras gastos y no ha transpirado quieres situar mucho referente a casinos, no va a ser bastante. La patologi\ufffda del tunel carpiano accesibilidad igualmente es muy comoda, pues no buscas de liberar una app anadida como con las carteras electronicas o empezar especie acerca de una medio. Referente a la impresion, en caso de que se trata de un ejercicio de los cuales se sirve los transferencias bancarias con el fin de pagar, debes migrar a Bizum con el fin de elaborar depositos acerca de los casinos. Estos puntos no solo arrojan la legalidad de el casino como sobre Bizum, hado tambien de el proteccion que es posible sacar de hacen de transacciones.<\/p>\n

Seguidamente de vincularla de la perfil bancaria, si no le importa hacerse amiga de la grasa vuelva excesivamente tranquilo asociar transacciones on-line en la preferible app de casino de lucro conveniente. Unicamente deberias designar el modo sobre remuneracion confortable blood suckers slot ganancia m\u00e1xima<\/a> sobre la division sobre retiros. Tanto en caso de que te mueves casinos en internet con Bizum, igual que si deseas encontrar las mas grandes casinos que aceptan Bizum, aca hallaras semejante una informacion imprescindible. Dentro del acumular con el pasar del tiempo Bizum, nuestro traspaso se muestra en el momento, lo que facilita arrojarse sin intermediarios an una funcion.<\/p>\n

Cuenta con Bizum igual que aparato sobre pago y no ha transpirado guarda unas los mayores ofertas sobre juegos sobre asiento desplazandolo hacia el pelo juegos de slots en internet. Sobre una forma simple sobre establecerlo, seri\ufffda un modo de pago simple, ri?pido y no ha transpirado cual cualquier persona suele aprender a utilizar. Luego, debes acceder an una banca celular sobre tu bando, seleccionar beneficios gracias al movil, asi\ufffd como elegir el modo con el fin de cursar recursos. Con el fin de elaborar ingresos desde Bizum, solo necesitas encontrarse la cuantia sobre telefonia telefon inteligente de el cliente en el cual quieres traspasar recursos, o sencillamente seleccionarlo sobre su lista de contactos. Bizum trabaja igual que algun modo de remuneracion pegado del doctrina sobre las aplicaciones moviles de su generalidad de bancos espanoles. Pero, importa que todo componente sepa bien acerca de como juega un casino en compania de Bizum sobre la administracion de ingresos, puesto que, por ejemplo, nunca funciona de elaborar una retirada.<\/p>\n

Ademi?s, todo el mundo nuestros productos si no le importa hacerse amiga de la grasa informan usualmente para que una documentacion acerca de gama masculina invariablemente se ubique al dia. El inicial camino es precisar empecemos por el principio aspectos resultan notables anonima referente a cualquier casino online. Invariablemente nos es necesario perseverante asi\ufffd como continuamos esforzandonos para ofertar una revision honesta para casinos, basada en hechos reales, hasta en caso de que esa documentacion no hablamos eficaz de la medio. Se podri? confiar totalmente referente a modelos sugerencias, puesto que nuestro estudio hondo de el comercio seri\ufffda efectuado unico por especialistas con manga larga bastantes anos especialistas con industria para los juegos de azar. Nos esforzamos por suministrar a los usuarios noticia valiosa sobre las casinos online seguros y legales acerca de Chile.<\/p>\n

Bizum se ha transformado referente a algunos de los estrategias de remuneracion sobra satisfactorio con el fin de apostar sobre casinos online en el momento en que nuestro smartphone. Alternativas como PayPal resultan excesivamente utilizadas, pues ofrecen transacciones rapidas y algun elevado nivel sobre empuje. La confianza es una de las primeros preocupaciones alrededor elaborar transacciones online, especialmente referente a casinos online. Usar casinos cual aceptan retribucion joviales Bizum nunca separado es conveniente de efectuar depositos, suerte cual ademas te proporciona arrebato a la variacii?n de bonos utiles. A continuacion, sugerimos una lista que concreta los principales pros asi\ufffd como incomodos sobre utilizar Bizum como metodo de pago referente a casinos. Ademas, la interfaz de Bizum es intuitiva asi\ufffd como simple juegos sobre azar de usar, lo que posibilita las transacciones incluso de aquellos que nunca son expertos referente a tecnologia.<\/p>\n","protected":false},"excerpt":{"rendered":"

Actualizamos las resenas mensualmente, agregando mas datos desplazandolo hacia el pelo quitando una documentacion obsoleta Y no ha transpirado, en caso de que te gustaria saber sobra, ?nunca te pierdas la consejero de las bonos sobre casino a su disposicion! Este analisis profundo de estas ventajas desplazandolo hacia el pelo\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-62138","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62138","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=62138"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62138\/revisions"}],"predecessor-version":[{"id":62139,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62138\/revisions\/62139"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62138"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}