Passed
Push — master ( f510e9...9822a2 )
by Paul
10:29
created

Rollback   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 2
eloc 21
dl 0
loc 38
ccs 0
cts 27
cp 0
rs 10
c 3
b 0
f 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A rollback() 0 15 1
A rollbackData() 0 11 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews;
4
5
use GeminiLabs\SiteReviews\Overrides\PluginUpgrader;
6
7
class Rollback
8
{
9
    /**
10
     * @param string $version
11
     * @return void
12
     */
13
    public function rollback($version)
14
    {
15
        global $title, $parent_file;
16
        $plugin = plugin_basename(glsr()->file);
17
        $parent_file = 'edit.php?post_type='.glsr()->post_type;
18
        $title = _x('Rollback Site Reviews', 'admin-text', 'site-reviews');
19
        $nonce = 'upgrade-plugin_'.$plugin;
20
        $url = 'update.php?action=upgrade-plugin&plugin='.urlencode($plugin);
21
        wp_enqueue_script('updates');
22
        require_once ABSPATH.'wp-admin/admin-header.php';
23
        $upgrader = new PluginUpgrader(
24
            new \Plugin_Upgrader_Skin(compact('title', 'nonce', 'url', 'plugin'))
25
        );
26
        $upgrader->rollback($version);
27
        require_once ABSPATH.'wp-admin/admin-footer.php';
28
    }
29
30
    /**
31
     * @param string $version
32
     * @return array
33
     */
34
    public function rollbackData($version)
35
    {
36
        set_transient(glsr()->prefix.'rollback_version', $version, MINUTE_IN_SECONDS);
37
        return [
38
            'data' => [
39
                '_ajax_nonce' => wp_create_nonce('updates'),
40
                'action' => 'update-plugin',
41
                'plugin' => plugin_basename(glsr()->file),
42
                'slug' => glsr()->id,
43
            ],
44
            'url' => glsr_admin_url('welcome'),
45
        ];
46
    }
47
}
48