?? GreyFile — Mystic File Browser

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

?? Viewing: DashboardSettingsMigration.php

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


??

??