Easy Updates Manager - Version 5.4.0

Version Description

Released 2015-10-30

  • Major Dashboard Update (Props roary86 and ronalfy)
  • List Table Changes (Props ramiy)
  • WordPress 4.4 preparation
Download this release

Release Info

Developer ronalfy
Plugin Icon 128x128 Easy Updates Manager
Version 5.4.0
Comparing to
See all releases

Code changes from version 5.3.2 to 5.4.0

contributing.md CHANGED
@@ -23,6 +23,4 @@ Note that if you want to right up stuff for the wiki then please submit an issue
23
  Support is a fairly big thing to manage. We volunteers at Easy Updates Manager want to make sure that our users get the best support they can. How you can help with this is extremely simple. Head over to our WordPress Support Forum and answer some support topics.
24
 
25
  ### Translation
26
- Easy Updates Manager is currently only available in English and German. If you would like to translate Easy Updates Manager into a different language then you can do so by creating a pull request with your po and mo files.
27
-
28
- ###### Contributor Handbook v3.0
23
  Support is a fairly big thing to manage. We volunteers at Easy Updates Manager want to make sure that our users get the best support they can. How you can help with this is extremely simple. Head over to our WordPress Support Forum and answer some support topics.
24
 
25
  ### Translation
26
+ We are always trying to expand Easy Updates Managers translations. If you are interested in translating Easy Updates Manager then go here. https://translate.wordpress.org/projects/wp-plugins/stops-core-theme-and-plugin-updates
 
 
css/style.css CHANGED
@@ -1,34 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
1
  .dashboard-main-wrapper {
2
- color: #FFF;
3
- max-width: 48%;
4
- float: left;
5
- width: 100%;
6
- overflow: hidden;
7
- margin-right: 20px;
8
- margin-bottom: 30px;
9
- margin-top: 30px;
 
 
 
 
10
  }
11
  .dashboard-item-wrapper {
12
- background: #e4e4e4; /* Old browsers */
13
- border-radius: 0px 0px 20px 20px;
14
- -moz-border-radius: 0px 0px 20px 20px;
15
- -webkit-border-radius: 0px 0px 20px 20px;
16
- border: 0px solid #eb3835;
17
- padding: 0 20px;
18
- overflow: hidden;
19
- color: #000;
20
- font-weight; 700;
21
- }
22
- .dashboard-main-header {
23
- background: #FFF;
24
- border-radius: 20px 20px 0px 0px;
25
- -moz-border-radius: 20px 20px 0px 0px;
26
- -webkit-border-radius: 20px 20px 0px 0px;
27
- border: 1px solid #e4e4e4;
28
- padding: 20px;
29
- color: #000;
30
- font-size: 16px;
31
- font-weight: 800;
32
  }
33
 
34
  .dashboard-item-choice input {
@@ -39,10 +53,9 @@
39
  .dashboard-item-choice input + label {
40
  display: block;
41
  position: relative;
42
- box-shadow: inset 0 0 0px 1px #d5d5d5;
43
  text-indent: -5000px;
44
- height: 30px;
45
- width: 50px;
46
  border-radius: 15px;
47
  float: right;
48
  }
@@ -51,12 +64,14 @@
51
  content: "";
52
  position: absolute;
53
  display: block;
54
- height: 30px;
55
- width: 30px;
56
  top: 0;
57
  left: 0;
58
  border-radius: 15px;
59
  background: rgba(19, 191, 17, 0);
 
 
60
  -moz-transition: .25s ease-in-out;
61
  -webkit-transition: .25s ease-in-out;
62
  transition: .25s ease-in-out;
@@ -66,98 +81,211 @@
66
  content: "";
67
  position: absolute;
68
  display: block;
69
- height: 30px;
70
- width: 30px;
71
- top: 0;
72
- left: 0px;
73
  border-radius: 15px;
74
- background: white;
75
- box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2), 0 2px 4px rgba(0, 0, 0, .2);
76
  -moz-transition: .25s ease-in-out;
77
  -webkit-transition: .25s ease-in-out;
78
  transition: .25s ease-in-out;
79
  }
80
  .dashboard-main-wrapper input:checked + label:before {
81
- width: 50px;
82
- background: rgba(19, 191, 17, 1);
 
83
  }
84
 
85
  .dashboard-main-wrapper input:checked + label:after {
86
- left: 20px;
87
- box-shadow: inset 0 0 0 1px rgba(19, 191, 17, 1), 0 2px 4px rgba(0, 0, 0, .2);
88
  }
 
89
  #dashboard-main-outputs .dashboard-hide {
90
- display: none;
91
  }
92
  .dashboard-item-header {
93
- clear: both;
94
- float: left;
95
- width: 60%;
96
- font-weight: 700;
97
  }
98
  .dashboard-item:first-child {
99
- border-top: none;
100
  }
101
  .dashboard-item {
102
- clear: both;
103
- border-top: 1px solid #FFF;
104
- border-bottom: 1px solid #FFF;
105
- padding: 20px 0;
106
- overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
  .dashboard-tab-item {
109
- background: #FFF;
110
- width: 50%;
111
- float: left;
112
- text-align: center;
113
- overflow: hidden;
 
114
  }
115
  .dashboard-tab-item a,
116
- .dashboard-tab-item a:visited,
117
- dashboard-tab-item a:hover {
118
- display: block;
119
- width: 100%;
120
- background: #FFF;
121
- color: #000;
122
- text-decoration: none;
123
- padding: 15px 0;
124
- }
125
- .dashboard-tab-item.active {
126
- font-weight: 800;
 
 
 
 
127
  }
128
  .dashboard-tab-content.active {
129
- display: block;
130
  }
131
- .dashboard-tab-content.inactive {
132
- display: none;
133
  }
134
  .dashboard-tab {
135
- overflow: hidden;
136
- border: 1px solid #e4e4e4;
137
- border-top: none;
138
  }
139
  .dashboard-item-wrapper {
140
- min-height: 650px;
141
- max-height: 700px;
142
- overflow: auto;
 
 
 
 
 
143
  }
 
144
  .dashboard-main-wrapper:nth-child( odd ) {
145
- clear: left;
146
  }
 
147
  .multi-choice {
148
- clear: both;
149
- margin-top; 20px;
150
  }
151
- @media only screen and (max-width:1000px) {
152
- .dashboard-main-wrapper {
153
- margin-right: 0;
154
- max-width: 100%;
155
- }
156
- .dashboard-item-wrapper {
157
- min-height: auto;
158
- max-height: 700px;
159
- overflow: auto;
160
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  }
162
 
163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #dashboard-main-outputs {
2
+ text-align: justify;
3
+ width: 75%;
4
+ margin:60px auto 0;
5
+ }
6
+ #dashboard-main-output:after {
7
+ display: inline-block;
8
+ width: 100%;
9
+ content: '';
10
+ clear: both;
11
+ }
12
  .dashboard-main-wrapper {
13
+ width: 30%;
14
+ display: inline-block;
15
+ text-align: left;
16
+ vertical-align: top;
17
+ margin-bottom:30px;
18
+ padding-right:30px;
19
+ }
20
+ #dashboard-main-columns {
21
+ margin-bottom:30px;
22
+ }
23
+ #dashboard-main-columns .dashboard-main-wrapper:last-child {
24
+ padding:0;
25
  }
26
  .dashboard-item-wrapper {
27
+ background: #e4e4e4; /* Old browsers */
28
+ border-radius: 0px 0px 10px 10px;
29
+ -moz-border-radius: 0px 0px 10px 10px;
30
+ -webkit-border-radius: 0px 0px 10px 10px;
31
+ border: 0px solid #eb3835;
32
+ overflow: hidden;
33
+ color: #000;
34
+ font-weight; 700;
35
+ }
36
+ .dashboard-main-header {
37
+ background: #111014;
38
+ border-radius: 10px 10px 0px 0px;
39
+ -moz-border-radius: 10px 10px 0px 0px;
40
+ -webkit-border-radius: 10px 10px 0px 0px;
41
+ border: 1px solid #e4e4e4;
42
+ padding: 15px 10px;
43
+ color: #fafafa;
44
+ font-size: 14px;
45
+ font-weight:400;
 
46
  }
47
 
48
  .dashboard-item-choice input {
53
  .dashboard-item-choice input + label {
54
  display: block;
55
  position: relative;
 
56
  text-indent: -5000px;
57
+ height: 19px;
58
+ width: 37px;
59
  border-radius: 15px;
60
  float: right;
61
  }
64
  content: "";
65
  position: absolute;
66
  display: block;
67
+ height: 20px;
68
+ width: 40px;
69
  top: 0;
70
  left: 0;
71
  border-radius: 15px;
72
  background: rgba(19, 191, 17, 0);
73
+ box-shadow: inset 0 0 0px 1px #e33524;
74
+
75
  -moz-transition: .25s ease-in-out;
76
  -webkit-transition: .25s ease-in-out;
77
  transition: .25s ease-in-out;
81
  content: "";
82
  position: absolute;
83
  display: block;
84
+ height: 12px;
85
+ width: 12px;
86
+ top: 4px;
87
+ left: 5px;
88
  border-radius: 15px;
89
+ background: #e33524;
 
90
  -moz-transition: .25s ease-in-out;
91
  -webkit-transition: .25s ease-in-out;
92
  transition: .25s ease-in-out;
93
  }
94
  .dashboard-main-wrapper input:checked + label:before {
95
+ width: 40px;
96
+ background: rgba(208, 208, 208, .3);
97
+ box-shadow: inset 0 0 0px 1px #0daf88;
98
  }
99
 
100
  .dashboard-main-wrapper input:checked + label:after {
101
+ left: 23px;
102
+ background:rgba(37, 175, 118, 1);
103
  }
104
+
105
  #dashboard-main-outputs .dashboard-hide {
106
+ display: none;
107
  }
108
  .dashboard-item-header {
109
+ clear: both;
110
+ float: left;
111
+ width: 60%;
112
+ font-weight: 100;
113
  }
114
  .dashboard-item:first-child {
115
+ border-top: none;
116
  }
