Version Description
Release Date - 24 January 2022
- Improved compatibility with Formidable Forms
- Fixed a bug that could cause issues when multiple contact forms appear on one page.
- Updated delete_comment and deleted_comment actions to pass two arguments to match WordPress core since 4.9.0.
- Add a filter that allows comment types to be excluded when counting users' approved comments.
Download this release
Release Info
| Developer | cfinke |
| Plugin | |
| Version | 4.2.2 |
| Comparing to | |
| See all releases | |
Code changes from version 4.2.1 to 4.2.2
- akismet.php +3 -3
- class.akismet.php +53 -11
- readme.txt +10 -2
akismet.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
Plugin Name: Akismet Anti-Spam
|
| 7 |
Plugin URI: https://akismet.com/
|
| 8 |
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
|
| 9 |
-
Version: 4.2.
|
| 10 |
Author: Automattic
|
| 11 |
Author URI: https://automattic.com/wordpress-plugins/
|
| 12 |
License: GPLv2 or later
|
|
@@ -37,10 +37,10 @@ if ( !function_exists( 'add_action' ) ) {
|
|
| 37 |
exit;
|
| 38 |
}
|
| 39 |
|
| 40 |
-
define( 'AKISMET_VERSION', '4.2.
|
| 41 |
define( 'AKISMET__MINIMUM_WP_VERSION', '5.0' );
|
| 42 |
define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
| 43 |
-
define( 'AKISMET_DELETE_LIMIT',
|
| 44 |
|
| 45 |
register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) );
|
| 46 |
register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) );
|
| 6 |
Plugin Name: Akismet Anti-Spam
|
| 7 |
Plugin URI: https://akismet.com/
|
| 8 |
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
|
| 9 |
+
Version: 4.2.2
|
| 10 |
Author: Automattic
|
| 11 |
Author URI: https://automattic.com/wordpress-plugins/
|
| 12 |
License: GPLv2 or later
|
| 37 |
exit;
|
| 38 |
}
|
| 39 |
|
| 40 |
+
define( 'AKISMET_VERSION', '4.2.2' );
|
| 41 |
define( 'AKISMET__MINIMUM_WP_VERSION', '5.0' );
|
| 42 |
define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
| 43 |
+
define( 'AKISMET_DELETE_LIMIT', 10000 );
|
| 44 |
|
| 45 |
register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) );
|
| 46 |
register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) );
|
class.akismet.php
CHANGED
|
@@ -64,6 +64,10 @@ class Akismet {
|
|
| 64 |
add_filter( 'wpcf7_form_elements', array( 'Akismet', 'append_custom_form_fields' ) );
|
| 65 |
add_filter( 'wpcf7_akismet_parameters', array( 'Akismet', 'prepare_custom_form_values' ) );
|
| 66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
add_action( 'update_option_wordpress_api_key', array( 'Akismet', 'updated_option' ), 10, 2 );
|
| 68 |
add_action( 'add_option_wordpress_api_key', array( 'Akismet', 'added_option' ), 10, 2 );
|
| 69 |
|
|
@@ -410,8 +414,12 @@ class Akismet {
|
|
| 410 |
|
| 411 |
$wpdb->queries = array();
|
| 412 |
|
|
|
|
|
|
|
| 413 |
foreach ( $comment_ids as $comment_id ) {
|
| 414 |
-
|
|
|
|
|
|
|
| 415 |
do_action( 'akismet_batch_delete_count', __FUNCTION__ );
|
| 416 |
}
|
| 417 |
|
|
@@ -421,12 +429,13 @@ class Akismet {
|
|
| 421 |
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
|
| 422 |
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
|
| 423 |
|
| 424 |
-
clean_comment_cache( $comment_ids );
|
| 425 |
-
do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
|
| 426 |
-
|
| 427 |
foreach ( $comment_ids as $comment_id ) {
|
| 428 |
-
do_action( 'deleted_comment', $comment_id );
|
|
|
|
| 429 |
}
|
|
|
|
|
|
|
|
|
|
| 430 |
}
|
| 431 |
|
| 432 |
if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
|
|
@@ -504,11 +513,38 @@ class Akismet {
|
|
| 504 |
public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
|
| 505 |
global $wpdb;
|
| 506 |
|
| 507 |
-
|
| 508 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 509 |
|
| 510 |
-
if ( !empty( $comment_author_email ) )
|
| 511 |
-
return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1", $comment_author_email, $comment_author, $comment_author_url ) );
|
|
|
|
| 512 |
|
| 513 |
return 0;
|
| 514 |
}
|
|
@@ -1327,8 +1363,14 @@ class Akismet {
|
|
| 1327 |
$fields .= '<label>Δ<textarea name="' . $prefix . 'hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label>';
|
| 1328 |
|
| 1329 |
if ( ! function_exists( 'amp_is_request' ) || ! amp_is_request() ) {
|
| 1330 |
-
|
| 1331 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1332 |
}
|
| 1333 |
|
| 1334 |
$fields .= '</p>';
|
| 64 |
add_filter( 'wpcf7_form_elements', array( 'Akismet', 'append_custom_form_fields' ) );
|
| 65 |
add_filter( 'wpcf7_akismet_parameters', array( 'Akismet', 'prepare_custom_form_values' ) );
|
| 66 |
|
| 67 |
+
// Formidable Forms
|
| 68 |
+
add_filter( 'frm_filter_final_form', array( 'Akismet', 'inject_custom_form_fields' ) );
|
| 69 |
+
add_filter( 'frm_akismet_values', array( 'Akismet', 'prepare_custom_form_values' ) );
|
| 70 |
+
|
| 71 |
add_action( 'update_option_wordpress_api_key', array( 'Akismet', 'updated_option' ), 10, 2 );
|
| 72 |
add_action( 'add_option_wordpress_api_key', array( 'Akismet', 'added_option' ), 10, 2 );
|
| 73 |
|
| 414 |
|
| 415 |
$wpdb->queries = array();
|
| 416 |
|
| 417 |
+
$comments = array();
|
| 418 |
+
|
| 419 |
foreach ( $comment_ids as $comment_id ) {
|
| 420 |
+
$comments[ $comment_id ] = get_comment( $comment_id );
|
| 421 |
+
|
| 422 |
+
do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
|
| 423 |
do_action( 'akismet_batch_delete_count', __FUNCTION__ );
|
| 424 |
}
|
| 425 |
|
| 429 |
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
|
| 430 |
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
|
| 431 |
|
|
|
|
|
|
|
|
|
|
| 432 |
foreach ( $comment_ids as $comment_id ) {
|
| 433 |
+
do_action( 'deleted_comment', $comment_id, $comments[ $comment_id ] );
|
| 434 |
+
unset( $comments[ $comment_id ] );
|
| 435 |
}
|
| 436 |
+
|
| 437 |
+
clean_comment_cache( $comment_ids );
|
| 438 |
+
do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
|
| 439 |
}
|
| 440 |
|
| 441 |
if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
|
| 513 |
public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
|
| 514 |
global $wpdb;
|
| 515 |
|
| 516 |
+
/**
|
| 517 |
+
* Which comment types should be ignored when counting a user's approved comments?
|
| 518 |
+
*
|
| 519 |
+
* Some plugins add entries to the comments table that are not actual
|
| 520 |
+
* comments that could have been checked by Akismet. Allow these comments
|
| 521 |
+
* to be excluded from the "approved comment count" query in order to
|
| 522 |
+
* avoid artificially inflating the approved comment count.
|
| 523 |
+
*
|
| 524 |
+
* @param array $comment_types An array of comment types that won't be considered
|
| 525 |
+
* when counting a user's approved comments.
|
| 526 |
+
*
|
| 527 |
+
* @since 4.2.2
|
| 528 |
+
*/
|
| 529 |
+
$excluded_comment_types = apply_filters( 'akismet_excluded_comment_types', array() );
|
| 530 |
+
|
| 531 |
+
$comment_type_where = '';
|
| 532 |
+
|
| 533 |
+
if ( is_array( $excluded_comment_types ) && ! empty( $excluded_comment_types ) ) {
|
| 534 |
+
$excluded_comment_types = array_unique( $excluded_comment_types );
|
| 535 |
+
|
| 536 |
+
foreach ( $excluded_comment_types as $excluded_comment_type ) {
|
| 537 |
+
$comment_type_where .= $wpdb->prepare( ' AND comment_type <> %s ', $excluded_comment_type );
|
| 538 |
+
}
|
| 539 |
+
}
|
| 540 |
+
|
| 541 |
+
if ( ! empty( $user_id ) ) {
|
| 542 |
+
return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1" . $comment_type_where, $user_id ) );
|
| 543 |
+
}
|
| 544 |
|
| 545 |
+
if ( ! empty( $comment_author_email ) ) {
|
| 546 |
+
return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1" . $comment_type_where, $comment_author_email, $comment_author, $comment_author_url ) );
|
| 547 |
+
}
|
| 548 |
|
| 549 |
return 0;
|
| 550 |
}
|
| 1363 |
$fields .= '<label>Δ<textarea name="' . $prefix . 'hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label>';
|
| 1364 |
|
| 1365 |
if ( ! function_exists( 'amp_is_request' ) || ! amp_is_request() ) {
|
| 1366 |
+
// Keep track of how many ak_js fields are in this page so that we don't re-use
|
| 1367 |
+
// the same ID.
|
| 1368 |
+
static $field_count = 0;
|
| 1369 |
+
|
| 1370 |
+
$field_count++;
|
| 1371 |
+
|
| 1372 |
+
$fields .= '<input type="hidden" id="ak_js_' . $field_count . '" name="' . $prefix . 'js" value="' . mt_rand( 0, 250 ) . '"/>';
|
| 1373 |
+
$fields .= '<script>document.getElementById( "ak_js_' . $field_count . '" ).setAttribute( "value", ( new Date() ).getTime() );</script>';
|
| 1374 |
}
|
| 1375 |
|
| 1376 |
$fields .= '</p>';
|
readme.txt
CHANGED
|
@@ -2,8 +2,8 @@
|
|
| 2 |
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs, procifer, stephdau
|
| 3 |
Tags: comments, spam, antispam, anti-spam, contact form, anti spam, comment moderation, comment spam, contact form spam, spam comments
|
| 4 |
Requires at least: 5.0
|
| 5 |
-
Tested up to: 5.
|
| 6 |
-
Stable tag: 4.2.
|
| 7 |
License: GPLv2 or later
|
| 8 |
|
| 9 |
The best anti-spam protection to block spam comments and spam in a contact form. The most trusted antispam solution for WordPress and WooCommerce.
|
|
@@ -30,6 +30,14 @@ Upload the Akismet plugin to your blog, activate it, and then enter your Akismet
|
|
| 30 |
|
| 31 |
== Changelog ==
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
= 4.2.1 =
|
| 34 |
*Release Date - 1 October 2021*
|
| 35 |
|
| 2 |
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs, procifer, stephdau
|
| 3 |
Tags: comments, spam, antispam, anti-spam, contact form, anti spam, comment moderation, comment spam, contact form spam, spam comments
|
| 4 |
Requires at least: 5.0
|
| 5 |
+
Tested up to: 5.9
|
| 6 |
+
Stable tag: 4.2.2
|
| 7 |
License: GPLv2 or later
|
| 8 |
|
| 9 |
The best anti-spam protection to block spam comments and spam in a contact form. The most trusted antispam solution for WordPress and WooCommerce.
|
| 30 |
|
| 31 |
== Changelog ==
|
| 32 |
|
| 33 |
+
= 4.2.2 =
|
| 34 |
+
*Release Date - 24 January 2022*
|
| 35 |
+
|
| 36 |
+
* Improved compatibility with Formidable Forms
|
| 37 |
+
* Fixed a bug that could cause issues when multiple contact forms appear on one page.
|
| 38 |
+
* Updated delete_comment and deleted_comment actions to pass two arguments to match WordPress core since 4.9.0.
|
| 39 |
+
* Add a filter that allows comment types to be excluded when counting users' approved comments.
|
| 40 |
+
|
| 41 |
= 4.2.1 =
|
| 42 |
*Release Date - 1 October 2021*
|
| 43 |
|
