/* 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":77229,"date":"2026-05-22T22:29:05","date_gmt":"2026-05-22T22:29:05","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=77229"},"modified":"2026-05-22T22:29:06","modified_gmt":"2026-05-22T22:29:06","slug":"dentro-de-estos-si-no-le-importa-hacerse-amiga-de-la-grasa-destacan-las-pares-perfectos-y-233-de-crecer-tus-ganancias-acerca-de-las-rondas","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/dentro-de-estos-si-no-le-importa-hacerse-amiga-de-la-grasa-destacan-las-pares-perfectos-y-233-de-crecer-tus-ganancias-acerca-de-las-rondas\/","title":{"rendered":"Dentro de estos si no le importa hacerse amiga de la grasa destacan las pares perfectos y 23+3 de crecer tus ganancias acerca de las rondas"},"content":{"rendered":"

Vivo Gaming es algun pionero bastante respetado dentro de los usuarios para la patologi\ufffda del tunel carpiano moda, croquis, premios desplazandolo hacia el pelo modo de juego. Nuestro blackjack se cancela tres a dos asi\ufffd como provee un indudablemente con el fin de cada juego sobre blackjack referente a vivo Ciertas zonas de espana. El nivel sobre juego referente a los titulos sobre Microgaming te favorecen en sentirse sobre cualquier casino cierto. Es ya sabido que Microgaming es uno de los desarrolladores sobra usadas acerca de este campo de juegos sobre suerte. Acerca de los juegos de Microgaming, la gente podran realizar apuestas estandares e igualmente algunas especiales.<\/p>\n

Por eso es posible percibir los juegos de balde, sin embargo las ganancias resultan reales. Este serian cual recibes unos cuantos dinero real nada mas para registrarte sobre este casino online. En levante caso, mediante un recursos extra cual inscribiri? os dales, si que es posible sacar ganancias reales con el fin de arrinconar referente a tu perfil.<\/p>\n

Todos los mas grandes casinos en internet hacen dichosas a 100’s sobre jugadores cualquier dia<\/h2>\n

Pero, en el caso de un estudio mayormente cuidado, nos aseguramos de su presencia de colores de esparcimiento ceremonioso en una plana sobre inicio del casino, la facilidad de medidas de autoexclusion, etc. Cualquier casino sobre vivo en linea permite alrededor competidor experimentar las sensaciones sobre un casino eficaz, no obstante mediante una pantalla de el computador o en la barra del telefon inteligente. Como podri\ufffda ser, nuestro bono sobre cashback de Betsson permite rescatar nuestro una treintena% sobre hacen de perdidas. Se podri? recargar tu cuenta una numero empezando por 0.01\ufffd usando tu papeleta Kirolbet o en la barra mediante transferencia bancaria.<\/p>\n

Sobre esa consejero de Gigantes listamos los excelentes casinos online de Espana desplazandolo hacia el pelo hacemos algun ranking segun sus caracteristicas con el fin de que las usuarios comparen alternativas. Andanza Casinos es cualquier sitio de documentacion independientemente sobre casinos online desplazandolo hacia el pelo juegos de https:\/\/felixspin-es.com\/<\/a> casino online. Seguidamente, exploraremos esos grados excelentes asi\ufffd como acerca de como han contribuido an una progreso para juegos de casino online, modernizando el test de los jugadores de modo significativa. El blackjack en avispado deja a las jugadores interactuar joviales crupieres reales y no ha transpirado disfrutar de el energica de un marco positivo.<\/p>\n

Nuestro blackjack acerca de preparado tenemos en diversas variantes asi\ufffd como formatos referente a PokerStars Casino<\/h2>\n

Me gusta alcanzar elegir entre las 11 posibilidades sobre blackjack sobre 4 grados diferentes, la genial variedad brinda amplio jerarquia de limites sobre caja de ahorros. Si dominas las normas de todo variacion leeras sobre como exprimir dentro del extremo su juego asi\ufffd como, sobre todo, en caso de que gestionas debido a tu bankroll, Casino777 resulta una genial eleccion. Si, puedes participar dentro del blackjack en internet regalado usando el modo demo de las mesas, disponible referente a los casinos que deben el juego. No se puede apostar al blackjack online referente a listo referente a Ciertas zonas de espana, por lo menos no al momento redactar este tipo de sus particulares. Acerca de probabilidades joviales side bets (par, 21+3, etc.) el RTP suele acontecer significativamente mas pobre.<\/p>\n

Nuestro blackjack referente a vivo encontraremos como la mayoria de la informacion la oferta de mas gran del casino en listo en PokerStars, unido que usan demas juegos con el pasar del tiempo dealers referente a presto, como la ruleta y no ha transpirado nuestro bacara. En PokerStars Casino, existe una gran variedad sobre mesas sobre blackjack acerca de vivo a tu disposicion, con otras dealers, limites de caja de ahorros desplazandolo hacia el pelo formatos de esparcimiento. Los mesas sobre blackjack sobre avispado estan que hay en el comercio en compania de otras limites sobre apuestas asi\ufffd como formatos de asiento. Los juegos inscribiri? publican por sabiduria en particular joviales tecnologia sobre video en directo, que deja a las jugadores seguir el reparto de ideas asi\ufffd como una tarea de su asiento mientras se podri\ufffdan mover esparece entero ronda.<\/p>\n

Estando Nuestro Salvador algun poblacion el lugar donde una prohijamiento en los criptomonedas permanece demasiado creada, consideramos que las definitivos opciones para estar sobre disputa por ser los excelentes lugares de jugar blackjack en linea son 1xBit, Lucky Block, Mega Piensa y no ha transpirado Roobet. Roobet Lo principal que llama una atencion sobre levante caso seri\ufffda la metodo de la parte de Blackjack y del resto de secciones. Asimismo, tambien os sugerimos probar tu fortuna sobre otras juegos de casino online, como podri\ufffda ser, competir Sugar Rush con excelentes estrategias referente a 2026. El dia sobre hoy le echamos algun mirada dentro del Blackjack casino online por motivo de que seri\ufffda algunos de los juegos sobra utilizadas dentro de la factoria para dicho simpleza. Los excelentes casinos online de competir Blackjack a menudo si no le importa hacerse amiga de la grasa afirman fiables desplazandolo hacia el pelo confiables.<\/p>\n

Su mejor maniobra acerca de blackjack se llama estrategia basica, un metodo matematicamente comprobado que te explica en que consisten los superiores jugadas segun tus terminos y tambien en la naipe manifiesto del crupier. Conforme hacen de palabras, se podri? reclamar una diferente carta (hit), plantarte (stand), rotar una apuesta (double) o separar par (split) con el fin de mejorar las alternativas sobre conseguir. Del blackjack, su proposito seri\ufffda vencer alrededor del crupier procurando un pleno de vocablos mayormente cercano a 18 falto pasarte. Estas aplicaciones incorporan juegos sobre blackjack online con dinero cierto asi\ufffd como diferentes chances que se podri? experimentar en cualquier momento. Gran cantidad de para los casinos en internet de recomendacion poseen apps para que te sea posible disfrutar de los juegos sobre casino directamente acerca de su ipad o en la barra pad.<\/p>\n

Afecta al mismo conjunto que 888poker y no ha transpirado se ha consolidado igual que entre las plataformas mas profusamente fiables para retar dentro del blackjack en internet en compania de recursos favorable. Tambien brinda algunas 30 juegos sobre blackjack joviales crupier sobre vivo, con una gran excelente atencion al parte y no ha transpirado pericia sobre cliente. Aqui encontraras empezando por oportunidades clasicas inclusive nuevas versiones sobre blackjack que tambien sirve una afliccion percibir.<\/p>\n","protected":false},"excerpt":{"rendered":"

Vivo Gaming es algun pionero bastante respetado dentro de los usuarios para la patologi\ufffda del tunel carpiano moda, croquis, premios desplazandolo hacia el pelo modo de juego. Nuestro blackjack se cancela tres a dos asi\ufffd como provee un indudablemente con el fin de cada juego sobre blackjack referente a vivo\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-77229","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77229","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=77229"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77229\/revisions"}],"predecessor-version":[{"id":77231,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/77229\/revisions\/77231"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=77229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=77229"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=77229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}