Current File : /var/www/pediatribu/wp-content/plugins/wpforms-lite/src/Emails/Helpers.php
<?php

namespace WPForms\Emails;

/**
 * Helper class for the email templates.
 *
 * @since 1.8.5
 */
class Helpers {

	/**
	 * Get Email template choices.
	 *
	 * @since 1.8.5
	 *
	 * @param bool $include_legacy Whether to include a Legacy template into the list.
	 *
	 * @return array
	 */
	public static function get_email_template_choices( $include_legacy = true ) {

		$choices   = [];
		$templates = Notifications::get_all_templates();

		// If there are no templates, return empty choices.
		if ( empty( $templates ) || ! is_array( $templates ) ) {
			return $choices;
		}

		// Add legacy template to the choices as the first option.
		if ( $include_legacy && self::is_legacy_html_template() ) {
			$choices['default'] = [
				'name' => esc_html__( 'Legacy', 'wpforms-lite' ),
			];
		}

		// Iterate through templates and build $choices array.
		foreach ( $templates as $template_key => $template ) {
			// Skip if the template name is empty.
			if ( empty( $template['name'] ) ) {
				continue;
			}

			$choices[ $template_key ] = $template;
		}

		return $choices;
	}

	/**
	 * Retrieves the current email template name.
	 * If the current template is not found, the default template will be returned.
	 *
	 * This method respects backward compatibility and will return the old "Legacy" template if it is set.
	 * If a template name is provided, the function will attempt to validate and return it. If validation fails,
	 * it will default to the email template name "Classic."
	 *
	 * @since 1.8.5
	 *
	 * @param string $template_name Optional. The name of the email template to evaluate.
	 *
	 * @return string
	 */
	public static function get_current_template_name( $template_name = '' ) {

		// If a template name is provided, sanitize it. Otherwise, use the default template name from settings.
		$settings_template = wpforms_setting( 'email-template', Notifications::DEFAULT_TEMPLATE );
		$template          = ! empty( $template_name ) ? trim( sanitize_text_field( $template_name ) ) : $settings_template;

		// If the user has set the legacy template, return it.
		if ( $template === Notifications::LEGACY_TEMPLATE && self::is_legacy_html_template() ) {
			return Notifications::LEGACY_TEMPLATE;
		}

		// In case the user has changed the general settings template,
		// but the form submitted still uses the “Legacy” template,
		// we need to revert to the general settings template.
		if ( $template === Notifications::LEGACY_TEMPLATE && ! self::is_legacy_html_template() ) {
			$template = wpforms_setting( 'email-template', Notifications::DEFAULT_TEMPLATE );
		}

		// Check if the given template name is valid by looking into available templates.
		$current_template = Notifications::get_available_templates( $template );

		// If the current template is not found or its corresponding class does not exist, return the default template.
		if ( ! isset( $current_template['path'] ) || ! class_exists( $current_template['path'] ) ) {

			// Last resort, check if the template defined in the settings can be used.
			// This would be helpful when user downgrades from Pro to Lite version and the template is not available anymore.
			if ( isset( $current_template[ $settings_template ] ) ) {
				return $settings_template;
			}

			return Notifications::DEFAULT_TEMPLATE;
		}

		// The provided template is valid, so return it.
		return $template;
	}

	/**
	 * Get the current email template class path.
	 *
	 * @since 1.8.5
	 *
	 * @param string $template_name  Optional. The name of the email template to evaluate.
	 * @param string $fallback_class Optional. The class to use if the template is not found.
	 *                               This argument most likely will be used for backward compatibility and supporting the "Legacy" template.
	 *
	 * @return string
	 */
	public static function get_current_template_class( $template_name = '', $fallback_class = '' ) {

		$template_name = self::get_current_template_name( $template_name );

		// If the user has set the legacy template, return the "General" template.
		if ( $template_name === Notifications::LEGACY_TEMPLATE ) {
			return ! empty( $fallback_class ) && class_exists( $fallback_class ) ? $fallback_class : __NAMESPACE__ . '\Templates\General';
		}

		// Check if the given template name is valid by looking into available templates.
		$current_template = Notifications::get_available_templates( $template_name );

		// If the current template is not found or its corresponding class does not exist, return the "Classic" template.
		if ( ! isset( $current_template['path'] ) || ! class_exists( $current_template['path'] ) ) {
			return Notifications::get_available_templates( Notifications::DEFAULT_TEMPLATE )['path'];
		}

		// The provided template is valid, so return it.
		return $current_template['path'];
	}

