WordPress Zero Spam - Version 4.9.11

Version Description

  • Optimization - Converted the WPZS JS to be a jQuery plugin to initialize and manage easier.
  • Fix - Fix for WPZS failing when the Autoptimize plugin is set to aggregate JS files. See #205.
Download this release

Release Info

Developer bmarshall511
Plugin Icon 128x128 WordPress Zero Spam
Version 4.9.11
Comparing to
See all releases

Code changes from version 4.9.10 to 4.9.11

assets/js/wpzerospam.js CHANGED
@@ -1,43 +1,58 @@
1
- var WordPressZeroSpam = {
2
- init: function() {
3
- // Make sure the WordPress Zero Spam key is available.
4
- if ( typeof wpzerospam.key == "undefined" ) { return; }
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- $form = jQuery( '.wpzerospam' );
 
7
 
8
- // If the form can't be found & should be, send a message to the console.
9
- if ( ! $form.length ) {
10
  console.log(
11
- 'WordPress Zero Spam was unable to locate any custom forms (.wpzerospam)'
12
  );
13
- return true;
 
14
  }
15
 
16
  console.log(
17
- 'WordPress Zero Spam located ' + $form.length + ' custom form(s) (.wpzerospam)'
 
 
 
 
18
  );
19
 
20
- $form.attr( 'data-wpzerospam', 'protected' );
21
-
22
- jQuery( '.wpzerospam' ).on( "submit", function() {
23
- if ( ! jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).length ) {
24
- jQuery( "<input>" )
25
- .attr( "type", "hidden" )
26
- .attr( "name", "wpzerospam_key" )
27
- .attr( "value", wpzerospam.key )
28
- .appendTo( '.wpzerospam' );
29
- } else {
30
- jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).value( wpzerospam.key );
31
- }
32
-
33
- return true;
34
- });
35
- }
36
- };
37
-
38
- // Will hold the enqueues integrations on request.
39
- var WordPressZeroSpamIntegrations = {};
40
 
 
41
  jQuery(function() {
42
- WordPressZeroSpam.init();
43
  });
1
+ /**
2
+ * WordPress Zero Spam jQuery plugin.
3
+ *
4
+ * Handles adding the required functionality for spam detections.
5
+ *
6
+ * @since 4.9.11
7
+ */
8
+ (function ($) {
9
+ $.fn.WordPressZeroSpam = function () {
10
+ // Check if the required WPZS key is defined.
11
+ if (typeof wpzerospam.key == "undefined") {
12
+ // The key is not defined, alert the site owner via the console.
13
+ console.log(
14
+ "WordPress Zero Spam is unable to initialize, missing the required key."
15
+ );
16
 
17
+ return this;
18
+ }
19
 
20
+ // Check if the element is on the page.
21
+ if (!this.length) {
22
  console.log(
23
+ "WordPress Zero Spam could not find a " + this.selector + " instance."
24
  );
25
+
26
+ return this;
27
  }
28
 
29
  console.log(
30
+ "WordPress Zero Spam found " +
31
+ this.length +
32
+ " instance(s) of " +
33
+ this.selector +
34
+ "."
35
  );
36
 
37
+ // Add an attribute to the element to show its been initialized by WPZS.
38
+ this.attr("data-wpzerospam", "protected");
39
+
40
+ // Check if the WPZS hidden input already exists.
41
+ if ($('[name="wpzerospam_key"]', this).length) {
42
+ // Hidden input already exists, update its value.
43
+ $('[name="wpzerospam_key"]', this).val(wpzerospam.key);
44
+ } else {
45
+ // Hidden input isn't present, add it.
46
+ $(
47
+ '<input type="hidden" name="wpzerospam_key" value="' +
48
+ wpzerospam.key +
49
+ '" />'
50
+ ).appendTo(this);
51
+ }
52
+ };
53
+ })(jQuery);
 
 
 
54
 
55
+ // Initialize WPZS on form elements with the wpzerospam class.
56
  jQuery(function() {
57
+ jQuery(".wpzerospam").WordPressZeroSpam();
58
  });
