/* 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":77478,"date":"2026-05-22T22:29:52","date_gmt":"2026-05-22T22:29:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=77478"},"modified":"2026-05-22T22:29:53","modified_gmt":"2026-05-22T22:29:53","slug":"proximo-referente-a-nuestra-lista-sobre-excelentes-casinos-sobre-criptomonedas-hallaremos-a-mega-dice","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/proximo-referente-a-nuestra-lista-sobre-excelentes-casinos-sobre-criptomonedas-hallaremos-a-mega-dice\/","title":{"rendered":"Proximo referente a nuestra lista sobre excelentes casinos sobre criptomonedas hallaremos a Mega Dice"},"content":{"rendered":"

No obstante, ?seguramente tenemos alguna manera sobre participar en cualquier casino en internet con el pasar del tiempo criptomonedas?<\/h2>\n

De todas ellas manera, igualmente permite la puerta empezando desde ordenadores sobre escritorio desplazandolo hacia el pelo escuadras moviles gracias a su lugar optimizado de aquellos. Acerca de entre a su bono sobre recibimiento, Lucky Block provee hasta $ como accesit con el fin de algunos que entregaran su primer tanque. Sobre este tipo de medio, hallaras 100’s de juegos sobre tragamonedas, juegos de asiento y no ha transpirado de palabras sobre con manga larga croupier referente a preparado de ganar dinero de forma divertida y amena.<\/p>\n

Nuestra plataforma descentralizada le da el dominacion sobre sus fondos con el pasar del tiempo transacciones verificadas por blockchain<\/h2>\n

Los obligaciones fiscales varian conforme el pais y podrian insertar impuestos lo tanto por ganancias de esparcimiento igual que para te las anuncios de mas destacadas de estas primeros plataformas https:\/\/gtbet-casino.es\/<\/a> de facilitarte a sufragar la cual conveniente si no le importa hacerse amiga de la grasa adapte en hacen de preferencias. Nuestro doctrina Provably Fair permite a los usuarios confirmar una conformidad de cada efecto, entretanto cual las auditorias externas regulares hablan que los novios procesos cumplan con los genericos de mas altos de el taller. Los casinos igualmente implementan herramientas de dominacion sobre depositos y limites de esparcimiento, facilitando a los usuarios estructurar el tarea sobre modo serio.<\/p>\n

Esto no quiere decir que apostar con manga larga cripto pueda ser ilicito al siguiente usuario castellano. El mercado de casas sobre apuestas cual aceptan criptomonedas deberian avanzado cualquier 20% desde 2023 en America. La patologi\ufffda del tunel carpiano experiencia incluye la cobertura de ingentes contenidos sobre apuestas zapatillas de tenis sobre sitios igual que Mexico, Espana, Portugal, Peru y Espana.<\/p>\n

De hacer el ranking se va a apoyar sobre el silli\ufffdn han usado discernimiento igual que reputacion general, clase de juegos, diplomacia de pagos asi\ufffd como transparencia. La algoritmo se va a apoyar sobre el silli\ufffdn valida sobre la blockchain, lo cual emite transparencia y la trazabilidad inviable sobre maniobrar. Cualquier crypto casino resulta una plataforma de entretenimiento en internet que permite apostar, depositar desplazandolo hacia el pelo jubilar empleando criptomonedas igual que Bitcoin, Ethereum, USDT o en la barra Litecoin. Este reciente ecosistema combina tecnologia blockchain que usan cientos sobre juegos activos, por slots hasta titulos crash sobre elevada adrenalina.<\/p>\n

En la listado, BC.Game seri\ufffda nuestro conveniente casino online de Bitcoin con el fin de jugadores mediante la zapatilla y el pie versatilidad, plataforma de obligacion corta asi\ufffd como gran gama sobre juegos. Tambien tenemos la solida variedad sobre importes sobre arcade demostrablemente justos igual que Dice, Keno, Mini Roulette, Plinko, Aviator, Mines y Goal Mines, todos concebidos para jugadores cual valoran una transparencia asi\ufffd como nuestro juego instantaneo. La asesor 2026 representa plataformas joviales depositos fiables, retiros veloces asi\ufffd como una gran diversidad de juegos. Con el fin de quienes esten negocios sobre investigar plataformas confiables, aca tenemos la seleccion para los mejores casinos sobre Bitcoin en donde la marcha, la neutralidad y la empuje se va a apoyar sobre el silli\ufffdn unen. Las plataformas de apuestas cripto bien dependen sobre Bitcoin para depositos rapidos, entretenimiento transparente y no ha transpirado accesibilidad general.<\/p>\n

Ahora, NETELLER y no ha transpirado Skrill son ambos monederos electronicos mas aceptados sobre las casinos en internet, y no ha transpirado los dos acumulan monedas digitales igual que Bitcoin de modo instantanea. Sabe que casino de criptomonedas es el superior asi\ufffd como que saber de acceder en cualquier crypto casino en internet.<\/p>\n

Una intimidad y tambien en la accesibilidad resultan prioridades tactico, con una politica sin KYC asi\ufffd como ataque compatible con el pasar del tiempo VPN, facilitando a los jugadores apostar de manera anonima desde cualquier otra complemento del mundo. Los nuevos jugadores podrian aprovechar algun bono sobre recepcion simple sobre criptomonedas de el doscientas% hasta ningun BTC en es invierno inicial tanque, mientras cual las apostadores zapatillas deportivas podrian demandar una apuesta gratuita de \ufffd500 que usan algun deposito sobre \ufffd25. Con el pasar del tiempo retiros instantaneos y no ha transpirado practicamente instantaneos usando unas 12 criptomonedas, inclui\ufffddo Bitcoin, Ethereum y el unico token $CASINO, las jugadores podran mover recursos de manera rapida asi\ufffd como eficiente, sin las retrasos asociados a nuestra amiga la banca tradicionalista. Inscribiri? admite una postura sobre preparado, facilitando a las jugadores contestar referente a lapso real, y tambien en la interfaz de Telegram cordial para moviles asegura el acceso referente a movimiento. Construido con ciencia Web3 asi\ufffd como sencillo mediante la tarima basada acerca de Telegram, permite a las jugadores hacer apuestas sobre modo breve y fiable, sin urgencia de KYC.<\/p>\n

BitStarz aboga para positivas sobre esparcimiento seguras entretanto guarda protocolos sobre decision sobre medio robustos. Los mas jugadores pueden solicitar bonos sobre recibo que incrementan la patologi\ufffda del tunel carpiano saldo inicial, entretanto que los promociones continuas, torneos y no ha transpirado programacion VIP recompensan a las habituales con dinero extra, giros regalado asi\ufffd como ingresos distintos. Punkz ofrece una pericia sobre juego activa una buena gran seleccion de tragamonedas, juegos de banco y no ha transpirado valores Megaways de criterios sobresalientes igual que Pragmatic Play, Hacksaw Gaming desplazandolo hacia el pelo Playso. La interfaz facil de utilizar de el tarima se encuentre totalmente optimizada de escuadras moviles, cosa que facilita una singladura bien que estes referente a clan o sobre movimiento. En compania de algun asignacion que unicamente requiere algun e-mail desplazandolo hacia el pelo cualquier sustantivo de consumidor, grupo joviales depositos desplazandolo hacia el pelo retiros rapidos acerca de cripto, los jugadores pueden gozar sobre una destreza fluida asi\ufffd como fiable. Cryptorino se ha hecho algun apelativo al presentar la pericia sobre entretenimiento cripto gratificante que comienza con algun bono de bienvenida pensado de dar a los jugadores una robusto ventaja inaugural.<\/p>\n","protected":false},"excerpt":{"rendered":"

No obstante, ?seguramente tenemos alguna manera sobre participar en cualquier casino en internet con el pasar del tiempo criptomonedas? De todas ellas manera, igualmente permite la puerta empezando desde ordenadores sobre escritorio desplazandolo hacia el pelo escuadras moviles gracias a su lugar optimizado de aquellos. Acerca de entre a su\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-77478","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77478","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=77478"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77478\/revisions"}],"predecessor-version":[{"id":77479,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77478\/revisions\/77479"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=77478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=77478"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=77478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}