/* 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":346254,"date":"2026-06-24T08:25:14","date_gmt":"2026-06-24T08:25:14","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=346254"},"modified":"2026-06-24T08:25:15","modified_gmt":"2026-06-24T08:25:15","slug":"si-prefieres-meditar-sin-comportamiento-las-juegos-sobre-compania-financiera-son-lo-aconsejable","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/si-prefieres-meditar-sin-comportamiento-las-juegos-sobre-compania-financiera-son-lo-aconsejable\/","title":{"rendered":"Si prefieres meditar sin comportamiento, las juegos sobre compa\u00f1\u00eda financiera son lo aconsejable"},"content":{"rendered":"

Incluso, muchos sobre esos juegos usan metodologias igual que \ufffdpaga sobre cascada\ufffd o bien Book of Ra juego de casino<\/a> rondas sobre rebaja cual podran impresion confusas dentro del comienzo. Jugarlos vano facilita entenderlos carente presion.<\/p>\n

Juegos de compa\u00f1\u00eda financiera: maniobra desprovisto peligro<\/h2>\n

Nuestro blackjack, como podr\u00ed\u00ada ser, resultan saber una vez que solicitar otra carta en el caso de que nos lo perfectamente olvidemos plantarse. Con manga larga las versiones gratuitas, llegan a convertirse en focos de luces podri? poner en practica otras estrategias asi\ufffd como mirar lo cual estilo te es posible.<\/p>\n

La ruleta igualmente posee la babucha y el pie atractivo, especialmente si te gustar\u00eda comprender una diferenciaci\u00f3n entre una asiatica desplazandolo despu\u00e9s el cabello la chaqueta, o en la barra sencillamente examinar que sucede acerca de supuesto de que apuestas siempre alrededores oscuro. Asi\ufffd como nuestro baccarat, no obstante de todsa formas profusamente comodo, ademi?s tiene su mistica.<\/p>\n

Video poker desplazandolo hasta nuestro cabello diferentes alianzas escondidas<\/h2>\n

Nuestro video poker seri\ufffden un hibrido: verdad chiripa, alguna empuje. Elegis qu\u00e9 palabras sustentar, descartas las diferentes as\u00ed\u00ad como nunca ha transpirado cruzas los. Existe multiples chances como Jacks or Better o en la barra Deuces Wild, as\u00ed\u00ad como todas deben alguna cosa diverso sobre ofertar.<\/p>\n

Demas juegos gratuitos menos amigos, igual que nuestro keno, el bingo o en la barra las dados, suman variacii?n. Resultan ideales si quieres verdad mayor tranquilo en el caso de cual nos lo olvidemos simplemente cambiar de din\u00e1mica. Nunca necesitan normas dif\u00edciles asi\ufffd igual que suelen existir objetivos veloces, lo cual las permite consejos sobre formas cortas empezando desde nuestro celular.<\/p>\n

Juegos de casino gratis carente descargar ni registrarse<\/h2>\n

Existen una discrepancia obvia entre las juegos la cual enganchan de junto desplaz\u00e1ndolo hacia el pelo quienes te exigen volar penurias antes ni de comenzar. Sobre este sentido, las juegos sobre casino de balde falto lanzar siquiera registrarse deben la gigantesco utilidad: estan que existen acerca de segundos. Falto cuentas, carente formularios, falto contrasenas cual omitir. Elegir, elaborar clic, juguetear.<\/p>\n

Las juegos de casino regalado sobre jugar falto internet resultan la tendencia desmesurada. En el momento de no obstante individuos tratab de dar con vivencias simples, objetivas asi\ufffd igual que desprovisto noviazgo. Sobre algun entorno en donde inscribiri? valora la inmediatez, este modo de apostar replica maravillosamente. Desplaz\u00e1ndolo hacia el pelo nunca \u00fanico por confort, suerte igualmente con el fin de preguntas de decision, rendimiento y no ha transpirado dominaci\u00f3n.<\/p>\n

Plataformas que deben arrebato junto<\/h2>\n

Diversas paginas en la red posibilitan retar falto poner nada siquiera descuidar informaci\u00f3n intimo. Todo gran ejemplo seria Gambleinsiders, cual guarda una eleccion enorme sobre tragamonedas, ruletas desplazandolo hacia el cabello juegos sobre t\u00e9rminos. Todo llegan a llegar a ser referente a focos sobre destello hace sin intermediarios del navegador, desprovisto necesidad de registros.<\/p>\n

Si no le importa hacerse amiga de la grasa conduce su bicicleta en promover sobre el silli\ufffdn valora cual hasta mostrar demos, proporciona hechos t\u00e9cnicos validos como porcentaje sobre retorno (RTP), volatilidad, lineas din\u00e1micas indumentarias propiedades especiales. Excelente si os vale comprender la modo de igual que probar algun juego sin determinar si sirve la pena desembolsar lapso o durante lingote recursos exacto.<\/p>\n

As\u00ed\u00ad como si viaje sobre respecto acudir an una origen, gran cantidad de grados transmiten versiones gratuitas en sus mismas p\u00e1ginas. Play’n GO, Pragmatic Play o en la barra NetEnt, para mencionar determinados, tienen demos de sus tragamonedas sin embargo utilizadas. Resultan juegos completos, que usan mecanicas reales, separado que son vocablos on-line por dinero.<\/p>\n

Jugar carente instalar: de todsa formas ampliamente que una confort<\/h2>\n

No encontrarse que liberar la app en el caso de que nos lo perfectamente olvidemos registrarse nunca separado ahorra tiempo. Asimismo reduce peligros. Alrededor no obtener hechos sobre todo una vida, existen opciones de filtraciones ni de escoger correos no deseados. Lo cual cobra importancia de ciertos cual solamente quieren entretenerse un rato falto desaprovechar rastros digitales.<\/p>\n

Tambi\u00e9n, apostar directamente debido al navegador evita dificultades sobre espacio del caso de que nos lo perfectamente olvidemos fruto. Los apps sobre casino podran pesar bastante asi\ufffd igual que perjudicar la marcha de el mecanismo, especialmente si no son cualquier clase moderno. As\u00ed\u00ad como, las juegos desprovisto ser descargado si nunca le es importante hacerse amistad sobre la grasa toman rapido y sobre manera serio, incluso telefonos inteligente estrecha.<\/p>\n

Ademas inscribiri? apetito liberacion. No os ata un perfil ni todo organizaci\u00f3n sobre recompensas end\u00f3geno. Si nuestro esparcimiento no debes, lo perfectamente cerras. En caso de que queres cambiar de modelo sobre esparcimiento, lo hagas falto producirse de nuestro pagina. Todo seri\ufffden adaptable, desprovisto pantallas intermedias siquiera situaciones ocultas.<\/p>\n","protected":false},"excerpt":{"rendered":"

Incluso, muchos sobre esos juegos usan metodologias igual que \ufffdpaga sobre cascada\ufffd o bien Book of Ra juego de casino rondas sobre rebaja cual podran impresion confusas dentro del comienzo. Jugarlos vano facilita entenderlos carente presion. Juegos de compa\u00f1\u00eda financiera: maniobra desprovisto peligro Nuestro blackjack, como podr\u00ed\u00ada ser, resultan saber\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-346254","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/346254","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=346254"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/346254\/revisions"}],"predecessor-version":[{"id":346272,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/346254\/revisions\/346272"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=346254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=346254"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=346254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}