inc/helpers.php CHANGED
@@ -381,10 +381,15 @@ function wpzerospam_share_detection( $data ) {
381
  $request_args = [
382
  'method' => 'POST',
383
  'body' => [
384
- 'ip' => $data['ip'],
385
- 'type' => $data['type'],
386
- 'site' => site_url(),
387
- 'version' => WORDPRESS_ZERO_SPAM_VERSION
 
 
 
 
 
388
  ],
389
  'sslverify' => true
390
  ];
381
  $request_args = [
382
  'method' => 'POST',
383
  'body' => [
384
+ 'ip' => $data['ip'],
385
+ 'type' => $data['type'],
386
+ 'site' => site_url(),
387
+ 'email' => get_bloginfo( 'admin_email' ),
388
+ 'wpversion' => get_bloginfo( 'version' ),
389
+ 'name' => get_bloginfo( 'name' ),
390
+ 'desc' => get_bloginfo( 'description' ),
391
+ 'language' => get_bloginfo( 'language' ),
392
+ 'version' => WORDPRESS_ZERO_SPAM_VERSION
393
  ],
394
  'sslverify' => true
395
  ];
integrations/buddypress/js/buddypress.js CHANGED
@@ -1,43 +1,4 @@
1
- /**
2
- * WordPress Zero Spam addon for handling core BuddyPress submissions.
3
- */
4
- WordPressZeroSpamIntegrations.buddyPress = {
5
- init: function() {
6
- // Make sure the WordPress Zero Spam key is available.
7
- if ( typeof wpzerospam.key == "undefined" ) { return; }
8
-
9
- var $form = jQuery( '#buddypress #signup_form' );
10
-
11
- // If the form can't be found & should be, send a message to the console.
12
- if ( ! $form.length ) {
13
- console.log(
14
- 'WordPress Zero Spam was unable to locate any BuddyPress forms (#buddypress #signup_form)'
15
- );
16
- return true;
17
- }
18
-
19
- console.log(
20
- 'WordPress Zero Spam located ' + $form.length + ' BuddyPress form(s) (#buddypress #signup_form)'
21
- );
22
-
23
- $form.attr( 'data-wpzerospam', 'protected' );
24
-
25
- $form.on( "submit", function() {
26
- if ( ! jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).length ) {
27
- jQuery( "<input>" )
28
- .attr( "type", "hidden" )
29
- .attr( "name", "wpzerospam_key" )
30
- .attr( "value", wpzerospam.key )
31
- .appendTo( $form );
32
- } else {
33
- jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).value( wpzerospam.key );
34
- }
35
-
36
- return true;
37
- });
38
- }
39
- }
40
-
41
  jQuery(function() {
42
- WordPressZeroSpamIntegrations.buddyPress.init();
43
  });
1
+ // Initialize WPZS on BuddyPress registration forms.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  jQuery(function() {
3
+ jQuery("#buddypress #signup_form").WordPressZeroSpam();
4
  });
