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
<?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;
}
}