404page – your smart custom 404 error page - Version 11.3.0

Version Description

new option to always send an 410 instead of an 404

Download this release

Release Info

Developer petersplugins
Plugin Icon 128x128 404page – your smart custom 404 error page
Version 11.3.0
Comparing to
See all releases

Code changes from version 11.2.6 to 11.3.0

404page.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin Name: 404page - your smart custom 404 error page
10
  * Plugin URI: https://petersplugins.com/404page/
11
  * Description: Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.
12
- * Version: 11.2.6
13
  * Author: Peter Raschendorfer
14
  * Author URI: https://petersplugins.com
15
  * Text Domain: 404page
9
  * Plugin Name: 404page - your smart custom 404 error page
10
  * Plugin URI: https://petersplugins.com/404page/
11
  * Description: Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.
12
+ * Version: 11.3.0
13
  * Author: Peter Raschendorfer
14
  * Author URI: https://petersplugins.com
15
  * Text Domain: 404page
assets/img/pluginicon.png CHANGED
Binary file
assets/js/404page-ui.js CHANGED
@@ -1,12 +1,21 @@
1
- jQuery(document).ready(function($) {
2
- $( '#select404page' ).change(function() {
 
3
  $( '#edit_404_page, #test_404_page' ).prop( 'disabled', !( $( '#select404page' ).val() == $( '#404page_current_value').text() != 0 ) );
4
  });
 
5
  $( '#select404page' ).trigger( 'change' );
6
- $( '#edit_404_page' ).click(function() {
 
7
  window.location.href = $( '#404page_edit_link' ).text();
8
  });
9
- $( '#test_404_page' ).click(function() {
 
10
  window.location.href = $( '#404page_test_link' ).text();
11
  });
 
 
 
 
 
12
  });
1
+ jQuery( document ).ready( function( $ ) {
2
+
3
+ $( '#select404page' ).change( function() {
4
  $( '#edit_404_page, #test_404_page' ).prop( 'disabled', !( $( '#select404page' ).val() == $( '#404page_current_value').text() != 0 ) );
5
  });
6
+
7
  $( '#select404page' ).trigger( 'change' );
8
+
9
+ $( '#edit_404_page' ).click( function() {
10
  window.location.href = $( '#404page_edit_link' ).text();
11
  });
12
+
13
+ $( '#test_404_page' ).click( function() {
14
  window.location.href = $( '#404page_test_link' ).text();
15
  });
16
+
17
+ $( '#404page-http410_always' ).change( function() {
18
+ $( '#404page-http410_if_trashed' ).prop( 'disabled', $( '#404page-http410_always' ).prop( 'checked' ) );
19
+ });
20
+
21
  });
inc/class-404page-admin.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
15
  */