	/**
	 * Get the style overrides for the current email template.
	 *
	 * This function retrieves the style overrides for the email template, including background color,
	 * body color, text color, link color, and typography. It provides default values and handles
	 * different settings for both the free and Pro versions of the plugin.
	 *
	 * @since 1.8.5
	 *
	 * @return array
	 */
	public static function get_current_template_style_overrides() {

		// Get the header image size for the current template.
		list( $header_image_size, $header_image_size_dark ) = self::get_template_header_image_size();

		// Get the typography for the current template.
		list( $email_typography, $email_typography_dark ) = self::get_template_typography();

		// Default style overrides.
		$defaults = [
			'email_background_color'       => '#e9eaec',
			'email_body_color'             => '#ffffff',
			'email_text_color'             => '#333333',
			'email_links_color'            => '#e27730',
			'email_background_color_dark'  => '#2d2f31',
			'email_body_color_dark'        => '#1f1f1f',
			'email_text_color_dark'        => '#dddddd',
			'email_links_color_dark'       => '#e27730',
			'email_typography'             => $email_typography,
			'email_typography_dark'        => $email_typography_dark,
			'header_image_max_width'       => $header_image_size['width'],
			'header_image_max_height'      => $header_image_size['height'],
			'header_image_max_width_dark'  => $header_image_size_dark['width'],
			'header_image_max_height_dark' => $header_image_size_dark['height'],
		];

		// Retrieve old background colors setting from the Lite version.
		$lite_background_color      = wpforms_setting( 'email-background-color', $defaults['email_background_color'] );
		$lite_background_color_dark = wpforms_setting( 'email-background-color-dark', $defaults['email_background_color_dark'] );

		// Leave early if the user has the Lite version.
		if ( ! wpforms()->is_pro() ) {
			// Override the background colors with the old setting.
			$defaults['email_background_color']      = $lite_background_color;
			$defaults['email_background_color_dark'] = $lite_background_color_dark;

			/**
			 * Filter the style overrides for the current email template.
			 *
			 * @since 1.8.6
			 *
			 * @param array $overrides The current email template style overrides.
			 */
			return (array) apply_filters( 'wpforms_emails_helpers_style_overrides_args', $defaults );
		}

		// Get the color scheme from the settings.
		$color_scheme = wpforms_setting( 'email-color-scheme', [] );

		// If the user has the Pro version, but the light mode background color is the old setting, override it.
		if ( empty( $color_scheme['email_background_color'] ) && ! empty( $lite_background_color ) ) {
			$color_scheme['email_background_color'] = $lite_background_color;
		}

		// Get the dark mode color scheme from the settings.
		$color_scheme_dark = wpforms_setting( 'email-color-scheme-dark', [] );

		// If the user has the Pro version, but the dark mode background color is the old setting, override it.
		if ( empty( $color_scheme_dark['email_background_color_dark'] ) && ! empty( $lite_background_color_dark ) ) {
			$color_scheme_dark['email_background_color_dark'] = $lite_background_color_dark;
		}

		// Merge the color schemes with the defaults.
		$overrides = wp_parse_args( $color_scheme + $color_scheme_dark, $defaults );

		/**
		 * Filter the style overrides for the current email template.
		 *
		 * @since 1.8.6
		 *
		 * @param array $overrides The current email template style overrides.
		 */
		return (array) apply_filters( 'wpforms_emails_helpers_style_overrides_args', $overrides );
	}

	/**
	 * Check if the current email template is plain text.
	 *
	 * @since 1.8.5
	 *
	 * @param string $template_name Optional. The name of the email template to compare.
	 *
	 * @return bool
	 */
	public static function is_plain_text_template( $template_name = '' ) {

		// Leave early in case the given template name is not empty, and we can resolve it early.
		if ( ! empty( $template_name ) ) {
			return $template_name === Notifications::PLAIN_TEMPLATE;
		}

		return wpforms_setting( 'email-template', Notifications::DEFAULT_TEMPLATE ) === Notifications::PLAIN_TEMPLATE;
	}

	/**
	 * Check if the current template is legacy.
	 * Legacy template is the one that its value is 'default'.
	 *
	 * @since 1.8.5
	 *
	 * @return bool
	 */
	public static function is_legacy_html_template() {

		return wpforms_setting( 'email-template', Notifications::DEFAULT_TEMPLATE ) === Notifications::LEGACY_TEMPLATE;
	}