117
  .dashboard-item {
118
+ clear: both;
119
+ border-bottom: 1px solid #d2d2d2;
120
+ padding: 18px 15px;
121
+ overflow: hidden;
122
+ -webkit-transition: all 0.2s ease;
123
+ -moz-transition: all 0.2s ease;
124
+ -ms-transition: all 0.2s ease;
125
+ -o-transition: all 0.2s ease;
126
+ transition: all 0.2s ease;
127
+ }
128
+ .dashboard-item:hover {
129
+ background:#ececec;
130
+ -webkit-transition: all 0.2s ease;
131
+ -moz-transition: all 0.2s ease;
132
+ -ms-transition: all 0.2s ease;
133
+ -o-transition: all 0.2s ease;
134
+ transition: all 0.2s ease;
135
+ }
136
+ .dashboard-item-header {
137
+ color:#888;
138
+ -webkit-transition: all 0.2s ease;
139
+ -moz-transition: all 0.2s ease;
140
+ -ms-transition: all 0.2s ease;
141
+ -o-transition: all 0.2s ease;
142
+ transition: all 0.2s ease;
143
+ }
144
+ .dashboard-item.active .dashboard-item-header{
145
+ color:#000;
146
+ -webkit-transition: all 0.2s ease;
147
+ -moz-transition: all 0.2s ease;
148
+ -ms-transition: all 0.2s ease;
149
+ -o-transition: all 0.2s ease;
150
+ transition: all 0.2s ease;
151
+ }
152
+ .dashboard-item.active .dashboard-item-header.input-radio {
153
+ font-weight: 700;
154
+ }
155
+ .dashboard-item-header.input-radio {
156
+ color:#555;
157
+ font-weight: 400;
158
  }
159
  .dashboard-tab-item {
160
+ background: #FFF;
161
+ width: 50%;
162
+ float: left;
163
+ text-align: center;
164
+ overflow: hidden;
165
+ color:#ddd;
166
  }
167
  .dashboard-tab-item a,
168
+ .dashboard-tab-item a:link,
169
+ .dashboard-tab-item a:active,
170
+ .dashboard-tab-item a:visited {
171
+ display: block;
172
+ width: 100%;
173
+ background: #FFF;
174
+ color: #aaa;
175
+ text-decoration: none;
176
+ padding: 15px 0;
177
+ text-transform:uppercase;
178
+ }
179
+ .dashboard-tab-item.active a{
180
+ font-weight: 800;
181
+ color:#000;
182
+ border-bottom:2px solid #1990f8;
183
  }
184
  .dashboard-tab-content.active {
185
+ display: block;
186
  }
187
+ .dashboard-tab-content {
188
+ display: none;
189
  }
190
  .dashboard-tab {
191
+ overflow: hidden;
192
+ border: 1px solid #e4e4e4;
193
+ border-top: none;
194
  }
195
  .dashboard-item-wrapper {
196
+ max-height: 700px;
197
+ overflow: auto;
198
+ padding-bottom:20px;
199
+ }
200
+ .dashboard-item-wrapper p {
201
+ padding: 15px;
202
+ padding-bottom: 0;
203
+ margin-bottom: 0;
204
  }
205
+ /*
206
  .dashboard-main-wrapper:nth-child( odd ) {
207
+ clear: left;
208
  }
209
+ */
210
  .multi-choice {
211
+ clear: both;
212
+ margin-top; 20px;
213
  }
214
+
215
+ label{
216
+ font-weight: 100 !important;
217
+
218
+ }
219
+
220
+ input[type=radio] {
221
+ -webkit-appearance: none; /* remove default */
222
+ margin: 10px;
223
+ width: 15px;
224
+ height: 16px;
225
+ border-radius: 12px;
226
+ cursor: pointer;
227
+ vertical-align: middle;
228
+ outline: none;
229
+ border:1px solid #e33524;
230
+ background-color:#dddddd;
231
+ -webkit-transition: background-position .15s cubic-bezier(.8, 0, 1, 1),
232
+ -webkit-transform .25s cubic-bezier(.8, 0, 1, 1);
233
+ }
234
+
235
+ input[type=checkbox]:checked:before,
236
+ input[type=radio]:checked:before {
237
+ background-color:#0daf88 !important;
238
+ }
239
+
240
+ input[type=checkbox]:checked,
241
+ input[type="radio"]:checked {
242
+ -webkit-transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1),
243
+ -webkit-transform .25s cubic-bezier(0, 0, .2, 1);
244
+ background:rgba(37, 175, 118, 1);
245
+ border:1px solid #0daf88;
246
+ }
247
+ input[type=radio]:active {
248
+ -webkit-transform: scale(1.5);
249
+ -webkit-transition: -webkit-transform .1s cubic-bezier(0, 0, .2, 1);
250
+ background:rgba(37, 175, 118, 1);
251
  }
252
 
253
 
254
+ /* The up/down direction logic */
255
+ input,
256
+ input:active {
257
+ background-position: 0 24px;
258
+ }
259
+ input:checked {
260
+ background-position: 0 0;
261
+ }
262
+ input:checked ~ input,
263
+ input:checked ~ input:active {
264
+ background-position: 0 -24px;
265
+ }
266
+
267
+ @media only screen and (max-width:1200px) {
268
+ #dashboard-main-outputs {
269
+ width:100%;
270
+ }
271
+ }
272
+ @media only screen and (max-width:1000px) {
273
+ #dashboard-main-outputs .dashboard-main-wrapper {
274
+ width: 48.5%;
275
+ padding:0;
276
+
277
+ }
278
+ .dashboard-item-wrapper {
279
+ min-height: auto;
280
+ max-height: 700px;
281
+ overflow: auto;
282
+ }
283
+ }
284
+ @media only screen and (max-width:782px) {
285
+ #dashboard-main-outputs .dashboard-main-wrapper {
286
+ width: 98.5%;
287
+ }
288
+ input[type=radio]:checked:before {
289
+ margin:0 !important;
290
+ }
291
+ }
includes/MPSUM_Admin.php CHANGED
@@ -153,8 +153,11 @@ class MPSUM_Admin {
153
  }
154
 
155
  public function enqueue_scripts() {
156
- wp_enqueue_script( 'mpsum_dashboard', MPSUM_Updates_Manager::get_plugin_url( '/js/admin.js', array( 'jquery' ) ) );
157
- wp_enqueue_style( 'mpsum_dashboard', MPSUM_Updates_Manager::get_plugin_url( '/css/style.css' ) );
 
 
 
158
  }
159
 
