/* 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":74871,"date":"2026-05-22T22:21:06","date_gmt":"2026-05-22T22:21:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74871"},"modified":"2026-05-22T22:21:07","modified_gmt":"2026-05-22T22:21:07","slug":"nuestro-petroleo-cae-asi%ef%bf%bd-como-progreso-nuestro-animo-del-sector-mientras-avanza-una-preventa-sobre-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-petroleo-cae-asi%ef%bf%bd-como-progreso-nuestro-animo-del-sector-mientras-avanza-una-preventa-sobre-liquidchain\/","title":{"rendered":"Nuestro petroleo cae asi\ufffd como progreso nuestro animo del sector mientras avanza una preventa sobre LiquidChain"},"content":{"rendered":"

La tarima tiene 35 mercados sobre apuestas zapatillas de deporte desplazandolo hacia el pelo mayormente de 8<\/h2>\n

Con el fin de los profesionales esa mezcla sobre enormes promociones desplazandolo hacia el pelo multiples metodos sobre remuneracion con Bitcoin a la pensamiento son una gran envite. Con retribucion inmediatos desplazandolo hacia el pelo comisiones por debajo de cero, Bitcoin cuenta con una regulacion concreta del poblado e incluso existen 100’s sobre cajeros Bitcoin para conseguir recursos.<\/p>\n

Una plataforma debido a acepta Feelingbet inicio de sesi\u00f3n en el casino<\/a> bicicletas 20 criptomonedas, con inclusii?n tokens ERC-20 y no ha transpirado BEP-20, y nunca necesita KYC primeramente a retar, lo cual una torna acerca de una alternativa perfecta de jugadores cual priorizan intimidad desplazandolo hacia el pelo velocidad. 000 juegos para principales criterios de el sector, a las cual incorporar cualquier sportsbook pleno y no ha transpirado con el pasar del tiempo unas 20 sports. De dicha medio destacamos los Cryptorino Printers, tal que son maquinas sobre Bitcoin slots que nuestro casino epiteto como \ufffdimpresoras monetarios\ufffd por el velocidad y sus elevados botes. Si no tendri\ufffdas criptomonedas, se podri? efectuar depositos con manga larga recursos fiat, igualmente soportados en la medio.<\/p>\n

Lanzazo sobre 2022, esta inente igual que un proposito de fiar para amantes de estas criptomonedas que valoran el anonimato, una velocidad y tambien en la equidad sobre su practica sobre entretenimiento. Nuestro inimaginable bono sobre recibimiento de el 370% hasta $3,000 de su plataforma representa uno de los utilidades de comienzo mas profusamente generosos de la factoria. La medio respalda estas generosas publicaciones de bonos de casino cripto con una gran inimaginable causa de juegos que presenta alguna iv,000 titulos de mayor de 80 cotas premium. Una plataforma planea los juegos sobre secciones diferentes de “cripto” desplazandolo hacia el pelo “casino”, ayudando a los jugadores an ubicar con facilidad las valores tal como son elegibles con el fin de bonificaciones de las cotas preferidos. Una interfaz elegante esta pensada especificamente para usuarios sobre cripto, priorizando el rendimiento, una intimidad y la decision.<\/p>\n

Facilitar a las personas utilizar el anonimato y la comodidad sobre la criptodivisa en tanto que proporcionan algun mundo sobre seguridad permite que todos estos lugares se trata de practicos para la amplia variacii?n sobre jugadores. Levante bosquejo deja a las personas eludir depender de bancos desplazandolo hacia el pelo diferentes organismos financieras, pasa les proporciona una mano adicional de anonimato. Levante casino asimismo esta dentro de las mas grandes lugares sobre apuestas de deporte Bitcoin alrededor suministrar a las personas arrebato a juegos igual que Dota dos, LoL desplazandolo hacia el pelo Overwatch. Y lo que igualmente conveniente, la funcionalidad de la tarima permite a las personas agregar los juegos de su coleccion en la pestana de juegos favoritos.<\/p>\n

El superior juego sobre Bitcoin ruleta tenemos con sensaciones sobre juegos de mas agradables desplazandolo hacia el pelo de mayor autenticas comparada con las plataformas fiat. Mediante la sencillez del Blackjack, seri\ufffda cualquier juego comun jugado dentro de los usuarios Bitcoin. Esto es sin duda igual los plataformas sobre apuestas cripto ofrecen. Las plataformas no separado deben bonificaciones y promociones sin complicarnos, ellos tambien te proporcionan el segundo de adoptar bonos superiores asi\ufffd como mas grandes.<\/p>\n

Cryptorino posee acoples seis<\/h2>\n

llegan a convertirse en focos de luces perfila igual que una de los excelentes plataformas sobre casino de criptomonedas en compania de bitcoin, ofreciendo a los jugadores la practica de juego magnifico utilizando dicho genial seleccion de mayor de cinco.000 juegos. Despues de todo, ensenaras la prueba de evaluar y no ha transpirado designar los superiores plataformas de apuestas con BTC. Esto quiere decir que para colocar con manga larga criptomonedas debes solicitar en casinos off-shore, debidamente regulados, que sean accesibles por Espana y no ha transpirado tengan excelente credibilidad entre las individuos europeos. 000 juegos sobre casino. Ademi?s, demasiadas plataformas lanzan bonos en particular desplazandolo hacia el pelo promociones especiales para algunos que utilizan criptomonedas, cosa que genera un valor anadido para jugadores tradicionales. Asimismo, siempre mas plataformas incorporan proyectos emergentes con gigantesco proyeccion como Solana o bien TRON, cosa que brinda a los jugadores una mayor diversidad desplazandolo hacia el pelo maleabilidad alrededor del hacer depositos desplazandolo hacia el pelo retiros.<\/p>\n

Para los jugadores cual priorizan el entretenimiento joviales Bitcoin con manga larga solidos bonos asi\ufffd como operaciones que se ocupan, BitStarz genera la decision contundente alrededor de competicii?n sector de casinos sobre actualmente.Leer la Resena Completa sobre Sus particulares de BitStarz Sus generales sobre confianza protegen una solida defensa en la disyuntiva cuentas de consumidor y transacciones. Este angulos cordial con las criptomonedas realiza que BitStarz resulte en particular delicadeza de los entusiastas de estas monedas digitales. La medio soporta jackpots progresivos asi\ufffd como algun numero trascendente de mesas con crupieres acerca de listo impulsadas para los principales cotas de software igual que Evolution Gaming asi\ufffd como Pragmatic Play. Nuestro lapso sobre recaudacion es instantaneo, esto es una ventaja significativa para los jugadores que requieren alcanzar pronto a las ganancias.<\/p>\n

BTC igualmente se va a apoyar sobre el silli\ufffdn beneficia encima de una elevada liquidez, lo que querri\ufffda decir los jugadores pueden modificar las ganancias acerca de efectivo u otras criptomonedas con facilidad. Las titulos a menudo transportan a los jugadores a aventuras, mitologia en el caso de que nos lo olvidemos busquedas de tesoros, mientras ofrecen caracteristicas top que protegen entero vuelta estimulante. Seleccionar algun sitio respaldado por grados respetados garantiza objetivos justos, la jugabilidad pulida y una amplia disparidad de importes con el fin de gozar. Juegos como Pachinko colocan mecanicas ineditos basadas en los salones recreativos japoneses, mientras cual otras incluyen bingo, sorteos sobre suerte y valores experimentales sobre blockchain, dando a las jugadores sobra viajeros aun mas variedad.<\/p>\n","protected":false},"excerpt":{"rendered":"

La tarima tiene 35 mercados sobre apuestas zapatillas de deporte desplazandolo hacia el pelo mayormente de 8 Con el fin de los profesionales esa mezcla sobre enormes promociones desplazandolo hacia el pelo multiples metodos sobre remuneracion con Bitcoin a la pensamiento son una gran envite. Con 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-74871","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74871","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=74871"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74871\/revisions"}],"predecessor-version":[{"id":74874,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74871\/revisions\/74874"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74871"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}