', ' ' ); // NOSONAR - noopener - open safe. ?>
$name ) : ?>
 
' : ''; ?>
 
', ' ', '', ' ' ); // NOSONAR - noopener - open safe. ?>

/>
is_overrided_template( $type ); ?>
wp-content/uploads/mainwp/templates/' . esc_html( $templ ) . '' : esc_html__( 'To override and edit this email template copy:', 'mainwp' ) . ' mainwp/templates/' . esc_html( $templ ) . ' ' . esc_html__( 'to the folder:', 'mainwp' ) . ' wp-content/uploads/mainwp/templates/' . esc_html( $templ ) . ''; } echo $copy_message; // phpcs:ignore WordPress.Security.EscapeOutput ?>
esc_html__( 'Daily Digest Email', 'mainwp' ), 'uptime' => esc_html__( 'Uptime Monitoring Email', 'mainwp' ), 'site_health' => esc_html__( 'Site Health Monitoring Email', 'mainwp' ), 'deactivated_license_alert' => esc_html__( 'Extension License Deactivation Notification Email', 'mainwp' ), ); $enable_http_check = get_option( 'mainwp_check_http_response', 0 ); if ( $enable_http_check ) { $types['http_check'] = esc_html__( 'After Updates HTTP Check Email', 'mainwp' ); } $addition_types = apply_filters( 'mainwp_notification_types', array(), $type ); if ( ! empty( $addition_types ) ) { $types = array_merge( $types, $addition_types ); } if ( empty( $type ) ) { return $types; } else { return ( isset( $types[ $type ] ) ) ? $types[ $type ] : false; } } /** * Get general email notifications settings. * * @param string $type Email type. * * @see function get_notification_types() * * @return array An array containing the email settings. */ public static function get_general_email_settings( $type ) { $settings = get_option( 'mainwp_settings_notification_emails', array() ); if ( ! is_array( $settings ) ) { $settings = array(); } $options = isset( $settings[ $type ] ) ? $settings[ $type ] : array(); $default = static::get_default_emails_fields( $type, '', true ); return array_merge( $default, $options ); } /** * Prepare general email notifications settings. * * @param array $options Email settings. * @param object $website Site data. * * @return void. */ public static function prepare_general_email_settings_for_site( &$options, $website ) { if ( is_array( $options ) && isset( $options['subject'] ) && isset( $options['heading'] ) && isset( $options['recipients'] ) ) { if ( preg_match( '/\[[^\]]+\]/is', $options['subject'] . $options['heading'], $matches ) ) { $tokens_values = MainWP_System_Utility::get_tokens_site_values( $website, true ); $options['subject'] = MainWP_System_Utility::replace_tokens_values( $options['subject'], $tokens_values ); $options['heading'] = MainWP_System_Utility::replace_tokens_values( $options['heading'], $tokens_values ); } if ( preg_match( '/\[[^\]]+\]/is', $options['recipients'] . $options['subject'] . $options['heading'], $matches ) ) { // support boilerplate and reports tokens. $fields = array( 'recipients', 'subject', 'heading' ); $options = static::replace_tokens_for_settings( $options, $fields, $website ); } } } /** * Get general notification email. * * @return string|empty recipients. */ public static function get_general_email() { $gen_email_settings = static::get_general_email_settings( 'daily_digest' ); return isset( $gen_email_settings['recipients'] ) ? $gen_email_settings['recipients'] : ''; } /** * Update general notification email. * * @param string $emails Emails. * * @return void */ public static function update_general_email( $emails ) { $emails_settings = get_option( 'mainwp_settings_notification_emails' ); if ( ! is_array( $emails_settings ) ) { $emails_settings = array(); } $type = 'daily_digest'; $update_settings = isset( $emails_settings[ $type ] ) ? $emails_settings[ $type ] : array(); $update_settings['recipients'] = $emails; $emails_settings[ $type ] = $update_settings; MainWP_Utility::update_option( 'mainwp_settings_notification_emails', $emails_settings ); } /** * Get email settings for a single site. * * @param string $type Email type. * @param object $website Object containing the child site information. * @param mixed $website_status Object containing the child site status. * * @return array An array containing the email settings. * * @uses \MainWP\Dashboard\MainWP_System_Utility::get_tokens_site_values() * @uses \MainWP\Dashboard\MainWP_System_Utility::replace_tokens_values() */ public static function get_site_email_settings( $type, $website, $website_status = false ) { if ( empty( $website ) || ! property_exists( $website, 'settings_notification_emails' ) ) { return array( 'disable' => 1 ); } $settings = array(); if ( ! empty( $website->settings_notification_emails ) ) { $settings = json_decode( $website->settings_notification_emails, true ); } if ( ! is_array( $settings ) ) { $settings = array(); } $options = isset( $settings[ $type ] ) ? $settings[ $type ] : array(); $default = static::get_default_emails_fields( $type ); $options = array_merge( $default, $options ); if ( preg_match( '/\[[^\]]+\]/is', $options['subject'] . $options['heading'], $matches ) ) { $tokens_values = MainWP_System_Utility::get_tokens_site_values( $website, true, $website_status ); $options['subject'] = MainWP_System_Utility::replace_tokens_values( $options['subject'], $tokens_values ); $options['heading'] = MainWP_System_Utility::replace_tokens_values( $options['heading'], $tokens_values ); } if ( preg_match( '/\[[^\]]+\]/is', $options['recipients'] . $options['subject'] . $options['heading'], $matches ) ) { // support boilerplate and reports tokens. $fields = array( 'recipients', 'subject', 'heading' ); $options = static::replace_tokens_for_settings( $options, $fields, $website ); } return $options; } /** * Get default email notifications values. * * @param string $type Email type. * @param string $field Field name. * @param bool $general General or individual site settings. * * @return array|string Email field settings value. * * @uses \MainWP\Dashboard\MainWP_System_Utility::get_notification_email() */ public static function get_default_emails_fields( $type, $field = '', $general = false ) { // phpcs:ignore -- NOSONAR - complex. $recipients = MainWP_System_Utility::get_notification_email(); $disable = $general ? 0 : 1; $default_fields = array( 'daily_digest' => array( 'disable' => $disable, 'recipients' => $recipients, 'subject' => $general ? 'Daily Digest from Your MainWP Dashboard' : '[site.name] Daily Digest from Your MainWP Dashboard', 'heading' => $general ? 'Daily Digest' : '[site.name] Daily Digest', ), 'uptime' => array( 'disable' => $disable, 'recipients' => $recipients, 'subject' => $general ? 'Uptime Monitoring Alert from your MainWP Dashboard' : '[site.name] Uptime Monitoring Alert from your MainWP Dashboard', 'heading' => $general ? 'Uptime Monitoring' : '[site.name] Uptime Monitoring', ), 'site_health' => array( 'disable' => $disable, 'recipients' => $recipients, 'subject' => $general ? 'Site Health Monitoring Alert from Your MainWP Dashboard' : '[site.name] Site Health Monitoring Alert from Your MainWP Dashboard', 'heading' => $general ? 'Site Health Monitoring' : '[site.name] Site Health Monitoring', ), 'http_check' => array( 'disable' => $disable, 'recipients' => $recipients, 'subject' => 'HTTP response check', 'heading' => 'Sites Check', ), 'deactivated_license_alert' => array( 'disable' => $disable, 'recipients' => $recipients, 'subject' => 'Extension License Deactivation Notification from Your MainWP Dashboard', 'heading' => 'Extension License Deactivation Notification', ), ); $addition_default_fields = apply_filters( 'mainwp_default_emails_fields', array(), $recipients, $type, $field, $general ); if ( ! empty( $addition_default_fields ) ) { $default_fields = array_merge( $default_fields, $addition_default_fields ); } if ( ! empty( $type ) && ! empty( $field ) ) { return isset( $default_fields[ $type ] ) && isset( $default_fields[ $type ][ $field ] ) ? $default_fields[ $type ][ $field ] : ''; } if ( ! empty( $type ) && empty( $field ) ) { return isset( $default_fields[ $type ] ) ? $default_fields[ $type ] : array(); } return array(); } /** * Replace site tokens for settings. * * @param array $options array of fields to find and replace tokens. * @param array $fields fields names to find. * @param object $website The website. * * @return array $options array of fields. * * @uses \MainWP\Dashboard\MainWP_System_Utility::replace_tokens_values() */ public static function replace_tokens_for_settings( $options, $fields, $website ) { // phpcs:ignore -- NOSONAR - complex. if ( null === static::$boilerplate_tokens_loaded ) { /** * Filter: mainwp_boilerplate_get_tokens * * Enables and filters the Boilerplate extension tokens. * * @param object $website Object containing the child site data. * * @since 4.1 */ static::$boilerplate_tokens_loaded = apply_filters( 'mainwp_boilerplate_get_tokens', false, $website ); } $boilerplate_tokens = static::$boilerplate_tokens_loaded; if ( is_array( $boilerplate_tokens ) ) { foreach ( $fields as $field ) { if ( isset( $options[ $field ] ) ) { $options[ $field ] = MainWP_System_Utility::replace_tokens_values( $options[ $field ], $boilerplate_tokens ); } } } if ( null === static::$report_tokens_loaded ) { /** * Filter: mainwp_pro_reports_get_site_tokens * * Enables and filters the Pro Reports extension tokens. * * @param object $website Object containing the child site data. * * @since 4.1 */ static::$report_tokens_loaded = apply_filters( 'mainwp_pro_reports_get_site_tokens', false, $website->id ); } $report_tokens = static::$report_tokens_loaded; if ( is_array( $report_tokens ) ) { foreach ( $fields as $field ) { if ( isset( $options[ $field ] ) ) { $options[ $field ] = MainWP_System_Utility::replace_tokens_values( $options[ $field ], $report_tokens ); } } } if ( null === static::$client_report_tokens_loaded ) { /** * Filter: mainwp_client_report_get_site_tokens * * Enables and filters the Client Reports extension tokens. * * @param object $website Object containing the child site data. * * @since 4.1 */ static::$client_report_tokens_loaded = apply_filters( 'mainwp_client_report_get_site_tokens', false, $website->id ); } $client_report_tokens = static::$client_report_tokens_loaded; if ( is_array( $client_report_tokens ) ) { foreach ( $fields as $field ) { if ( isset( $options[ $field ] ) ) { $options[ $field ] = MainWP_System_Utility::replace_tokens_values( $options[ $field ], $client_report_tokens ); } } } return $options; } /** * Replace site tokens for content. * * @param string $content content to find and replace tokens. * @param object $website The website. * * @return string $content after replaced tokens. * * @uses \MainWP\Dashboard\MainWP_System_Utility::get_tokens_site_values() * @uses \MainWP\Dashboard\MainWP_System_Utility::replace_tokens_values() */ public static function replace_tokens_for_content( $content, $website ) { $tokens_values = MainWP_System_Utility::get_tokens_site_values( $website, true ); $content = MainWP_System_Utility::replace_tokens_values( $content, $tokens_values ); // if tokens existed. if ( preg_match( '/\[[^\]]+\]/is', $content, $matches ) ) { /** This filter is documented in ../class/class-mainwp-notification-settings.php */ $boilerplate_tokens = apply_filters( 'mainwp_boilerplate_get_tokens', false, $website ); if ( is_array( $boilerplate_tokens ) ) { $content = MainWP_System_Utility::replace_tokens_values( $content, $boilerplate_tokens ); } /** This filter is documented in ../class/class-mainwp-notification-settings.php */ $report_tokens = apply_filters( 'mainwp_pro_reports_get_site_tokens', false, $website->id ); if ( is_array( $report_tokens ) ) { $content = MainWP_System_Utility::replace_tokens_values( $content, $report_tokens ); } /** This filter is documented in ../class/class-mainwp-notification-settings.php */ $client_report_tokens = apply_filters( 'mainwp_client_report_get_site_tokens', false, $website->id ); if ( is_array( $client_report_tokens ) ) { $content = MainWP_System_Utility::replace_tokens_values( $content, $client_report_tokens ); } } return $content; } }