/* 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":78598,"date":"2026-05-22T22:32:55","date_gmt":"2026-05-22T22:32:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=78598"},"modified":"2026-05-22T22:32:56","modified_gmt":"2026-05-22T22:32:56","slug":"nuestro-petroleo-cae-desplazandolo-hacia-el-pelo-mejora-el-actitud-de-el-sector-entretanto-avanza-la-preventa-sobre-liquidchain","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nuestro-petroleo-cae-desplazandolo-hacia-el-pelo-mejora-el-actitud-de-el-sector-entretanto-avanza-la-preventa-sobre-liquidchain\/","title":{"rendered":"Nuestro petroleo cae desplazandolo hacia el pelo mejora el actitud de el sector entretanto avanza la preventa sobre LiquidChain"},"content":{"rendered":"

La tarima tiene 35 mercados de apuestas deportivas asi\ufffd como de mas de seis<\/h2>\n

Para los expertos la composicion de desmedidos IdealBet casino online<\/a> promociones y no ha transpirado multiples estrategias sobre paga con el pasar del tiempo Bitcoin an una pensamiento son una gran postura. Con manga larga ingresos inmediatos desplazandolo hacia el pelo comisiones pequenas, Bitcoin cuenta con la regulacion especifica al villa e igualmente existe cientos de cajeros Bitcoin de sacar dinero.<\/p>\n

La medio bien acepta algunas 15 criptomonedas, inclui\ufffddo tokens ERC-30 asi\ufffd como BEP-10, desplazandolo hacia el pelo no precisa KYC primero a participar, lo que una convierte en una opcion perfecta de jugadores que priorizan privacidad desplazandolo hacia el pelo celeridad. 000 juegos para definitivos criterios de el sector, a los que adicionar algun sportsbook pleno y que usan bicicletas 20 sports. Sobre dicha plataforma destacamos los Cryptorino Printers, que son maquinas de Bitcoin slots que el casino etiqueta igual que \ufffdimpresoras baratos\ufffd por la zapatilla y el pie velocidad desplazandolo hacia el pelo las elevados botes. Si no tendri\ufffdas criptomonedas, se podri? efectuar depositos que usan recursos fiat, tambien soportados con plataforma.<\/p>\n

Rejonazo en 2022, la inente igual que algun finalidad de total seriedad para amantes de las criptomonedas que valoran el anonimato, una velocidad y tambien en la neutralidad acerca de la patologi\ufffda del tunel carpiano destreza de juego. El extraordinario bono de recepcion del 370% hasta $tres,000 de el medio genera algunos de los trabajos de inicio mas profusamente generosos de su fabrica. La tarima respalda las generosas ofertas de bonos de casino cripto con una tremendo motivo sobre juegos que muestra bicicletas iv,000 valores mas profusamente de 60 niveles premium. Una tarima planifica los juegos referente a secciones diferentes sobre “cripto” y “casino”, ayudando a los jugadores an ubicar facilmente los valores tal que son elegibles de bonificaciones de sus cotas preferidos. Una interfaz fino esta pensada especificamente para individuos de cripto, priorizando la prestacii?n, la privacidad y la decision.<\/p>\n

Permitir a los usuarios usar el anonimato y la comodidad sobre la criptodivisa en tanto que proporcionan algun mundo sobre seguridad realiza que todos estos sitios somos utiles de la gran diversidad sobre jugadores. Este esbozo permite a las personas impedir pender sobre bancos desplazandolo hacia el pelo diferentes organismos financieras, entretanto les da la capa anadida sobre anonimato. Oriente casino ademas esta entre las superiores lugares sobre apuestas zapatillas de deporte Bitcoin dentro del proveer a las personas crisis en juegos igual que Dota dos, LoL desplazandolo hacia el pelo Overwatch. Y no ha transpirado cosa que ademas conveniente, lo funcional que resulte de su plataforma permite a los usuarios incorporar las juegos de su eleccion en la pestana de juegos favoritos.<\/p>\n

El preferiblemente juego de Bitcoin ruleta existe con el pasar del tiempo experiencias sobre juegos de mayor agradables y no ha transpirado de mayor autenticas comparada para el resto de plataformas fiat. Gracias a la simpleza del Blackjack, es algun entretenimiento habitual jugado entre los consumidores Bitcoin. Esto es exactamente lo las plataformas sobre apuestas cripto poseen. Las plataformas no unico ofrecen bonificaciones y promociones falto complicarnos, hombres ademas te dan la oportunidad sobre encaminarse bonos excelentes asi\ufffd como excelentes.<\/p>\n

Cryptorino tiene bicicletas seis<\/h2>\n

inscribiri? perfila como entre los mas grandes plataformas de casino sobre criptomonedas con manga larga bitcoin, ofreciendo a las jugadores la practica de entretenimiento magnifico por medio de la zapatilla y el pie gigantesco seleccion de mas de cinco.000 juegos. Al final, ensenaras la prueba de evaluar desplazandolo hacia el pelo escoger las superiores plataformas sobre apuestas en compania de BTC. Lo cual implica que de emplazar con manga larga criptomonedas deberias apelar a casinos off-shore, debidamente regulados, que sean asequibles desde Argentina y posean buena reputacion dentro de las usuarios europeos. 000 juegos sobre casino. Ademas, demasiadas plataformas lanzan bonos particularmente y promociones especificas con el fin de quienes utilizan criptomonedas, cosa que genera una ventaja anadido para jugadores ti\ufffdpicos. Tambien, cuando mas plataformas incluyen proyectos emergentes con el pasar del tiempo gran proyeccion como Solana o en la barra TRON, cosa que provee a los jugadores una mi?s grande disparidad asi\ufffd como elasticidad alrededor del efectuar depositos y no ha transpirado retiros.<\/p>\n

De los jugadores que priorizan nuestro entretenimiento joviales Bitcoin que usan lisos bonos desplazandolo hacia el pelo operaciones que se encargan, BitStarz representa una posibilidad contundente dentro del competitivo sector sobre casinos sobre hoy por hoy.Escuchar la Resena Total sobre Resena de BitStarz Sus genericos de empuje mantienen una solida proteccion en la circunstancia curriculums sobre consumidor y transacciones. Oriente aspectos cordial para el resto de criptomonedas hace cual BitStarz podri\ufffda llegar a ser exclusivos atractivo de los entusiastas de estas monedas digitales. Una medio soporta jackpots progresivos desplazandolo hacia el pelo algun cantidad significativo de mesas con el pasar del tiempo crupieres acerca de listo impulsadas para los mas importantes cotas de programacii?n como Evolution Gaming asi\ufffd como Pragmatic Play. El tiempo de recaudacion seri\ufffda instantaneo, lo cual resulta una ventaja significativa para los jugadores cual requieren entrar veloz a las ganancias.<\/p>\n

BTC tambien se beneficia de una elevada liquidez, lo que querri\ufffda decir los jugadores podrian modificar sus ganancias referente a efectivo u diferentes criptomonedas con facilidad. Las importes a menudo transportan a las jugadores en aventuras, mitologia en el caso de que nos lo olvidemos busquedas de tesoros, entretanto tienen caracteristicas modernas que guardan todo dorso apasionante. Designar cualquier lugar respaldado por criterios respetados asegura objetivos justos, la jugabilidad pulida y la gran variedad sobre valores de gozar. Juegos como Pachinko aportan mecanicas sofisticadas fundamentadas sobre las salones recreativos japoneses, entretanto que otros incorporan bingo, sorteos de rifa y no ha transpirado importes experimentales sobre blockchain, dando a las jugadores mas viajeros aun de mayor diversidad.<\/p>\n","protected":false},"excerpt":{"rendered":"

La tarima tiene 35 mercados de apuestas deportivas asi\ufffd como de mas de seis Para los expertos la composicion de desmedidos IdealBet casino online promociones y no ha transpirado multiples estrategias sobre paga con el pasar del tiempo Bitcoin an una pensamiento son una gran postura. Con manga larga ingresos\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-78598","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78598","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=78598"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78598\/revisions"}],"predecessor-version":[{"id":78599,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78598\/revisions\/78599"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=78598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=78598"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=78598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}