?? GreyFile — Mystic File Browser

Current path: home/webdevt/www/cryptoimpot.fr/wp-content/plugins/divi-contact-form-helper/app/Admin/Migration/



?? Go up: /home/webdevt/www/cryptoimpot.fr/wp-content/plugins/divi-contact-form-helper/app/Admin

?? Viewing: Updater.php

<?php

namespace KS_PAC_DCFH\Admin\Migration;

class Updater
{
    private static $_instance;

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

        return self::$_instance;
    }

    public function init(): void
    {
        //add_action('init', [$this, 'maybe_migrate_options']);
        //add_action('init', [$this, 'migrate_unsanitized_form_ids']);
    }

  /*  public function maybe_migrate_options(): void
    {

        if (false === get_option('_pwh_dcfh_options_updated')) {
            global $wpdb;
            $results = $wpdb->get_results($wpdb->prepare("SELECT DISTINCT option_name,option_value FROM $wpdb->options WHERE option_name LIKE %s", "_pwh_dcfh_contact_form_title_%")); //db call ok; no-cache ok
            if (!empty($results)) {
                foreach ($results as $result) {
                    $contact_form_id = str_replace('_pwh_dcfh_contact_form_title_', '', $result->option_name);
                    $contact_form_title = $result->option_value;
                    $views = get_option('_pwh_dcfh_contact_form_views_'.$contact_form_id);
                    $unique_views = get_option('_pwh_dcfh_contact_form_unique_views_'.$contact_form_id);
                    $contact_form_views = false === $views ? 0 : $views;
                    $contact_form_unique_views = false === $unique_views ? 0 : $unique_views;
                    $contact_form_entries = ks_pac_dcfh_post_meta()::get_contact_form_total_entries($contact_form_id);
                    $last_post_id = ks_pac_dcfh_post_meta()::get_contact_form_last_post_id($contact_form_id);
                    $page_id = ks_pac_dcfh_post_meta()::get_page_id_meta_value($last_post_id);
                    $option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
                    $option = get_option($option_key);
                    if (false === $option) {
                        update_option($option_key, [
                            'unique_id' => $contact_form_id,
                            'page_id' => $page_id,
                            'title' => $contact_form_title,
                            'entries_threshold' => '-1',
                            'total_entries' => $contact_form_entries,
                            'views' => $contact_form_views,
                            'unique_views' => $contact_form_unique_views,
                        ], 'no');
                    }
                }
            }
            update_option('_pwh_dcfh_options_updated', 'yes', 'no');
        }
    }

    public static function migrate_unsanitized_form_ids(): void
    {
        if (false !== get_option('_pwh_dcfh_ids_migration_complete')) {
            return;
        }
        global $wpdb;
        // Fetch all options with unsanitized form IDs
        $results = $wpdb->get_results(
            "SELECT option_name, option_value 
         FROM $wpdb->options 
         WHERE option_name LIKE '_pwh_dcfh_contact_form_settings_%'"
        );
        foreach ($results as $row) {
            $old_key = $row->option_name;
            $old_id = str_replace('_pwh_dcfh_contact_form_settings_', '', $old_key);
            $sanitized_id = sanitize_title($old_id);
            // Skip if no sanitization was needed
            if ($sanitized_id === $old_id) {
                continue;
            }
            $new_key = "_pwh_dcfh_contact_form_settings_$sanitized_id";
            // Deserialize and validate both old and new data
            $old_data = maybe_unserialize($row->option_value);
            $new_data = maybe_unserialize(get_option($new_key, []));
            $old_data = is_array($old_data) ? $old_data : [];
            $new_data = is_array($new_data) ? $new_data : [];
            // Merge data safely
            $merged_data = [
                'unique_id' => $sanitized_id,
                'title' => $new_data['title'] ?? $old_data['title'] ?? '',
                'page_id' => $new_data['page_id'] ?? $old_data['page_id'] ?? 0,
                'entries_threshold' => $new_data['entries_threshold'] ?? $old_data['entries_threshold'] ?? -1,
                'views' => ($old_data['views'] ?? 0) + ($new_data['views'] ?? 0),
                'unique_views' => ($old_data['unique_views'] ?? 0) + ($new_data['unique_views'] ?? 0),
                'query_params' => array_unique(array_merge(
                    (array)($old_data['query_params'] ?? []),
                    (array)($new_data['query_params'] ?? [])
                )),
                'total_entries' => max(
                    $old_data['total_entries'] ?? 0,
                    $new_data['total_entries'] ?? 0
                ),
            ];
            // Save merged data to new key
            update_option($new_key, $merged_data, 'no');
            // Delete the old option
            delete_option($old_key);
            // Update all matching postmeta entries
            $wpdb->query(
                $wpdb->prepare(
                    "UPDATE $wpdb->postmeta
                 SET meta_value = %s
                 WHERE meta_key = '_pwh_dcfh_contact_form_id'
                   AND meta_value = %s",
                    $sanitized_id,
                    $old_id
                )
            );
        }
        // Mark migration as complete
        update_option('_pwh_dcfh_ids_migration_complete', true);
    }*/
}


??

??