integrations/comments/js/comments.js CHANGED
@@ -1,57 +1,4 @@
1
- /**
2
- * Spam detection for comment submissions.
3
- */
4
- try {
5
- WordPressZeroSpamIntegrations.comments = {
6
- init: function() {
7
- // Make sure the WordPress Zero Spam key is available.
8
- if ( typeof wpzerospam.key == "undefined" ) {
9
- console.log("WordPress Zero Spam was unable to locate the key for comment submission protection.");
10
- return;
11
- }
12
-
13
- // #ast-commentform - Astra theme support (changes the comment if to #ast-commentform)
14
- // @TODO - Find a better way to support the Astra theme by checking if it's enabled.
15
- var $form = jQuery( '#commentform, #ast-commentform' );
16
-
17
- // If the form can't be found & should be, send a message to the console.
18
- if ( ! $form.length ) {
19
- console.log(
20
- 'WordPress Zero Spam was unable to locate any comment forms (#commentform) on this page.'
21
- );
22
- return true;
23
- }
24
-
25
- console.log(
26
- `WordPress Zero Spam located ${$form.length} comment form(s) (#commentform) on this page.`
27
- );
28
-
29
- $form.attr( 'data-wpzerospam', 'protected' );
30
-
31
- // Triggered when the comment form is submitted
32
- $form.on( "submit", function() {
33
- // Make sure the WordPress Zero Spam key isn't already on the form, if
34
- // not, add it.
35
- if ( ! jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).length ) {
36
- jQuery( "<input>" )
37
- .attr( "type", "hidden" )
38
- .attr( "name", "wpzerospam_key" )
39
- .attr( "value", wpzerospam.key )
40
- .appendTo( jQuery(this) );
41
- } else {
42
- jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).value( wpzerospam.key );
43
- }
44
-
45
- return true;
46
- });
47
- }
48
- }
49
-
50
- jQuery(function() {
51
- WordPressZeroSpamIntegrations.comments.init();
52
- });
53
- }
54
- catch( err ) {
55
- console.log( 'WordPress Zero Spam was unable to initialize comment submission protection.' );
56
- console.log( err );
57
- }
1
+ // Initialize WPZS on comment forms.
2
+ jQuery(function() {
3
+ jQuery("#commentform, #ast-commentform").WordPressZeroSpam();
4
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
integrations/contact-form-7/js/cf7.js CHANGED
@@ -1,45 +1,4 @@
1
- /**
2
- * WordPress Zero Spam addon for handling core CF7 submissions.
3
- */
4
- WordPressZeroSpamIntegrations.cf7 = {
5
- init: function() {
6
- // Make sure the WordPress Zero Spam key is available.
7
- if ( typeof wpzerospam.key == "undefined" ) { return; }
8
-
9
- var $form = jQuery( '.wpcf7-form' );
10
-
11
- // If the form can't be found & should be, send a message to the console.
12
- if ( ! $form.length ) {
13
- console.log(
14
- 'WordPress Zero Spam was unable to locate any CF7 forms (.wpcf7-form)'
15
- );
16
- return true;
17
- }
18
-
19
- console.log(
20
- 'WordPress Zero Spam located ' + $form.length + ' CF7 form(s) (.wpcf7-form)'
21
- );
22
-
23
- $form.attr( 'data-wpzerospam', 'protected' );
24
-
25
- jQuery( ".wpcf7-submit", $form ).click( function() {
26
- // Make sure the WordPress Zero Spam key isn't already on the form, if
27
- // not, add it.
28
- if ( ! jQuery( '[name="wpzerospam_key"]', $form ).length ) {
29
- jQuery( "<input>" )
30
- .attr( "type", "hidden" )
31
- .attr( "name", "wpzerospam_key" )
32
- .attr( "value", wpzerospam.key )
33
- .appendTo( $form );
34
- } else {
35
- jQuery( '[name="wpzerospam_key"]', $form ).value( wpzerospam.key );
36
- }
37
-
38
- return true;
39
- });
40
- }
41
- }
42
-
43
  jQuery(function() {
44
- WordPressZeroSpamIntegrations.cf7.init();
45
  });
1
+ // Initialize WPZS on CF7 forms.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  jQuery(function() {
3
+ jQuery(".wpcf7-form").WordPressZeroSpam();
4
  });
integrations/fluentform/js/fluentform.js CHANGED
@@ -1,41 +1,4 @@
1
- /**
2
- * WordPress Zero Spam addon for handling core Fluent Form submissions.
3
- */
4
- WordPressZeroSpamIntegrations.fluentform = {
5
- init: function() {
6
- // Make sure the WordPress Zero Spam key is available.
7
- if ( typeof wpzerospam.key == "undefined" ) { return; }
8
-
9
- var $form = jQuery( '.frm-fluent-form' );
10
-
11
- // If the form can't be found & should be, send a message to the console.
12
- if ( ! $form.length ) {
13
- console.log(
14
- 'WordPress Zero Spam was unable to locate any Fluent Forms (.frm-fluent-form)'
15
- );
16
- return true;
17
- }
18
-
19
- console.log(
20
- 'WordPress Zero Spam located ' + $form.length + ' Fluent Form(s) (.frm-fluent-form)'
21
- );
22
-
23
- $form.attr( 'data-wpzerospam', 'protected' );
24
-
25
- jQuery( $form ).submit( function() {console.log('sdsd');
26
- if ( ! jQuery( '[name="wpzerospam_key"]', $form ).length ) {
27
- jQuery( "<input>" )
28
- .attr( "type", "hidden" )
29
- .attr( "name", "wpzerospam_key" )
30
- .attr( "value", wpzerospam.key )
31
- .appendTo( $form );
32
- } else {
33
- jQuery( '[name="wpzerospam_key"]', $form ).value( wpzerospam.key );
34
- }
35
- });
36
- }
37
- }
38
-
39
  jQuery(function() {
40
- WordPressZeroSpamIntegrations.fluentform.init();
41
  });
1
+ // Initialize WPZS on Fluent Forms.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  jQuery(function() {
3
+ jQuery(".frm-fluent-form").WordPressZeroSpam();
4
  });