160
  /**
153
  }
154
 
155
  public function enqueue_scripts() {
156
+ if ( isset( $_GET[ 'tab' ] ) && $_GET[ 'tab' ] != 'dashboard' ) {
157
+ return;
158
+ }
159
+ wp_enqueue_script( 'mpsum_dashboard', MPSUM_Updates_Manager::get_plugin_url( '/js/admin.js' ), array( 'jquery' ), '20151028', true );
160
+ wp_enqueue_style( 'mpsum_dashboard', MPSUM_Updates_Manager::get_plugin_url( '/css/style.css' ), array(), '20151028' );
161
  }
162
 
163
  /**
includes/MPSUM_Admin_Dashboard.php CHANGED
@@ -63,220 +63,209 @@ class MPSUM_Admin_Dashboard {
63
  wp_nonce_field( 'mpsum_options_save', '_mpsum' );
64
  ?>
65
  <div id="dashboard-main-outputs">
66
- <div class="dashboard-main-wrapper" id="dashboard-main-updates">
67
- <div class="dashboard-main-header"><?php esc_html_e( 'WordPress Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
68
- <div class="dashboard-item-wrapper">
69
- <div class="dashboard-item" "dashboard-main">
70
- <div class="dashboard-item-header"><?php esc_html_e( 'All Updates', 'stops-core-theme-and-plugin-updates' ); ?>
71
- </div><!-- .dashboard-item-header -->
72
- <div class="dashboard-item-choice">
73
- <?php
74
- $disable_core_options = false;
75
- if( 'off' == $options[ 'all_updates' ] ) {
76
- $disable_core_options = true;
77
- $options[ 'core_updates' ] = 'off';
78
- $options[ 'plugin_updates' ] = 'off';
79
- $options[ 'theme_updates' ] = 'off';
80
- $options[ 'translation_updates' ] = 'off';
81
- }
82
- ?>
83
- <input type="checkbox" name="options[all_updates]" value="off" />
84
- <input type="checkbox" data-context="core" data-action="all_updates" class="dashboard-hide" name="options[all_updates]" value="on" id="all_updates_on" <?php checked( 'on', $options[ 'all_updates' ] ); ?> />&nbsp;<label for="all_updates_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
85
- </div><!-- .dashboard-item-choice -->
86
- </div><!-- dashboard-item-->
87
- <div class="dashboard-item" "dashboard-main">
88
- <div class="dashboard-item-header"><?php esc_html_e( 'WordPress Core Updates', 'stops-core-theme-and-plugin-updates' ); ?>
89
- </div><!-- .dashboard-item-header -->
90
- <div class="dashboard-item-choice">
91
- <?php
92
- $checked_value = 'checked';
93
- if ( checked( 'off', $options[ 'core_updates' ], false ) ) {
94
- $checked_value = '';
95
- }
96
- ?>
97
- <input id="core-updates-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
98
- <input type="hidden" name="options[core_updates]" value="on" />
99
- <input id="core_updates_off" data-context="core" data-action="core_updates" type="checkbox" class="dashboard-hide update-option" name="options[core_updates]" value="off" <?php checked( 'on', $options[ 'core_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="core_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
100
- </div><!-- .dashboard-item-choice -->
101
- </div><!-- dashboard-item-->
102
- <div class="dashboard-item" "dashboard-main">
103
- <div class="dashboard-item-header"><?php esc_html_e( 'All Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?>
104
- </div><!-- .dashboard-item-header -->
105
- <div class="dashboard-item-choice">
106
- <?php
107
- $checked_value = 'checked';
108
- if ( checked( 'off', $options[ 'plugin_updates' ], false ) ) {
109
- $checked_value = '';
110
- }
111
- ?>
112
- <input id="core-plugin-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
113
- <input type="hidden" name="options[plugin_updates]" value="on" />
114
- <input type="checkbox" data-context="core" data-action="plugin_updates" class="dashboard-hide update-option" name="options[plugin_updates]" value="off" id="plugin_updates_off" <?php checked( 'on', $options[ 'plugin_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="plugin_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
115
- </div><!-- .dashboard-item-choice -->
116
- </div><!-- dashboard-item-->
117
- <div class="dashboard-item" "dashboard-main">
118
- <div class="dashboard-item-header"><?php esc_html_e( 'All Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?>
119
- </div><!-- .dashboard-item-header -->
120
- <div class="dashboard-item-choice">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  <?php
122
- $checked_value = 'checked';
123
- if ( checked( 'off', $options[ 'theme_updates' ], false ) ) {
124
- $checked_value = '';
125
  }
126
- ?>
127
- <input id="core-theme-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
128
- <input type="hidden" name="options[theme_updates]" value="on" />
129
- <input type="checkbox" data-context="core" data-action="theme_updates"class="dashboard-hide update-option" name="options[theme_updates]" value="off" id="theme_updates_off" <?php checked( 'on', $options[ 'theme_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="theme_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
130
- </div><!-- .dashboard-item-choice -->
131
- </div><!-- dashboard-item-->
132
- <div class="dashboard-item" "dashboard-main">
133
- <div class="dashboard-item-header"><?php esc_html_e( 'All Translation Updates', 'stops-core-theme-and-plugin-updates' ); ?>
134
- </div><!-- .dashboard-item-header -->
135
- <div class="dashboard-item-choice">
136
- <?php
137
- $checked_value = 'checked';
138
- if ( checked( 'off', $options[ 'translation_updates' ], false ) ) {
139
- $checked_value = '';
140
  }
141
  ?>
142
- <input id="core-translation-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
143
- <input type="hidden" name="options[translation_updates]" value="on" />
144
- <input id="translation_updates_off" data-context="core" data-action="translation_updates" type="checkbox" class="dashboard-hide update-option" name="options[translation_updates]" value="off" <?php checked( 'on', $options[ 'translation_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="translation_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
145
- </div><!-- .dashboard-item-choice -->
146
- </div><!-- dashboard-item-->
147
- </div><!-- .dashboard-item-wrapper -->
148
- </div><!--- .dashboard-main-wrapper -->
149
-
150
- <div class="dashboard-main-wrapper" id="dashboard-main-updates">
151
- <div class="dashboard-main-header"><?php esc_html_e( 'Automatic Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
152
- <div class="dashboard-item-wrapper">
153
- <div class="dashboard-item" "dashboard-main">
154
- <div class="dashboard-item-header"><?php esc_html_e( 'Major Releases', 'stops-core-theme-and-plugin-updates' ); ?>
155
- </div><!-- .dashboard-item-header -->
156
- <div class="dashboard-item-choice">
157
- <input type="checkbox" name="options[automatic_major_updates]" value="off" />
158
- <input type="checkbox" data-context="core" data-action="automatic_major_updates" class="dashboard-hide" name="options[all_updates]" value="on" id="automatic_major_on" <?php checked( 'on', $options[ 'automatic_major_updates' ] ); ?> />&nbsp;<label for="automatic_major_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
159
- </div><!-- .dashboard-item-choice -->
160
- </div><!-- dashboard-item-->
161
- <div class="dashboard-item" "dashboard-main">
162
- <div class="dashboard-item-header"><?php esc_html_e( 'Minor Releases', 'stops-core-theme-and-plugin-updates' ); ?>
163
- </div><!-- .dashboard-item-header -->
164
- <div class="dashboard-item-choice">
165
- <input id="core-updates-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
166
- <input type="hidden" name="options[automatic_minor_updates]" value="on" />
167
- <input id="automatic_minor_on" data-context="core" data-action="automatic_minor_updates" type="checkbox" class="dashboard-hide update-option" name="options[core_updates]" value="off" <?php checked( 'on', $options[ 'automatic_minor_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_minor_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
168
- </div><!-- .dashboard-item-choice -->
169
- </div><!-- dashboard-item-->
170
- <div class="dashboard-item" "dashboard-main">
171
- <div class="dashboard-item-header"><?php esc_html_e( 'Development Updates', 'stops-core-theme-and-plugin-updates' ); ?>
172
- </div><!-- .dashboard-item-header -->
173
- <div class="dashboard-item-choice">
174
- <input type="hidden" name="options[automatic_development_updates]" value="on" />
175
- <input id="automatic_dev_on" type="checkbox" data-context="core" data-action="automatic_development_updates" class="dashboard-hide update-option" name="options[automatic_development_updates]" value="off" id="plugin_updates_off" <?php checked( 'on', $options[ 'automatic_development_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_dev_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
176
- </div><!-- .dashboard-item-choice -->
177
- </div><!-- dashboard-item-->
178
- <div class="dashboard-item" "dashboard-main">
179
- <div class="dashboard-item-header"><?php esc_html_e( 'Translation Updates', 'stops-core-theme-and-plugin-updates' ); ?>
180
- </div><!-- .dashboard-item-header -->
181
- <div class="dashboard-item-choice">
182
- <input id="core-theme-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
183
- <input type="hidden" name="options[automatic_translation_updates]" value="on" />
184
- <input type="checkbox" data-context="core" data-action="automatic_translation_updates" class="dashboard-hide update-option" name="options[automatic_translation_updates]" value="off" id="automatic_translation_updates_on" <?php checked( 'on', $options[ 'automatic_translation_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_translation_updates_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
185
- </div><!-- .dashboard-item-choice -->
186
- </div><!-- dashboard-item-->
187
- <div class="dashboard-item" "dashboard-main">
188
- <div class="dashboard-item-header"><?php esc_html_e( 'Automatic Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?>
189
- </div><!-- .dashboard-item-header -->
190
- <div class="multi-choice">
191
- <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="on" id="automatic_plugin_on" <?php checked( 'on', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
192
- <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="off" id="automatic_plugin_off" <?php checked( 'off', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
193
- <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="default" id="automatic_plugin_default" <?php checked( 'default', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_default"><?php esc_html_e( 'Default', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
194
- <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="individual" id="automatic_plugin_individual" <?php checked( 'individual', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_individual"><?php esc_html_e( 'Select Individually', 'stops-core-theme-and-plugin-updates' ); ?></label>
195
- </div><!--multi-choice-->
196
- </div><!-- .dashboard-item -->
197
- <div class="dashboard-item" "dashboard-main">
198
- <div class="dashboard-item-header"><?php esc_html_e( 'Automatic Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?>
199
- </div><!-- .dashboard-item-header -->
200
- <div class="multi-choice">
201
- <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="on" id="automatic_theme_on" <?php checked( 'on', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
202
- <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="off" id="automatic_theme_off" <?php checked( 'off', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
203
- <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="default" id="automatic_theme_default" <?php checked( 'default', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_default"><?php esc_html_e( 'Default', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
204
- <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="individual" id="automatic_theme_individual" <?php checked( 'individual', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_individual"><?php esc_html_e( 'Select Individually', 'stops-core-theme-and-plugin-updates' ); ?></label>
205
- </div><!--multi-choice-->
206
- </div><!-- .dashboard-item -->
207
- </div>
208
- </div>
209
- <div class="dashboard-main-wrapper" id="dashboard-main-updates">
210
- <div class="dashboard-main-header"><?php esc_html_e( 'WordPress Notifications', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
211
- <div class="dashboard-item-wrapper">
212
- <div class="dashboard-item" "dashboard-main">
213
- <div class="dashboard-item-header"><?php esc_html_e( 'Core E-mails', 'stops-core-theme-and-plugin-updates' ); ?>
214
- </div><!-- .dashboard-item-header -->
215
- <div class="dashboard-item-choice">
216
- <input type="checkbox" name="options[notification_core_update_emails]" value="off" />
217
- <input type="checkbox" data-context="core" data-action="notification_core_update_emails" class="dashboard-hide" name="options[notification_core_update_emails]" value="on" id="notification_core_update_emails_on" <?php checked( 'on', $options[ 'notification_core_update_emails' ] ); ?> />&nbsp;<label for="notification_core_update_emails_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
218
- </div><!-- .dashboard-item-choice -->
219
- </div><!-- dashboard-item-->
220
- <div class="dashboard-item" "dashboard-main">
221
- <div class="dashboard-item-header"><?php esc_html_e( 'Core Plugin Emails', 'stops-core-theme-and-plugin-updates' ); ?>
222
- </div><!-- .dashboard-item-header -->
223
- <div class="dashboard-item-choice">
224
- <?php
225
- /* [notification_core_update_emails] => on
226
- [notification_core_update_emails_plugins] => off
227
- [notification_core_update_emails_themes] => off
228
- [notification_core_update_emails_translations] => on
229
- */
230
- ?>
231
- <input type="checkbox" name="options[notification_core_update_emails_plugins]" value="off" />
232
- <input type="checkbox" data-context="core" data-action="notification_core_update_emails_plugins" class="dashboard-hide" name="options[all_updates]" value="on" id="notification_core_update_emails_plugins_on" <?php checked( 'on', $options[ 'notification_core_update_emails_plugins' ] ); ?> />&nbsp;<label for="notification_core_update_emails_plugins_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
233
- </div><!-- .dashboard-item-choice -->
234
- </div><!-- dashboard-item-->
235
- <div class="dashboard-item" "dashboard-main">
236
- <div class="dashboard-item-header"><?php esc_html_e( 'Core Theme Emails', 'stops-core-theme-and-plugin-updates' ); ?>
237
- </div><!-- .dashboard-item-header -->
238
- <div class="dashboard-item-choice">
239
- <?php
240
- /* [notification_core_update_emails] => on
241
- [notification_core_update_emails_plugins] => off
242
- [notification_core_update_emails_themes] => off
243
- [notification_core_update_emails_translations] => on
244
- */
245
- ?>
246
- <input type="checkbox" name="options[notification_core_update_emails_themes]" value="off" />
247
- <input type="checkbox" data-context="core" data-action="notification_core_update_emails_themes" class="dashboard-hide" name="options[notification_core_update_emails_themes]" value="on" id="notification_core_update_emails_themes_on" <?php checked( 'on', $options[ 'notification_core_update_emails_themes' ] ); ?> />&nbsp;<label for="notification_core_update_emails_themes_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
248
- </div><!-- .dashboard-item-choice -->
249
- </div><!-- dashboard-item-->
250
- <div class="dashboard-item" "dashboard-main">
251
- <div class="dashboard-item-header"><?php esc_html_e( 'Core Translation Emails', 'stops-core-theme-and-plugin-updates' ); ?>
252
- </div><!-- .dashboard-item-header -->
253
- <div class="dashboard-item-choice">
254
-
255
- <input type="checkbox" name="options[notification_core_update_emails_translations]" value="off" />
256
- <input type="checkbox" data-context="core" data-action="notification_core_update_emails_translations" class="dashboard-hide" name="options[notification_core_update_emails_translations]" value="on" id="notification_core_update_emails_translations_on" <?php checked( 'on', $options[ 'notification_core_update_emails_translations' ] ); ?> />&nbsp;<label for="notification_core_update_emails_translations_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
257
- </div><!-- .dashboard-item-choice -->
258
- </div><!-- dashboard-item-->
259
- </div><!-- .dashboard-item-wrapper -->
260
- </div><!--- .dashboard-main-wrapper -->
261
- <!-- Plugin / Theme Updates -->
262
- <div class="dashboard-main-wrapper dashboard-plugin-theme-updates">
263
- <div class="dashboard-main-header"><?php esc_html_e( 'Plugin and Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
264
- <div class="dashboard-tab">
265
- <div class="dashboard-tab-header-plugin dashboard-tab-item dashboard-tab-content active" ><a href="#" data-tab-action="plugins" ><?php esc_html_e( 'Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
266
- <div class="dashboard-tab-header-theme dashboard-tab-item" data-tab-plugins="plugins"><a href="#" data-tab-action="themes" ><?php esc_html_e( 'Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
267
- </div><!- .dashboard-tab -->
268
- <div class="dashboard-tab-plugins dashboard-tab-content active">
269
- <div class="dashboard-item-wrapper">
270
- <?php
271
- $can_show_plugins = $can_show_themes = false;
272
- if( 'on' == $options[ 'theme_updates' ] ) {
273
- $can_show_themes = true;
274
- }
275
- if( 'on' == $options[ 'plugin_updates' ] ) {
276
- $can_show_plugins = true;
277
- }
278
- ?>
279
- <div class="dashboard-item" "dashboard-main">
280
  <?php
281
  if ( $can_show_plugins ) :
282
  $options = MPSUM_Updates_Manager::get_options( 'plugins' );
@@ -288,8 +277,8 @@ class MPSUM_Admin_Dashboard {
288
  }
289
  $plugin_name = $plugin_data[ 'Name' ];
290
  ?>
291
- <div class="dashboard-item" "dashboard-main">
292
- <div class="dashboard-item-header"><?php echo esc_html( $plugin_name ) ?>
293
  </div><!-- .dashboard-item-header -->
294
  <div class="dashboard-item-choice">
295
  <input type="hidden" name="options[plugins]" value="<?php echo esc_attr( $plugin_slug ); ?> " />
@@ -298,20 +287,18 @@ class MPSUM_Admin_Dashboard {
298
  </div><!-- dashboard-item-->
299
 
300
  <?php
301
- }
302
- else:
303
- ?>
304
- <p><?php
305
- esc_html_e( 'All plugin updates have been disabled.', 'stops-core-theme-and-plugin-updates' );
306
- endif;
307
- ?>
308
- </p>
309
- </div><!-- dashboard-item-->
310
- </div><!-- .dashboard-item-wrapper -->
311
- </div><!-- .dashboard-tab-plugins -->
312
- <div class="dashboard-tab-themes dashboard-tab-content inactive">
313
- <div class="dashboard-item-wrapper">
314
- <div class="dashboard-item" "dashboard-main">
315
  <?php
316
  if( $can_show_themes ) :
317
  $options = MPSUM_Updates_Manager::get_options( 'themes' );
@@ -324,8 +311,9 @@ class MPSUM_Admin_Dashboard {
324
  }
325
  $theme_name = $theme_data->Name;
326
  ?>
327
- <div class="dashboard-item" "dashboard-main">
328
- <div class="dashboard-item-header"><?php echo esc_html( $theme_name ) ?>
 
329
  </div><!-- .dashboard-item-header -->
330
  <div class="dashboard-item-choice">
331
  <?php
@@ -349,158 +337,149 @@ class MPSUM_Admin_Dashboard {
349
  esc_html_e( 'All theme updates have been disabled.', 'stops-core-theme-and-plugin-updates' ) ?>
350
  <?php
351
  endif;
352
- ?>
353
-
354
-
355
- </div><!-- dashboard-item-->
356
- </div><!-- .dashboard-item-wrapper -->
357
- </div><!-- .dashboard-tab-plugins -->
358
- </div><!--- .dashboard-main-wrapper -->
359
- <!-- Plugin / Theme Updates -->
360
- <div class="dashboard-main-wrapper dashboard-plugin-theme-updates">
361
- <div class="dashboard-main-header"><?php esc_html_e( 'Plugin and Theme Automatic Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
362
- <div class="dashboard-tab">
363
- <div class="dashboard-tab-header-plugin dashboard-tab-item dashboard-tab-content active" ><a href="#" data-tab-action="plugins" ><?php esc_html_e( 'Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
364
- <div class="dashboard-tab-header-theme dashboard-tab-item" data-tab-plugins="plugins"><a href="#" data-tab-action="themes" ><?php esc_html_e( 'Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
365
- </div><!- .dashboard-tab -->
366
- <div class="dashboard-tab-plugins dashboard-tab-content active">
367
- <div class="dashboard-item-wrapper">
368
- <?php
369
- $can_show_plugins = false;
370
- $options = MPSUM_Updates_Manager::get_options( 'core' );
371
- if ( !isset( $options[ 'automatic_plugin_updates' ] ) ) {
372
- $options[ 'automatic_plugin_updates' ] = 'default';
373
- $can_show_plugins = $options[ 'automatic_plugin_updates' ];
374
- } else {
375
- $can_show_plugins = $options[ 'automatic_plugin_updates' ];
376
- }
377
- if ( isset( $options[ 'plugin_updates' ] ) && 'off' == $options[ 'plugin_updates' ] ) {
378
- $can_show_plugins = 'off';
379
- }
380
- $error = '';
381
- if ( 'default' == $can_show_plugins ) {
382
- $can_show_plugins = false;
383
- $error = __( 'WordPress defaults control which updates are automatic or not.', 'stops-core-theme-and-plugin-updates' );
384
- } elseif ( 'on' == $can_show_plugins ) {
385
- $can_show_plugins = false;
386
- $error = __( 'Automatic updates are on for all plugins', 'stops-core-theme-and-plugin-updates' );
387
- } elseif ( 'off' == $can_show_plugins ) {
388
  $can_show_plugins = false;
389
- $error = __( 'Automatic updates are disabled for all plugins', 'stops-core-theme-and-plugin-updates' );
390
- } else {
391
- $can_show_plugins = true;
392
- }
393
- ?>
394
- <div class="dashboard-item" "dashboard-main">
395
- <?php
396
- if ( $can_show_plugins ) :
397
- $options = MPSUM_Updates_Manager::get_options( 'plugins_automatic' );
398
- $plugins = get_plugins();
399
- foreach( $plugins as $plugin_slug => $plugin_data ) {
400
- $is_plugin_active = false;
401
- if ( in_array( $plugin_slug, $options ) ) {
402
- $is_plugin_active = true;
403
- }
404
- $plugin_name = $plugin_data[ 'Name' ];
405
- ?>
406
- <div class="dashboard-item" "dashboard-main">
407
- <div class="dashboard-item-header"><?php echo esc_html( $plugin_name ) ?>
408
- </div><!-- .dashboard-item-header -->
409
- <div class="dashboard-item-choice">
410
- <input type="hidden" name="options[plugins_automatic]" value="<?php echo esc_attr( $plugin_slug ); ?> " />
411
- <input id="update_<?php echo esc_attr( $plugin_slug ); ?>-check" type="checkbox" data-context="plugins_automatic" data-action="<?php echo esc_attr( $plugin_slug ); ?>" class="dashboard-hide update-option" name="options[plugins_automatic]" value="<?php echo esc_attr( $plugin_slug ); ?>" id="<?php echo esc_attr( $plugin_slug ); ?>_off" <?php checked( true, $is_plugin_active ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="update_<?php echo esc_attr( $plugin_slug ); ?>-check"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
412
- </div><!-- .dashboard-item-choice -->
413
- </div><!-- dashboard-item-->
414
-
415
- <?php
416
- }
417
- else:
418
- ?>
419
- <p><?php
420
- echo esc_html( $error );
421
- ?>
422
- </p>
423
- <?php
424
- endif;
425
- ?>
426
- </p>
427
- </div><!-- dashboard-item-->
428
- </div><!-- .dashboard-item-wrapper -->
429
- </div><!-- .dashboard-tab-plugins -->
430
- <div class="dashboard-tab-themes dashboard-tab-content inactive">
431
- <div class="dashboard-item-wrapper">
432
- <div class="dashboard-item" "dashboard-main">
433
- <?php
434
- $can_show_themes = false;
435
  $options = MPSUM_Updates_Manager::get_options( 'core' );
436
- if ( !isset( $options[ 'automatic_theme_updates' ] ) ) {
437
- $options[ 'automatic_theme_updates' ] = 'default';
438
- $auto_theme_updates = $options[ 'automatic_theme_updates' ];
439
  } else {
440
- $auto_theme_updates = $options[ 'automatic_theme_updates' ];
441
  }
442
- if ( isset( $options[ 'theme_updates' ] ) && 'off' == $options[ 'theme_updates' ] ) {
443
  $can_show_plugins = 'off';
444
- $auto_theme_updates = 'off';
445
  }
446
  $error = '';
447
- if ( 'default' == $auto_theme_updates ) {
448
- $can_show_themes = false;
449
  $error = __( 'WordPress defaults control which updates are automatic or not.', 'stops-core-theme-and-plugin-updates' );
450
- } elseif ( 'on' == $auto_theme_updates ) {
451
- $can_show_themes = false;
452
- $error = __( 'Automatic updates are on for all themes', 'stops-core-theme-and-plugin-updates' );
453
- } elseif ( 'off' == $auto_theme_updates ) {
454
- $can_show_themes = false;
455
- $error = __( 'Automatic updates are disabled for all themes', 'stops-core-theme-and-plugin-updates' );
456
  } else {
457
- $can_show_themes = true;
458
  }
459
- if( $can_show_themes ) :
460
- $options = MPSUM_Updates_Manager::get_options( 'themes_automatic' );
461
- $themes = wp_get_themes();
462
-
463
- foreach( $themes as $theme_slug => $theme_data ) {
464
- $is_theme_active = false;
465
- if ( in_array( $theme_slug, $options ) ) {
466
- $is_theme_active = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
467
  }
468
- $theme_name = $theme_data->Name;
469
- ?>
470
- <div class="dashboard-item" "dashboard-main">
471
- <div class="dashboard-item-header"><?php echo esc_html( $theme_name ) ?>
472
- </div><!-- .dashboard-item-header -->
473
- <div class="dashboard-item-choice">
474
- <?php
475
- $checked_value = 'checked';
476
- if ( in_array( $theme_slug, $options ) ) {
477
- $checked_value = '';
478
- } else {
479
- }
480
-
481
- ?>
482
- <input type="hidden" name="options[themes_automatic]" value="<?php echo esc_attr( $theme_slug ); ?> " />
483
- <input id="themes_automatic_on_<?php echo $theme_slug; ?>" type="checkbox" data-context="themes_automatic" data-action="<?php echo esc_attr( $theme_slug ); ?>" class="dashboard-hide update-option" name="options[themes_automatic]" value="<?php echo esc_attr( $theme_slug ); ?>" id="<?php echo esc_attr( $theme_slug ); ?>_off" <?php checked( true, $is_theme_active ); ?> <?php disabled( true, false ); ?> />&nbsp;<label for="themes_automatic_on_<?php echo $theme_slug; ?>"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
484
- </div><!-- .dashboard-item-choice -->
485
- </div><!-- dashboard-item-->
486
-
487
- <?php
488
- }
489
- else:
490
  ?>
491
  <p><?php
492
- echo esc_html( $error );
493
- ?>
494
- </p>
495
- <?php
496
- endif;
497
- ?>
498
-
499
-
500
- </div><!-- dashboard-item-->
501
- </div><!-- .dashboard-item-wrapper -->
502
- </div><!-- .dashboard-tab-plugins -->
503
- </div><!--- .dashboard-main-wrapper -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  </div><!-- #dashboard-main-outputs -->
505
  </form>
506
  <?php
63
  wp_nonce_field( 'mpsum_options_save', '_mpsum' );
64
  ?>
65
  <div id="dashboard-main-outputs">
66
+ <div id="dashboard-main-columns">
67
+ <div class="dashboard-main-wrapper">
68
+ <div class="dashboard-main-header"><?php esc_html_e( 'WordPress Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
69
+ <div class="dashboard-item-wrapper">
70
+ <div class="dashboard-item <?php if ( 'on' == $options[ 'all_updates' ] ) { echo 'active'; } ?>">
71
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'All Updates', 'stops-core-theme-and-plugin-updates' ); ?>
72
+ </div><!-- .dashboard-item-header -->
73
+ <div class="dashboard-item-choice">
74
+ <?php
75
+ $disable_core_options = false;
76
+ if( 'off' == $options[ 'all_updates' ] ) {
77
+ $disable_core_options = true;
78
+ $options[ 'core_updates' ] = 'off';
79
+ $options[ 'plugin_updates' ] = 'off';
80
+ $options[ 'theme_updates' ] = 'off';
81
+ $options[ 'translation_updates' ] = 'off';
82
+ }
83
+ ?>
84
+ <input type="checkbox" name="options[all_updates]" value="off" />
85
+ <input type="checkbox" data-context="core" data-action="all_updates" class="dashboard-hide" name="options[all_updates]" value="on" id="all_updates_on" <?php checked( 'on', $options[ 'all_updates' ] ); ?> />&nbsp;<label for="all_updates_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
86
+ </div><!-- .dashboard-item-choice -->
87
+ </div><!-- dashboard-item-->
88
+ <div class="dashboard-item <?php if ( 'on' == $options[ 'core_updates' ] ) { echo 'active'; } ?>">
89
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'WordPress Core Updates', 'stops-core-theme-and-plugin-updates' ); ?>
90
+ </div><!-- .dashboard-item-header -->
91
+ <div class="dashboard-item-choice">
92
+ <?php
93
+ $checked_value = 'checked';
94
+ if ( checked( 'off', $options[ 'core_updates' ], false ) ) {
95
+ $checked_value = '';
96
+ }
97
+ ?>
98
+ <input id="core-updates-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
99
+ <input type="hidden" name="options[core_updates]" value="on" />
100
+ <input id="core_updates_off" data-context="core" data-action="core_updates" type="checkbox" class="dashboard-hide update-option" name="options[core_updates]" value="off" <?php checked( 'on', $options[ 'core_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="core_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
101
+ </div><!-- .dashboard-item-choice -->
102
+ </div><!-- dashboard-item-->
103
+ <div class="dashboard-item <?php if ( 'on' == $options[ 'plugin_updates' ] ) { echo 'active'; } ?>">
104
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'All Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?>
105
+ </div><!-- .dashboard-item-header -->
106
+ <div class="dashboard-item-choice">
107
+ <?php
108
+ $checked_value = 'checked';
109
+ if ( checked( 'off', $options[ 'plugin_updates' ], false ) ) {
110
+ $checked_value = '';
111
+ }
112
+ ?>
113
+ <input id="core-plugin-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
114
+ <input type="hidden" name="options[plugin_updates]" value="on" />
115
+ <input type="checkbox" data-context="core" data-action="plugin_updates" class="dashboard-hide update-option" name="options[plugin_updates]" value="off" id="plugin_updates_off" <?php checked( 'on', $options[ 'plugin_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="plugin_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
116
+ </div><!-- .dashboard-item-choice -->
117
+ </div><!-- dashboard-item-->
118
+ <div class="dashboard-item <?php if ( 'on' == $options[ 'theme_updates' ] ) { echo 'active'; } ?>">
119
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'All Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?>
120
+ </div><!-- .dashboard-item-header -->
121
+ <div class="dashboard-item-choice">
122
+ <?php
123
+ $checked_value = 'checked';
124
+ if ( checked( 'off', $options[ 'theme_updates' ], false ) ) {
125
+ $checked_value = '';
126
+ }
127
+ ?>
128
+ <input id="core-theme-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
129
+ <input type="hidden" name="options[theme_updates]" value="on" />
130
+ <input type="checkbox" data-context="core" data-action="theme_updates"class="dashboard-hide update-option" name="options[theme_updates]" value="off" id="theme_updates_off" <?php checked( 'on', $options[ 'theme_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="theme_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
131
+ </div><!-- .dashboard-item-choice -->
132
+ </div><!-- dashboard-item-->
133
+ <div class="dashboard-item <?php if ( 'on' == $options[ 'translation_updates' ] ) { echo 'active'; } ?>">
134
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'All Translation Updates', 'stops-core-theme-and-plugin-updates' ); ?>
135
+ </div><!-- .dashboard-item-header -->
136
+ <div class="dashboard-item-choice">
137
+ <?php
138
+ $checked_value = 'checked';
139
+ if ( checked( 'off', $options[ 'translation_updates' ], false ) ) {
140
+ $checked_value = '';
141
+ }
142
+ ?>
143
+ <input id="core-translation-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
144
+ <input type="hidden" name="options[translation_updates]" value="on" />
145
+ <input id="translation_updates_off" data-context="core" data-action="translation_updates" type="checkbox" class="dashboard-hide update-option" name="options[translation_updates]" value="off" <?php checked( 'on', $options[ 'translation_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="translation_updates_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
146
+ </div><!-- .dashboard-item-choice -->
147
+ </div><!-- dashboard-item-->
148
+ </div><!-- .dashboard-item-wrapper -->
149
+ </div><!--- .dashboard-main-wrapper -->
150
+
151
+ <div class="dashboard-main-wrapper">
152
+ <div class="dashboard-main-header"><?php esc_html_e( 'Automatic Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
153
+ <div class="dashboard-item-wrapper">
154
+ <div class="dashboard-item <?php if( 'on' == $options[ 'automatic_major_updates' ] ) { echo 'active'; }?>">
155
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Major Releases', 'stops-core-theme-and-plugin-updates' ); ?>
156
+ </div><!-- .dashboard-item-header -->
157
+ <div class="dashboard-item-choice">
158
+ <input type="checkbox" name="options[automatic_major_updates]" value="off" />
159
+ <input type="checkbox" data-context="core" data-action="automatic_major_updates" class="dashboard-hide" name="options[all_updates]" value="on" id="automatic_major_on" <?php checked( 'on', $options[ 'automatic_major_updates' ] ); ?> />&nbsp;<label for="automatic_major_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
160
+ </div><!-- .dashboard-item-choice -->
161
+ </div><!-- dashboard-item-->
162
+ <div class="dashboard-item <?php if( 'on' == $options[ 'automatic_minor_updates' ] ) { echo 'active'; }?>">
163
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Minor Releases', 'stops-core-theme-and-plugin-updates' ); ?>
164
+ </div><!-- .dashboard-item-header -->
165
+ <div class="dashboard-item-choice">
166
+ <input id="core-updates-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
167
+ <input type="hidden" name="options[automatic_minor_updates]" value="on" />
168
+ <input id="automatic_minor_on" data-context="core" data-action="automatic_minor_updates" type="checkbox" class="dashboard-hide update-option" name="options[core_updates]" value="off" <?php checked( 'on', $options[ 'automatic_minor_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_minor_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
169
+ </div><!-- .dashboard-item-choice -->
170
+ </div><!-- dashboard-item-->
171
+ <div class="dashboard-item <?php if( 'on' == $options[ 'automatic_development_updates' ] ) { echo 'active'; }?>">
172
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Development Updates', 'stops-core-theme-and-plugin-updates' ); ?>
173
+ </div><!-- .dashboard-item-header -->
174
+ <div class="dashboard-item-choice">
175
+ <input type="hidden" name="options[automatic_development_updates]" value="on" />
176
+ <input id="automatic_dev_on" type="checkbox" data-context="core" data-action="automatic_development_updates" class="dashboard-hide update-option" name="options[automatic_development_updates]" value="off" id="plugin_updates_off" <?php checked( 'on', $options[ 'automatic_development_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_dev_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
177
+ </div><!-- .dashboard-item-choice -->
178
+ </div><!-- dashboard-item-->
179
+ <div class="dashboard-item <?php if( 'on' == $options[ 'automatic_translation_updates' ] ) { echo 'active'; }?>">
180
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Translation Updates', 'stops-core-theme-and-plugin-updates' ); ?>
181
+ </div><!-- .dashboard-item-header -->
182
+ <div class="dashboard-item-choice">
183
+ <input id="core-theme-check_before" type="hidden" value="<?php echo esc_attr( $checked_value ); ?>" />
184
+ <input type="hidden" name="options[automatic_translation_updates]" value="on" />
185
+ <input type="checkbox" data-context="core" data-action="automatic_translation_updates" class="dashboard-hide update-option" name="options[automatic_translation_updates]" value="off" id="automatic_translation_updates_on" <?php checked( 'on', $options[ 'automatic_translation_updates' ] ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="automatic_translation_updates_on"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
186
+ </div><!-- .dashboard-item-choice -->
187
+ </div><!-- dashboard-item-->
188
+ <div class="dashboard-item <?php if( 'off' != $options[ 'automatic_plugin_updates' ] ) { echo 'active'; }?>">
189
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Automatic Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?>
190
+ </div><!-- .dashboard-item-header -->
191
+ <div class="multi-choice">
192
+ <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="on" id="automatic_plugin_on" <?php checked( 'on', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
193
+ <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="off" id="automatic_plugin_off" <?php checked( 'off', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
194
+ <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="default" id="automatic_plugin_default" <?php checked( 'default', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_default"><?php esc_html_e( 'Default', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
195
+ <input type="radio" data-context="core" data-action="automatic_plugin_updates" name="options[automatic_plugin_updates]" value="individual" id="automatic_plugin_individual" <?php checked( 'individual', $options[ 'automatic_plugin_updates' ] ); ?> />&nbsp;<label for="automatic_plugin_individual"><?php esc_html_e( 'Select Individually', 'stops-core-theme-and-plugin-updates' ); ?></label>
196
+ </div><!--multi-choice-->
197
+ </div><!-- .dashboard-item -->
198
+ <div class="dashboard-item <?php if( 'off' != $options[ 'automatic_theme_updates' ] ) { echo 'active'; }?>">
199
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Automatic Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?>
200
+ </div><!-- .dashboard-item-header -->
201
+ <div class="multi-choice">
202
+ <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="on" id="automatic_theme_on" <?php checked( 'on', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
203
+ <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="off" id="automatic_theme_off" <?php checked( 'off', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_off"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
204
+ <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="default" id="automatic_theme_default" <?php checked( 'default', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_default"><?php esc_html_e( 'Default', 'stops-core-theme-and-plugin-updates' ); ?></label><br />
205
+ <input type="radio" data-context="core" data-action="automatic_theme_updates" name="options[automatic_theme_updates]" value="individual" id="automatic_theme_individual" <?php checked( 'individual', $options[ 'automatic_theme_updates' ] ); ?> />&nbsp;<label for="automatic_theme_individual"><?php esc_html_e( 'Select Individually', 'stops-core-theme-and-plugin-updates' ); ?></label>
206
+ </div><!--multi-choice-->
207
+ </div><!-- .dashboard-item -->
208
+ </div>
209
+ </div>
210
+ <div class="dashboard-main-wrapper">
211
+ <div class="dashboard-main-header"><?php esc_html_e( 'WordPress Notifications', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
212
+ <div class="dashboard-item-wrapper">
213
+ <div class="dashboard-item <?php if( 'on' == $options[ 'notification_core_update_emails' ] ) { echo 'active'; }?>">
214
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Core E-mails', 'stops-core-theme-and-plugin-updates' ); ?>
215
+ </div><!-- .dashboard-item-header -->
216
+ <div class="dashboard-item-choice">
217
+ <input type="checkbox" name="options[notification_core_update_emails]" value="off" />
218
+ <input type="checkbox" data-context="core" data-action="notification_core_update_emails" class="dashboard-hide" name="options[notification_core_update_emails]" value="on" id="notification_core_update_emails_on" <?php checked( 'on', $options[ 'notification_core_update_emails' ] ); ?> />&nbsp;<label for="notification_core_update_emails_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
219
+ </div><!-- .dashboard-item-choice -->
220
+ </div><!-- dashboard-item-->
221
+ <div class="dashboard-item <?php if( 'on' == $options[ 'notification_core_update_emails_plugins' ] ) { echo 'active'; }?>">
222
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Core Plugin Emails', 'stops-core-theme-and-plugin-updates' ); ?>
223
+ </div><!-- .dashboard-item-header -->
224
+ <div class="dashboard-item-choice">
225
+ <input type="checkbox" name="options[notification_core_update_emails_plugins]" value="off" />
226
+ <input type="checkbox" data-context="core" data-action="notification_core_update_emails_plugins" class="dashboard-hide" name="options[all_updates]" value="on" id="notification_core_update_emails_plugins_on" <?php checked( 'on', $options[ 'notification_core_update_emails_plugins' ] ); ?> />&nbsp;<label for="notification_core_update_emails_plugins_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
227
+ </div><!-- .dashboard-item-choice -->
228
+ </div><!-- dashboard-item-->
229
+ <div class="dashboard-item <?php if( 'on' == $options[ 'notification_core_update_emails_themes' ] ) { echo 'active'; }?>">
230
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Core Theme Emails', 'stops-core-theme-and-plugin-updates' ); ?>
231
+ </div><!-- .dashboard-item-header -->
232
+ <div class="dashboard-item-choice">
233
+ <input type="checkbox" name="options[notification_core_update_emails_themes]" value="off" />
234
+ <input type="checkbox" data-context="core" data-action="notification_core_update_emails_themes" class="dashboard-hide" name="options[notification_core_update_emails_themes]" value="on" id="notification_core_update_emails_themes_on" <?php checked( 'on', $options[ 'notification_core_update_emails_themes' ] ); ?> />&nbsp;<label for="notification_core_update_emails_themes_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
235
+ </div><!-- .dashboard-item-choice -->
236
+ </div><!-- dashboard-item-->
237
+ <div class="dashboard-item <?php if( 'on' == $options[ 'notification_core_update_emails_translations' ] ) { echo 'active'; }?>">
238
+ <div class="dashboard-item-header input-radio"><?php esc_html_e( 'Core Translation Emails', 'stops-core-theme-and-plugin-updates' ); ?>
239
+ </div><!-- .dashboard-item-header -->
240
+ <div class="dashboard-item-choice">
241
+
242
+ <input type="checkbox" name="options[notification_core_update_emails_translations]" value="off" />
243
+ <input type="checkbox" data-context="core" data-action="notification_core_update_emails_translations" class="dashboard-hide" name="options[notification_core_update_emails_translations]" value="on" id="notification_core_update_emails_translations_on" <?php checked( 'on', $options[ 'notification_core_update_emails_translations' ] ); ?> />&nbsp;<label for="notification_core_update_emails_translations_on"><?php esc_html_e( 'Enabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
244
+ </div><!-- .dashboard-item-choice -->
245
+ </div><!-- dashboard-item-->
246
+ </div><!-- .dashboard-item-wrapper -->
247
+ </div><!--- .dashboard-main-wrapper -->
248
+ </div><!-- #dashboard-main-columns -->
249
+
250
+ <div id="dashboard-child-columns">
251
+ <!-- Plugin / Theme Updates -->
252
+ <div class="dashboard-main-wrapper dashboard-plugin-theme-updates">
253
+ <div class="dashboard-main-header"><?php esc_html_e( 'Plugin and Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
254
+ <div class="dashboard-tab">
255
+ <div class="dashboard-tab-header-plugin dashboard-tab-item active" ><a href="#" data-tab-action="plugins" ><?php esc_html_e( 'Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
256
+ <div class="dashboard-tab-header-theme dashboard-tab-item" data-tab-plugins="plugins"><a href="#" data-tab-action="themes" ><?php esc_html_e( 'Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
257
+ </div><!- .dashboard-tab -->
258
+ <div class="dashboard-tab-plugins dashboard-tab-content active">
259
+ <div class="dashboard-item-wrapper">
260
  <?php
261
+ $can_show_plugins = $can_show_themes = false;
262
+ if( 'on' == $options[ 'theme_updates' ] ) {
263
+ $can_show_themes = true;
264
  }
265
+ if( 'on' == $options[ 'plugin_updates' ] ) {
266
+ $can_show_plugins = true;
 
 
 
 
 
 
 
 
 
 
 
 
267
  }
268
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  <?php
270
  if ( $can_show_plugins ) :
271
  $options = MPSUM_Updates_Manager::get_options( 'plugins' );
277
  }
278
  $plugin_name = $plugin_data[ 'Name' ];
279
  ?>
280
+ <div class="dashboard-item <?php echo $is_plugin_active ? 'active': '' ?>">
281
+ <div class="dashboard-item-header input-radio"><?php echo esc_html( $plugin_name ) ?>
282
  </div><!-- .dashboard-item-header -->
283
  <div class="dashboard-item-choice">
284
  <input type="hidden" name="options[plugins]" value="<?php echo esc_attr( $plugin_slug ); ?> " />
287
  </div><!-- dashboard-item-->
288
 
289
  <?php
290
+ }
291
+ else:
292
+ ?>
293
+ <p><?php
294
+ esc_html_e( 'All plugin updates have been disabled.', 'stops-core-theme-and-plugin-updates' );
295
+ endif;
296
+ ?>
297
+ </p>
298
+ </div><!-- .dashboard-item-wrapper -->
299
+ </div><!-- .dashboard-tab-plugins -->
300
+ <div class="dashboard-tab-themes dashboard-tab-content">
301
+ <div class="dashboard-item-wrapper">
 
 
302
  <?php
303
  if( $can_show_themes ) :
304
  $options = MPSUM_Updates_Manager::get_options( 'themes' );
311
  }
312
  $theme_name = $theme_data->Name;
313
  ?>
314
+
315
+ <div class="dashboard-item <?php echo $is_theme_active ? 'active': '' ?>">
316
+ <div class="dashboard-item-header input-radio"><?php echo esc_html( $theme_name ) ?>
317
  </div><!-- .dashboard-item-header -->
318
  <div class="dashboard-item-choice">
319
  <?php
337
  esc_html_e( 'All theme updates have been disabled.', 'stops-core-theme-and-plugin-updates' ) ?>
338
  <?php
339
  endif;
340
+ ?>
341
+ </div><!-- .dashboard-item-wrapper -->
342
+ </div><!-- .dashboard-tab-plugins -->
343
+ </div><!--- .dashboard-main-wrapper -->
344
+ <!-- Plugin / Theme Updates -->
345
+ <div class="dashboard-main-wrapper dashboard-plugin-theme-auto-updates">
346
+ <div class="dashboard-main-header"><?php esc_html_e( 'Plugin and Theme Automatic Updates', 'stops-core-theme-and-plugin-updates' ); ?></div><!-- .dashboard-main-header -->
347
+ <div class="dashboard-tab">
348
+ <div class="dashboard-tab-header-plugin dashboard-tab-item active" ><a href="#" data-tab-action="plugins" ><?php esc_html_e( 'Plugin Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
349
+ <div class="dashboard-tab-header-theme dashboard-tab-item" data-tab-plugins="plugins"><a href="#" data-tab-action="themes" ><?php esc_html_e( 'Theme Updates', 'stops-core-theme-and-plugin-updates' ); ?></a></div>
350
+ </div><!- .dashboard-tab -->
351
+ <div class="dashboard-tab-plugins dashboard-tab-content active">
352
+ <div class="dashboard-item-wrapper">
353
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  $can_show_plugins = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
355
  $options = MPSUM_Updates_Manager::get_options( 'core' );
356
+ if ( !isset( $options[ 'automatic_plugin_updates' ] ) ) {
357
+ $options[ 'automatic_plugin_updates' ] = 'default';
358
+ $can_show_plugins = $options[ 'automatic_plugin_updates' ];
359
  } else {
360
+ $can_show_plugins = $options[ 'automatic_plugin_updates' ];
361
  }
362
+ if ( isset( $options[ 'plugin_updates' ] ) && 'off' == $options[ 'plugin_updates' ] ) {
363
  $can_show_plugins = 'off';
 
364
  }
365
  $error = '';
366
+ if ( 'default' == $can_show_plugins ) {
367
+ $can_show_plugins = false;
368
  $error = __( 'WordPress defaults control which updates are automatic or not.', 'stops-core-theme-and-plugin-updates' );
369
+ } elseif ( 'on' == $can_show_plugins ) {
370
+ $can_show_plugins = false;
371
+ $error = __( 'Automatic updates are on for all plugins', 'stops-core-theme-and-plugin-updates' );
372
+ } elseif ( 'off' == $can_show_plugins ) {
373
+ $can_show_plugins = false;
374
+ $error = __( 'Automatic updates are disabled for all plugins', 'stops-core-theme-and-plugin-updates' );
375
  } else {
376
+ $can_show_plugins = true;
377
  }
378
+ ?>
379
+ <?php
380
+ if ( $can_show_plugins ) :
381
+ $options = MPSUM_Updates_Manager::get_options( 'plugins_automatic' );
382
+ $plugins = get_plugins();
383
+ foreach( $plugins as $plugin_slug => $plugin_data ) {
384
+ $is_plugin_active = false;
385
+ if ( in_array( $plugin_slug, $options ) ) {
386
+ $is_plugin_active = true;
387
+ }
388
+ $plugin_name = $plugin_data[ 'Name' ];
389
+ ?>
390
+ <div class="dashboard-item">
391
+ <div class="dashboard-item-header input-radio"><?php echo esc_html( $plugin_name ) ?>
392
+ </div><!-- .dashboard-item-header -->
393
+ <div class="dashboard-item-choice">
394
+ <input type="hidden" name="options[plugins_automatic]" value="<?php echo esc_attr( $plugin_slug ); ?> " />
395
+ <input id="update_<?php echo esc_attr( $plugin_slug ); ?>-check" type="checkbox" data-context="plugins_automatic" data-action="<?php echo esc_attr( $plugin_slug ); ?>" class="dashboard-hide update-option" name="options[plugins_automatic]" value="<?php echo esc_attr( $plugin_slug ); ?>" id="<?php echo esc_attr( $plugin_slug ); ?>_off" <?php checked( true, $is_plugin_active ); ?> <?php disabled( true, $disable_core_options ); ?> />&nbsp;<label for="update_<?php echo esc_attr( $plugin_slug ); ?>-check"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
396
+ </div><!-- .dashboard-item-choice -->
397
+ </div><!-- dashboard-item-->
398
+
399
+ <?php
400
  }
401
+ else:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
402
  ?>
403
  <p><?php
404
+ echo esc_html( $error );
405
+ ?>
406
+ </p>
407
+ <?php
408
+ endif;
409
+ ?>
410
+ </div><!-- .dashboard-item-wrapper -->
411
+ </div><!-- .dashboard-tab-plugins -->
412
+ <div class="dashboard-tab-themes dashboard-tab-content">
413
+ <div class="dashboard-item-wrapper">
414
+ <?php
415
+ $can_show_themes = false;
416
+ $options = MPSUM_Updates_Manager::get_options( 'core' );
417
+ if ( !isset( $options[ 'automatic_theme_updates' ] ) ) {
418
+ $options[ 'automatic_theme_updates' ] = 'default';
419
+ $auto_theme_updates = $options[ 'automatic_theme_updates' ];
420
+ } else {
421
+ $auto_theme_updates = $options[ 'automatic_theme_updates' ];
422
+ }
423
+ if ( isset( $options[ 'theme_updates' ] ) && 'off' == $options[ 'theme_updates' ] ) {
424
+ $can_show_plugins = 'off';
425
+ $auto_theme_updates = 'off';
426
+ }
427
+ $error = '';
428
+ if ( 'default' == $auto_theme_updates ) {
429
+ $can_show_themes = false;
430
+ $error = __( 'WordPress defaults control which updates are automatic or not.', 'stops-core-theme-and-plugin-updates' );
431
+ } elseif ( 'on' == $auto_theme_updates ) {
432
+ $can_show_themes = false;
433
+ $error = __( 'Automatic updates are on for all themes', 'stops-core-theme-and-plugin-updates' );
434
+ } elseif ( 'off' == $auto_theme_updates ) {
435
+ $can_show_themes = false;
436
+ $error = __( 'Automatic updates are disabled for all themes', 'stops-core-theme-and-plugin-updates' );
437
+ } else {
438
+ $can_show_themes = true;
439
+ }
440
+ if( $can_show_themes ) :
441
+ $options = MPSUM_Updates_Manager::get_options( 'themes_automatic' );
442
+ $themes = wp_get_themes();
443
+
444
+ foreach( $themes as $theme_slug => $theme_data ) {
445
+ $is_theme_active = false;
446
+ if ( in_array( $theme_slug, $options ) ) {
447
+ $is_theme_active = true;
448
+ }
449
+ $theme_name = $theme_data->Name;
450
+ ?>
451
+ <div class="dashboard-item">
452
+ <div class="dashboard-item-header input-radio"><?php echo esc_html( $theme_name ) ?>
453
+ </div><!-- .dashboard-item-header -->
454
+ <div class="dashboard-item-choice">
455
+ <?php
456
+ $checked_value = 'checked';
457
+ if ( in_array( $theme_slug, $options ) ) {
458
+ $checked_value = '';
459
+ } else {
460
+ }
461
+
462
+ ?>
463
+ <input type="hidden" name="options[themes_automatic]" value="<?php echo esc_attr( $theme_slug ); ?> " />
464
+ <input id="themes_automatic_on_<?php echo $theme_slug; ?>" type="checkbox" data-context="themes_automatic" data-action="<?php echo esc_attr( $theme_slug ); ?>" class="dashboard-hide update-option" name="options[themes_automatic]" value="<?php echo esc_attr( $theme_slug ); ?>" id="<?php echo esc_attr( $theme_slug ); ?>_off" <?php checked( true, $is_theme_active ); ?> <?php disabled( true, false ); ?> />&nbsp;<label for="themes_automatic_on_<?php echo $theme_slug; ?>"><?php esc_html_e( 'Disabled', 'stops-core-theme-and-plugin-updates' ); ?></label>
465
+ </div><!-- .dashboard-item-choice -->
466
+ </div><!-- dashboard-item-->
467
+
468
+ <?php
469
+ }
470
+ else:
471
+ ?>
472
+ <p><?php
473
+ echo esc_html( $error );
474
+ ?>
475
+ </p>
476
+ <?php
477
+ endif;
478
+ ?>
479
+ </div><!-- .dashboard-item-wrapper -->
480
+ </div><!-- .dashboard-tab-plugins -->
481
+ </div><!--- .dashboard-main-wrapper -->
482
+ </div><!-- #dashboard-child-columns -->
483
  </div><!-- #dashboard-main-outputs -->
484
  </form>
485
  <?php
includes/MPSUM_Admin_Help.php CHANGED
@@ -89,6 +89,7 @@ CONTENT4;
89
  <li><a href="http://profiles.wordpress.org/kidsguide/">Matthew (kidsguide)</a></li>
90
  <li><a href="http://profiles.wordpress.org/ronalfy/">Ronald Huereca (ronalfy)</a></li>
91
  <li><a href="http://profiles.wordpress.org/pixolin/">Bego Mario Garde (pixolin)</a></li>
 
92
  </ul>
93
  </p>
94
 
89
  <li><a href="http://profiles.wordpress.org/kidsguide/">Matthew (kidsguide)</a></li>
90
  <li><a href="http://profiles.wordpress.org/ronalfy/">Ronald Huereca (ronalfy)</a></li>
91
  <li><a href="http://profiles.wordpress.org/pixolin/">Bego Mario Garde (pixolin)</a></li>
92
+ <li><a href="http://profiles.wordpress.org/roary86/">Roary Tubbs</a></li>
93
  </ul>
94
  </p>
95
 
includes/MPSUM_Disable_Updates.php CHANGED
@@ -121,11 +121,14 @@ class MPSUM_Disable_Updates {
121
  add_filter( 'auto_core_update_send_email', '__return_false', 50 );
122
  add_filter( 'send_core_update_notification_email', '__return_false', 50 );
123
  add_filter( 'automatic_updates_send_debug_email', '__return_false', 50 );
124
- } elseif( isset( $core_options[ 'notification_core_update_emails_plugins' ] ) && 'off' == $core_options[ 'notification_core_update_emails_plugins' ] ) {
 
125
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
126
- } elseif( isset( $core_options[ 'notification_core_update_emails_themes' ] ) && 'off' == $core_options[ 'notification_core_update_emails_themes' ] ) {
 
127
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
128
- } elseif( isset( $core_options[ 'notification_core_update_emails_translations' ] ) && 'off' == $core_options[ 'notification_core_update_emails_translations' ] ) {
 
129
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
130
  }
131
 
121
  add_filter( 'auto_core_update_send_email', '__return_false', 50 );
122
  add_filter( 'send_core_update_notification_email', '__return_false', 50 );
123
  add_filter( 'automatic_updates_send_debug_email', '__return_false', 50 );
124
+ }
125
+ if( isset( $core_options[ 'notification_core_update_emails_plugins' ] ) && 'off' == $core_options[ 'notification_core_update_emails_plugins' ] ) {
126
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
127
+ }
128
+ if( isset( $core_options[ 'notification_core_update_emails_themes' ] ) && 'off' == $core_options[ 'notification_core_update_emails_themes' ] ) {
129
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
130
+ }
131
+ if( isset( $core_options[ 'notification_core_update_emails_translations' ] ) && 'off' == $core_options[ 'notification_core_update_emails_translations' ] ) {
132
  add_filter( 'send_update_notification_email', array( $this, 'maybe_disable_emails' ), 10, 3 );
133
  }
134
 
includes/MPSUM_Plugins_List_Table.php CHANGED
@@ -283,12 +283,25 @@ class MPSUM_Plugins_List_Table extends MPSUM_List_Table {
283
 
284
  echo '<div class="alignleft actions">';
285
 
286
- if ( ! $this->screen->in_admin( 'network' ) && 'recently_activated' == $status )
287
  submit_button( __( 'Clear List', 'stops-core-theme-and-plugin-updates' ), 'button', 'clear-recent-list', false );
288
- elseif ( 'top' == $which && 'mustuse' == $status )
289
- echo '<p>' . sprintf( __( 'Files in the <code>%s</code> directory are executed automatically.', 'stops-core-theme-and-plugin-updates' ), str_replace( ABSPATH, '/', WPMU_PLUGIN_DIR ) ) . '</p>';
290
- elseif ( 'top' == $which && 'dropins' == $status )
291
- echo '<p>' . sprintf( __( 'Drop-ins are advanced plugins in the <code>%s</code> directory that replace WordPress functionality when present.', 'stops-core-theme-and-plugin-updates' ), str_replace( ABSPATH, '', WP_CONTENT_DIR ) ) . '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
292
 
293
  echo '</div>';
294
  }
283
 
284
  echo '<div class="alignleft actions">';
285
 
286
+ if ( ! $this->screen->in_admin( 'network' ) && 'recently_activated' == $status ) {
287
  submit_button( __( 'Clear List', 'stops-core-theme-and-plugin-updates' ), 'button', 'clear-recent-list', false );
288
+ }
289
+ elseif ( 'top' == $which && 'mustuse' == $status ) {
290
+ echo '<p>' .
291
+ sprintf(
292
+ __( 'Files in the %s directory are executed automatically.', 'stops-core-theme-and-plugin-updates' ),
293
+ '<code>' . str_replace( ABSPATH, '/', WPMU_PLUGIN_DIR ) . '</code>'
294
+ ) .
295
+ '</p>';
296
+ }
297
+ elseif ( 'top' == $which && 'dropins' == $status ) {
298
+ echo '<p>' .
299
+ sprintf(
300
+ __( 'Drop-ins are advanced plugins in the %s directory that replace WordPress functionality when present.', 'stops-core-theme-and-plugin-updates' ),
301
+ '<code>' . str_replace( ABSPATH, '', WP_CONTENT_DIR ) . '</code>'
302
+ ) .
303
+ '</p>';
304
+ }
305
 
306
  echo '</div>';
307
  }
js/admin.js CHANGED
@@ -1,43 +1,6 @@
1
- jQuery( document ).ready( function( $ ) {
2
- /* When all updates button is clicked */
3
- $( '.dashboard-item-choice' ).on( 'change', '#all_updates_on', function( e ) {
4
- input_var = 'on';
5
- if ( 'checked' == $( this ).attr( 'checked' ) ) {
6
- input_var = 'on';
7
- } else {
8
- input_var = 'off';
9
- }
10
- $.post( ajaxurl, { action: 'mpsum_disable_updates', new_val: input_var, _ajax_nonce: $( '#_mpsum' ).val() }, function( response ) {
11
- if ( response.length > 0 ) {
12
- $.each( response, function( key, value ) {
13
- $input_checkbox = $( '#' + value );
14
- if ( 'checked' == $input_checkbox.attr( 'checked' ) ) {
15
- $input_checkbox.removeAttr( 'checked' );
16
- }
17
- } );
18
- } else {
19
- $.each( jQuery( 'input.update-option' ), function() {
20
- $element = jQuery( this );
21
- $before = $element.siblings(':first' )
22
- is_checked = $before.val();
23
- if ( '' == is_checked ) {
24
- $element.removeAttr( 'checked' );
25
- return;
26
- }
27
- $element.attr( 'checked', $before.val() );
28
- } );
29
- }
30
-
31
- }, 'json');
32
- } );
33
-
34
- /* For when other button is clicked */
35
- $( "#dashboard-form" ).on( 'change', 'input', function( e ) {
36
- $checkbox = jQuery( this );
37
- checkbox_id = $checkbox.attr( 'id' );
38
- if ( checkbox_id == 'all_updates_on' ) {
39
- return;
40
- }
41
 
42
  $.each( $checkbox, function() {
43
  data_context = jQuery( this ).data( 'context' );
@@ -53,26 +16,55 @@ jQuery( document ).ready( function( $ ) {
53
  $.post( ajaxurl, { action: 'mpsum_ajax_action', context: data_context, data_action: data_action, _ajax_nonce: $( '#_mpsum' ).val(), checked: data_checked, val: data_val }, function( response ) {
54
  } );
55
 
56
- } );
57
- } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
 
60
  /* Plugin / Theme Tabs */
61
  $( '.dashboard-plugin-theme-updates' ).on( 'click', 'a', function( e ) {
62
  e.preventDefault();
63
  tag_action = jQuery( this ).attr( 'data-tab-action' );
64
- if ( tag_action == 'plugins' ) {
65
- $( '.dashboard-tab-themes' ).removeClass( 'active' ).addClass( 'inactive' );
66
- $( '.dashboard-tab-plugins' ).removeClass( 'inactive' ).addClass( 'active' );
67
- $( '.dashboard-tab-header-plugin' ).addClass( 'active' );
68
- $( 'dashboard-tab-header-theme' ).removeClass( 'active' );
69
- } else {
70
- $( '.dashboard-tab-plugins' ).removeClass( 'active' ).addClass( 'inactive' );
71
- $( '.dashboard-tab-themes' ).removeClass( 'inactive' ).addClass( 'active' );
72
- $( '.dashboard-tab-header-theme' ).addClass( 'active' );
73
- $( '.dashboard-tab-header-plugin' ).removeClass( 'active' );
74
-
75
- }
 
76
  } );
77
 
78
  } );
1
+ jQuery( document ).ready( function( $ ) {
2
+ function eum_checkbox_save( $checkbox ) {
3
+ checkbox_id = $checkbox.attr( 'id' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  $.each( $checkbox, function() {
6
  data_context = jQuery( this ).data( 'context' );
16
  $.post( ajaxurl, { action: 'mpsum_ajax_action', context: data_context, data_action: data_action, _ajax_nonce: $( '#_mpsum' ).val(), checked: data_checked, val: data_val }, function( response ) {
17
  } );
18
 
19
+ } );
20
+ };
21
+
22
+ /* For when other button is clicked */
23
+ $( '.dashboard-item' ).on( 'click', function( e ) {
24
+ $input_wrapper = jQuery( this );
25
+ $radio_boxes = $input_wrapper.find( 'input[type="radio"]:checked' );
26
+ if ( $radio_boxes.length > 0 ) {
27
+ eum_checkbox_save( $radio_boxes );
28
+ return;
29
+ }
30
+ e.preventDefault();
31
+
32
+ $checked_boxes = $input_wrapper.find( 'input[type="checkbox"]:checked' );
33
+ $unchecked_boxes = $input_wrapper.find( 'input:checkbox:not(:checked)' );
34
+
35
+ if ( $checked_boxes.length > 0 ) {
36
+ $checked_boxes.prop( 'checked', false );
37
+ $checked_boxes.parent().parent().toggleClass( 'active' );
38
+ eum_checkbox_save( $checked_boxes );
39
+ } else if( $unchecked_boxes.length > 0 ) {
40
+ $unchecked_boxes.prop( 'checked', true );
41
+ $unchecked_boxes.parent().parent().toggleClass( 'active' );
42
+ eum_checkbox_save( $unchecked_boxes );
43
+ }
44
+ } );
45
+
46
+ $( '.dashboard-item' ).on( 'change', function( e ) {
47
+ eum_checkbox_save( jQuery( this ) );
48
+ } );
49
 
50
 
51
  /* Plugin / Theme Tabs */
52
  $( '.dashboard-plugin-theme-updates' ).on( 'click', 'a', function( e ) {
53
  e.preventDefault();
54
  tag_action = jQuery( this ).attr( 'data-tab-action' );
55
+ $( '.dashboard-plugin-theme-updates .dashboard-tab-themes' ).toggleClass( 'active' );
56
+ $( '.dashboard-plugin-theme-updates .dashboard-tab-plugins' ).toggleClass( 'active' );
57
+ $( '.dashboard-plugin-theme-updates .dashboard-tab-header-plugin' ).toggleClass( 'active' );
58
+ $( '.dashboard-plugin-theme-updates .dashboard-tab-header-theme' ).toggleClass( 'active' );
59
+ } );
60
+ /* Plugin / Theme Tabs */
61
+ $( '.dashboard-plugin-theme-auto-updates' ).on( 'click', 'a', function( e ) {
62
+ e.preventDefault();
63
+ tag_action = jQuery( this ).attr( 'data-tab-action' );
64
+ $( '.dashboard-plugin-theme-auto-updates .dashboard-tab-themes' ).toggleClass( 'active' );
65
+ $( '.dashboard-plugin-theme-auto-updates .dashboard-tab-plugins' ).toggleClass( 'active' );
66
+ $( '.dashboard-plugin-theme-auto-updates .dashboard-tab-header-plugin' ).toggleClass( 'active' );
67
+ $( '.dashboard-plugin-theme-auto-updates .dashboard-tab-header-theme' ).toggleClass( 'active' );
68
  } );
69
 
70
  } );
main.php CHANGED
@@ -3,8 +3,8 @@
3
  Plugin Name: Easy Updates Manager
4
  Plugin URI: https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/
5
  Description: Manage and disable WordPress updates, including core, plugin, theme, and automatic updates - Works with Multisite.
6
- Author: kidsguide, ronalfy, pixolin
7
- Version: 5.3.2
8
  Requires at least: 4.3
9
  Author URI: https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/
10
  Contributors: kidsguide, ronalfy
3
  Plugin Name: Easy Updates Manager
4
  Plugin URI: https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/
5
  Description: Manage and disable WordPress updates, including core, plugin, theme, and automatic updates - Works with Multisite.
6
+ Author: kidsguide, ronalfy, pixolin, roary86
7
+ Version: 5.4.0
8
  Requires at least: 4.3
9
  Author URI: https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/
10
  Contributors: kidsguide, ronalfy
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Easy Updates Manager ===
2
- Contributors: kidsguide, ronalfy, pixolin
3
  Tags: updates manager, easy updates manager, disable updates manager, disable updates, update control, plugin updates, theme updates, core updates, automatic updates, multisite
4
  Requires at least: 4.3
5
  Tested up to: 4.3.1
6
- Stable tag: 5.3.2
7
  License: GPLv2 or later
8
 
9
  Manage all your WordPress updates, including individual plugin/theme updates, automatic updates, and loads more. Also works with WordPress Multisite.
@@ -94,6 +94,13 @@ For additional information and FAQs for Easy Updates Manager check out our <a hr
94
 
95
  == Changelog ==
96
 
 
 
 
 
 
 
 
97
  = 5.3.2 =
98
  Released 2015-10-13
99
 
@@ -147,6 +154,9 @@ In version 5.0.0 we completely re-wrote the plugin to offer a faster and more se
147
 
148
  == Upgrade Notice ==
149
 
 
 
 
150
  = 5.3.2 =
151
  Fixed translation errors.
152
 
1
  === Easy Updates Manager ===
2
+ Contributors: kidsguide, ronalfy, pixolin, roary86
3
  Tags: updates manager, easy updates manager, disable updates manager, disable updates, update control, plugin updates, theme updates, core updates, automatic updates, multisite
4
  Requires at least: 4.3
5
  Tested up to: 4.3.1
6
+ Stable tag: 5.4.0
7
  License: GPLv2 or later
8
 
9
  Manage all your WordPress updates, including individual plugin/theme updates, automatic updates, and loads more. Also works with WordPress Multisite.
94
 
95
  == Changelog ==
96
 
97
+ = 5.4.0 =
98
+ Released 2015-10-30
99
+
100
+ * Major Dashboard Update (Props roary86 and ronalfy)
101
+ * List Table Changes (Props ramiy)
102
+ * WordPress 4.4 preparation
103
+
104
  = 5.3.2 =
105
  Released 2015-10-13
106
 
154
 
155
  == Upgrade Notice ==
156
 
157
+ = 5.4.0 =
158
+ Major dashboard overhaul and WordPress 4.4 preparation
159
+
160
  = 5.3.2 =
161
  Fixed translation errors.
162