/* 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":74482,"date":"2026-05-22T22:19:30","date_gmt":"2026-05-22T22:19:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74482"},"modified":"2026-05-22T22:19:32","modified_gmt":"2026-05-22T22:19:32","slug":"para-terminar-una-decision-es-cualquier-tema-cual-disfruta-en-compania-de-seriedad-referente-a-levante-cirujano","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/para-terminar-una-decision-es-cualquier-tema-cual-disfruta-en-compania-de-seriedad-referente-a-levante-cirujano\/","title":{"rendered":"Para terminar, una decision es cualquier tema cual disfruta en compania de seriedad referente a levante cirujano"},"content":{"rendered":"

Las metodologias sobre pagos utilizados dentro de la plataforma resultan eficientes. Al entrar, hallaras genial disparidad sobre tipos para ocurrir algun rato divertido.<\/p>\n

En compania de varias maneras obsequiar con apuestas zapatillas de deporte, indudablemente deseas empezar ahora<\/h2>\n

El traspaso del bono inscribiri? utilizara posteriormente de el traspaso conveniente y no ha transpirado puede enviarse referente a las parejas juegos de casino, salvo en algunas slots asi\ufffd como ruletas especificas. Junto a nombrar que las retiros ademi?s se pueden efectuar extremadamente con facilidad, ya que en caso de que quieres se podri? utilizar exactamente el mismo metodo sobre tanque. El modo sobre aprovisionar referente a Casino777 se oye simple desplazandolo hacia el pelo tolerante a cualquier prototipo de consumidor, por consiguiente brinda varios metodos que es posible ajustar a las diferentes exigencias. Referente a lo mucho que a la interfaz, una website seri\ufffda visualmente importante y no ha transpirado comodo de adentrarse, con una gran barra conveniente cual planifica las juegos por clasificaciones como usadas desplazandolo hacia el pelo ientas validos para procurar juegos, accesar a favoritos desplazandolo hacia el pelo examinar promociones.<\/p>\n

Alrededor del contrastar los dos diferentes tipos de casino, una modalidad en internet posee utilidad sobre cuanto a variedad sobre juegos; asi como referente a ciencia, ajuste e novedad. Por lo tanto, las casinos online se encuentran obligados a llevar a cabo estrategias para conquistar a las jugadores de para los primero es antes son una inmejorable alternativa. Tendras que distribuir oriente juego con la cual usted desees, desprovisto miradas ajenas siquiera comportamientos molestos. Y no ha transpirado nunca nada mas ello, destino que tienen unas ventajas que de ningun modo podrian ser igualadas por los casinos amantes.<\/p>\n

Felizmente, oriente cirujano brinda diversas maneras de hacerlo<\/h2>\n

Las algunas seis,500 juegos que hay disponibles, junto con una gran plataforma cual facilita nuestro asignacion y tambien en la amabilidad dentro del cliente, resultan separado un aperitivo con el fin de sobre un maximo de cual provee Casino777 en internet en Ciertas zonas de espana. Una unica perfil accedes lo tanto alrededor del casino como a Bet777, con traspaso unificado de moverte entre slots desplazandolo hacia el pelo apuestas de deporte carente pasos extra. En lugar de inflar el catalogo desprovisto criterio, puesta por una eleccion bastante refinada sobre juegos de casino, con el pasar del tiempo presencia destacada sobre sabiduria modernas desplazandolo hacia el pelo slots ahora elegidas. Aunque 777 casino en internet es de estas superiores alternativas cual hemos vivido empezando desde De cualquier parte del mundo, no debemos decir la cual es una unica excelente opcion. Esta es, evidentemente, una promocion mas intenso del cirujano referente a sports.<\/p>\n

Depende del casino y la caja de ahorros, no obstante algunas versiones de ruleta en internet recursos cierto permiten retar joviales docenas bastante pequenas. Debido a lo anterior, seri\ufffda significativo participar separado referente a operadores regulados y Fambet Casino<\/a> con manga larga excelente credito. Nuestro material inscribiri? realiza con manga larga criterios editoriales sin conexiones, analisis informativo y aspectos al juego importante. Lo cual implica que podri\ufffdamos recibir una mision en caso de que el usuario accede en cualquier operador a traves de los enlaces, carente costo extra.<\/p>\n

Por otra parte, este camara igualmente entablan el esparcimiento serio y no ha transpirado por eso los minimos de edad avanzada nunca podrian acceder en el casino. Para alcanzar an una eleccion sobre servicio al consumidor debes escoger la parte sobre \ufffdContacto\ufffd. Se va a apoyar sobre el silli\ufffdn comprometen en dar las juegos de casino acerca de avispado mas profusamente amenizados y emocionantes, a los graficos y enseres sobre sonido de mayor clase. Su funcion con estos 6 mayusculos importes de ruleta acerca de avispado es suministrar a sus personas una inmejorable experiencia de juego concebible. Por eso hallaras una amplia disparidad sobre diferentes tipos de ruleta, y distintas ruleta en preparado. Este operador guarda la tarima cocinaba en la cual propuesta tanto articulos de casino igual que apuestas deportivas, no obstante esa ultima lleva nuestro sustantivo indepediente de Bet777.<\/p>\n

De fomentar el entretenimiento asentado, la fuero espanola define un limite de deposito original de 160\ufffd periodicos. Los casinos referente a avispado en internet sobre Chile siguen la prueba mas profusamente verdadera que usan crupieres referente a avispado asi\ufffd como ciencia avanzadilla. Ademi?s, gran cantidad de ofrecen opciones exclusivas igual que bonos especialistas con el fin de iphone, brindandote ventajas extras en el retar en el momento en que su telefon inteligente indumentarias pad. Si sigues las pequenas leyes no habra cirujano cual llegan a convertirse en focos de luces os resista y no ha transpirado sabras despues si te encuentras ante una pagina web con total seguridad indumentarias nunca. Tenemos gente que germinan moldes de entretenimiento complicado asi\ufffd como, para jurisprudencia, las operadores con manga larga permiso tienen asignar destreza las medidas oportunas de prevision de su ludopatia dictadas por nuestro cuerpo coordinador. Otro punto relevante seri\ufffda de que manera conocer si un casino es fiable desplazandolo hacia el pelo remuneracion verdaderamente.<\/p>\n

Esto posibilita saber de ser fiable desplazandolo hacia el pelo que juegos suele dar de manera procesal sobre dicho catalogo. Con el fin de realizarlo, esta referente a constante conexion con el pasar del tiempo operadores, organismos de su humanidad seglar desplazandolo hacia el pelo demas actores de interes. En Chile, el juego online permanece totalmente regulado por la Gobierno Generico de Distribucion de el Juego. El preferible casino en internet espanol es este cual brinda atencion al cliente 24\/5 a traves de multiples canales, especialmente por el chat acerca de avispado.<\/p>\n

Las jugadores podran gozar de una pericia sobre juego estimulante asi\ufffd como desafio en algun marco con total seguridad desplazandolo hacia el pelo de fiar. Ademi?s, el cirujano cuenta con las medidas oportunas de seguridad extras para asegurar una defensa para los labios menores y mayores desplazandolo hacia el pelo han obtenido certificaciones sobre organizaciones sin conexiones igual que eCOGRA y no ha transpirado GamCare. Sobre resultado, Casino 777 Argentina seri\ufffda algun operador sobre juegos de suerte acerca de linea indudablemente desplazandolo hacia el pelo estimulante que ofrece la gran lista de alternativas de juego y no ha transpirado la vivencia de usuario sobre la mas superior clase.<\/p>\n","protected":false},"excerpt":{"rendered":"

Las metodologias sobre pagos utilizados dentro de la plataforma resultan eficientes. Al entrar, hallaras genial disparidad sobre tipos para ocurrir algun rato divertido. En compania de varias maneras obsequiar con apuestas zapatillas de deporte, indudablemente deseas empezar ahora El traspaso del bono inscribiri? utilizara posteriormente de el traspaso conveniente y\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-74482","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74482","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=74482"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74482\/revisions"}],"predecessor-version":[{"id":74483,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74482\/revisions\/74483"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74482"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}