Passed
Push — master ( 2da942...d633d7 )
by Paul
15:03 queued 05:40
created

Migrate_4_5_0   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Test Coverage

Coverage 58.33%

Importance

Changes 0
Metric Value
wmc 7
eloc 30
dl 0
loc 64
ccs 21
cts 36
cp 0.5833
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A migrateUserMeta() 0 14 3
A migrateOptions() 0 5 1
A migrateSettings() 0 16 2
A run() 0 6 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules\Migrations;
4
5
use GeminiLabs\SiteReviews\Controllers\NoticeController;
6
use GeminiLabs\SiteReviews\Database\OptionManager;
7
use GeminiLabs\SiteReviews\Helpers\Arr;
8
9
class Migrate_4_5_0
10
{
11
    /**
12
     * @return void
13
     */
14 7
    public function migrateOptions()
15
    {
16 7
        $isAccountVerified = glsr(OptionManager::class)->getWP('_glsr_rebusify', false);
17 7
        update_option('_glsr_trustalyze', $isAccountVerified);
18 7
        delete_option('_glsr_rebusify');
19 7
    }
20
21
    /**
22
     * @return void
23
     */
24 7
    public function migrateSettings()
25
    {
26 7
        if ($settings = get_option(OptionManager::databaseKey(4))) {
27
            $settings = Arr::set($settings, 'settings.general.trustalyze',
28
                Arr::get($settings, 'settings.general.rebusify')
29
            );
30
            $settings = Arr::set($settings, 'settings.general.trustalyze_email',
31
                Arr::get($settings, 'settings.general.rebusify_email')
32
            );
33
            $settings = Arr::set($settings, 'settings.general.trustalyze_serial',
34
                Arr::get($settings, 'settings.general.rebusify_serial')
35
            );
36
            unset($settings['settings']['general']['rebusify']);
37
            unset($settings['settings']['general']['rebusify_email']);
38
            unset($settings['settings']['general']['rebusify_serial']);
39
            update_option(OptionManager::databaseKey(4), $settings);
40
        }
41 7
    }
42
43
    /**
44
     * @return void
45
     */
46 7
    public function migrateUserMeta()
47
    {
48 7
        $metaKey = NoticeController::USER_META_KEY;
49 7
        $userIds = get_users([
50 7
            'fields' => 'ID',
51 7
            'meta_compare' => 'EXISTS',
52 7
            'meta_key' => $metaKey,
53
        ]);
54 7
        foreach ($userIds as $userId) {
55
            $meta = (array) get_user_meta($userId, $metaKey, true);
56
            if (array_key_exists('rebusify', $meta)) {
57
                $meta['trustalyze'] = $meta['rebusify'];
58
                unset($meta['rebusify']);
59
                update_user_meta($userId, $metaKey, $meta);
60
            }
61
        }
62 7
    }
63
64
    /**
65
     * @return bool
66
     */
67 7
    public function run()
68
    {
69 7
        $this->migrateOptions();
70 7
        $this->migrateSettings();
71 7
        $this->migrateUserMeta();
72 7
        return true;
73
    }
74
}
75