	/**
	 * Get the current template's typography.
	 *
	 * This function retrieves the typography setting for email templates and returns the corresponding font family.
	 *
	 * If the user has the Pro version, the font-family is determined based on the current template.
	 * For free users, the font-family defaults to "Sans Serif" because the available templates
	 * ("Classic" and "Compact") use this font-family in their design.
	 *
	 * @since 1.8.5
	 * @since 1.8.6 Added $typography argument.
	 *
	 * @param string $typography Optional. The typography setting to evaluate.
	 *
	 * @return array|string
	 */
	public static function get_template_typography( $typography = '' ) {

		// Predefined font families for light and dark modes.
		$font_families = [
			'sans_serif' => '-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif',
			'serif'      => 'Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol',
		];

		// If the user is not using the Pro version, return "Sans Serif" font-family.
		if ( ! wpforms()->is_pro() ) {
			return [ $font_families['sans_serif'], $font_families['sans_serif'] ];
		}

		// Leave early if a specific typography is requested.
		if ( ! empty( $typography ) ) {
			// Validate the input and return the corresponding font family.
			return $font_families[ $typography ] ?? $font_families['sans_serif'];
		}

		// Get typography settings from email settings.
		$setting_typography = [
			// Light mode.
			wpforms_setting( 'email-typography', 'sans-serif' ),
			// Dark mode.
			wpforms_setting( 'email-typography-dark', 'sans-serif' ),
		];

		// Map setting values to predefined font families, default to 'sans_serif' if not found.
		return array_map(
			static function ( $item ) use ( $font_families ) {

				return $font_families[ $item ] ?? $font_families['sans_serif'];
			},
			$setting_typography
		);
	}


	/**
	 * Get the header image size based on the specified size or 'medium' by default.
	 *
	 * Note that when given a size input, this function will only validate the input and return the corresponding size.
	 * Otherwise, it will return the header image size for the current template in both light and dark modes.
	 *
	 * @since 1.8.5
	 * @since 1.8.6 Added $size argument.
	 *
	 * @param string $size Optional. The desired image size ('small', 'medium', or 'large').
	 *
	 * @return array
	 */
	public static function get_template_header_image_size( $size = '' ) {

		// Predefined image sizes.
		$sizes = [
			'small'  => [
				'width'  => '240',
				'height' => '120',
			],
			'medium' => [
				'width'  => '350',
				'height' => '180',
			],
			'large'  => [
				'width'  => '500',
				'height' => '240',
			],
		];

		// Leave early if a specific size is requested.
		if ( ! empty( $size ) ) {
			// Validate the input and return the corresponding size.
			return $sizes[ $size ] ?? $sizes['medium'];
		}

		// Get header image sizes from settings.
		$setting_size = [
			// Light mode.
			wpforms_setting( 'email-header-image-size', 'medium' ),
			// Dark mode.
			wpforms_setting( 'email-header-image-size-dark', 'medium' ),
		];

		// Map setting values to predefined sizes, default to 'medium' if not found.
		return array_map(
			static function ( $item ) use ( $sizes ) {

				return $sizes[ $item ] ?? $sizes['medium'];
			},
			$setting_size
		);
	}
}
¿Qué es la limpieza dental de perros? - Clínica veterinaria


Es la eliminación del sarro y la placa adherida a la superficie de los dientes mediante un equipo de ultrasonidos que garantiza la integridad de las piezas dentales a la vez que elimina en profundidad cualquier resto de suciedad.

A continuación se procede al pulido de los dientes mediante una fresa especial que elimina la placa bacteriana y devuelve a los dientes el aspecto sano que deben tener.

Una vez terminado todo el proceso, se mantiene al perro en observación hasta que se despierta de la anestesia, bajo la atenta supervisión de un veterinario.

¿Cada cuánto tiempo tengo que hacerle una limpieza dental a mi perro?

A partir de cierta edad, los perros pueden necesitar una limpieza dental anual o bianual. Depende de cada caso. En líneas generales, puede decirse que los perros de razas pequeñas suelen acumular más sarro y suelen necesitar una atención mayor en cuanto a higiene dental.


Riesgos de una mala higiene


Los riesgos más evidentes de una mala higiene dental en los perros son los siguientes:

  • Cuando la acumulación de sarro no se trata, se puede producir una inflamación y retracción de las encías que puede descalzar el diente y provocar caídas.
  • Mal aliento (halitosis).
  • Sarro perros
  • Puede ir a más
  • Las bacterias de la placa pueden trasladarse a través del torrente circulatorio a órganos vitales como el corazón ocasionando problemas de endocarditis en las válvulas. Las bacterias pueden incluso acantonarse en huesos (La osteomielitis es la infección ósea, tanto cortical como medular) provocando mucho dolor y una artritis séptica).

¿Cómo se forma el sarro?

El sarro es la calcificación de la placa dental. Los restos de alimentos, junto con las bacterias presentes en la boca, van a formar la placa bacteriana o placa dental. Si la placa no se retira, al mezclarse con la saliva y los minerales presentes en ella, reaccionará formando una costra. La placa se calcifica y se forma el sarro.

El sarro, cuando se forma, es de color blanquecino pero a medida que pasa el tiempo se va poniendo amarillo y luego marrón.

Síntomas de una pobre higiene dental
La señal más obvia de una mala salud dental canina es el mal aliento.

Sin embargo, a veces no es tan fácil de detectar
Y hay perros que no se dejan abrir la boca por su dueño. Por ejemplo…

