AUTO_MAINTENANCE_MODE::plugin_url()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 2
c 0
b 0
f 0
nc 2
nop 0
dl 0
loc 4
rs 10
1
<?php
2
/*
3
Plugin Name: Auto Maintenance Mode
4
Version: 1.0.2
5
Plugin URI: https://github.com/pothi/auto-maintenance-mode
6
Author: pothi
7
Author URI: https://www.tinywp.in
8
Description: A plugin to enable maintenance mode automatically upon lack of activity on development / staging / test sites.
9
Text Domain: auto-maintenance-mode
10
Domain Path: /languages
11
*/
12
13
// disable executing this script directly
14
if(!defined('ABSPATH')) exit;
15
16
if(!class_exists('AUTO_MAINTENANCE_MODE'))
17
{
18
    class AUTO_MAINTENANCE_MODE
19
    {
20
        var $plugin_version = '1.0.3';
21
        var $plugin_url;
22
        var $plugin_path;
23
        function __construct()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
24
        {
25
            define('AUTO_MAINTENANCE_MODE_VERSION', $this->plugin_version);
26
            define('AUTO_MAINTENANCE_MODE_SITE_URL',site_url());
0 ignored issues
show
Bug introduced by
The function site_url was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

26
            define('AUTO_MAINTENANCE_MODE_SITE_URL',/** @scrutinizer ignore-call */ site_url());
Loading history...
27
            define('AUTO_MAINTENANCE_MODE_URL', $this->plugin_url());
28
            define('AUTO_MAINTENANCE_MODE_PATH', $this->plugin_path());
29
            $this->plugin_includes();
30
        }
31
        function plugin_includes()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
32
        {
33
            add_action('plugins_loaded', array($this, 'plugins_loaded_handler'));
0 ignored issues
show
Bug introduced by
The function add_action was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

33
            /** @scrutinizer ignore-call */ add_action('plugins_loaded', array($this, 'plugins_loaded_handler'));
Loading history...
34
            add_action('template_redirect', array($this, 'amm_template_redirect'));
35
36
            // clear transient on logout and create upon login
37
            add_action('wp_login', array($this, 'amm_create_transient'));
38
            add_action('init', array($this, 'amm_create_transient'));
39
            add_action('wp_logout', array($this, 'amm_clear_transient'));
40
        }
41
        function amm_create_transient() {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
42
            if( is_user_logged_in() ) {
0 ignored issues
show
Bug introduced by
The function is_user_logged_in was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

42
            if( /** @scrutinizer ignore-call */ is_user_logged_in() ) {
Loading history...
43
                if ( false === ( $tmp_value = get_transient( 'amm_is_any_user_logged_in' ) ) ) {
0 ignored issues
show
Bug introduced by
The function get_transient was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

43
                if ( false === ( $tmp_value = /** @scrutinizer ignore-call */ get_transient( 'amm_is_any_user_logged_in' ) ) ) {
Loading history...
Unused Code introduced by
The assignment to $tmp_value is dead and can be removed.
Loading history...
44
                    $value = true;
45
                    set_transient( 'amm_is_any_user_logged_in', $value, 60*60 );
0 ignored issues
show
Bug introduced by
The function set_transient was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

45
                    /** @scrutinizer ignore-call */ set_transient( 'amm_is_any_user_logged_in', $value, 60*60 );
Loading history...
46
                }
47
            }
48
        }
49
        function amm_clear_transient() {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
50
            delete_transient('amm_is_any_user_logged_in');
0 ignored issues
show
Bug introduced by
The function delete_transient was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

50
            /** @scrutinizer ignore-call */ delete_transient('amm_is_any_user_logged_in');
Loading history...
51
        }
52
        function plugins_loaded_handler()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
53
        {
54
            load_plugin_textdomain('auto-maintenance-mode', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/'); 
0 ignored issues
show
Bug introduced by
The function plugin_basename was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

54
            load_plugin_textdomain('auto-maintenance-mode', false, dirname( /** @scrutinizer ignore-call */ plugin_basename( __FILE__ ) ) . '/languages/'); 
Loading history...
Bug introduced by
The function load_plugin_textdomain was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

54
            /** @scrutinizer ignore-call */ load_plugin_textdomain('auto-maintenance-mode', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/'); 
Loading history...
55
        }
56
        function plugin_url()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
57
        {
58
            if($this->plugin_url) return $this->plugin_url;
59
            return $this->plugin_url = plugins_url( basename( plugin_dir_path(__FILE__) ), basename( __FILE__ ) );
0 ignored issues
show
Bug introduced by
The function plugin_dir_path was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

59
            return $this->plugin_url = plugins_url( basename( /** @scrutinizer ignore-call */ plugin_dir_path(__FILE__) ), basename( __FILE__ ) );
Loading history...
Bug introduced by
The function plugins_url was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

59
            return $this->plugin_url = /** @scrutinizer ignore-call */ plugins_url( basename( plugin_dir_path(__FILE__) ), basename( __FILE__ ) );
Loading history...
60
        }
61
        function plugin_path(){     
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
62
            if ( $this->plugin_path ) return $this->plugin_path;        
63
            return $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
0 ignored issues
show
Bug introduced by
The function untrailingslashit was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

63
            return $this->plugin_path = /** @scrutinizer ignore-call */ untrailingslashit( plugin_dir_path( __FILE__ ) );
Loading history...
Bug introduced by
The function plugin_dir_path was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

63
            return $this->plugin_path = untrailingslashit( /** @scrutinizer ignore-call */ plugin_dir_path( __FILE__ ) );
Loading history...
64
        }
65
        function is_valid_page() {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
66
            return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
67
        }
68
        function amm_template_redirect()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
69
        {
70
            if(is_user_logged_in()){
0 ignored issues
show
Bug introduced by
The function is_user_logged_in was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

70
            if(/** @scrutinizer ignore-call */ is_user_logged_in()){
Loading history...
71
                //do not display maintenance page
72
                // $this->amm_create_transient_on_login();
73
            }
74
            else
75
            {
76
                if( !is_admin() && !$this->is_valid_page()){  //show maintenance page
0 ignored issues
show
Bug introduced by
The function is_admin was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

76
                if( !/** @scrutinizer ignore-call */ is_admin() && !$this->is_valid_page()){  //show maintenance page
Loading history...
77
                    if ( false === ( $tmp_value = get_transient( 'amm_is_any_user_logged_in' ) ) ) {
0 ignored issues
show
Unused Code introduced by
The assignment to $tmp_value is dead and can be removed.
Loading history...
Bug introduced by
The function get_transient was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

77
                    if ( false === ( $tmp_value = /** @scrutinizer ignore-call */ get_transient( 'amm_is_any_user_logged_in' ) ) ) {
Loading history...
78
                        $this->load_amm_page();
79
                    }
80
                }
81
            }
82
        }
83
        function load_amm_page()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
84
        {
85
            header('HTTP/1.0 503 Service Unavailable');
86
?>
87
<!DOCTYPE html>
88
<html lang="<?php echo get_bloginfo('language'); ?>">
0 ignored issues
show
Bug introduced by
The function get_bloginfo was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

88
<html lang="<?php echo /** @scrutinizer ignore-call */ get_bloginfo('language'); ?>">
Loading history...
89
<head>
90
    <meta charset="<?php echo get_bloginfo('charset'); ?>" />
91
    <meta name="viewport" content="width=device-width, initial-width=1">
92
    <title><?php echo $name; ?> &#8250; Auto Maintenance Mode</title>
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $name seems to be never defined.
Loading history...
93
    <style>
94
        * { margin: 0;  padding: 0; }
95
        body { font-family: Georgia, Arial, Helvetica, Sans Serif; font-size: 65.5%; }
96
        a { color: #08658F; }
97
        a:hover { color: #0092BF; }
98
        #header { color: #333; padding: 1.5em; text-align: center; font-size: 1.2em; border-bottom: 1px solid #08658F; }
99
        #content { font-size: 150%; width:80%; margin:0 auto; padding: 5% 0; text-align: center; }
100
        #content p { font-size: 1em; padding: .8em 0; }
101
        h1, h2 { color: #08658F; }
102
        h1 { font-size: 300%; padding: .5em 0; }
103
    </style>
104
</head>
105
<body>
106
    <div id="header">
107
        <h2><?php echo get_bloginfo('name'); ?></h2>
108
    </div>  
109
    <div id="content">
110
        <h1><?php _e('Auto Maintenance Mode', 'auto-maintenance-mode')?></h1>
0 ignored issues
show
Bug introduced by
The function _e was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

110
        <h1><?php /** @scrutinizer ignore-call */ _e('Auto Maintenance Mode', 'auto-maintenance-mode')?></h1>
Loading history...
111
        <!-- <p><?php echo $link_text;?></p> -->
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $link_text seems to be never defined.
Loading history...
112
        <p><?php _e('Maintenance mode is enabled automatically, due to lack of activity from logged-in users!', 'auto-maintenance-mode')?></p>
113
        <p><?php _e('To disable the maintenance mode, please ', 'auto-maintenance-mode')?><strong><a href="<?php echo wp_login_url()?>"><?php _e('login now', 'auto-maintenance-mode'); ?></a></strong><?php _e(' or visit this page or any page of this site using a browser where you have already logged-in.', 'auto-maintenance-mode')?></p>
0 ignored issues
show
Bug introduced by
The function wp_login_url was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

113
        <p><?php _e('To disable the maintenance mode, please ', 'auto-maintenance-mode')?><strong><a href="<?php echo /** @scrutinizer ignore-call */ wp_login_url()?>"><?php _e('login now', 'auto-maintenance-mode'); ?></a></strong><?php _e(' or visit this page or any page of this site using a browser where you have already logged-in.', 'auto-maintenance-mode')?></p>
Loading history...
114
        <p><?php _e('Sorry for the inconvenience.', 'auto-maintenance-mode')?></p>
115
    </div>
116
</body>
117
</html>
118
<?php
119
            exit();
0 ignored issues
show
Best Practice introduced by
Using exit here is not recommended.

In general, usage of exit should be done with care and only when running in a scripting context like a CLI script.

Loading history...
120
        }
121
    }
122
    $GLOBALS['auto_maintenance_mode'] = new AUTO_MAINTENANCE_MODE();
123
}
124