integrations/formidable/formidable.php CHANGED
@@ -67,7 +67,6 @@ add_action( 'frm_entry_form', 'wpzerospam_formidable_frm_entry_form' );
67
  if ( ! function_exists( 'wpzerospam_formidable_frm_entries_footer_scripts' ) ) {
68
  function wpzerospam_formidable_frm_entries_footer_scripts( $fields, $form ) {
69
  ?>
70
- console.log("HEREIAM");
71
  jQuery( '[name="wpzerospam_key"]' ).val( "<?php echo wpzerospam_get_key(); ?>" );
72
  <?php
73
  }
67
  if ( ! function_exists( 'wpzerospam_formidable_frm_entries_footer_scripts' ) ) {
68
  function wpzerospam_formidable_frm_entries_footer_scripts( $fields, $form ) {
69
  ?>
 
70
  jQuery( '[name="wpzerospam_key"]' ).val( "<?php echo wpzerospam_get_key(); ?>" );
71
  <?php
72
  }
integrations/registrations/js/registrations.js CHANGED
@@ -1,45 +1,4 @@
1
- /**
2
- * WordPress Zero Spam integration for handling core registration submissions.
3
- */
4
- WordPressZeroSpamIntegrations.registrations = {
5
- init: function() {
6
- // Make sure the WordPress Zero Spam key is available.
7
- if ( typeof wpzerospam.key == "undefined" ) { return; }
8
-
9
- var $form = jQuery( '#registerform' );
10
-
11
- // If the form can't be found & should be, send a message to the console.
12
- if ( ! $form.length ) {
13
- console.log(
14
- 'WordPress Zero Spam was unable to locate any registration forms (#registerform)'
15
- );
16
- return true;
17
- }
18
-
19
- console.log(
20
- 'WordPress Zero Spam located ' + $form.length + ' registration form(s) (#registerform)'
21
- );
22
-
23
- $form.attr( 'data-wpzerospam', 'protected' );
24
-
25
- $form.on( "submit", function() {
26
- // Make sure the WordPress Zero Spam key isn't already on the form, if
27
- // not, add it.
28
- if ( ! jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).length ) {
29
- jQuery( "<input>" )
30
- .attr( "type", "hidden" )
31
- .attr( "name", "wpzerospam_key" )
32
- .attr( "value", wpzerospam.key )
33
- .appendTo( jQuery(this) );
34
- } else {
35
- jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).value( wpzerospam.key );
36
- }
37
-
38
- return true;
39
- });
40
- }
41
- }
42
-
43
  jQuery(function() {
44
- WordPressZeroSpamIntegrations.registrations.init();
45
  });
1
+ // Initialize WPZS on registration forms.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  jQuery(function() {
3
+ jQuery("#registerform").WordPressZeroSpam();
4
  });
integrations/wpforms/js/wpforms.js CHANGED
@@ -1,45 +1,4 @@
1
- /**
2
- * WordPress Zero Spam integration for handling WP forms.
3
- */
4
- WordPressZeroSpamIntegrations.wpforms = {
5
- init: function() {
6
- // Make sure the WordPress Zero Spam key is available.
7
- if ( typeof wpzerospam.key == "undefined" ) { return; }
8
-
9
- var $form = jQuery( '.wpforms-form' );
10
-
11
- // If the form can't be found & should be, send a message to the console.
12
- if ( ! $form.length ) {
13
- console.log(
14
- 'WordPress Zero Spam was unable to locate any WP Forms (.wpforms-form)'
15
- );
16
- return true;
17
- }
18
-
19
- console.log(
20
- 'WordPress Zero Spam located ' + $form.length + ' WP Form(s) (.wpforms-form)'
21
- );
22
-
23
- $form.attr( 'data-wpzerospam', 'protected' );
24
-
25
- $form.on( "submit", function() {
26
- // Make sure the WordPress Zero Spam key isn't already on the form, if
27
- // not, add it.
28
- if ( ! jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).length ) {
29
- jQuery( "<input>" )
30
- .attr( "type", "hidden" )
31
- .attr( "name", "wpzerospam_key" )
32
- .attr( "value", wpzerospam.key )
33
- .appendTo( jQuery(this) );
34
- } else {
35
- jQuery( '[name="wpzerospam_key"]', jQuery( this ) ).value( wpzerospam.key );
36
- }
37
-
38
- return true;
39
- });
40
- }
41
- }
42
-
43
  jQuery(function() {
44
- WordPressZeroSpamIntegrations.wpforms.init();
45
  });
1
+ // Initialize WPZS on WPForms.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  jQuery(function() {
3
+ jQuery(".wpforms-form").WordPressZeroSpam();
4
  });
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://benmarshall.me/donate/?utm_source=wordpress_zero_spam&utm_m
5
  Requires at least: 5.2
6
  Tested up to: 5.4.2
