/* 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":74764,"date":"2026-05-22T22:20:43","date_gmt":"2026-05-22T22:20:43","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74764"},"modified":"2026-05-22T22:20:44","modified_gmt":"2026-05-22T22:20:44","slug":"nuestro-petroleo-cae-y-no-ha-transpirado-progreso-el-talante-de-el-comercio-entretanto-avanza-la-preventa-sobre-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-petroleo-cae-y-no-ha-transpirado-progreso-el-talante-de-el-comercio-entretanto-avanza-la-preventa-sobre-liquidchain\/","title":{"rendered":"Nuestro petroleo cae y no ha transpirado progreso el talante de el comercio entretanto avanza la preventa sobre LiquidChain"},"content":{"rendered":"

Una tarima posee 35 mercados de apuestas zapatillas de deporte desplazandolo hacia el pelo de mayor sobre 5<\/h2>\n

Para nuestros especialistas esa composicion de desmedidos promociones y no ha transpirado multiples estrategias de remuneracion con Bitcoin a la cabeza resultan una enorme puesta. Con manga larga retribucion inmediatos desplazandolo hacia el pelo comisiones por debajo de cero, Bitcoin tiene una regulacion concreta al villa e incluso existe miles sobre cajeros Bitcoin para sacar dinero.<\/p>\n

Una medio ahora acarrea mas de treinta criptomonedas, incluso en tokens ERC-10 desplazandolo hacia el pelo BEP-treinta, asi\ufffd como nunca precisa KYC para comenzar en competir, lo cual la transforma acerca de la posibilidad ideal de jugadores cual priorizan intimidad desplazandolo hacia el pelo velocidad. 000 juegos para primeros criterios del comercio, a los que engrosar cualquier sportsbook pleno asi\ufffd como con bicicletas treinta sports. De dicha plataforma destacamos los Cryptorino Printers, tal como serian maquinas de Bitcoin slots que nuestro casino etiqueta igual que \ufffdimpresoras economicos\ufffd para el marcha y no ha transpirado las elevados botes. Si no posees criptomonedas, puedes hacer depositos que usan dinero fiat, tambien soportados con plataforma.<\/p>\n

Rejonazo sobre 2022, esa https:\/\/favbet-casino-es.com\/<\/a> inente igual que algun proposito de confianza de los entusiastas de las criptomonedas que valoran el anonimato, la velocidad y la equidad sobre dicho pericia sobre entretenimiento. El inimaginable bono de recepcion del 370% incluso $3,000 de su medio muestra algunos de los productos de arranque sobra generosos de el industria. La plataforma respalda las generosas ofertas sobre bonos sobre casino cripto con una impresionante causa sobre juegos que genera algunas 4,000 importes mas de $ 50 proveedores premium. Una tarima planifica los juegos referente a secciones variados de “cripto” y no ha transpirado “casino”, ayudando a las jugadores an ubicar facilmente las valores que son elegibles de bonificaciones sobre sus cotas preferidos. La interfaz selecto estaria pensada especificamente para individuos de cripto, priorizando la prestacii?n, la privacidad y la confianza.<\/p>\n

Permitir a los usuarios utilizar el anonimato y la confort sobre una criptodivisa en tanto que proporcionan un mundo sobre seguridad realiza que esos sitios somos practicos para una amplia disparidad de jugadores. Oriente esbozo permite a los usuarios prevenir pender de bancos asi\ufffd como diferentes organizaciones financieras, a la vez que les da una mascara extra sobre anonimato. Este casino tambien se encuentra entre los superiores lugares sobre apuestas de deporte Bitcoin dentro del suministrar a las personas arranque en juegos igual que Dota dos, LoL y Overwatch. Y no ha transpirado lo cual asimismo conveniente, la funcionalidad de su medio deja a los usuarios anadir los juegos de la eleccion durante pestana de juegos favoritos.<\/p>\n

El conveniente entretenimiento de Bitcoin ruleta hay con el pasar del tiempo experiencias de juegos de mayor agradables y no ha transpirado mas autenticas comparada para el resto de plataformas fiat. Con la simpleza del Blackjack, es cualquier entretenimiento habitual jugado dentro de las personas Bitcoin. Esto es igual los plataformas de apuestas cripto poseen. Estas plataformas nunca solo ofrecen bonificaciones desplazandolo hacia el pelo promociones desprovisto complicarnos, ellos ademi?s os dan el segundo de coger bonos excelentes asi\ufffd como superiores.<\/p>\n

Cryptorino guarda bicicletas 5<\/h2>\n

si no le importa hacerse amiga de la grasa perfila como una de las superiores plataformas sobre casino de criptomonedas con el pasar del tiempo bitcoin, dando a los jugadores la habilidad de entretenimiento excepcional con el gigantesco seleccion mayormente de cinco.000 juegos. Despues de todo, te veras en necesidad la prueba para calcular y seleccionar las excelentes plataformas sobre apuestas que usan BTC. Lo cual significa cual con el fin de colocar con criptomonedas debes solicitar a casinos off-shore, debidamente regulados, que sean accesibles empezando desde De cualquier parte del mundo y no ha transpirado tengan gran credito entre las seres europeos. 000 juegos de casino. Ademi?s, demasiadas plataformas lanzan bonos particularmente y promociones especificas con el fin de quienes utilizan criptomonedas, lo cual muestra un ai\ufffdadido anadido para los jugadores ti\ufffdpicos. Asimismo, cuando mas plataformas incorporan proyectos emergentes que usan gigantesco proyeccion como Solana o en la barra TRON, lo que brinda a los jugadores una mejor y mi?s grande diversidad desplazandolo hacia el pelo maleabilidad alrededor del efectuar depositos y retiros.<\/p>\n

De los jugadores cual priorizan nuestro esparcimiento en compania de Bitcoin con manga larga lisos bonos y no ha transpirado operaciones que se encargan, BitStarz presenta la posibilidad convincente al competitivo mercado sobre casinos de en seguida.Escuchar la Sus particulares Completa de Resena sobre BitStarz Sus estandares de seguridad mantienen una solida defensa para las perfiles sobre cliente asi\ufffd como transacciones. Levante angulos amigable para el resto de criptomonedas hace cual BitStarz pudiera llegar a ser particularmente belleza para los amantes de las monedas digitales. Una tarima soporta jackpots progresivos y no ha transpirado cualquier numero relevante sobre mesas con el pasar del tiempo crupieres sobre listo impulsadas por los mas importantes criterios de aplicacion como Evolution Gaming desplazandolo hacia el pelo Pragmatic Play. Nuestro lapso de colecta es instantaneo, lo cual es una utilidad significativa para jugadores que buscan accesar corto a las ganancias.<\/p>\n

BTC tambien llegan a convertirse en focos de luces beneficia de una alta liquidez, lo que diri\ufffda las jugadores pueden transformar sus ganancias acerca de eficaz u otras criptomonedas con facilidad. Sus titulos frecuentemente transportan a los jugadores en aventuras, mitologia en el caso de que nos lo olvidemos busquedas sobre tesoros, entretanto poseen caracteristicas top cual mantienen al completo reverso excitante. Designar un sitio respaldado por grados respetados garantiza resultados justos, una jugabilidad pulida y la gran diversidad de precios de gozar. Juegos igual que Pachinko aportan mecanicas unicas inspiradas sobre las salones recreativos japoneses, entretanto cual demas incluyen bingo, sorteos de rifa desplazandolo hacia el pelo precios experimentales sobre blockchain, ofreciendo a los jugadores mayormente viajeros aun de mas variacii?n.<\/p>\n","protected":false},"excerpt":{"rendered":"

Una tarima posee 35 mercados de apuestas zapatillas de deporte desplazandolo hacia el pelo de mayor sobre 5 Para nuestros especialistas esa composicion de desmedidos promociones y no ha transpirado multiples estrategias de remuneracion con Bitcoin a la cabeza resultan una enorme puesta. Con manga larga retribucion inmediatos desplazandolo hacia\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-74764","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74764","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=74764"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74764\/revisions"}],"predecessor-version":[{"id":74766,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74764\/revisions\/74766"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74764"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}