/* 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":76688,"date":"2026-05-22T22:27:33","date_gmt":"2026-05-22T22:27:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=76688"},"modified":"2026-05-22T22:27:35","modified_gmt":"2026-05-22T22:27:35","slug":"nuestro-petroleo-cae-desplazandolo-hacia-el-pelo-mejoramiento-nuestro-talante-del-mercado-mientras-avanza-la-preventa-sobre-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-petroleo-cae-desplazandolo-hacia-el-pelo-mejoramiento-nuestro-talante-del-mercado-mientras-avanza-la-preventa-sobre-liquidchain\/","title":{"rendered":"Nuestro petroleo cae desplazandolo hacia el pelo mejoramiento nuestro talante del mercado mientras avanza la preventa sobre LiquidChain"},"content":{"rendered":"

Una plataforma posee 35 mercados sobre apuestas de deporte desplazandolo hacia el pelo sobra sobre 8<\/h2>\n

Con el fin de los especialistas esa composicion de mayusculos promociones y multiples metodos sobre paga con manga larga Bitcoin a la mente resultan una enorme puesta. Joviales pagos inmediatos asi\ufffd como comisiones pequenas, Bitcoin tiene la regulacion concreta alrededor del aldea y tambien existen miles de cajeros Bitcoin con el fin de conseguir dinero.<\/p>\n

Una tarima ahora asume alguna 30 criptomonedas, incluso en tokens ERC-treinta desplazandolo hacia el pelo BEP-15, Golden Star bono sin dep\u00f3sito<\/a> asi\ufffd como no precisa KYC para comenzar en participar, lo que la hacen de acerca de una posibilidad perfecta de jugadores cual priorizan intimidad y velocidad. 000 juegos de los iniciales grados del comercio, a las cual anadir cualquier sportsbook pleno y con manga larga acoples treinta sports. Sobre esa tarima destacamos los Cryptorino Printers, tal como serian maquinas de Bitcoin slots cual nuestro casino etiqueta como \ufffdimpresoras monetarios\ufffd por dicho marcha y no ha transpirado las elevados botes. Si no tendri\ufffdas criptomonedas, se puede realizar depositos en compania de recursos fiat, ademi?s soportados durante medio.<\/p>\n

Lanzazo sobre 2022, este tipo de inente como cualquier destino de total seriedad para los entusiastas de las criptomonedas cual valoran el anonimato, la marcha y la equidad en el destreza de juego. El extraordinario bono de audiencia de el 370% incluso $tres,000 de la medio genera uno de los trabajos de inicio de mas generosos de el manufactura. Una tarima respalda estas generosas anuncios de bonos de casino cripto una buena inimaginable motivo de juegos cual presenta mas de 4,000 importes mas sobre $ 60 cotas premium. La plataforma planifica los juegos en secciones variados de “cripto” y no ha transpirado “casino”, ayudando a los jugadores an ubicar facilmente las precios tal como serian elegibles de bonificaciones sobre sus cotas preferidos. La interfaz refinado esta concebida especificamente con el fin de seres de cripto, priorizando la prestacii?n, la intimidad y la decision.<\/p>\n

Facilitar a los usuarios utilizar nuestro anonimato y tambien en la confort de una criptodivisa al tiempo que proporcionan algun universo de empuje hace cual estos sitios resultan practicos para una gran variedad sobre jugadores. Oriente croquis deja a las personas impedir precisar de bancos y no ha transpirado otras organizaciones financieras, a la vez que les da una mascara adicional de anonimato. Levante casino ademas se encuentra entre las excelentes lugares sobre apuestas zapatillas de tenis Bitcoin al proveer a las personas acceso en juegos igual que Dota dos, LoL y no ha transpirado Overwatch. Y no ha transpirado lo que es mas mejor, la funcionalidad de el medio permite a las personas adicionar las juegos de la seleccion en la pestana de juegos favoritos.<\/p>\n

Nuestro superior entretenimiento sobre Bitcoin ruleta tenemos con experiencias sobre juegos mas grato asi\ufffd como de mas autenticas comparada con las plataformas fiat. Por medio de una simpleza de el Blackjack, es un esparcimiento frecuente jugado entre la gente Bitcoin. Esto es sin duda lo mismo los plataformas de apuestas cripto se fabrican con. Las plataformas no separado deben bonificaciones y no ha transpirado promociones desprovisto complicaciones, ellos igualmente te dan la oportunidad sobre coger bonos excelentes y no ha transpirado excelentes.<\/p>\n

Cryptorino posee alguna 6<\/h2>\n

se va a apoyar sobre el silli\ufffdn perfila igual que unas los excelentes plataformas sobre casino de criptomonedas con bitcoin, dando a los jugadores una pericia de esparcimiento excepcional mediante la zapatilla y el pie gigantesco seleccion mas profusamente sobre 5.000 juegos. Al final, tendras la experiencia de valorar y no ha transpirado escoger los excelentes plataformas sobre apuestas que usan BTC. Esto obliga cual para emplazar joviales criptomonedas debes acudir en casinos off-shore, debidamente regulados, que sean permitibles nadie pondri\ufffda en duda desde Ciertas zonas de espana y no ha transpirado tengan gran reputacion dentro de los individuos europeos. 000 juegos sobre casino. Tambien, muchas plataformas lanzan bonos particularmente y no ha transpirado promociones especiales de algunos que utilizan criptomonedas, cosa que representa una ventaja anadido de los jugadores tradicionales. Ademas, cada vez de mas plataformas incluyen proyectos emergentes con gran proyeccion como Solana o en la barra TRON, cosa que provee a las jugadores una mayor diversidad desplazandolo hacia el pelo flexibilidad alrededor del efectuar depositos y no ha transpirado retiros.<\/p>\n

Para jugadores cual priorizan el esparcimiento con Bitcoin con manga larga solidos bonos desplazandolo hacia el pelo operaciones que se ocupan, BitStarz muestra una eleccion contundente alrededor del competitivo sector de casinos de en seguida.Atender una Resena Total de Resena sobre BitStarz Las genericos de empuje protegen una solida proteccion en la circunstancia perfiles sobre usuario asi\ufffd como transacciones. Levante enfoque amigable para el resto de criptomonedas realiza que BitStarz es particularmente delicadeza para los amantes de estas monedas digitales. Una medio soporta jackpots progresivos y no ha transpirado cualquier cantidad fundamental de mesas que usan crupieres acerca de avispado impulsadas para los mas importantes grados sobre programacii?n como Evolution Gaming y Pragmatic Play. Nuestro lapso sobre colecta es instantaneo, esto es una utilidad significativa para jugadores que tratab de hallar ingresar rapido a sus ganancias.<\/p>\n

BTC ademas inscribiri? beneficia sobre una elevada liquidez, lo que significa que los jugadores podrian transformar las ganancias sobre efectivo u diferentes criptomonedas con facilidad. Sus valores usualmente transportan a las jugadores en aventuras, mitologia indumentarias busquedas de tesoros, entretanto poseen prestaciones top que mantienen todo vuelta emocionante. Escoger un lugar respaldado por proveedores respetados garantiza objetivos justos, una jugabilidad pulida asi\ufffd como la gran diversidad sobre precios para gozar. Juegos igual que Pachinko colocan mecanicas sofisticadas fundamentadas en los salones recreativos japoneses, entretanto que otras incorporan bingo, sorteos de loteria y importes experimentales referente a blockchain, ofreciendo a las jugadores mayormente aventureros todavia mas profusamente diversidad.<\/p>\n","protected":false},"excerpt":{"rendered":"

Una plataforma posee 35 mercados sobre apuestas de deporte desplazandolo hacia el pelo sobra sobre 8 Con el fin de los especialistas esa composicion de mayusculos promociones y multiples metodos sobre paga con manga larga Bitcoin a la mente resultan una enorme puesta. Joviales pagos inmediatos asi\ufffd como comisiones pequenas,\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-76688","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76688","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=76688"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76688\/revisions"}],"predecessor-version":[{"id":76689,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/76688\/revisions\/76689"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=76688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=76688"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=76688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}