?? GreyFile — Mystic File Browser

Current path: home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Frontend/Services/



?? Go up: /home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Frontend

?? Viewing: AdminEmailRoutingService.php

<?php

namespace KS_PAC_DCFH\Frontend\Services;

use KS_PAC_DCFH\Frontend\Controllers\ContactFormDataRepository;

if (!defined('ABSPATH')) {
    exit;
}

class AdminEmailRoutingService
{
    private static $_instance;

    private ContactFormDataRepository $contact_form_rep;

    public array $admin_email_routes = [];

    private function __construct()
    {
        $this->contact_form_rep = ContactFormDataRepository::instance();
    }

    public static function instance(): self
    {
        if (self::$_instance === null) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }

    public function set_admin_emails_routes($email_pattern): void
    {
        if (empty($email_pattern)) {
            return;
        }
        $routes = explode(',', wp_strip_all_tags(htmlspecialchars_decode($email_pattern)));
        if (is_array($routes)) {
            $routes = array_filter(array_map('trim', $routes));
            foreach ($routes as $route) {
                $outer_arr = explode('::', $route);
                if (isset($outer_arr[0], $outer_arr[1])) {
                    $field_id = ks_pac_dcfh_app()->misc_utils()::sanitize_key($outer_arr[0]);
                    $inner_arr = explode('|', $outer_arr[1]);
                    foreach ($inner_arr as $inner_val) {
                        $data_arr = explode(':', $inner_val);
                        if (!empty($data_arr[0]) && !empty($data_arr[1])) {
                            $index = ks_pac_dcfh_app()->misc_utils()::sanitize_key($data_arr[0]);
                            $email = sanitize_email($data_arr[1]);
                            $this->admin_email_routes[$field_id][$index] = $email;
                        }
                    }
                }
            }
        }
    }

    public function get_admin_emails_routes(): array
    {
        $email_routes = [];
        if (!$this->contact_form_rep->is_admin_email_routing_enabled) {
            return $email_routes;
        }
        if (empty($this->admin_email_routes)) {
            return $email_routes;
        }
        $emails_routing = $this->admin_email_routes;
        $processed_form_data = $this->contact_form_rep->contact_form_processed_data;
        foreach ($processed_form_data as $value) {
            if (isset($value['id'], $value['value'])) {
                $field_id = $value['id'];
                $field_data = explode(',', $value['value']);
                if (!empty($field_data)) {
                    foreach ($field_data as $field_value) {
                        $field_value = ks_pac_dcfh_app()->misc_utils()::sanitize_key($field_value);
                        if (isset($emails_routing[$field_id][$field_value])) {
                            $email_routes[] = $emails_routing[$field_id][$field_value];
                        }
                    }
                }
            }
        }

        return $email_routes;
    }
}


??

??