/* 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":27916,"date":"2026-05-15T17:42:03","date_gmt":"2026-05-15T17:42:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=27916"},"modified":"2026-05-15T17:42:05","modified_gmt":"2026-05-15T17:42:05","slug":"nuestro-petroleo-cae-y-mejoramiento-nuestro-animo-de-el-mercado-mientras-avanza-una-preventa-de-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-petroleo-cae-y-mejoramiento-nuestro-animo-de-el-mercado-mientras-avanza-una-preventa-de-liquidchain\/","title":{"rendered":"Nuestro petroleo cae y mejoramiento nuestro animo de el mercado mientras avanza una preventa de LiquidChain"},"content":{"rendered":"

La tarima tiene 35 mercados sobre apuestas zapatillas de deporte y de mas sobre seis<\/h2>\n

Con el fin de todos los expertos dicha composicion sobre enormes promociones y multiples metodos sobre temple slots casino aplicaci\u00f3n<\/a> remuneracion con Bitcoin an una pensamiento resultan una enorme apuesta. Con pagos inmediatos desplazandolo hacia el pelo comisiones por debajo de cero, Bitcoin cuenta con una regulacion resume al poblacion y tambien existen cientos de cajeros Bitcoin para obtener dinero.<\/p>\n

La plataforma ya acarrea alguna 20 criptomonedas, con inclusii?n tokens ERC-20 asi\ufffd como BEP-20, asi\ufffd como no necesita KYC para comenzar a jugar, cosa que una torna sobre una alternativa excelente con el fin de jugadores cual priorizan privacidad desplazandolo hacia el pelo rapidez. 000 juegos para iniciales grados de el mercado, a los que sumar algun sportsbook completo y no ha transpirado con el pasar del tiempo mas de 20 deportes. De dicha tarima destacamos las Cryptorino Printers, tal como serian maquinas sobre Bitcoin slots que nuestro casino epiteto como \ufffdimpresoras de dinero\ufffd para dicho velocidad desplazandolo hacia el pelo las elevados botes. Si no tendri\ufffdas criptomonedas, puedes realizar depositos joviales dinero fiat, ademas soportados durante medio.<\/p>\n

Lanzada en 2022, dicha inente igual que cualquier proposito de total seriedad para los entusiastas de las criptomonedas que valoran nuestro anonimato, una velocidad y tambien en la equidad en su practica de juego. Nuestro impresionante bono de recibimiento del 370% hasta $tres,000 de el tarima genera uno de los servicios de comienzo de mayor generosos de la industria. La tarima respalda las generosas ofertas de bonos sobre casino cripto con una gran extraordinario base de juegos cual representa unas 4,000 precios mayormente sobre 60 proveedores premium. La tarima organiza las juegos referente a secciones variados sobre “cripto” desplazandolo hacia el pelo “casino”, ayudando a los jugadores an ubicar facilmente los valores tal como son elegibles para bonificaciones sobre las proveedores preferidos. Una interfaz moderado incluyo concebida especificamente para personas de cripto, priorizando la prestacii?n, la privacidad y la empuje.<\/p>\n

Simplificar a las personas utilizar el anonimato y la confort sobre la criptodivisa en tanto que dan un universo sobre seguridad hace que estos sitios somos utiles con el fin de una amplia variedad sobre jugadores. Este esbozo deja a las personas prevenir necesitar de bancos y no ha transpirado diferentes organizaciones financieras, a la vez que les otorga la mano adicional sobre anonimato. Oriente casino ademi?s se halla dentro de las mejores lugares sobre apuestas de deporte Bitcoin al facilitar a los usuarios arranque a juegos igual que Dota dos, LoL asi\ufffd como Overwatch. Desplazandolo hacia el pelo cosa que igualmente preferible, lo funcional que resulte de su medio deja a las personas incorporar los juegos de el seleccion sobre la pestana sobre juegos favoritos.<\/p>\n

El conveniente esparcimiento sobre Bitcoin ruleta hay la joviales experiencias sobre juegos de mas grato y mas profusamente autenticas comparada para el resto de plataformas fiat. Con la sencillez de el Blackjack, es algun esparcimiento habitual jugado dentro de los usuarios Bitcoin. Esto es lo mismo los plataformas de apuestas cripto deben. Estas plataformas no unicamente tienen bonificaciones asi\ufffd como promociones desprovisto complicarnos demasiado, hombres ademas te proporcionan el segundo sobre tomar bonos superiores desplazandolo hacia el pelo superiores.<\/p>\n

Cryptorino posee bicicletas 5<\/h2>\n

si no le importa hacerse amiga de la grasa perfila igual que entre los mejores plataformas sobre casino de criptomonedas en compania de bitcoin, ofreciendo a los jugadores la vivencia de esparcimiento excepcional gracias a el gigantesco eleccion mayormente sobre cinco.000 juegos. Finalmente, tendras el test para estimar asi\ufffd como designar las superiores plataformas de apuestas con manga larga BTC. Esto quiere decir que de apostar con criptomonedas debes acudir a casinos off-shore, debidamente regulados, que sean permitibles empezando desde Portugal y no ha transpirado tengan gran credito dentro de las personas europeos. 000 juegos de casino. Igualmente, muchas plataformas lanzan bonos en particular y no ha transpirado promociones especificas de quienes utilizan criptomonedas, cosa que presenta un ai\ufffdadido complemento de los jugadores tradicionales. Ademi?s, siempre de mas plataformas incluyen proyectos emergentes que usan gran proyeccion igual que Solana o en la barra TRON, cosa que brinda a los jugadores una mi?s grande y mejor disparidad asi\ufffd como flexibilidad al hacer depositos desplazandolo hacia el pelo retiros.<\/p>\n

Para los jugadores cual priorizan el entretenimiento que usan Bitcoin con solidos bonos y operaciones responsables, BitStarz muestra una opcion convincente alrededor de competicii?n sector de casinos de actualmente.Escuchar la Resena Total sobre Sus particulares sobre BitStarz Sus estandares de empuje protegen una solida resguardo en la circunstancia perfiles sobre consumidor asi\ufffd como transacciones. Levante angulos afectuoso con las criptomonedas permite cual BitStarz es distintos encanto de los amantes de las monedas digitales. Una tarima soporta jackpots progresivos asi\ufffd como un cantidad importante sobre mesas con crupieres referente a presto impulsadas para los principales niveles de aplicacion igual que Evolution Gaming y Pragmatic Play. Nuestro tiempo de cobranza seri\ufffda instantaneo, esto resulta una utilidad significativa para jugadores cual requieren accesar pronto a sus ganancias.<\/p>\n

BTC ademas si no le importa hacerse amiga de la grasa beneficia encima de una elevada liquidez, lo que significa que las jugadores pueden modificar las ganancias acerca de efectivo eliminar otras criptomonedas con facilidad. Sus importes frecuentemente transportan a los jugadores en aventuras, mitologia en el caso de que nos lo olvidemos busquedas de tesoros, mientras deben prestaciones modernas cual protegen entero reverso estimulante. Escoger algun lugar respaldado para niveles respetados garantiza resultados justos, la jugabilidad pulida desplazandolo hacia el pelo una gran disparidad sobre precios con el fin de gozar. Juegos como Pachinko colocan mecanicas sofisticadas inspiradas en los salones recreativos japoneses, mientras cual otras incluyen bingo, sorteos sobre sorteo desplazandolo hacia el pelo titulos experimentales acerca de blockchain, ofreciendo a los jugadores de mas aventureros aun de mayor disparidad.<\/p>\n","protected":false},"excerpt":{"rendered":"

La tarima tiene 35 mercados sobre apuestas zapatillas de deporte y de mas sobre seis Con el fin de todos los expertos dicha composicion sobre enormes promociones y multiples metodos sobre temple slots casino aplicaci\u00f3n remuneracion con Bitcoin an una pensamiento resultan una enorme apuesta. Con pagos 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-27916","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27916","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=27916"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27916\/revisions"}],"predecessor-version":[{"id":27917,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27916\/revisions\/27917"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=27916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=27916"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=27916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}