16
  if ( !class_exists( 'PP_404Page_Admin' ) ) {
17
 
18
- class PP_404Page_Admin extends PPF06_Admin {
19
 
20
 
21
  /**
@@ -114,6 +114,10 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
114
  array(
115
  'key' => 'http410_if_trashed',
116
  'callback' => 'admin_http410'
 
 
 
 
117
  ),
118
  array(
119
  'key' => 'method',
@@ -347,10 +351,28 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
347
  esc_html__( 'Send an HTTP 410 error instead of HTTP 404 in case the requested object is in trash', '404page' ),
348
  'settings_maybe_send_http410',
349
  'O5xPM0BMZxM',
350
- '<span class="dashicons dashicons-info"></span>&nbsp;' . esc_html__( 'Check this if you want to inform search engines that the resource requested is no longer available and will not be available again so it can be removed from the search index immediately.', '404page' )
 
351
  );
352
 
353
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
 
355
 
356
  /**
15
  */
16
  if ( !class_exists( 'PP_404Page_Admin' ) ) {
17
 
18
+ class PP_404Page_Admin extends PPF07_Admin {
19
 
20
 
21
  /**
114
  array(
115
  'key' => 'http410_if_trashed',
116
  'callback' => 'admin_http410'
117
+ ),
118
+ array(
119
+ 'key' => 'http410_always',
120
+ 'callback' => 'admin_http410_always'
121
  ),
122
  array(
123
  'key' => 'method',
351
  esc_html__( 'Send an HTTP 410 error instead of HTTP 404 in case the requested object is in trash', '404page' ),
352
  'settings_maybe_send_http410',
353
  'O5xPM0BMZxM',
354
+ '<span class="dashicons dashicons-info"></span>&nbsp;' . esc_html__( 'Check this if you want to inform search engines that the resource requested is no longer available and will not be available again so it can be removed from the search index immediately.', '404page' ),
355
+ $this->settings()->get( 'http410_always' )
356
  );
357
 
358
  }
359
+
360
+
361
+ /**
362
+ * handle the settings field to always send an http 410 error
363
+ * @since 11.3.0
364
+ */
365
+ function admin_http410_always() {
366
+
367
+ $this->print_slider_check(
368
+ 'http410_always',
369
+ esc_html__( 'Always send an HTTP 410 error instead of HTTP 404', '404page' ),
370
+ 'settings_always_send_http410',
371
+ false,
372
+ '<span class="dashicons dashicons-info"></span>&nbsp;' . esc_html__( 'Check this if you always want to send an HTTP 410 error instead of an HTTP 404 error.', '404page' )
373
+ );
374
+
375
+ }
376
 
377
 
378
  /**
inc/class-404page-block-editor.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
15
  */
16
  if ( !class_exists( 'PP_404Page_BlockEditor' ) ) {
17
 
18
- class PP_404Page_BlockEditor extends PPF06_SubClass {
19
 
20
  /**
21
  * Do Init
15
  */
16
  if ( !class_exists( 'PP_404Page_BlockEditor' ) ) {
17
 
18
+ class PP_404Page_BlockEditor extends PPF07_SubClass {
19
 
20
  /**
21
  * Do Init
inc/class-404page-classic-editor.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'WPINC' ) ) {
15
  */
16
  if ( !class_exists( 'PP_404Page_ClassicEditor' ) ) {
17
 
18
- class PP_404Page_ClassicEditor extends PPF06_SubClass {
19
 
20
  /**
21
  * Do Init
15
  */
16
  if ( !class_exists( 'PP_404Page_ClassicEditor' ) ) {
17
 
18
+ class PP_404Page_ClassicEditor extends PPF07_SubClass {
19
 
20
  /**
21
  * Do Init
inc/class-404page-deprecated.php CHANGED
@@ -17,7 +17,7 @@ if ( ! defined( 'WPINC' ) ) {
17
  */
18
  if ( !class_exists( 'PP_404Page_Deprecated' ) ) {
19
 
20
- class PP_404Page_Deprecated extends PPF06_SubClass {
21
 
22
  /**
23
  * Do Init
17
  */
18
  if ( !class_exists( 'PP_404Page_Deprecated' ) ) {
19
 
20
+ class PP_404Page_Deprecated extends PPF07_SubClass {
21
 
22
  /**
23
  * Do Init
inc/class-404page-settings.php CHANGED
@@ -17,7 +17,7 @@ if ( ! defined( 'WPINC' ) ) {
17
  */
18
  if ( !class_exists( 'PP_404Page_Settings' ) ) {
19
 
20
- class PP_404Page_Settings extends PPF06_Settings {
21
 
22
  /**
23
  * sanitize settings
17
  */
18
  if ( !class_exists( 'PP_404Page_Settings' ) ) {
19
 
20
+ class PP_404Page_Settings extends PPF07_Settings {
21
 
22
  /**
23
  * sanitize settings
inc/class-404page.php CHANGED
@@ -23,7 +23,7 @@ if ( ! defined( 'PP_404' ) ) {
23
  if ( !class_exists( 'PP_404Page' ) ) {
24
 
25
 
26
- class PP_404Page extends PPF06_Plugin {
27
 
28
 
29
  /**
@@ -100,6 +100,7 @@ if ( !class_exists( 'PP_404Page' ) ) {
100
  'force_error' => false,
101
  'no_url_guessing' => false,
102
  'http410_if_trashed' => false,
 
103
  'method' => 'STD'
104
  );
105
 
@@ -220,7 +221,9 @@ if ( !class_exists( 'PP_404Page' ) ) {
220
 
221
  // send http 410 instead of http 404 if requested resource is in trash
222
  // @since 3.2
223
- if ( $this->settings()->get( 'http410_if_trashed' ) ) {
 
 
224
 
225
  add_action( 'template_redirect', array( $this, 'maybe_send_410' ) );
226
 
@@ -248,7 +251,9 @@ if ( !class_exists( 'PP_404Page' ) ) {
248
 
249
  // send http 410 instead of http 404 if requested resource is in trash
250
  // @since 3.2
251
- if ( $this->settings()->get( 'http410_if_trashed' ) ) {
 
 
252
 
253
  add_action( 'template_redirect', array( $this, 'maybe_send_410' ) );
254
 
@@ -652,13 +657,18 @@ if ( !class_exists( 'PP_404Page' ) ) {
652
  /**
653
  * send http 410 instead of http 404 in case the requested URL can be found in trash
654
  * @since 3.2
 
 
 
655
  */
656
  function maybe_send_410() {
657
 
658
  // we don't do anything if there is no 404
659
  if ( is_404() ) {
660
 
661
- if ( $this->is_url_in_trash( rawurldecode ( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) ) ) {
 
 
662
 
663
  status_header( 410 );
664
 
23
  if ( !class_exists( 'PP_404Page' ) ) {
24
 
25
 
26
+ class PP_404Page extends PPF07_Plugin {
27
 
28
 
29
  /**
100
  'force_error' => false,
101
  'no_url_guessing' => false,
102
  'http410_if_trashed' => false,
103
+ 'http410_always' => false,
104
  'method' => 'STD'
105
  );
106
 
221
 
222
  // send http 410 instead of http 404 if requested resource is in trash
223
  // @since 3.2
224
+ // or always send http 410
225
+ // @since 11.3.0
226
+ if ( $this->settings()->get( 'http410_if_trashed' ) || $this->settings()->get( 'http410_always' ) ) {
227
 
228
  add_action( 'template_redirect', array( $this, 'maybe_send_410' ) );
229
 
251
 
252
  // send http 410 instead of http 404 if requested resource is in trash
253
  // @since 3.2
254
+ // or always send http 410
255
+ // @since 11.3.0
256
+ if ( $this->settings()->get( 'http410_if_trashed' ) || $this->settings()->get( 'http410_always' ) ) {
257
 
258
  add_action( 'template_redirect', array( $this, 'maybe_send_410' ) );
259
 
657
  /**
658
  * send http 410 instead of http 404 in case the requested URL can be found in trash
659
  * @since 3.2
660
+ * or always send http 410
661
+ * @since 11.3.0
662
+
663
  */
664
  function maybe_send_410() {
665
 
666
  // we don't do anything if there is no 404
667
  if ( is_404() ) {
668
 
669
+ //if ( $this->is_url_in_trash( rawurldecode ( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) ) ) {
670
+
671
+ if ( $this->settings()->get( 'http410_always' ) || ( $this->settings()->get( 'http410_if_trashed' ) && $this->is_url_in_trash( rawurldecode ( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) ) ) ) {
672
 
673
  status_header( 410 );
674
 
inc/ppf/assets/css/pp-admin-page.css CHANGED
@@ -1,5 +1,10 @@
 
 
 
 
1
  #wpcontent {
2
  padding-left: 0 !important;
 
3
  }
4
 
5
  .pp-admin-page-wrapper {
@@ -7,18 +12,19 @@
7
  }
8
 
9
  .pp-admin-notice-area {
10
- background-color: #1a1a1a;
11
- padding: 1px 6px;
 
 
 
12
  }
13
 
14
  .pp-admin-page-header {
15
- background-color: #1a1a1a;
16
- background: linear-gradient(to right bottom, #1a1a1a 0%,#5e5e5e 100%);
17
  }
18
 
19
  .rtl .pp-admin-page-header {
20
  margin-left: 0;
21
- background: linear-gradient(to left bottom, #1a1a1a 0%,#5e5e5e 100%);
22
  }
23
 
24
  .pp-admin-page-header nav {
@@ -36,7 +42,7 @@
36
  .pp-admin-page-header nav a {
37
  display: inline-block;
38
  padding: 6px 3px;
39
- color: #fff;
40
  text-decoration: none;
41
  font-size: 12px;
42
  height: 20px;
@@ -65,24 +71,19 @@
65
  }
66
 
67
  .pp-admin-page-header nav a:hover, .pp-admin-page-header nav a:focus {
68
- border-bottom-color: #fff;
69
  }
70
 
71
  .pp-admin-page-title {
72
- padding: 36px 0 36px 20px;
73
- }
74
-
75
- .rtl .pp-admin-page-title {
76
- padding-left: 0;
77
- padding-right: 20px;
78
- }
79
 
80
  .pp-admin-page-title h1 {
81
  line-height: 64px;
82
  padding: 0 0 0 80px;
83
  background-image: url(../../../../assets/img/pluginicon.png);
84
  background-repeat: no-repeat;
85
- color: #fff;
86
  }
87
 
88
  .rtl .pp-admin-page-title h1 {
@@ -112,14 +113,14 @@
112
  .pp-admin-page-header .tab-navigation .tabset {
113
  padding: 12px 24px;
114
  font-size: 18px;
115
- color: #fff;
116
  cursor: pointer;
117
  background: none;
118
  border: none;
119
  border-top-left-radius: 3px;
120
  border-top-right-radius: 3px;
121
  outline: none;
122
- transition: 0.3s all;
123
  }
124
 
125
  .pp-admin-page-header .tab-navigation .tabset:hover {
@@ -128,7 +129,7 @@
128
 
129
  .pp-admin-page-header .tab-navigation .tabset.current, .pp-admin-page-header .tab-navigation .tabset.current:hover {
130
  background-color: #fff;
131
- color: #1a1a1a;
132
  }
133
 
134
  .pp-admin-page-header .tab-navigation .tabset.has-icon {
@@ -141,42 +142,22 @@
141
  background-image: url( ../img/general.svg );
142
  }
143
 
144
- .pp-admin-page-header .tab-navigation .tabset.icon-general.current {
145
- background-image: url( ../img/general_current.svg );
146
- }
147
-
148
  .pp-admin-page-header .tab-navigation .tabset.icon-videos {
149
  background-image: url( ../img/videos.svg );
150
  }
151
 
152
- .pp-admin-page-header .tab-navigation .tabset.icon-videos.current {
153
- background-image: url( ../img/videos_current.svg );
154
- }
155
-
156
  .pp-admin-page-header .tab-navigation .tabset.icon-advanced {
157
  background-image: url( ../img/advanced.svg );
158
  }
159
 
160
- .pp-admin-page-header .tab-navigation .tabset.icon-advanced.current {
161
- background-image: url( ../img/advanced_current.svg );
162
- }
163
-
164
  .pp-admin-page-header .tab-navigation .tabset.icon-addons {
165
  background-image: url( ../img/addons.svg );
166
  }
167
 
168
- .pp-admin-page-header .tab-navigation .tabset.icon-addons.current {
169
- background-image: url( ../img/addons_current.svg );
170
- }
171
-
172
  .pp-admin-page-header .tab-navigation .tabset.icon-info {
173
  background-image: url( ../img/info.svg );
174
  }
175
 
176
- .pp-admin-page-header .tab-navigation .tabset.icon-info.current {
177
- background-image: url( ../img/info_current.svg );
178
- }
179
-
180
  .pp-admin-page-inner {
181
  padding: 24px;
182
  background-color: #fff;
@@ -200,14 +181,20 @@
200
  }
201
 
202
  .wp-core-ui .pp-admin-page-inner .tab-panel .button-primary {
203
- background-color: #0073aa;
204
- border: 1px solid #0073aa;
205
  box-shadow: none;
206
  text-shadow: none;
207
  font-size: 16px;
208
  line-height: 1;
209
  height: auto;
210
  padding: 12px 24px;
 
 
 
 
 
 
211
  }
212
 
213
  .pp-admin-page-wrapper .form-table th, .form-table td {
@@ -231,15 +218,20 @@
231
  }
232
 
233
  .wp-admin .pp-admin-page-wrapper select {
234
- border: 3px solid #1a1a1a;
235
  border-radius: 6px;
236
  padding: 6px;
237
- line-height: auto;
238
  height: auto;
239
  }
240
 
241
  .pp-admin-page-wrapper a {
242
- color: #0073aa;
 
 
 
 
 
243
  }
244
 
245
  .pp-admin-page-wrapper .toggle {
@@ -263,15 +255,15 @@
263
  text-indent: -9999px;
264
  width: 80px;
265
  height: 40px;
266
- background: #5e5e5e;
267
  display: block;
268
  border-radius: 40px;
269
  position: relative;
270
- transition: 0.3s all;
271
  }
272
 
273
  .pp-admin-page-wrapper .toggle input[type="checkbox"]:disabled + label {
274
- background-color: #DDD;
275
  }
276
 
277
  .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after {
@@ -280,9 +272,13 @@
280
  top: 5px;
281
  width: 30px;
282
  height: 30px;
283
- background: #fff;
284
  border-radius: 30px;
285
- transition: 0.3s all;
 
 
 
 
 
286
  }
287
 
288
  body:not(.rtl) .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after, .rtl .pp-admin-page-wrapper .toggle input[type="checkbox"]:checked + label:after {
@@ -291,7 +287,7 @@ body:not(.rtl) .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:aft
291
  }
292
 
293
  .pp-admin-page-wrapper .toggle input[type="checkbox"]:enabled:checked + label {
294
- background: #1a1a1a;
295
  }
296
 
297
  body:not(.rtl) .pp-admin-page-wrapper .toggle input[type="checkbox"]:checked + label:after, .rtl .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after {
1
+ body {
2
+ background-color: #fff;
3
+ }
4
+
5
  #wpcontent {
6
  padding-left: 0 !important;
7
+ color: #434343 !important;
8
  }
9
 
10
  .pp-admin-page-wrapper {
12
  }
13
 
14
  .pp-admin-notice-area {
15
+ padding: 0;
16
+ }
17
+
18
+ .pp-admin-notice-area .notice {
19
+ margin: 0;
20
  }
21
 
22
  .pp-admin-page-header {
23
+ background-color: #E2E2E2;
 
24
  }
25
 
26
  .rtl .pp-admin-page-header {
27
  margin-left: 0;
 
28
  }
29
 
30
  .pp-admin-page-header nav {
42
  .pp-admin-page-header nav a {
43
  display: inline-block;
44
  padding: 6px 3px;
45
+ color: #434343;
46
  text-decoration: none;
47
  font-size: 12px;
48
  height: 20px;
71
  }
72
 
73
  .pp-admin-page-header nav a:hover, .pp-admin-page-header nav a:focus {
74
+ border-bottom-color: #434343;
75
  }
76
 
77
  .pp-admin-page-title {
78
+ padding: 20px;
79
+ }
 
 
 
 
 
80
 
81
  .pp-admin-page-title h1 {
82
  line-height: 64px;
83
  padding: 0 0 0 80px;
84
  background-image: url(../../../../assets/img/pluginicon.png);
85
  background-repeat: no-repeat;
86
+ color: #434343;
87
  }
88
 
89
  .rtl .pp-admin-page-title h1 {
113
  .pp-admin-page-header .tab-navigation .tabset {
114
  padding: 12px 24px;
115
  font-size: 18px;
116
+ color: #434343;
117
  cursor: pointer;
118
  background: none;
119
  border: none;
120
  border-top-left-radius: 3px;
121
  border-top-right-radius: 3px;
122
  outline: none;
123
+ transition: background-color 0.3s ease;
124
  }
125
 
126
  .pp-admin-page-header .tab-navigation .tabset:hover {
129
 
130
  .pp-admin-page-header .tab-navigation .tabset.current, .pp-admin-page-header .tab-navigation .tabset.current:hover {
131
  background-color: #fff;
132
+ color: #434343;
133
  }
134
 
135
  .pp-admin-page-header .tab-navigation .tabset.has-icon {
142
  background-image: url( ../img/general.svg );
143
  }
144
 
 
 
 
 
145
  .pp-admin-page-header .tab-navigation .tabset.icon-videos {
146
  background-image: url( ../img/videos.svg );
147
  }
148
 
 
 
 
 
149
  .pp-admin-page-header .tab-navigation .tabset.icon-advanced {
150
  background-image: url( ../img/advanced.svg );
151
  }
152
 
 
 
 
 
153
  .pp-admin-page-header .tab-navigation .tabset.icon-addons {
154
  background-image: url( ../img/addons.svg );
155
  }
156
 
 
 
 
 
157
  .pp-admin-page-header .tab-navigation .tabset.icon-info {
158
  background-image: url( ../img/info.svg );
159
  }
160
 
 
 
 
 
161
  .pp-admin-page-inner {
162
  padding: 24px;
163
  background-color: #fff;
181
  }
182
 
183
  .wp-core-ui .pp-admin-page-inner .tab-panel .button-primary {
184
+ background-color: #4D648D;
185
+ border: 1px solid #4D648D;
186
  box-shadow: none;
187
  text-shadow: none;
188
  font-size: 16px;
189
  line-height: 1;
190
  height: auto;
191
  padding: 12px 24px;
192
+ transition: all 0.3s ease;
193
+ }
194
+
195
+ .wp-core-ui .pp-admin-page-inner .tab-panel .button-primary:hover, .wp-core-ui .pp-admin-page-inner .tab-panel .button-primary:focus {
196
+ background-color: #283655;
197
+ border: 1px solid #283655;
198
  }
199
 
200
  .pp-admin-page-wrapper .form-table th, .form-table td {
218
  }
219
 
220
  .wp-admin .pp-admin-page-wrapper select {
221
+ border: 3px solid #434343;
222
  border-radius: 6px;
223
  padding: 6px;
224
+ line-height: 1.5;
225
  height: auto;
226
  }
227
 
228
  .pp-admin-page-wrapper a {
229
+ color: #4D648D;
230
+ transition: all 0.3s ease;
231
+ }
232
+
233
+ .pp-admin-page-wrapper a:hover, .pp-admin-page-wrapper a:focus {
234
+ color: #283655;
235
  }
236
 
237
  .pp-admin-page-wrapper .toggle {
255
  text-indent: -9999px;
256
  width: 80px;
257
  height: 40px;
258
+ background: #959595;
259
  display: block;
260
  border-radius: 40px;
261
  position: relative;
262
+ transition: all 0.3s ease;
263
  }
264
 
265
  .pp-admin-page-wrapper .toggle input[type="checkbox"]:disabled + label {
266
+ background-color: #CDCDCD;
267
  }
268
 
269
  .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after {
272
  top: 5px;
273
  width: 30px;
274
  height: 30px;
 
275
  border-radius: 30px;
276
+ transition: all 0.3s ease;
277
+ background-color: #FFF;
278
+ }
279
+
280
+ .pp-admin-page-wrapper .toggle input[type="checkbox"]:disabled + label:after {
281
+ background-color: #E2E2E2;
282
  }
283
 
284
  body:not(.rtl) .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after, .rtl .pp-admin-page-wrapper .toggle input[type="checkbox"]:checked + label:after {
287
  }
288
 
289
  .pp-admin-page-wrapper .toggle input[type="checkbox"]:enabled:checked + label {
290
+ background: #434343;
291
  }
292
 
293
  body:not(.rtl) .pp-admin-page-wrapper .toggle input[type="checkbox"]:checked + label:after, .rtl .pp-admin-page-wrapper .toggle input[type="checkbox"] + label:after {
inc/ppf/assets/img/addons.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-2h2v-3h3V9h-3V6h-2v3h-3v2h3z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-2h2v-3h3V9h-3V6h-2v3h-3v2h3z"/></svg>
inc/ppf/assets/img/addons_current.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-2h2v-3h3V9h-3V6h-2v3h-3v2h3z"/></svg>
 
inc/ppf/assets/img/advanced.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M22.61 18.99l-9.08-9.08c.93-2.34.45-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11 6.08 7.52 2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.4-.38.4-1.01 0-1.41zm-3 1.6l-9.46-9.46c-.61.45-1.29.72-2 .82-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09 4.24-4.24-3.09-3.09c1.24-.07 2.49.37 3.44 1.31 1.08 1.08 1.49 2.57 1.24 3.96-.12.71-.42 1.37-.88 1.96l9.45 9.45-.88.89z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M22.61 18.99l-9.08-9.08c.93-2.34.45-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11 6.08 7.52 2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.4-.38.4-1.01 0-1.41zm-3 1.6l-9.46-9.46c-.61.45-1.29.72-2 .82-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09 4.24-4.24-3.09-3.09c1.24-.07 2.49.37 3.44 1.31 1.08 1.08 1.49 2.57 1.24 3.96-.12.71-.42 1.37-.88 1.96l9.45 9.45-.88.89z"/></svg>
inc/ppf/assets/img/advanced_current.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M22.61 18.99l-9.08-9.08c.93-2.34.45-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11 6.08 7.52 2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.4-.38.4-1.01 0-1.41zm-3 1.6l-9.46-9.46c-.61.45-1.29.72-2 .82-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09 4.24-4.24-3.09-3.09c1.24-.07 2.49.37 3.44 1.31 1.08 1.08 1.49 2.57 1.24 3.96-.12.71-.42 1.37-.88 1.96l9.45 9.45-.88.89z"/></svg>
 
inc/ppf/assets/img/general.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
inc/ppf/assets/img/general_current.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.09-.16-.26-.25-.44-.25-.06 0-.12.01-.17.03l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.06-.02-.12-.03-.18-.03-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.09.16.26.25.44.25.06 0 .12-.01.17-.03l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
 
inc/ppf/assets/img/info.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
inc/ppf/assets/img/info_current.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
 
inc/ppf/assets/img/videos.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM12 5.5v9l6-4.5z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM12 5.5v9l6-4.5z"/></svg>
inc/ppf/assets/img/videos_current.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM12 5.5v9l6-4.5z"/></svg>
 
inc/ppf/loader.php CHANGED
@@ -3,9 +3,9 @@
3
  /**
4
  * Plugin Foundation Loader
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
3
  /**
4
  * Plugin Foundation Loader
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
inc/ppf/ppf-admin.php CHANGED
@@ -3,17 +3,17 @@
3
  /**
4
  * Admin Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
- if ( !class_exists( 'PPF06_Admin' ) ) {
14
 
15
 
16
- abstract class PPF06_Admin extends PPF06_SubClass {
17
 
18
 
19
  /**
3
  /**
4
  * Admin Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF07_Admin' ) ) {
14
 
15
 
16
+ abstract class PPF07_Admin extends PPF07_SubClass {
17
 
18
 
19
  /**
inc/ppf/ppf-class.php CHANGED
@@ -3,9 +3,9 @@
3
  /**
4
  * Base Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
@@ -19,10 +19,10 @@
19
  }
20
 
21
 
22
- if ( !class_exists( 'PPF06_Class' ) ) {
23
 
24
 
25
- abstract class PPF06_Class {
26
 
27
 
28
  /**
3
  /**
4
  * Base Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
19
  }
20
 
21
 
22
+ if ( !class_exists( 'PPF07_Class' ) ) {
23
 
24
 
25
+ abstract class PPF07_Class {
26
 
27
 
28
  /**
inc/ppf/ppf-plugin-addon.php CHANGED
@@ -3,17 +3,17 @@
3
  /**
4
  * Plugin Addon Base Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
- if ( !class_exists( 'PPF06_Plugin_Addon' ) ) {
15
 
16
- abstract class PPF06_Plugin_Addon extends PPF06_Plugin {
17
 
18
  /**
19
  * Base Plugin Name
3
  /**
4
  * Plugin Addon Base Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
+ if ( !class_exists( 'PPF07_Plugin_Addon' ) ) {
15
 
16
+ abstract class PPF07_Plugin_Addon extends PPF07_Plugin {
17
 
18
  /**
19
  * Base Plugin Name
inc/ppf/ppf-plugin.php CHANGED
@@ -3,17 +3,17 @@
3
  /**
4
  * Plugin Base Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
- if ( !class_exists( 'PPF06_Plugin' ) ) {
15
 
16
- abstract class PPF06_Plugin extends PPF06_Class {
17
 
18
  /**
19
  * Instances
3
  /**
4
  * Plugin Base Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
+ if ( !class_exists( 'PPF07_Plugin' ) ) {
15
 
16
+ abstract class PPF07_Plugin extends PPF07_Class {
17
 
18
  /**
19
  * Instances
inc/ppf/ppf-settings.php CHANGED
@@ -3,17 +3,17 @@
3
  /**
4
  * Settings Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
- if ( !class_exists( 'PPF06_Settings' ) ) {
14
 
15
 
16
- abstract class PPF06_Settings extends PPF06_SubClass {
17
 
18
  /**
19
  * name of settings in databse (meta_key)
3
  /**
4
  * Settings Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF07_Settings' ) ) {
14
 
15
 
16
+ abstract class PPF07_Settings extends PPF07_SubClass {
17
 
18
  /**
19
  * name of settings in databse (meta_key)
inc/ppf/ppf-subclass.php CHANGED
@@ -3,17 +3,17 @@
3
  /**
4
  * Plugin Base Sub-Class
5
  *
6
- * Peter's Plugins Foundation 06
7
  *
8
- * @package PPF06
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
- if ( !class_exists( 'PPF06_SubClass' ) ) {
14
 
15
 
16
- abstract class PPF06_SubClass extends PPF06_Class {
17
 
18
  /**
19
  * reference to core class
3
  /**
4
  * Plugin Base Sub-Class
5
  *
6
+ * Peter's Plugins Foundation 07
7
  *
8
+ * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF07_SubClass' ) ) {
14
 
15
 
16
+ abstract class PPF07_SubClass extends PPF07_Class {
17
 
18
  /**
19
  * reference to core class
loader.php CHANGED
@@ -42,7 +42,7 @@ function pp_404page() {
42
  'slug' => pathinfo( dirname( __FILE__ ) . '/404page.php', PATHINFO_FILENAME ),
43
  'name' => '404page - your smart custom 404 error page',
44
  'shortname' => '404page',
45
- 'version' => '11.2.6'
46
  ) );
47
 
48
  }
42
  'slug' => pathinfo( dirname( __FILE__ ) . '/404page.php', PATHINFO_FILENAME ),
43
  'name' => '404page - your smart custom 404 error page',
44
  'shortname' => '404page',
45
+ 'version' => '11.3.0'
46
  ) );
47
 
48
  }
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: petersplugins
3
  Tags: page, 404, error, error page, 404 page, page not found, page not found error, 404 error page, missing, broken link, template, 404 link, seo, custom 404, custom 404 page, custom 404 error, custom 404 error page, customize 404, customize 404 page, customize 404 error page, classicpress
4
  Requires at least: 4.0
5
- Tested up to: 5.6
6
- Stable tag: 11.2.6
7
  Requires PHP: 5.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -172,6 +172,10 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
172
 
173
  == Changelog ==
174
 
 
 
 
 
175
  = 11.2.6 (2020-08-23) =
176
  * Plugin Foundation updated to PPF06
177
 
@@ -361,6 +365,9 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
361
 
362
  == Upgrade Notice ==
363
 
 
 
 
364
  = 11.2.6 =
365
  Plugin Foundation updated to PPF06
366
 
2
  Contributors: petersplugins
3
  Tags: page, 404, error, error page, 404 page, page not found, page not found error, 404 error page, missing, broken link, template, 404 link, seo, custom 404, custom 404 page, custom 404 error, custom 404 error page, customize 404, customize 404 page, customize 404 error page, classicpress
4
  Requires at least: 4.0
5
+ Tested up to: 5.9
6
+ Stable tag: 11.3.0
7
  Requires PHP: 5.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
172
 
173
  == Changelog ==
174
 
175
+ = 11.3.0 (2021-01-06) =
176
+ * new option to always send an 410 instead of an 404
177
+ * Plugin Foundation updated to PPF07
178
+
179
  = 11.2.6 (2020-08-23) =
180
  * Plugin Foundation updated to PPF06
181
 
365
 
366
  == Upgrade Notice ==
367
 
368
+ = 11.3.0 =
369
+ new option to always send an 410 instead of an 404
370
+
371
  = 11.2.6 =
372
  Plugin Foundation updated to PPF06
373