Recientemente nos trajeron a la clínica a un perro que parpadeaba de un ojo y decía su dueño que le picaba un lado de la cara. Tenía molestias y dificultad para comer, lo que había llevado a sus dueños a comprarle comida blanda (que suele ser un poco más cara y llevar más contenido en grasa) durante medio año. Después de una exploración oftalmológica, nos dimos cuenta de que el ojo tenía una úlcera en la córnea probablemente de rascarse . Además, el canto lateral del ojo estaba inflamado. Tenía lo que en humanos llamamos flemón pero como era un perro de pelo largo, no se le notaba a simple vista. Al abrirle la boca nos llamó la atención el ver una muela llena de sarro. Le realizamos una radiografía y encontramos una fístula que llegaba hasta la parte inferior del ojo.

Le tuvimos que extraer la muela. Tras esto, el ojo se curó completamente con unos colirios y una lentilla protectora de úlcera. Afortunadamente, la úlcera no profundizó y no perforó el ojo. Ahora el perro come perfectamente a pesar de haber perdido una muela.

¿Cómo mantener la higiene dental de tu perro?
Hay varias maneras de prevenir problemas derivados de la salud dental de tu perro.

Limpiezas de dientes en casa
Es recomendable limpiar los dientes de tu perro semanal o diariamente si se puede. Existe una gran variedad de productos que se pueden utilizar:

Pastas de dientes.
Cepillos de dientes o dedales para el dedo índice, que hacen más fácil la limpieza.
Colutorios para echar en agua de bebida o directamente sobre el diente en líquido o en spray.

En la Clínica Tus Veterinarios enseñamos a nuestros clientes a tomar el hábito de limpiar los dientes de sus perros desde que son cachorros. Esto responde a nuestro compromiso con la prevención de enfermedades caninas.

Hoy en día tenemos muchos clientes que limpian los dientes todos los días a su mascota, y como resultado, se ahorran el dinero de hacer limpiezas dentales profesionales y consiguen una mejor salud de su perro.


Limpiezas dentales profesionales de perros y gatos

Recomendamos hacer una limpieza dental especializada anualmente. La realizamos con un aparato de ultrasonidos que utiliza agua para quitar el sarro. Después, procedemos a pulir los dientes con un cepillo de alta velocidad y una pasta especial. Hacemos esto para proteger el esmalte.

La frecuencia de limpiezas dentales necesaria varía mucho entre razas. En general, las razas grandes tienen buena calidad de esmalte, por lo que no necesitan hacerlo tan a menudo e incluso pueden pasarse la vida sin requerir una limpieza. Sin embargo, razas pequeñas como el Yorkshire o el Maltés, deben hacérselas todos los años desde cachorros si se quiere conservar sus piezas dentales.

Otro factor fundamental es la calidad del pienso. Algunas marcas han diseñado croquetas que limpian la superficie del diente y de la muela al masticarse.

Ultrasonido para perros

¿Se necesita anestesia para las limpiezas dentales de perros y gatos?

La limpieza dental en perros no es una técnica que pueda practicarse sin anestesia general , aunque hay veces que los propietarios no quieren anestesiar y si tiene poco sarro y el perro es muy bueno se puede intentar…… , pero no se va a poder pulir ni acceder a todas la zona de la boca …. Además los limpiadores dentales van a irrigar agua y hay riesgo de aspiración a vías respiratorias si no se realiza una anestesia correcta con intubación traqueal . En resumen , sin anestesia no se va hacer una correcta limpieza dental.

Tampoco sirve la sedación ya que necesitamos que el animal esté totalmente quieto, y el veterinario tenga un acceso completo a todas sus piezas dentales y encías.

Alimentos para la limpieza dental

Hay que tener cierto cuidado a la hora de comprar determinados alimentos porque no todos son saludables. Algunos tienen demasiado contenido graso, que en exceso puede causar problemas cardiovasculares y obesidad.

Los mejores alimentos para los dientes son aquellos que están elaborados por empresas farmacéuticas y llevan componentes químicos con tratamientos específicos para el diente del perro. Esto implica no solo limpieza a través de la acción mecánica de morder sino también un tratamiento antibacteriano para prevenir el sarro.

Conclusión

Si eres como la mayoría de dueños, por falta de tiempo , es probable que no estés prestando la suficiente atención a la limpieza dental de tu perro. Por eso te animamos a que comiences a limpiar los dientes de tu perro y consideres atender a su higiene bucal con frecuencia.

Estas simples medidas pueden conllevar a que tu perro tenga una vida más larga y mucho más saludable.

Si te resulta imposible introducir un cepillo de dientes a tu perro en la boca, pásate con él por clínica Tus Veterinarios y te explicamos cómo hacerlo.

Necesitas hacer una limpieza dental profesional a tu mascota?
Llámanos al 622575274 o contacta con nosotros

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Hola!