7
  Requires PHP: 7.1
8
- Stable tag: 4.9.10
9
  License: GNU GPLv3
10
  License URI: https://choosealicense.com/licenses/gpl-3.0/
11
 
@@ -73,19 +73,19 @@ For more information & developer documentation, see the [plugin’s website](htt
73
 
74
  = Does WordPress Zero Spam check Ninja Forms submissions? =
75
 
76
- No. As of v4.10.0, WordPress Zero Spam no longer checks Ninja Form submissions. Support was dropped due to its [requirement of JavaScript](https://developer.ninjaforms.com/codex/loading-the-form-via-ajax/) and how it submits forms. JavaScript is one of the techniques WordPress Zero Spam uses to determine if a submission is spam. Ninja Forms employs a similar method and has its own [spam detection](https://ninjaforms.com/blog/spam-wordpress-form/) feature.
77
 
78
- Does this mean WPZP won't do you any good? **Absolutely not.** WPZS employs other techniques and IP blacklist checks that will help prevent malicious IP and spambots from ever seeing your site. You will still get all of the benefits of this plugin, it just won't provide the extra check on Ninja Form submissions.
79
 
80
  = Does WordPress Zero Spam check Gravity Form submissions? =
81
 
82
- No. As of v4.9.9, WordPress Zero Spam no longer checks Gravity Form submissions. Support was dropped due the numerous addon plugins that can be installed & alter GF submissions. These addons will often conflict with how WPZS validates submissions. In addition, Gravity Forms already has a spam detection option that works similar to how this plugin detects forms. You can enable it by going to the form settings and checking the *Enable anti-spam honeypot* option. For more information, see [Gravity Forms documentation](https://docs.gravityforms.com/form-settings/).
83
 
84
- Does this mean WPZP won't do you any good? **Absolutely not.** WPZS employs other techniques and IP blacklist checks that will help prevent malicious IP and spambots from ever seeing your site. You will still get all of the benefits of this plugin, it just won't provide the extra check on Gravity Form submissions.
85
 
86
  = Does WordPress Zero Spam check Jetpack comments? =
87
 
88
- No. WordPress Zero Spam is unable to integrate Jetpack. For more information, see [https://wordpress.org/support/topic/incompatible-with-jetpack-comments](https://wordpress.org/support/topic/incompatible-with-jetpack-comments).
89
 
90
  = Spam coments are still getting through, help! =
91
 
@@ -115,7 +115,7 @@ Yes. One of the many techniques WordPress Zero Spam employs requires JavaScript
115
 
116
  = Does WordPress Zero Spam use cookies? =
117
 
118
- Yes. It does not store any kind of personally identifiable information. Only one cookie is stored (`wpzerospam_api_blacklist`) to log the last time the site queried the blacklist APIs. This is used to boost performance so each page visit doesn't trigger an API call. The expiration can be set in *Admin > WP Zero Spam > Settings*
119
 
120
  == Screenshots ==
121
 
@@ -127,6 +127,11 @@ Yes. It does not store any kind of personally identifiable information. Only one
127
 
128
  == Changelog ==
129
 
 
 
 
 
 
130
  = 4.9.10 =
131
 
132
  * Fix - Fix for PHP notice relating to an undefined variable, `strip_comment_links`. See [https://wordpress.org/support/topic/im-getting-this-after-latest-update/](https://wordpress.org/support/topic/im-getting-this-after-latest-update/).
5
  Requires at least: 5.2
6
  Tested up to: 5.4.2
7
  Requires PHP: 7.1
8
+ Stable tag: 4.9.11
9
  License: GNU GPLv3
10
  License URI: https://choosealicense.com/licenses/gpl-3.0/
11
 
73
 
74
  = Does WordPress Zero Spam check Ninja Forms submissions? =
75
 
76
+ **No.** As of v4.10.0, WordPress Zero Spam no longer checks Ninja Form submissions. Support was dropped due to its [requirement of JavaScript](https://developer.ninjaforms.com/codex/loading-the-form-via-ajax/) and how it submits forms. JavaScript is one of the techniques WordPress Zero Spam uses to determine if a submission is spam. Ninja Forms employs a similar method and has its own [spam detection](https://ninjaforms.com/blog/spam-wordpress-form/) feature.
77
 
78
+ **Does this mean WPZP won't do you any good? Absolutely not.** WPZS employs other techniques and IP blacklist checks that will help prevent malicious IP and spambots from ever seeing your site. You will still get all of the benefits of this plugin, it just won't provide the extra check on Ninja Form submissions.
79
 
80
  = Does WordPress Zero Spam check Gravity Form submissions? =
81
 
82
+ **No.** As of v4.9.9, WordPress Zero Spam no longer checks Gravity Form submissions. Support was dropped due the numerous addon plugins that can be installed & alter GF submissions. These addons will often conflict with how WPZS validates submissions. In addition, Gravity Forms already has a spam detection option that works similar to how this plugin detects forms. You can enable it by going to the form settings and checking the *Enable anti-spam honeypot* option. For more information, see [Gravity Forms documentation](https://docs.gravityforms.com/form-settings/).
83
 
84
+ **Does this mean WPZP won't do you any good? Absolutely not.** WPZS employs other techniques and IP blacklist checks that will help prevent malicious IP and spambots from ever seeing your site. You will still get all of the benefits of this plugin, it just won't provide the extra check on Gravity Form submissions.
85
 
86
  = Does WordPress Zero Spam check Jetpack comments? =
87
 
88
+ **No.** WordPress Zero Spam is unable to integrate Jetpack. For more information, see [https://wordpress.org/support/topic/incompatible-with-jetpack-comments](https://wordpress.org/support/topic/incompatible-with-jetpack-comments).
89
 
90
  = Spam coments are still getting through, help! =
91
 
115
 
116
  = Does WordPress Zero Spam use cookies? =
117
 
118
+ **Yes. It does not store any kind of personally identifiable information.** Only one cookie is stored (`wpzerospam_api_blacklist`) to log the last time the site queried the blacklist APIs. This is used to boost performance so each page visit doesn't trigger an API call. The expiration can be set in *Admin > WP Zero Spam > Settings*
119
 
120
  == Screenshots ==
121
 
127
 
128
  == Changelog ==
129
 
130
+ = 4.9.11 =
131
+
132
+ * Optimization - Converted the WPZS JS to be a jQuery plugin to initialize and manage easier.
133
+ * Fix - Fix for WPZS failing when the Autoptimize plugin is set to aggregate JS files. See [#205](https://github.com/bmarshall511/wordpress-zero-spam/issues/205).
134
+
135
  = 4.9.10 =
136
 
137
  * Fix - Fix for PHP notice relating to an undefined variable, `strip_comment_links`. See [https://wordpress.org/support/topic/im-getting-this-after-latest-update/](https://wordpress.org/support/topic/im-getting-this-after-latest-update/).
wordpress-zero-spam.php CHANGED
@@ -13,7 +13,7 @@
13
  * Plugin Name: WordPress Zero Spam
14
  * Plugin URI: https://benmarshall.me/wordpress-zero-spam
15
  * Description: Tired of all the useless and bloated WordPress spam plugins? The WordPress Zero Spam plugin makes blocking spam a cinch. <strong>Just install, activate and say goodbye to spam.</strong> Based on work by <a href="http://davidwalsh.name/wordpress-comment-spam" target="_blank">David Walsh</a>.
16
- * Version: 4.9.10
17
  * Requires at least: 5.2
18
  * Requires PHP: 7.2
19
  * Author: Ben Marshall
@@ -31,7 +31,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
31
  // Define plugin constants
32
  define( 'WORDPRESS_ZERO_SPAM', __FILE__ );
33
  define( 'WORDPRESS_ZERO_SPAM_DB_VERSION', '0.5' );
34
- define( 'WORDPRESS_ZERO_SPAM_VERSION', '4.9.10' );
35
 
36
  /**
37
  * Utility helper functions
13
  * Plugin Name: WordPress Zero Spam
14
  * Plugin URI: https://benmarshall.me/wordpress-zero-spam
15
  * Description: Tired of all the useless and bloated WordPress spam plugins? The WordPress Zero Spam plugin makes blocking spam a cinch. <strong>Just install, activate and say goodbye to spam.</strong> Based on work by <a href="http://davidwalsh.name/wordpress-comment-spam" target="_blank">David Walsh</a>.
16
+ * Version: 4.9.11
17
  * Requires at least: 5.2
18
  * Requires PHP: 7.2
19
  * Author: Ben Marshall
31
  // Define plugin constants
32
  define( 'WORDPRESS_ZERO_SPAM', __FILE__ );
33
  define( 'WORDPRESS_ZERO_SPAM_DB_VERSION', '0.5' );
34
+ define( 'WORDPRESS_ZERO_SPAM_VERSION', '4.9.11' );
35
 
36
  /**
37
  * Utility helper functions