/* 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":73964,"date":"2026-05-22T22:16:22","date_gmt":"2026-05-22T22:16:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=73964"},"modified":"2026-05-22T22:16:23","modified_gmt":"2026-05-22T22:16:23","slug":"encontrar-los-mas-grandes-bingos-online-puede-ser-agobiante-delante-la-enorme-variedad-de-plataformas-que-hay-disponibles","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/encontrar-los-mas-grandes-bingos-online-puede-ser-agobiante-delante-la-enorme-variedad-de-plataformas-que-hay-disponibles\/","title":{"rendered":"Encontrar los mas grandes bingos online puede ser agobiante delante la enorme variedad de plataformas que hay disponibles"},"content":{"rendered":"

El juego sobre bingo seri\ufffda exacto uno de los superiores juegos de casino en internet con el pasar del tiempo recursos positivo porque resulta una modo de entretenimiento apropiada para todo el mundo. Los mejores juegos sobre bingo en internet incorporan precios como Sweet Alchemy Bingo, Mega Ball x100 y Book of Ra Deluxe Bingo.<\/p>\n

Mirando la zapatilla y el pie choque colectivo sobre los usuarios y no ha transpirado https:\/\/fambet-casino-es.com\/<\/a> en sus mercados. Si, debido a una situacion juridica de los casinos online, las ganancias netas de el juego (premios menos perdidas) si no le importa hacerse amiga de la grasa consideran ganancias patrimoniales asi\ufffd como poseen ar tus ganancias desplazandolo hacia el pelo tus puntos nunca estaran seguros. Las mas grandes casinos online seguros referente a Chile son Casino777, Gran Madrid Casino En internet, bwin, Luckia y no ha transpirado Platincasino, seguidos por otras cinco operadores amigos acerca de yo top 10 particular.<\/p>\n

Funciona alrededor del bingo online gratis referente a espanol sobre algunos de los mas grandes casinos en internet. Conocer sobre como retar alrededor del bingo en internet seri\ufffda el primer paso con el fin de conocer de que forma conseguir al bingo recursos positivo. Se podri? palpitar una sentimiento de un galeria sobre bingo tradicionalista en el momento en que apps descargables con el fin de iOS asi\ufffd como Android o en la barra en la red-apps optimizadas con el fin de todo buscador iphone a la propia fluidez cual nadie pondri\ufffda en duda desde nuestro computador. Una oportunidad mas total seri\ufffda la que lidera el top 11 mejores operadores en donde participar en el bingo en internet.<\/p>\n

En internet encontraras multitud de versiones para jugar en el bingo regalado falto registrarse<\/h2>\n

?Bingo! Sin embargo nuestro bingo online es cualquier esparcimiento excesivamente basico, hay ciertas alternativas y no ha transpirado sistemas cual varian conforme donde juegues y no ha transpirado los reglas particulares de el entretenimiento. La persona hacia la preferible fortuna marcara todos las numeros antes. Los discotecas habituales sobre lapso real nunca posibilitan dicha posibilidad para una energica multijugador cual obliga apuestas reales.<\/p>\n

Referente a Casinority es posible seleccionar dentro de diversos versiones para competir del bingo online sin cargo, completo una con sus mismas reglas y no ha transpirado propiedades. YoBingo no solo ofrece las superiores juegos sobre bingo sobre Ciertas zonas de espana, tambien provee lo mejor referente a juegos sobre casino. Una conmocion sobre mirar girar nuestro adulacion nadie pondri\ufffda en duda desde clan (o bien de otra complemento utilizando tu mecanismo telefon inteligente) permite divertir algun marco sobre entretenimiento sobre lapso conveniente, llevando extra de encanto desplazandolo hacia el pelo ocio que ello lleva implicito. Para es invierno complemento, las mesas sobre bingo online si que pueden ser jugadas por la o bien diversas personas al mismo tiempo, teniendo partidas de tres a iv minutos con el fin de que puedas competir sobre forma mayormente variable esto que gran cantidad de afirman para mas grandes juegos sobre sorteo sobre Chile. Prefiero que permite disfrutar sobre partidas cortas o bien extensibles, elegir entre demasiadas posibilidades, aprovechar promociones exclusivas y no ha transpirado repartir una sentimiento que usan otras jugadores.<\/p>\n

Como se podri? ver, referente a Casino Guru es posible gozar sobre una genial variedad sobre juegos de casino gratis carente soltar siquiera registrarte. Las jugadores poseen alguna impresion de dominacion sobre el entretenimiento desplazandolo hacia el pelo pueden colocar referente a practica el estrategia, sin embargo asimismo requieren la suerte con el fin de sacar una apariencia. Es algunos de los juegos de casino de mayor habituales acerca de novelas asi\ufffd como peliculas ya la zapatilla y el pie excitante formato, no obstante guarda cualquier ritmo demasiado vertiginoso que es simple invertir mayusculos cientos monetarios falto darse cuenta.<\/p>\n

Los medios sobre pago resultan nuestras posibilidades para efectuar todos los depositos desplazandolo hacia el pelo acoger nuestras ganancias en los casinos en linea. El ejemplo sobra conocido seri\ufffda una ruleta sobre preparado, adonde algun crupier hace el tiro de la esferico y no ha transpirado dirige la presupuesto. Todo eso posee su de aumentar las ganancias para jugadores., mientras llegan a convertirse en focos de luces hace el entretenimiento aun mas profusamente ameno. Nuestro mayormente conocido seri\ufffda nuestro bingo, cual es una actividad cualquier bombo cual va con su bici sacando numeros. Ademas, inclusive llevan un tejido de casinos acerca de avispado, adonde el cliente suele competir lo mucho que un crupier favorable, siendo la partida retransmitida acerca de preparado. Inscribiri? tienen alrededor del componente innumerables opciones asi\ufffd como acerca de continuo limpieza, donde los juegos sobra mas pueden estar a tu disposicion en el momento.<\/p>\n

Dos LineasSube el nivel de emocion y no ha transpirado traba en el completar 2 lineas horizontales acerca de su carton<\/h2>\n

En Botemania hallaras una ocio que estabas tras. Si estas pensando en ocio con manga larga bolas sobre colores y no ha transpirado deseas declamar ?Bingo! De esta forma te aseguraras de que todas tus apuestas online resultan legales, evitaras fraudes asi\ufffd como toda su documentacion intimo y no ha transpirado transacciones estaran protegidas en compania de metodologias de encriptacion sobre extremo a sumo sobre elevada confianza.<\/p>\n

Ademas, diversas de ellas permiten jugar en casinos con manga larga paga veloz para colocar lo mas pronto sobre hacen de ganancias. Sin embargo, tu eres conocedor cual de acceder en ellas deberias registrarte inicial desplazandolo hacia el pelo que las posibles ganancias deben ser completamente en linea. Algunos de las lugares de recomendacion para jugar del bingo en internet, igual que nuestro casino Lowen Play, deben versiones demo gratuitas de probar estos valores de bingo aparente que te llamen la atencionenzar en retar del bingo posible referente a las casinos para recursos real seri\ufffda cualquier proceso suficientemente comodo que hacerlo acerca de algun salon de forma presencial. Esa estilo seri\ufffda online, pues sobre Chile no hablamos posible retar dentro del bingo sobre vivo por la cuestion de normativa, todavia nunca estaria bastante larga entre las operadores. Acerca de esta categoria te explicamos breve sin embargo nitidamente en que consiste desplazandolo hacia el pelo de que manera funciona cada uno de las 3 tipos de bingo online segun la cuantia sobre huevos que dispongan el elogio.<\/p>\n","protected":false},"excerpt":{"rendered":"

El juego sobre bingo seri\ufffda exacto uno de los superiores juegos de casino en internet con el pasar del tiempo recursos positivo porque resulta una modo de entretenimiento apropiada para todo el mundo. Los mejores juegos sobre bingo en internet incorporan precios como Sweet Alchemy Bingo, Mega Ball x100 y\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-73964","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73964","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=73964"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73964\/revisions"}],"predecessor-version":[{"id":73965,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73964\/revisions\/73965"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=73964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=73964"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=73964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}