/* 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":79644,"date":"2026-05-22T22:35:42","date_gmt":"2026-05-22T22:35:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=79644"},"modified":"2026-05-22T22:35:43","modified_gmt":"2026-05-22T22:35:43","slug":"el-petroleo-cae-y-no-ha-transpirado-mejora-el-humor-del-comercio-mientras-avanza-la-preventa-sobre-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/el-petroleo-cae-y-no-ha-transpirado-mejora-el-humor-del-comercio-mientras-avanza-la-preventa-sobre-liquidchain\/","title":{"rendered":"El petroleo cae y no ha transpirado mejora el humor del comercio mientras avanza la preventa sobre LiquidChain"},"content":{"rendered":"

Una plataforma posee 35 mercados sobre apuestas de deporte asi\ufffd como de mas de 5<\/h2>\n

Con el fin de todos los especialistas dicha combinacion de enormes promociones asi\ufffd como multiples metodos sobre remuneracion joviales Bitcoin a la mente resultan una enorme postura. Con el pasar del tiempo ingresos inmediatos desplazandolo hacia el pelo comisiones por debajo de cero, Bitcoin tiene la regulacion resume al pueblo e igualmente tenemos miles sobre cajeros Bitcoin con el fin de sacar dinero.<\/p>\n

La medio bien admite bicicletas 30 criptomonedas, inclusive tokens ERC-20 y BEP-20, asi\ufffd como no necesita KYC primeramente en participar, cosa que una convierte acerca de una posibilidad perfecta de jugadores cual priorizan privacidad y celeridad. 000 juegos de los primeros criterios del sector, a las que sumar un sportsbook entero y con el pasar del tiempo alguna 20 deportes. Sobre esta medio destacamos las Cryptorino Printers, tal que son maquinas de Bitcoin slots que nuestro casino etiqueta como \ufffdimpresoras baratos\ufffd por es invierno velocidad desplazandolo hacia el pelo sus elevados botes. En caso de que tendri\ufffdas criptomonedas, es posible hacer depositos en compania de recursos fiat, ademi?s soportados durante plataforma.<\/p>\n

Rejonazo en 2022, dicha inente igual que algun finalidad confiable para amantes de las criptomonedas que valoran el IgoBet inicio de sesi\u00f3n en el casino<\/a> anonimato, una velocidad y la neutralidad en dicho habilidad de entretenimiento. El impresionante bono sobre admision del 370% hasta $tres,000 de la plataforma genera algunos de los trabajos sobre arranque sobra generosos de su manufactura. La tarima respalda estas generosas ofertas de bonos de casino cripto con una gran extraordinario base de juegos que genera mas de iv,000 importes mayormente de 60 proveedores premium. Una plataforma planea las juegos sobre secciones diversos de “cripto” desplazandolo hacia el pelo “casino”, ayudando a las jugadores an ubicar con facilidad las precios tal como serian elegibles de bonificaciones sobre sus grados preferidos. La interfaz fino estaria pensada especificamente de personas de cripto, priorizando la prestacii?n, una intimidad y tambien en la seguridad.<\/p>\n

Facilitar a las personas usar el anonimato y tambien en la confort sobre la criptodivisa en tanto que dan cualquier universo sobre confianza permite cual dichos lugares serian atractivos para la amplia diversidad sobre jugadores. Oriente esquema permite a las personas impedir subordinarse de bancos asi\ufffd como otras organizaciones financieras, entretanto les da la capa adicional sobre anonimato. Este casino igualmente se halla dentro de los excelentes lugares de apuestas zapatillas deportivas Bitcoin dentro del brindar a las personas arrebato a juegos como Dota 2, LoL desplazandolo hacia el pelo Overwatch. Asi\ufffd como lo que tambien mejor, la funcionalidad de su plataforma permite a los usuarios sumar las juegos de el seleccion con pestana sobre juegos favoritos.<\/p>\n

Nuestro superior entretenimiento de Bitcoin ruleta encontraremos que usan vivencias sobre juegos sobra grato y no ha transpirado mayormente autenticas comparada para el resto de plataformas fiat. Por medio de una simplicidad del Blackjack, es un juego comun jugado dentro de los usuarios Bitcoin. Esto es lo mismo las plataformas sobre apuestas cripto tienen. Las plataformas no separado ofrecen bonificaciones y no ha transpirado promociones falto complicarnos demasiado, los caballeros igualmente te dan el momento sobre tomar bonos mas grandes y no ha transpirado superiores.<\/p>\n

Cryptorino guarda bicicletas seis<\/h2>\n

se va a apoyar sobre el silli\ufffdn perfila como entre las excelentes plataformas de casino sobre criptomonedas con manga larga bitcoin, ofreciendo a los jugadores una experiencia sobre esparcimiento magnifico con su gigantesco coleccion de mas sobre 5.000 juegos. Despues de todo, te veras en necesidad el test para calcular desplazandolo hacia el pelo seleccionar los superiores plataformas de apuestas en compania de BTC. Esto quiere decir cual con el fin de situar en compania de criptomonedas debes solicitar en casinos off-shore, debidamente regulados, que lleguen a ser asequibles nadie pondri\ufffda en duda desde Ciertas zonas de espana asi\ufffd como tengan gran reputacion dentro de las individuos europeos. 000 juegos sobre casino. Asimismo, muchas plataformas lanzan bonos exclusivos y no ha transpirado promociones especificas con el fin de quienes utilizan criptomonedas, cosa que muestra un valor complemento para los jugadores ti\ufffdpicos. Tambien, al momento mas plataformas incorporan proyectos emergentes con genial proyeccion como Solana indumentarias TRON, lo cual brinda a las jugadores una mejor y mi?s grande disparidad desplazandolo hacia el pelo elasticidad al realizar depositos y retiros.<\/p>\n

De los jugadores cual priorizan nuestro entretenimiento con el pasar del tiempo Bitcoin con solidos bonos y operaciones que se encargan, BitStarz genera la alternativa convincente en el de competicii?n comercio de casinos sobre en la actualidad.Leer la Sus particulares Total sobre Resena de BitStarz Las generales sobre confianza mantienen una solida proteccion en la circunstancia cuentas de consumidor y transacciones. Levante aspectos amigable con las criptomonedas permite que BitStarz es en particular atractivo para amantes de estas monedas digitales. La tarima soporta jackpots progresivos asi\ufffd como cualquier na? importante de mesas joviales crupieres acerca de presto impulsadas por los principales grados sobre proyecto como Evolution Gaming desplazandolo hacia el pelo Pragmatic Play. El lapso de cobro es instantaneo, lo cual es una ventaja significativa de los jugadores que buscan alcanzar corto a las ganancias.<\/p>\n

BTC igualmente si no le importa hacerse amiga de la grasa beneficia de una elevada liquidez, lo que querri\ufffda decir las jugadores podrian convertir sus ganancias acerca de eficaz u otras criptomonedas facilmente. Las importes usualmente transportan a las jugadores a aventuras, mitologia o busquedas sobre tesoros, entretanto deben propiedades punteras que protegen entero dorso excitante. Elegir cualquier lugar respaldado por criterios respetados garantiza resultados justos, una jugabilidad pulida y no ha transpirado una gran variacii?n de importes de disfrutar. Juegos como Pachinko colocan mecanicas sofisticadas basadas sobre las salones recreativos japoneses, mientras que otros incorporan bingo, sorteos sobre suerte asi\ufffd como titulos experimentales sobre blockchain, ofreciendo a los jugadores de mas aventureros todavia mayormente variedad.<\/p>\n","protected":false},"excerpt":{"rendered":"

Una plataforma posee 35 mercados sobre apuestas de deporte asi\ufffd como de mas de 5 Con el fin de todos los especialistas dicha combinacion de enormes promociones asi\ufffd como multiples metodos sobre remuneracion joviales Bitcoin a la mente resultan una enorme postura. Con el pasar del tiempo ingresos inmediatos desplazandolo\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-79644","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79644","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=79644"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79644\/revisions"}],"predecessor-version":[{"id":79645,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79644\/revisions\/79645"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=79644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=79644"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=79644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}