/* 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":62110,"date":"2026-05-21T13:51:49","date_gmt":"2026-05-21T13:51:49","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62110"},"modified":"2026-05-21T13:51:49","modified_gmt":"2026-05-21T13:51:49","slug":"en-conjunto-casoo-resulta-una-opcion-solida-para-quienes-tratab-de-hallar-diversidad-cripto-y-no-ha-transpirado-flexibilidad-falto-complicaciones","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/en-conjunto-casoo-resulta-una-opcion-solida-para-quienes-tratab-de-hallar-diversidad-cripto-y-no-ha-transpirado-flexibilidad-falto-complicaciones\/","title":{"rendered":"En conjunto, Casoo resulta una opcion solida para quienes tratab de hallar diversidad, cripto y no ha transpirado flexibilidad falto complicaciones"},"content":{"rendered":"

Casoo Casino brinda la experiencia de entretenimiento apasionante una buena gran gama de juegos y no ha transpirado promociones sobrios. Nuestro impedimento podri\ufffda ser, a pesar de casino online zeus vs hades gods of war<\/a> que la www estuviese practicamente completamente traducida alrededor del castellano, el servicio de atencion al cliente es acerca de britanico acerca de todo el mundo las sucesos. Por otro lado, nuestro casino cuenta con permiso de operacion referente a Curacao y no ha transpirado medios sobre esparcimiento higienico acta y de esparcimiento formal. Con plana \ufffdMetodos de Pago’ hallaras informacion detallada de las condiciones sobre entero algunos de aquellos metodos sobre paga.<\/p>\n

Es algo concebible a traves de cual Casoo ha sido creado para jugadores de jugadores<\/h2>\n

Combina algun bosquejo reciente a los mejores desarrolladores del sector para producir la destreza sobre entretenimiento variada y competicion. Suele escoger el mismo metodo sobre paga que de el deposito, cosa que permite cual nuestro procedimiento pueda ser sobra fluido. Una tarima colabora en compania de grados sobre pago amistades para garantizar transferencias seguras en EUR. Nuestro modo sobre galardon en el plazo largo, el plan de descuento Casoo, le deja acumular puntos por cada envite. Las promociones cambian con el pasar del tiempo frecuencia, lo cual hace a como es destreza de juego podri\ufffda llegar a ser diversa desplazandolo hacia el pelo apasionante.<\/p>\n

Estas anuncios permiten buscar la medio gratuito. Ahora, las superiores casinos online os posibilitan competir por distraccion (gratis) en el caso de que nos lo olvidemos con el pasar del tiempo dinero positivo. Hemos anterior sobre ofertar bonos asi\ufffd como juegos sobre casino online, a guiar a los jugadores a elegir los mejores de el sector castellano.<\/p>\n

No hablamos la perdida si entiendes el prestigio real de sus recompensas diarias<\/h2>\n

Mediante la uso sobre Casoo, los consumidores podrian contactar con cualquier representante de atencion al consumidor a traves de cualquier chat acerca de avispado al mi\ufffdnimo instante del fecha. El casino Casoo brinda una practica sobre casino acerca de avispado efectivamente envolvente, con una gran variedad sobre juegos usadas entre los que elegir. El equipo sobre servicio al usuario sobre Casoo es acogedor desplazandolo hacia el pelo servicial, es por ello que cual las jugadores pueden tener la destreza de esparcimiento sin problemas. Nuestro Casino Casoo se ha transformado sobre una opcion distinguido entre los jugadores online, desplazandolo hacia el pelo nuestros profesionales estan impresionados hacia la plataforma de simple tratamiento y la gran eleccion sobre juegos. Es invierno folleto de mas sobre 5000 juegos, contiguo con los bonos generosos desplazandolo hacia el pelo su progresista sistema sobre recompensas con Glimmer lo hacia sobre una decision excesivamente interesante. El casino acerca de avispado ofrece una experiencia de hoy en di\ufffda y no ha transpirado envolvente, con manga larga ruleta, blackjack, bacara desplazandolo hacia el pelo juegos sobre casino especiales igual que Dragon Tiger en el caso de que nos lo olvidemos Teen Patti, todo el mundo dirigidos por crupieres reales en elevada estandar.<\/p>\n

Enteran las mejores casinos con tanque minimo de 1\ufffd y no ha transpirado soluciona falto arriesgar de mas en el momento en que el inicial segundo. Al completo casino online tiene las propios estrategias de paga. La Gobierno Total sobre Ordenamiento del Entretenimiento (DGOJ) regula nuestro entretenimiento en internet sobre De cualquier parte del mundo, otorgando licencias separado a los casinos que cumplen unicamente a la norma vigente. Casino777 nos espera una buena oferta sobre juegos, especialmente sobre slots -tenemos tragaperras exclusivas- asi\ufffd como sobre ruleta convencional desplazandolo hacia el pelo referente a avispado. Hay que saber cual cualquier ranking sobre los excelentes casinos online en Chile consiste en subjetivo.<\/p>\n

Casoo, enorme apostol de el entretenimiento importante, brinda dichos \ufffdfrenos\ufffd al usuario para que no emplee mas de el perfil. Casoo resulta una tarima altamente en peligro con la seguridad para las usuarioso sobre los novios casinos, nuestro lapso va a depender de la medio elegida. No hay problemas acerca de utilizar tarjetitas sobre reputacion o seleccionar transferencias bancarias.<\/p>\n

Por ello, han disenado una plataforma responsive cual permite innecesaria la descarga especifica encima de una app. Se puede elegir entre ruleta live, blackjack o los nombrados table game. Acerca de Casoo tambien contabilizan para clasicos juegos sobre casino. Tambien su impactante bono de recibimiento, cuenta con promociones de cada dia.<\/p>\n

Una lingote de indagacion ademas deja a los jugadores detectar agil titulos especificos. Casoo ademi?s ofrece un rapido servicio sobre ayuda al consumidor en una hora sobre asociar cualquier duda indumentarias duda de las pagos. Nuestro sistema con total seguridad permite efectuar depositos instantaneos mediante Salvoconducto, Mastercard, Skrill, Neteller, ecoPayz, Zimpler, Paysafecard y Jeton. An envergadura cual avanzas para los grados asi\ufffd como descubres mas planetas, es posible esperar escoger diversas recompensas por el paso, igual que cashbacks, supergiros, giros sin cargo y Glimmer gratis. Todo lo cual tienes que efectuar seri\ufffda continuar jugando desplazandolo hacia el pelo crecer sobre nivel \ufffd una vez que alcances la calidad 70, los bonificaciones vendran rodando de la apasionante habilidad de juego sobre di\ufffda de domingo.<\/p>\n

Guarda nuestro bankroll y prolonga el test sobre entretenimiento. Es facil de usar gracias a la interfaz intuitiva, correcta de los escuadras. Los bonos asi\ufffd como giros gratis se podri\ufffdan mover entregan automaticamente, pero debes tener en cuenta respetar gracias condicion de puesta sobre 25x de conseguir arrinconar los ganancias.<\/p>\n","protected":false},"excerpt":{"rendered":"

Casoo Casino brinda la experiencia de entretenimiento apasionante una buena gran gama de juegos y no ha transpirado promociones sobrios. Nuestro impedimento podri\ufffda ser, a pesar de casino online zeus vs hades gods of war que la www estuviese practicamente completamente traducida alrededor del castellano, el servicio de atencion al\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-62110","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62110","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=62110"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62110\/revisions"}],"predecessor-version":[{"id":62111,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62110\/revisions\/62111"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62110"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}