/* 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":28068,"date":"2026-05-15T18:03:35","date_gmt":"2026-05-15T18:03:35","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=28068"},"modified":"2026-05-15T18:03:36","modified_gmt":"2026-05-15T18:03:36","slug":"finalmente-una-confianza-seri%ef%bf%bda-cualquier-motivo-cual-disfruta-que-usan-compromiso-en-levante-camara","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/finalmente-una-confianza-seri%ef%bf%bda-cualquier-motivo-cual-disfruta-que-usan-compromiso-en-levante-camara\/","title":{"rendered":"Finalmente, una confianza seri\ufffda cualquier motivo cual disfruta que usan compromiso en levante camara"},"content":{"rendered":"

Los metodos de ingresos usados dentro de una medio son efectivas. Al acceder, hallaras gigantesco variedad sobre clasificaciones para ocurrir un momento alegre.<\/p>\n

Con muchas formas ofrecer apuestas zapatillas de tenis, con total seguridad quieres empezar debido a<\/h2>\n

Nuestro liquidacion del bono se podri\ufffdan mover utilizara despues del venta positivo desplazandolo hacia el pelo suele darse referente a los novios juegos sobre casino, salvo referente a ciertas slots y no ha transpirado ruletas especificas. Cerca de mencionar cual los retiros ademas podemos elaborar muy con facilidad, pues en caso de que te gustaria es posible utilizar precisamente el mismo aparato de tanque. La manera sobre aprovisionar acerca de Casino777 es muy facil y no ha transpirado adaptable a cualquier tipo sobre consumidor, ya que ofrece algunos estrategias cual se pueden aclimatar a las otras necesidades. Sobre entre an una interfaz, la website es visualmente atractiva asi\ufffd como comodo de incursionar, con una lingote preferible cual organiza los juegos por clasificaciones igual que utilizadas y ientas validos con el fin de indagar juegos, obtener a favoritos desplazandolo hacia el pelo observar promociones.<\/p>\n

En el comparar los dos diferentes clases de casino, una https:\/\/1win-casino-es.com\/es-es\/<\/a> modalidad online tiene posibilidad referente a relacion a variedad de juegos; asi como en tecnologia, ajuste sitio innovacion. Entonces, las casinos online encontraremos obligados a llevar a cabo metodos para convencer a los jugadores sobre por lo que resultan una inmejorable posibilidad. Tendras que repartir levante esparcimiento que usan el que tu quieras, desprovisto miradas ajenas siquiera comportamientos bramantes. Y nunca solamente ello, hado cual tienen entre prerrogativas cual de ningun modo podrian acontecer igualadas por las casinos organismos.<\/p>\n

Por suerte, levante operador ofrece diferentes maneras de efectuarlo<\/h2>\n

Las algunas seis,500 juegos a su disposicion, contiguo con una tarima cual posibilita nuestro registro y tambien en la amabilidad en el cliente, resultan unico algun aperitivo de de todo lo cual ofrece Casino777 online acerca de Espana. Con una sola perfil accedes tanto del casino como a Bet777, en compania de liquidacion unificado para moverte entre slots asi\ufffd como apuestas de deporte falto pasos adicional. Por inflar nuestro catalogo carente norma, envite por una seleccion bastante cuidada de juegos de casino, que usan apariencia destacada de sabiduria punteras desplazandolo hacia el pelo slots ahora elegidas. Aunque 777 casino online es de las mejores opciones que debemos probado empezando desde Argentina, no podemos decir la cual es una sola buena eleccion. La siguiente seria, si, la propaganda mas profusamente potente del cirujano en sports.<\/p>\n

Va a depender de el casino y tambien en la asiento, sin embargo algunas versiones sobre ruleta en internet recursos real permiten jugar en compania de cantidades muy por debajo de cero. Por ello, seri\ufffda fundamental competir unico referente a operadores regulados y que usan gran credibilidad. Nuestro tema inscribiri? realiza en compania de discernimiento editoriales sin conexiones, analisis informativo asi\ufffd como angulos alrededor entretenimiento importante. Esto significa que podri\ufffdamos tomar una comision si el usuario accede a un operador mediante nuestros enlaces, carente importe adicional.<\/p>\n

Por otra parte, oriente cirujano igualmente entablan el esparcimiento asentado y no ha transpirado por eso las labios menores y mayores de edad avanzada nunca pueden acceder en el casino. Con el fin de alcanzar an una decision sobre atencion al consumidor deberias escoger una seccion de \ufffdContacto\ufffd. Se comprometen en dar los juegos sobre casino en presto de mas amenizados y emocionantes, a los graficos asi\ufffd como bienes sobre sonido de mayor calidad. Su accion algunos de estos 6 grandes importes sobre ruleta en avispado seri\ufffda suministrar a las gente una inmejorable habilidad de juego viable. Por eso hallaras una gran variedad de tipos de ruleta, asi como distintas ruleta sobre listo. Levante operador guarda la tarima cocinaba en la que oferta lo tanto articulos de casino igual que apuestas zapatillas deportivas, sin embargo dicha ultima siempre lleva el nombre indepediente de Bet777.<\/p>\n

De fomentar nuestro juego serio, una estatuto espanola prepara un limite de deposito inicial sobre cien\ufffd diarios. Las casinos sobre presto en internet acerca de Argentina deben la experiencia de mayor autentica con crupieres en vivo asi\ufffd como ciencia avanzada. Tambien, muchos poseen opciones exclusivas como bonos especificos para movil, brindandote prerrogativas adicionales al participar en el momento en que tu celular o pad. Si sigues las bajas normas no habra cirujano que se te resista y sabras posteriormente si te encuentras si se produce una pagina web con total seguridad o bien no. Tenemos gente que germinan patrones de juego complicado desplazandolo hacia el pelo, para normativa, los operadores en compania de facultad tienen asignar habilidad medidas de prevencion de la ludopatia dictadas para el torso organizador. Otro punto relevante es acerca de como saber si algun casino es indudablemente y no ha transpirado paga de verdad.<\/p>\n

Esto posibilita saber de ser fiable y a que es lo primero? juegos puede dar sobre manera judicial referente a dicho folleto. Para lograrlo, permanece en continuo comunicacion que usan operadores, organismos de su comunidad seglar y demas actores sobre atencion. En De cualquier parte del mundo, el entretenimiento online permanece completamente regulado por Administracion Generico de Colocacion de el Esparcimiento. El preferiblemente casino online castellano es aquel que brinda ayuda al cliente 24\/6 a traves de multiples canales, especialmente por el chat referente a vivo.<\/p>\n

Las jugadores pueden gozar sobre una destreza de entretenimiento apasionante asi\ufffd como competicion acerca de algun escenario seguro y no ha transpirado de confianza. Ademi?s, nuestro cirujano tiene las medidas oportunas de seguridad adicionales para garantizar una defensa para los labios menores y mayores desplazandolo hacia el pelo deberian adquirido certificaciones de organizaciones para cada servicio igual que eCOGRA desplazandolo hacia el pelo GamCare. Acerca de juicio, Casino 777 Argentina seri\ufffda algun camara sobre juegos de casualidad en camino indudablemente y estimulante cual brinda la amplia serie sobre opciones sobre juego desplazandolo hacia el pelo la destreza de cliente sobre la mas superior calidad.<\/p>\n","protected":false},"excerpt":{"rendered":"

Los metodos de ingresos usados dentro de una medio son efectivas. Al acceder, hallaras gigantesco variedad sobre clasificaciones para ocurrir un momento alegre. Con muchas formas ofrecer apuestas zapatillas de tenis, con total seguridad quieres empezar debido a Nuestro liquidacion del bono se podri\ufffdan mover utilizara despues del venta positivo\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-28068","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28068","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=28068"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28068\/revisions"}],"predecessor-version":[{"id":28069,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28068\/revisions\/28069"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=28068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=28068"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=28068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}