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

Version Description

  • internal improvements without functional changes
Download this release

Release Info

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

Code changes from version 11.3.0 to 11.3.1

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.3.0
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.1
13
  * Author: Peter Raschendorfer
14
  * Author URI: https://petersplugins.com
15
  * Text Domain: 404page
assets/img/pluginicon.png DELETED
Binary file
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 PPF07_Admin {
19
 
20
 
21
  /**
@@ -34,16 +34,14 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
34
  'button_no' => esc_html( 'Not really', '404page' ),
35
  'button_later' => esc_html( 'Ask me later', '404page' ),
36
  'button_close' => esc_html( 'Never show again', '404page' ),
37
- 'like' => esc_html( 'I\'m really glad you like it. I do not ask for a donation. All I\'m asking you for is to give it a good rating. Thank you very much. If you like, you can follow me on facebook.', '404page' ),
38
  'button_rate' => esc_html( 'Yes, I\'d like to rate it', '404page' ),
39
- 'button_fb' => esc_html( 'Open Facebook page', '404page' ),
40
  'dislike' => esc_html( 'I\'m really sorry you don\'t like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...', '404page' ),
41
  'button_contact' => esc_html( 'Yes sure', '404page' )
42
  ),
43
  array(
44
  'rate' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug() . '/reviews/',
45
- 'contact' => 'https://petersplugins.com/contact/',
46
- 'facebook' => 'https://www.facebook.com/petersplugins/'
47
  ));
48
 
49
  $this->add_actions( array(
@@ -517,16 +515,6 @@ if ( !class_exists( 'PP_404Page_Admin' ) ) {
517
  'link' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug(),
518
  'title' => __( 'Support', '404page' ),
519
  'icon' => 'dashicons-editor-help'
520
- ),
521
- array(
522
- 'link' => 'https://petersplugins.com/',
523
- 'title' => __( 'Authors Website', '404page' ),
524
- 'icon' => 'dashicons-admin-home'
525
- ),
526
- array(
527
- 'link' => 'https://www.facebook.com/petersplugins/',
528
- 'title' => __( 'Authors Facebook Page', '404page' ),
529
- 'icon' => 'dashicons-facebook-alt'
530
  )
531
 
532
  ) );
15
  */
16
  if ( !class_exists( 'PP_404Page_Admin' ) ) {
17
 
18
+ class PP_404Page_Admin extends PPF08_Admin {
19
 
20
 
21
  /**
34
  'button_no' => esc_html( 'Not really', '404page' ),
35
  'button_later' => esc_html( 'Ask me later', '404page' ),
36
  'button_close' => esc_html( 'Never show again', '404page' ),
37
+ 'like' => esc_html( 'I\'m really glad you like it. I do not ask for a donation. All I\'m asking you for is to give it a good rating. Thank you very much.', '404page' ),
38
  'button_rate' => esc_html( 'Yes, I\'d like to rate it', '404page' ),
 
39
  'dislike' => esc_html( 'I\'m really sorry you don\'t like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...', '404page' ),
40
  'button_contact' => esc_html( 'Yes sure', '404page' )
41
  ),
42
  array(
43
  'rate' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug() . '/reviews/',
44
+ 'contact' => 'https://petersplugins.com/contact/'
 
45
  ));
46
 
47
  $this->add_actions( array(
515
  'link' => 'https://wordpress.org/support/plugin/' . $this->core()->get_plugin_slug(),
516
  'title' => __( 'Support', '404page' ),
517
  'icon' => 'dashicons-editor-help'
 
 
 
 
 
 
 
 
 
 
518
  )
519
 
520
  ) );
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 PPF07_SubClass {
19
 
20
  /**
21
  * Do Init
15
  */
16
  if ( !class_exists( 'PP_404Page_BlockEditor' ) ) {
17
 
18
+ class PP_404Page_BlockEditor extends PPF08_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 PPF07_SubClass {
19
 
20
  /**
21
  * Do Init
15
  */
16
  if ( !class_exists( 'PP_404Page_ClassicEditor' ) ) {
17
 
18
+ class PP_404Page_ClassicEditor extends PPF08_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 PPF07_SubClass {
21
 
22
  /**
23
  * Do Init
17
  */
18
  if ( !class_exists( 'PP_404Page_Deprecated' ) ) {
19
 
20
+ class PP_404Page_Deprecated extends PPF08_SubClass {
21
 
22
  /**
23
  * Do Init
inc/class-404page-settings.php CHANGED
@@ -17,15 +17,15 @@ if ( ! defined( 'WPINC' ) ) {
17
  */
18
  if ( !class_exists( 'PP_404Page_Settings' ) ) {
19
 
20
- class PP_404Page_Settings extends PPF07_Settings {
21
 
22
  /**
23
  * sanitize settings
24
  *
25
  * @since 11.0.0
26
- * @access private
27
  */
28
- private function sanitize_settings() {
29
 
30
  // Set page ID to -1 if the page does not exist or is not published
31
 
17
  */
18
  if ( !class_exists( 'PP_404Page_Settings' ) ) {
19
 
20
+ class PP_404Page_Settings extends PPF08_Settings {
21
 
22
  /**
23
  * sanitize settings
24
  *
25
  * @since 11.0.0
26
+ * @access public
27
  */
28
+ public function sanitize_settings() {
29
 
30
  // Set page ID to -1 if the page does not exist or is not published
31
 
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 PPF07_Plugin {
27
 
28
 
29
  /**
23
  if ( !class_exists( 'PP_404Page' ) ) {
24
 
25
 
26
+ class PP_404Page extends PPF08_Plugin {
27
 
28
 
29
  /**
inc/ppf/assets/css/pp-admin-page.css CHANGED
@@ -28,26 +28,26 @@ body {
28
  }
29
 
30
  .pp-admin-page-header nav {
31
- margin-right: 12px;
32
  text-align: right;
33
  line-height: 1;
 
34
  }
35
 
36
  .rtl .pp-admin-page-header nav {
37
  text-align: left;
38
  margin-right: 0;
39
- margin-left: 12px;
40
  }
41
 
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;
49
- line-height: 20px;
50
- border-bottom: 2px solid transparent;
51
  }
52
 
53
  .pp-admin-page-header nav a span.text {
@@ -63,40 +63,22 @@ body {
63
  @media only screen and (max-width: 960px) {
64
  .pp-admin-page-header nav a {
65
  font-size: 36px;
66
- padding: 6px 12px;
67
  }
68
  .pp-admin-page-header nav a span.text {
69
  display: none;
70
  }
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 {
90
- padding-left: 0;
91
- padding-right: 80px;
92
- background-position: right top;
93
- }
94
-
95
- @media only screen and (max-width: 960px) {
96
- .pp-admin-page-title h1 {
97
- line-height: 1.2;
98
- min-height: 64px;
99
- }
100
  }
101
 
102
  .pp-admin-page-header .tab-navigation {
@@ -204,13 +186,13 @@ body {
204
 
205
  .pp-admin-page-wrapper .form-table td {
206
  padding: 0;
207
- margin-bottom: 20px;
208
  }
209
 
210
  .pp-admin-page-wrapper .form-table td p {
211
  padding: 0;
212
  line-height: 1.2;
213
- margin-bottom: 20px;
214
  }
215
 
216
  .pp-admin-page-wrapper .form-table th {
@@ -227,11 +209,11 @@ body {
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 {
28
  }
29
 
30
  .pp-admin-page-header nav {
31
+ margin-right: 24px;
32
  text-align: right;
33
  line-height: 1;
34
+ padding-top: 6px;
35
  }
36
 
37
  .rtl .pp-admin-page-header nav {
38
  text-align: left;
39
  margin-right: 0;
40
+ margin-left: 24px;
41
  }
42
 
43
  .pp-admin-page-header nav a {
44
  display: inline-block;
45
+ padding: 0 3px;
46
  color: #434343;
47
  text-decoration: none;
48
  font-size: 12px;
49
+ height: 24px;
50
+ line-height: 24px;
 
51
  }
52
 
53
  .pp-admin-page-header nav a span.text {
63
  @media only screen and (max-width: 960px) {
64
  .pp-admin-page-header nav a {
65
  font-size: 36px;
66
+ padding: 0 12px;
67
  }
68
  .pp-admin-page-header nav a span.text {
69
  display: none;
70
  }
71
  }
72
 
 
 
 
 
73
  .pp-admin-page-title {
74
+ padding: 12px 24px;
75
+ color: #434343;
76
  }
77
 
78
  .pp-admin-page-title h1 {
 
 
 
 
79
  color: #434343;
80
+ margin: 0;
81
+ padding: 0;
 
 
 
 
 
 
 
 
 
 
 
82
  }
83
 
84
  .pp-admin-page-header .tab-navigation {
186
 
187
  .pp-admin-page-wrapper .form-table td {
188
  padding: 0;
189
+ margin-bottom: 24px;
190
  }
191
 
192
  .pp-admin-page-wrapper .form-table td p {
193
  padding: 0;
194
  line-height: 1.2;
195
+ margin-bottom: 24px;
196
  }
197
 
198
  .pp-admin-page-wrapper .form-table th {
209
 
210
  .pp-admin-page-wrapper a {
211
  color: #4D648D;
212
+ transition: color 0.3s ease;
213
  }
214
 
215
  .pp-admin-page-wrapper a:hover, .pp-admin-page-wrapper a:focus {
216
+ color: #0073aa;
217
  }
218
 
219
  .pp-admin-page-wrapper .toggle {
inc/ppf/loader.php CHANGED
@@ -3,9 +3,9 @@
3
  /**
4
  * Plugin Foundation Loader
5
  *
6
- * Peter's Plugins Foundation 07
7
  *
8
- * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
3
  /**
4
  * Plugin Foundation Loader
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
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 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
  /**
@@ -152,10 +152,12 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
152
  * since PPF05
153
  * string $html => HTML code to add to this section
154
  * array $fields => multidimensional array of fields to add
155
- * string $key => key of the option array
156
- * string $callback => function to call
157
- * as of PPF04 this can be an array to enable external callbacks
158
- * bool $nosubmit => this section should not show the submit button
 
 
159
  * @access private
160
  */
161
  private function add_settings( $settings ) {
@@ -178,8 +180,16 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
178
  $callback = array( $this, $field['callback'] );
179
 
180
  }
181
-
182
- add_settings_field( $field_id, '' , $callback, $this->core()->get_plugin_slug(), $section_id );
 
 
 
 
 
 
 
 
183
 
184
  }
185
 
@@ -551,15 +561,13 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
551
  * string $button_no => e.g. 'Not really'
552
  * string $button_later => e.g. 'Ask me later'
553
  * string $button_close => e.g. 'Never show again'
554
- * string $like => e.g. 'I'm really glad you like it. I do not ask for a donation. All I'm asking you for is to give it a good rating. Thank you very much. If you like, you can follow me on facebook.
555
  * string $button_rate => e.g. 'Yes, I'd like to rate it'
556
- * string $button_fb => e.g. 'Open Facebook page'
557
  * string $dislike => e.g. 'I'm really sorry you don't like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...'
558
  * string $button_contact => e.g. 'Yes sure'
559
  * @param array $links array of links
560
  * string $rate => e.g. https://wordpress.org/support/plugin/example/reviews/
561
  * string $contact => e.g. https://petersplugins.com/contact/
562
- * string $facebook => e.g.https://www.facebook.com/petersplugins/
563
  * @access public
564
  */
565
  public function init_rating_notice( $content, $links ) {
@@ -611,7 +619,7 @@ if ( !class_exists( 'PPF07_Admin' ) ) {
611
  </div>
612
  <div id="<?php echo $prefix; ?>-review-step-like" class="<?php echo $prefix; ?>-review-notice-step">
613
  <p><?php echo $content['like']; ?></p>
614
- <p><a class="button button-primary" href="<?php echo $links['rate']; ?>"><?php echo $content['button_rate']; ?></a> <a class="button" href="<?php echo $links['facebook']; ?>"><?php echo $content['button_fb']; ?></a></p>
615
  </div>
616
  <div id="<?php echo $prefix; ?>-review-step-dislike" class="<?php echo $prefix; ?>-review-notice-step">
617
  <p><?php echo $content['dislike']; ?></p>
3
  /**
4
  * Admin Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF08_Admin' ) ) {
14
 
15
 
16
+ abstract class PPF08_Admin extends PPF08_SubClass {
17
 
18
 
19
  /**
152
  * since PPF05
153
  * string $html => HTML code to add to this section
154
  * array $fields => multidimensional array of fields to add
155
+ * string $key => key of the option array
156
+ * string $callback => function to call
157
+ * as of PPF04 this can be an array to enable external callbacks
158
+ * array $callbackargs => array of arguments to pass to callback function
159
+ * introduced in PPF08
160
+ * bool $nosubmit => this section should not show the submit button
161
  * @access private
162
  */
163
  private function add_settings( $settings ) {
180
  $callback = array( $this, $field['callback'] );
181
 
182
  }
183
+
184
+ $callbackargs = false;
185
+
186
+ if ( isset( $field['callbackargs'] ) && is_array( $field['callbackargs'] ) ) {
187
+
188
+ $callbackargs = $field['callbackargs'];
189
+
190
+ }
191
+
192
+ add_settings_field( $field_id, '' , $callback, $this->core()->get_plugin_slug(), $section_id, $callbackargs );
193
 
194
  }
195
 
561
  * string $button_no => e.g. 'Not really'
562
  * string $button_later => e.g. 'Ask me later'
563
  * string $button_close => e.g. 'Never show again'
564
+ * string $like => e.g. 'I'm really glad you like it. I do not ask for a donation. All I'm asking you for is to give it a good rating. Thank you very much.
565
  * string $button_rate => e.g. 'Yes, I'd like to rate it'
 
566
  * string $dislike => e.g. 'I'm really sorry you don't like it. Would you please do me a favor and drop me line, why you are not happy with it? Maybe I can do better...'
567
  * string $button_contact => e.g. 'Yes sure'
568
  * @param array $links array of links
569
  * string $rate => e.g. https://wordpress.org/support/plugin/example/reviews/
570
  * string $contact => e.g. https://petersplugins.com/contact/
 
571
  * @access public
572
  */
573
  public function init_rating_notice( $content, $links ) {
619
  </div>
620
  <div id="<?php echo $prefix; ?>-review-step-like" class="<?php echo $prefix; ?>-review-notice-step">
621
  <p><?php echo $content['like']; ?></p>
622
+ <p><a class="button button-primary" href="<?php echo $links['rate']; ?>"><?php echo $content['button_rate']; ?></a></p>
623
  </div>
624
  <div id="<?php echo $prefix; ?>-review-step-dislike" class="<?php echo $prefix; ?>-review-notice-step">
625
  <p><?php echo $content['dislike']; ?></p>
inc/ppf/ppf-class.php CHANGED
@@ -3,9 +3,9 @@
3
  /**
4
  * Base Class
5
  *
6
- * Peter's Plugins Foundation 07
7
  *
8
- * @package PPF07
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
@@ -19,10 +19,10 @@
19
  }
20
 
21
 
22
- if ( !class_exists( 'PPF07_Class' ) ) {
23
 
24
 
25
- abstract class PPF07_Class {
26
 
27
 
28
  /**
3
  /**
4
  * Base Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
19
  }
20
 
21
 
22
+ if ( !class_exists( 'PPF08_Class' ) ) {
23
 
24
 
25
+ abstract class PPF08_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 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
3
  /**
4
  * Plugin Addon Base Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
+ if ( !class_exists( 'PPF08_Plugin_Addon' ) ) {
15
 
16
+ abstract class PPF08_Plugin_Addon extends PPF08_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 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
3
  /**
4
  * Plugin Base Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
 
14
+ if ( !class_exists( 'PPF08_Plugin' ) ) {
15
 
16
+ abstract class PPF08_Plugin extends PPF08_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 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)
@@ -107,13 +107,13 @@ if ( !class_exists( 'PPF07_Settings' ) ) {
107
 
108
 
109
  /**
110
- * sanitize settings
111
  * this function can be used to sanitize settings after they are loaded
112
  *
113
  * @since PPF01
114
- * @access private
115
  */
116
- private function sanitize_settings() {
117
 
118
  // Just to be defined here
119
 
3
  /**
4
  * Settings Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF08_Settings' ) ) {
14
 
15
 
16
+ abstract class PPF08_Settings extends PPF08_SubClass {
17
 
18
  /**
19
  * name of settings in databse (meta_key)
107
 
108
 
109
  /**
110
+ * sanitize settings
111
  * this function can be used to sanitize settings after they are loaded
112
  *
113
  * @since PPF01
114
+ * @access public
115
  */
116
+ public function sanitize_settings() {
117
 
118
  // Just to be defined here
119
 
inc/ppf/ppf-subclass.php CHANGED
@@ -3,17 +3,17 @@
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
3
  /**
4
  * Plugin Base Sub-Class
5
  *
6
+ * Peter's Plugins Foundation 08
7
  *
8
+ * @package PPF08
9
  * @author Peter Raschendorfer
10
  * @license GPL2+
11
  */
12
 
13
+ if ( !class_exists( 'PPF08_SubClass' ) ) {
14
 
15
 
16
+ abstract class PPF08_SubClass extends PPF08_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.3.0'
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.1'
46
  ) );
47
 
48
  }
readme.txt CHANGED
@@ -3,7 +3,7 @@ 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
@@ -22,6 +22,11 @@ This handy plugin allows you to easily create your own 404 error page without an
22
 
23
  Create your custom 404 error page just like any other page using the WordPress Page Editor. Then go to 'Appearance' -> '404 Error Page' and select the created page as your custom 404 error page. That's it!
24
 
 
 
 
 
 
25
  == Why use this plugin? ==
26
 
27
  Different from other similar plugins the 404page plugin **does not create redirects**. That’s **quite important** because a correct code 404 is delivered which tells search engines that the page does not exist and has to be removed from the index.
@@ -140,11 +145,6 @@ This plugin is compatible with [ClassicPress](https://www.classicpress.net/).
140
  * **[smart User Slug Hider](https://wordpress.org/plugins/smart-user-slug-hider/)** - Hide usernames in author pages URLs to enhance security
141
  * [See all](https://profiles.wordpress.org/petersplugins/#content-plugins)
142
 
143
- == Stay up to date ==
144
-
145
- [Follow me on Facebook](https://www.facebook.com/petersplugins/)
146
- [YouTube Channel](https://www.youtube.com/channel/UCDnOjy99A7Oeq2dTWxqWEIA)
147
-
148
  == Screenshots ==
149
 
150
  1. The default 404 error page of the Twenty Twenty theme
@@ -172,6 +172,10 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
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
@@ -365,6 +369,9 @@ Please use the [Support Forum](https://wordpress.org/support/plugin/404page).
365
 
366
  == Upgrade Notice ==
367
 
 
 
 
368
  = 11.3.0 =
369
  new option to always send an 410 instead of an 404
370
 
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.1
7
  Requires PHP: 5.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
22
 
23
  Create your custom 404 error page just like any other page using the WordPress Page Editor. Then go to 'Appearance' -> '404 Error Page' and select the created page as your custom 404 error page. That's it!
24
 
25
+ == Demo ==
26
+
27
+ [See it in action](https://demo.tastewp.com/404page) (no registration needed)
28
+ kindly powered by [TasteWP](https://tastewp.com/)
29
+
30
  == Why use this plugin? ==
31
 
32
  Different from other similar plugins the 404page plugin **does not create redirects**. That’s **quite important** because a correct code 404 is delivered which tells search engines that the page does not exist and has to be removed from the index.
145
  * **[smart User Slug Hider](https://wordpress.org/plugins/smart-user-slug-hider/)** - Hide usernames in author pages URLs to enhance security
146
  * [See all](https://profiles.wordpress.org/petersplugins/#content-plugins)
147
 
 
 
 
 
 
148
  == Screenshots ==
149
 
150
  1. The default 404 error page of the Twenty Twenty theme
172
 
173
  == Changelog ==
174
 
175
+ = 11.3.1 (2022-04-05) =
176
+ * just cosmetics
177
+ * Plugin Foundation updated to PPF08
178
+
179
  = 11.3.0 (2021-01-06) =
180
  * new option to always send an 410 instead of an 404
181
  * Plugin Foundation updated to PPF07
369
 
370
  == Upgrade Notice ==
371
 
372
+ = 11.3.1 =
373
+
374
+ * internal improvements without functional changes
375
  = 11.3.0 =
376
  new option to always send an 410 instead of an 404
377