Current path: home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin/Dashboard/
?? Go up: /home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin
<?php
namespace KS_PAC_DCFH\Admin\Dashboard;
if (!defined('ABSPATH')) {
exit;
}
class DashboardSettingsMigration
{
public function maybe_migrate()
{
$existing = get_option(KS_PAC_DCFH_SETTINGS_OPTION, false);
if ($existing !== false) {
return;
}
$et_divi = get_option('et_divi', []);
if (!empty($et_divi)) {
$settings = $this->get_migrated_settings_from_divi($et_divi);
} else {
$settings = $this->get_default_settings();
}
update_option(KS_PAC_DCFH_SETTINGS_OPTION, $settings);
}
public function get_default_settings(): array
{
return [
'is_review_card_dismissed' => 'false',
'is_license_alert_dismissed' => $this->has_license(),
'smtp_understanding_confirmed' => false,
'is_smtp_host_enabled' => false,
'smtp_host' => '',
'smtp_from_email' => get_bloginfo('admin_email'),
'smtp_from_name' => get_bloginfo('name'),
'smtp_encryption' => 'none',
'smtp_port' => '465',
'is_smtp_auto_tls_enabled' => false,
'is_smtp_authentication_enabled' => false,
'smtp_username' => '',
'smtp_password' => '',
'spam_blacklisted_email_addresses' => '',
'spam_blacklisted_email_address_domains' => '',
'spam_blacklisted_keywords' => '',
'google_recaptcha_v2_site_key' => '',
'google_recaptcha_v2_secret_key' => '',
'disable_google_recaptcha_v3_fonts' => false,
'cloudflare_turnstile_site_key' => '',
'cloudflare_turnstile_secret_key' => '',
'is_custom_text_multilingual_enabled' => false,
'is_entries_auto_backup_enabled' => false,
'entries_backup_email_address' => get_bloginfo('admin_email'),
'entries_backup_schedule' => 'daily',
'is_entries_auto_delete_enabled' => false,
'entries_delete_type' => [],
'entries_delete_of_days' => '',
'is_sent_email_logs_enabled' => false,
'is_clone_logs_enabled' => false,
'optional_entry_list_columns' => 'name',
'entries_date_format' => 'Y/m/d',
'entries_time_format' => 'h:i:sa',
'entries_role_permissions' => [],
'is_contact_form_stats_enabled' => false,
'remove_plugin_data_when_uninstalled' => false,
'allowed_mime_types' => 'psd|image/vnd.adobe.photoshop,rar|application/x-rar',
'all_fields_merge_tag_behavior' => 'show_filled_only',
'merge_tag_date_format' => 'Y-m-d',
'merge_tag_time_format' => 'h:i:sa',
'load_resources_from_cdn' => false,
'is_entry_logging_enabled' => false,
];
}
public function get_migrated_settings_from_divi(array $et_divi): array
{
$settings = $this->get_default_settings();
$settings['is_smtp_host_enabled'] = !empty($et_divi['pwh_dcfh_smtp_enabled']) && $et_divi['pwh_dcfh_smtp_enabled'] === 'on';
$settings['smtp_understanding_confirmed'] = !empty($et_divi['pwh_dcfh_smtp_enabled']) && $et_divi['pwh_dcfh_smtp_enabled'] === 'on';
$settings['smtp_host'] = $et_divi['pwh_dcfh_smtp_host'] ?? '';
$settings['smtp_from_email'] = $et_divi['pwh_dcfh_smtp_from_email'] ?? get_bloginfo('admin_email');
$settings['smtp_from_name'] = $et_divi['pwh_dcfh_smtp_from_name'] ?? get_bloginfo('name');
$settings['smtp_encryption'] = $et_divi['pwh_dcfh_smtp_encryption'] ?? 'none';
$settings['smtp_port'] = $et_divi['pwh_dcfh_smtp_port'] ?? '25';
$settings['is_smtp_auto_tls_enabled'] = !empty($et_divi['pwh_dcfh_smtp_autotls']) && $et_divi['pwh_dcfh_smtp_autotls'] === 'on';
$settings['is_smtp_authentication_enabled'] = !empty($et_divi['pwh_dcfh_smtp_authentication']) && $et_divi['pwh_dcfh_smtp_authentication'] === 'on';
$settings['smtp_username'] = $et_divi['pwh_dcfh_smtp_username'] ?? '';
$settings['smtp_password'] = $et_divi['pwh_dcfh_smtp_password'] ?? '';
$settings['spam_blacklisted_email_addresses'] = !empty($et_divi['pwh_dcfh_blacklisted_emails'])
? array_filter(array_map('trim', explode(',', $et_divi['pwh_dcfh_blacklisted_emails'])))
: [];
$settings['spam_blacklisted_email_address_domains'] = !empty($et_divi['pwh_dcfh_blacklisted_email_domains'])
? array_filter(array_map('trim', explode(',', $et_divi['pwh_dcfh_blacklisted_email_domains'])))
: [];
$settings['spam_blacklisted_keywords'] = !empty($et_divi['pwh_dcfh_blacklisted_keywords'])
? array_filter(array_map('trim', explode(',', $et_divi['pwh_dcfh_blacklisted_keywords'])))
: [];
$settings['google_recaptcha_v2_site_key'] = $et_divi['pwh_dcfh_googlerecaptcha_v2_sitekey'] ?? '';
$settings['google_recaptcha_v2_secret_key'] = $et_divi['pwh_dcfh_googlerecaptcha_v2_secretkey'] ?? '';
$settings['disable_google_recaptcha_v3_fonts'] = !empty($et_divi['pwh_dcfh_disable_google_recaptcha']) && $et_divi['pwh_dcfh_disable_google_recaptcha'] === 'on';
$settings['cloudflare_turnstile_site_key'] = $et_divi['pwh_dcfh_turnstile_sitekey'] ?? '';
$settings['cloudflare_turnstile_secret_key'] = $et_divi['pwh_dcfh_turnstile_secretkey'] ?? '';
$settings['is_custom_text_multilingual_enabled'] = !empty($et_divi['pwh_dcfh_multilingual_enabled']) && $et_divi['pwh_dcfh_multilingual_enabled'] === 'on';
$settings['is_entries_auto_backup_enabled'] = !empty($et_divi['pwh_dcfh_backup_enabled']) && $et_divi['pwh_dcfh_backup_enabled'] === 'on';
$settings['entries_backup_email_address'] = $et_divi['pwh_dcfh_backup_email'] ?? get_bloginfo('admin_email');
$settings['entries_backup_schedule'] = $et_divi['pwh_dcfh_backup_schedule'] ?? 'daily';
$settings['is_entries_auto_delete_enabled'] = !empty($et_divi['pwh_dcfh_delete_entries_enabled']) && $et_divi['pwh_dcfh_delete_entries_enabled'] === 'on';
$settings['entries_delete_of_days'] = $et_divi['pwh_dcfh_delete_entries_schedule'] ?? '';
$settings['entries_delete_type'] = $this->convert_delete_entries_status($et_divi['pwh_dcfh_delete_entries_status'] ?? []);
$settings['is_sent_email_logs_enabled'] = !empty($et_divi['pwh_dcfh_enable_sent_email_log']) && $et_divi['pwh_dcfh_enable_sent_email_log'] === 'on';
$settings['is_clone_logs_enabled'] = !empty($et_divi['pwh_dcfh_enable_clone_log']) && $et_divi['pwh_dcfh_enable_clone_log'] === 'on';
$settings['optional_entry_list_columns'] = $et_divi['pwh_dcfh_entry_list_columns'] ?? 'name';
$settings['entries_date_format'] = $et_divi['pwh_dcfh_entries_date_format'] ?? 'Y/m/d';
$settings['entries_time_format'] = $et_divi['pwh_dcfh_entries_time_format'] ?? 'h:i:sa';
global $wp_roles;
$entries_role_permissions = [];
foreach ($wp_roles->roles as $role_key => $role_data) {
$option_key = "pwh_dcfh_permission_$role_key";
$role_settings = $et_divi[$option_key] ?? [];
$entries_role_permissions[$role_key] = [
'accessEntries' => (!empty($role_settings['access_entries']) && $role_settings['access_entries'] === 'on') ? 1 : '',
'entryActions' => (!empty($role_settings['entry_actions']) && $role_settings['entry_actions'] === 'on') ? 1 : '',
'exportCSV' => (!empty($role_settings['export_csv']) && $role_settings['export_csv'] === 'on') ? 1 : '',
];
}
$settings['entries_role_permissions'] = $entries_role_permissions;
$settings['is_contact_form_stats_enabled'] = !empty($et_divi['pwh_dcfh_stats_enabled']) && $et_divi['pwh_dcfh_stats_enabled'] === 'on';
$settings['remove_plugin_data_when_uninstalled'] = !empty($et_divi['pwh_dcfh_delete_plugin_data']) && $et_divi['pwh_dcfh_delete_plugin_data'] === 'on';
$settings['allowed_mime_types'] = $et_divi['pwh_dcfh_custom_mimes_types'] ?? 'psd|image/vnd.adobe.photoshop,rar|application/x-rar';
$settings['all_fields_merge_tag_behavior'] = $et_divi['pwh_dcfh_all_fields_merge_tag_behavior'] ?? 'show_filled_only';
$settings['merge_tag_date_format'] = $et_divi['pwh_dcfh_mergetag_date_format'] ?? 'Y-m-d';
$settings['merge_tag_time_format'] = $et_divi['pwh_dcfh_mergetag_time_format'] ?? 'h:i:sa';
$settings['load_resources_from_cdn'] = !empty($et_divi['pwh_dcfh_load_resources_from_cdn']) && $et_divi['pwh_dcfh_load_resources_from_cdn'] === 'on';
$settings['is_entry_logging_enabled'] = !empty($et_divi['pwh_dcfh_logs_enabled']) && $et_divi['pwh_dcfh_logs_enabled'] === 'on';
return $settings;
}
private function convert_delete_entries_status($old_statuses): array
{
$new = [];
if (!is_array($old_statuses)) {
return $new;
}
foreach ($old_statuses as $status => $value) {
if ($value === 'on' || $value === true) {
$new[] = $status;
}
}
return $new;
}
private function has_license(): string
{
if (!defined('KS_PAC_DCFH_LICENSE_OPTION')) {
return 'false';
}
$license_data = get_site_option(KS_PAC_DCFH_LICENSE_OPTION);
$has_license = !empty($license_data['key']);
return $has_license ? '' : 'false';
}
}