Spam protection, AntiSpam, FireWall by CleanTalk - Version 5.128

Version Description

October 17 2019 = * Mod: Users check - functionality updated. * Fix: Users check - dates format updated. * Mod: Comments check - functionality updated. * Fix: Comments check - dates format updated. * Fix: Fields exclusion fixed. * Fix: Notice fixed. * Fix: Cleantalk/Antispam/API. * Fix: Minor improvements and bug fixes.

Download this release

Release Info

Developer glomberg
Plugin Icon 128x128 Spam protection, AntiSpam, FireWall by CleanTalk
Version 5.128
Comparing to
See all releases

Code changes from version 5.127.4 to 5.128

cleantalk.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Anti-Spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
- Version: 5.127.4
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  Text Domain: cleantalk
3
  Plugin Name: Anti-Spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
+ Version: 5.128
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  Text Domain: cleantalk
inc/cleantalk-comments.php CHANGED
@@ -85,9 +85,12 @@ function ct_show_checkspam_page(){
85
  <input id="ct_allow_date_range" type="checkbox" value="1" /><label for="ct_allow_date_range"><b><?php _e("Specify date range", 'cleantalk'); ?></b></label>
86
  </div>
87
  <div class="ct_check_params_desc">
88
- <input class="ct_date" type="text" id="ct_date_range_from" value="<?php echo isset($_GET['from']) && preg_match('/\d{4}-\d{2}-\d{2}/', $_GET['from']) ? $_GET['from'] : ''; ?>" disabled readonly />
89
- <input class="ct_date" type="text" id="ct_date_range_till" value="<?php echo isset($_GET['till']) && preg_match('/\d{4}-\d{2}-\d{2}/', $_GET['till'])? $_GET['till'] : ''; ?>" disabled readonly />
90
  </div>
 
 
 
91
  <br>
92
  <?php apbct_admin__badge__get_premium(); ?>
93
  </div>
@@ -449,13 +452,7 @@ function ct_ajax_info_comments($direct_call = false){
449
  check_ajax_referer( 'ct_secret_nonce', 'security' );
450
 
451
  global $wpdb;
452
-
453
- // Checking dates value
454
- if(isset($_POST['from'], $_POST['till'])){
455
- $from_date = date('Y-m-d', intval(strtotime($_POST['from'])));
456
- $till_date = date('Y-m-d', intval(strtotime($_POST['till'])));
457
- }
458
-
459
  $metas = array('', 'ct_marked_as_spam', 'ct_checked', 'ct_bad');
460
 
461
  $result = array();
@@ -469,11 +466,6 @@ function ct_ajax_info_comments($direct_call = false){
469
  ? " AND EXISTS (SELECT comment_id, meta_key
470
  FROM {$wpdb->commentmeta} meta
471
  WHERE comm.comment_ID = meta.comment_id AND meta_key = '$meta')"
472
- : '').
473
- (isset($from_date, $till_date)
474
- ? " AND comment_date_gmt BETWEEN
475
- STR_TO_DATE('$from_date', '%Y-%m-%d %H:%i:%s') AND
476
- STR_TO_DATE('$till_date', '%Y-%m-%d %H:%i:%s')"
477
  : ''),
478
  ARRAY_A);
479
  $result[] = $res[0]['cnt'];
@@ -481,8 +473,6 @@ function ct_ajax_info_comments($direct_call = false){
481
  $params = array('fields' => 'ids', 'count' => true);
482
  if(!empty($meta))
483
  $params['meta_key'] = $meta;
484
- if(isset($from_date, $till_date))
485
- $params['date_query'] = array('column' => 'comment_date_gmt', 'after' => $from_date, 'before' => $till_date, 'inclusive' => true);
486
  $result[] = get_comments( $params );
487
  }
488
  }
@@ -494,13 +484,13 @@ function ct_ajax_info_comments($direct_call = false){
494
 
495
  $return = array(
496
  'message' => '',
497
- 'total' => $cnt,
498
- 'spam' => $cnt_spam,
499
  'checked' => $cnt_checked,
500
- 'bad' => $cnt_bad,
501
  );
502
 
503
- $return['message'] .= sprintf (__("Total comments %s. Checked %s. Found %s spam comments. %s bad comments (without IP or email).", 'cleantalk'), $cnt, $cnt_checked, $cnt_spam, $cnt_bad);
504
 
505
  $backup_notice = '&nbsp;';
506
  if ($cnt_spam > 0){
@@ -636,11 +626,24 @@ function ct_ajax_delete_all(){
636
  function ct_ajax_clear_comments(){
637
 
638
  check_ajax_referer( 'ct_secret_nonce', 'security' );
639
- global $wpdb;
640
- $wpdb->query("DELETE
641
- FROM {$wpdb->commentmeta}
642
- WHERE meta_key IN ('ct_checked', 'ct_marked_as_spam', 'ct_bad');");
643
- die();
 
 
 
 
 
 
 
 
 
 
 
 
 
644
  }
645
 
646
  /**
@@ -658,4 +661,66 @@ function ct_comment_check_approve_comment(){
658
  wp_update_comment($comment);
659
 
660
  die();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
661
  }
85
  <input id="ct_allow_date_range" type="checkbox" value="1" /><label for="ct_allow_date_range"><b><?php _e("Specify date range", 'cleantalk'); ?></b></label>
86
  </div>
87
  <div class="ct_check_params_desc">
88
+ <input class="ct_date" type="text" id="ct_date_range_from" value="<?php echo ct_last_checked_comment(); ?>" disabled readonly />
89
+ <input class="ct_date" type="text" id="ct_date_range_till" value="<?php echo date( "M j Y"); ?>" disabled readonly />
90
  </div>
91
+ <div class="ct_check_params_desc">
92
+ <p>Begin/end dates of creation comments to check. If no date is specified, the plugin uses the last comments check date.</p>
93
+ </div>
94
  <br>
95
  <?php apbct_admin__badge__get_premium(); ?>
96
  </div>
452
  check_ajax_referer( 'ct_secret_nonce', 'security' );
453
 
454
  global $wpdb;
455
+
 
 
 
 
 
 
456
  $metas = array('', 'ct_marked_as_spam', 'ct_checked', 'ct_bad');
457
 
458
  $result = array();
466
  ? " AND EXISTS (SELECT comment_id, meta_key
467
  FROM {$wpdb->commentmeta} meta
468
  WHERE comm.comment_ID = meta.comment_id AND meta_key = '$meta')"
 
 
 
 
 
469
  : ''),
470
  ARRAY_A);
471
  $result[] = $res[0]['cnt'];
473
  $params = array('fields' => 'ids', 'count' => true);
474
  if(!empty($meta))
475
  $params['meta_key'] = $meta;
 
 
476
  $result[] = get_comments( $params );
477
  }
478
  }
484
 
485
  $return = array(
486
  'message' => '',
487
+ 'total' => $cnt,
488
+ 'spam' => $cnt_spam,
489
  'checked' => $cnt_checked,
490
+ 'bad' => $cnt_bad,
491
  );
492
 
493
+ $return['message'] .= sprintf (__("Total comments %s. Checked %s. Last check %s. Found %s spam comments. %s bad comments (without IP or email).", 'cleantalk'), $cnt, $cnt_checked, ct_get_last_comment_check_date(), $cnt_spam, $cnt_bad);
494
 
495
  $backup_notice = '&nbsp;';
496
  if ($cnt_spam > 0){
626
  function ct_ajax_clear_comments(){
627
 
628
  check_ajax_referer( 'ct_secret_nonce', 'security' );
629
+
630
+ if ( isset($_POST['from']) && isset($_POST['till']) ) {
631
+ if ( preg_match('/[a-zA-Z]{3}\s{1}\d{1,2}\s{1}\d{4}/', $_POST['from'] ) && preg_match('/[a-zA-Z]{3}\s{1}\d{1,2}\s{1}\d{4}/', $_POST['till'] ) ) {
632
+
633
+ $from = date('Y-m-d', intval(strtotime($_POST['from']))) . ' 00:00:00';
634
+ $till = date('Y-m-d', intval(strtotime($_POST['till']))) . ' 23:59:59';
635
+
636
+ global $wpdb;
637
+ $query_result = $wpdb->query("DELETE FROM {$wpdb->commentmeta} WHERE
638
+ meta_key IN ('ct_checked', 'ct_marked_as_spam', 'ct_bad')
639
+ AND meta_value >= '{$from}'
640
+ AND meta_value <= '{$till}';");
641
+
642
+ die();
643
+
644
+ }
645
+ }
646
+
647
  }
648
 
649
  /**
661
  wp_update_comment($comment);
662
 
663
  die();
664
+ }
665
+
666
+ /**
667
+ * Get date last checked comment or date of the first comment
668
+ *
669
+ * @return string date "M j Y"
670
+ */
671
+ function ct_last_checked_comment() {
672
+
673
+ $params = array(
674
+ 'fields' => 'ids',
675
+ 'meta_key' => 'ct_checked',
676
+ 'orderby' => 'ct_checked',
677
+ 'order' => 'ASC'
678
+ );
679
+ $checked_comments = get_comments( $params );
680
+
681
+ if ( ! empty($checked_comments) ) {
682
+
683
+ return get_comment_date( "M j Y", end( $checked_comments ) );
684
+
685
+ } else {
686
+
687
+ $params = array(
688
+ 'fields' => 'ids',
689
+ 'orderby' => 'comment_date_gmt',
690
+ 'order' => 'ASC',
691
+ 'number' => 1
692
+ );
693
+ $first_comment = get_comments( $params );
694
+
695
+ return get_comment_date( "M j Y", current( $first_comment ) );
696
+
697
+ }
698
+
699
+ }
700
+
701
+ /**
702
+ * Get last comments check date.
703
+ *
704
+ * @return string|null Date format"M j Y" or datetime format or null
705
+ */
706
+ function ct_get_last_comment_check_date( $timestamp = false ) {
707
+
708
+ $params = array(
709
+ 'fields' => 'ids',
710
+ 'meta_key' => 'ct_checked',
711
+ 'orderby' => 'comment_date_gmt',
712
+ 'order' => 'ASC'
713
+ );
714
+ $checked_comments = get_comments( $params );
715
+
716
+ $last_check = null;
717
+
718
+ if( ! empty( $checked_comments ) ) {
719
+
720
+ $last_check = $timestamp ? get_comment_meta( end( $checked_comments ), 'ct_checked', true ) : date( "M j Y", strtotime( get_comment_meta( end( $checked_comments ), 'ct_checked', true ) ) );
721
+
722
+ }
723
+
724
+ return $last_check;
725
+
726
  }
inc/cleantalk-common.php CHANGED
@@ -89,8 +89,9 @@ function apbct_base_call($params = array(), $reg_flag = false){
89
  : apbct_get_sender_info();
90
 
91
  // Fileds exclusions
92
- if( ! empty( $params['message'] ) ){
93
- apbct_array( $params['message'] )
 
94
  ->get_keys( $apbct->settings['exclusions__fields'], $apbct->settings['exclusions__fields__use_regexp'] )
95
  ->delete();
96
  }
89
  : apbct_get_sender_info();
90
 
91
  // Fileds exclusions
92
+ if( ! empty( $params['message'] ) && is_array( $params['message'] ) ){
93
+
94
+ $params['message'] = apbct_array( $params['message'] )
95
  ->get_keys( $apbct->settings['exclusions__fields'], $apbct->settings['exclusions__fields__use_regexp'] )
96
  ->delete();
97
  }
inc/cleantalk-public.php CHANGED
@@ -1160,7 +1160,7 @@ function ct_preprocess_comment($comment) {
1160
 
1161
 
1162
  $example = null;
1163
- if ($apbct->settings['relevance_test']) {
1164
  $post = get_post($comment_post_id);
1165
  if ($post !== null){
1166
  $example['title'] = $post->post_title;
@@ -2448,8 +2448,12 @@ function apbct_form__WPForms__showResponse($errors, $form_data) {
2448
 
2449
  $spam_comment = apbct_form__WPForms__testSpam();
2450
 
 
 
 
 
2451
  if($spam_comment)
2452
- $errors[$form_data['id']][0] = $spam_comment;
2453
 
2454
  }
2455
 
@@ -2464,7 +2468,7 @@ function apbct_form__WPForms__showResponse($errors, $form_data) {
2464
  * @global SpbcState $apbct
2465
  * @global array $apbct->form_data Contains form data
2466
  * @param array $errors Array of errors to write false result in
2467
- * @return void
2468
  */
2469
  function apbct_form__WPForms__testSpam() {
2470
 
1160
 
1161
 
1162
  $example = null;
1163
+ if ($apbct->data['relevance_test']) {
1164
  $post = get_post($comment_post_id);
1165
  if ($post !== null){
1166
  $example['title'] = $post->post_title;
2448
 
2449
  $spam_comment = apbct_form__WPForms__testSpam();
2450
 
2451
+ $filed_id = $form_data && !empty($form_data['fields']) && is_array($form_data['fields'])
2452
+ ? key($form_data['fields'])
2453
+ : 0;
2454
+
2455
  if($spam_comment)
2456
+ $errors[ $form_data['id'] ][ $filed_id ] = $spam_comment;
2457
 
2458
  }
2459
 
2468
  * @global SpbcState $apbct
2469
  * @global array $apbct->form_data Contains form data
2470
  * @param array $errors Array of errors to write false result in
2471
+ * @return void|array|null
2472
  */
2473
  function apbct_form__WPForms__testSpam() {
2474
 
inc/cleantalk-settings.php CHANGED
@@ -1217,14 +1217,14 @@ function apbct_settings__validate($settings) {
1217
  $result === false
1218
  ? $apbct->error_add( 'exclusions_urls', 'is not valid: "' . $settings['exclusions__urls'] . '"', 'settings_validate' )
1219
  : $apbct->error_delete( 'exclusions_urls', true, 'settings_validate' );
1220
- $settings['exclusions__urls'] = $result ? $settings['exclusions__urls'] : '';
1221
 
1222
  // Fields
1223
  $result = apbct_settings__sanitize__exclusions($settings['exclusions__fields'], $settings['exclusions__fields__use_regexp']);
1224
  $result === false
1225
  ? $apbct->error_add( 'exclusions_fields', 'is not valid: "' . $settings['exclusions__fields'] . '"', 'settings_validate' )
1226
  : $apbct->error_delete( 'exclusions_fields', true, 'settings_validate' );
1227
- $settings['exclusions__fields'] = $result ? $settings['exclusions__fields'] : '';
1228
 
1229
  // WPMS Logic.
1230
  if(APBCT_WPMS && is_main_site()){
1217
  $result === false
1218
  ? $apbct->error_add( 'exclusions_urls', 'is not valid: "' . $settings['exclusions__urls'] . '"', 'settings_validate' )
1219
  : $apbct->error_delete( 'exclusions_urls', true, 'settings_validate' );
1220
+ $settings['exclusions_urls'] = $result ? $result: '';
1221
 
1222
  // Fields
1223
  $result = apbct_settings__sanitize__exclusions($settings['exclusions__fields'], $settings['exclusions__fields__use_regexp']);
1224
  $result === false
1225
  ? $apbct->error_add( 'exclusions_fields', 'is not valid: "' . $settings['exclusions__fields'] . '"', 'settings_validate' )
1226
  : $apbct->error_delete( 'exclusions_fields', true, 'settings_validate' );
1227
+ $settings['exclusions__fields'] = $result ? $result: '';
1228
 
1229
  // WPMS Logic.
1230
  if(APBCT_WPMS && is_main_site()){
inc/cleantalk-updater.php CHANGED
@@ -386,3 +386,9 @@ function apbct_update_to_5_127_1(){
386
  }
387
  }
388
  }
 
 
 
 
 
 
386
  }
387
  }
388
  }
389
+
390
+ function apbct_update_to_5_128_0(){
391
+ global $apbct;
392
+ $apbct->remote_calls = array();
393
+ $apbct->save('remote_calls');
394
+ }
inc/cleantalk-users.php CHANGED
@@ -76,20 +76,23 @@ function ct_show_users_page(){
76
  <div class="ct_to_hide" id="ct_check_params_wrapper">
77
  <button class="button ct_check_params_elem" id="ct_check_spam_button" <?php echo !$apbct->data['moderate'] ? 'disabled="disabled"' : ''; ?>><?php _e("Start check", 'cleantalk'); ?></button>
78
  <?php if(!empty($_COOKIE['ct_paused_users_check'])) { ?><button class="button ct_check_params_elem" id="ct_proceed_check_button"><?php _e("Continue check", 'cleantalk'); ?></button><?php } ?>
79
- <p class="ct_check_params_desc"><?php _e("The plugin will check all comments against blacklists database and show you senders that have spam activity on other websites.", 'cleantalk'); ?></p>
80
  <br />
81
  <div class="ct_check_params_elem ct_check_params_elem_sub">
82
  <input id="ct_accurate_check" type="checkbox" value="1" /><b><label for="ct_accurate_check"><?php _e("Accurate check", 'cleantalk'); ?></b></label>
83
  </div>
84
- <p class="ct_check_params_desc"><?php _e("Allows to use comment's dates to perform more accurate check. Could seriously slow down the check.", 'cleantalk'); ?></p>
85
  <br />
86
  <div class="ct_check_params_elem ct_check_params_elem_sub">
87
  <input id="ct_allow_date_range" type="checkbox" value="1" /><label for="ct_allow_date_range"><b><?php _e("Specify date range", 'cleantalk'); ?></b></label>
88
  </div>
89
  <div class="ct_check_params_desc">
90
- <input class="ct_date" type="text" id="ct_date_range_from" value="<?php echo isset($_GET['from']) && preg_match('/\d{4}-\d{2}-\d{2}/', $_GET['from']) ? $_GET['from'] : ''; ?>" disabled readonly />
91
- <input class="ct_date" type="text" id="ct_date_range_till" value="<?php echo isset($_GET['till']) && preg_match('/\d{4}-\d{2}-\d{2}/', $_GET['till']) ? $_GET['till'] : ''; ?>" disabled readonly />
92
  </div>
 
 
 
93
  <br>
94
  <?php apbct_admin__badge__get_premium(); ?>
95
  </div>
@@ -475,71 +478,53 @@ function ct_ajax_info_users($direct_call = false)
475
  {
476
  if (!$direct_call)
477
  check_ajax_referer( 'ct_secret_nonce', 'security' );
478
-
479
- // Checking dates value
480
- if(isset($_POST['from'], $_POST['till'])){
481
-
482
- $from_date = date('Y-m-d', intval(strtotime($_POST['from'])));
483
- $till_date = date('Y-m-d', intval(strtotime($_POST['till'])));
484
- }
485
 
486
  // Total users
487
- $params = array(
488
  'fields' => 'ID',
489
  'count'=>true,
490
  'orderby' => 'user_registered'
491
  );
492
- //if(isset($from_date, $till_date)) $params['date_query'] = array('column' => 'user_registered', 'after' => $from_date, 'before' => $till_date, 'inclusive' => true);
493
- $tmp = new WP_User_Query($params);
494
- $cnt = $tmp->get_total();
495
 
496
- $_GET['from'] = ct_get_user_register( current($tmp->get_results()) );
497
-
498
- // Checked users
499
- $params = array(
500
  'fields' => 'ID',
501
  'meta_key' => 'ct_checked',
502
  'count_total' => true,
503
  'orderby' => 'ct_checked'
504
  );
505
- //if(isset($from_date, $till_date)) $params['date_query'] = array('column' => 'user_registered', 'after' => $from_date, 'before' => $till_date, 'inclusive' => true);
506
- $tmp = new WP_User_Query($params);
507
- $cnt_checked = $tmp->get_total();
508
 
509
- if( $cnt_checked > 0 ) {
510
- $tmp2 = $tmp->get_results();
511
- $_GET['from'] = ct_get_user_register( end( $tmp2 ) );
512
- }
513
-
514
  // Spam users
515
- $params = array(
516
  'fields' => 'ID',
517
  'meta_key' => 'ct_marked_as_spam',
518
  'count_total' => true,
519
  );
520
- if(isset($from_date, $till_date)) $params['date_query'] = array('column' => 'user_registered', 'after' => $from_date, 'before' => $till_date, 'inclusive' => true);
521
- $tmp = new WP_User_Query($params);
522
- $cnt_spam = $tmp->get_total();
523
 
524
  // Bad users (without IP and Email)
525
- $params = array(
526
  'fields' => 'ID',
527
  'meta_key' => 'ct_bad',
528
  'count_total' => true,
529
  );
530
- if(isset($from_date, $till_date)) $params['date_query'] = array('column' => 'user_registered', 'after' => $from_date, 'before' => $till_date, 'inclusive' => true);
531
- $tmp = new WP_User_Query($params);
532
- $cnt_bad = $tmp->get_total();
533
 
534
  $return = array(
535
- 'message' => '',
536
- 'total' => $cnt,
537
- 'spam' => $cnt_spam,
538
- 'checked' => $cnt_checked,
539
- 'bad' => $cnt_bad,
540
  );
541
 
542
- $return['message'] .= sprintf (__("Total users %s, checked %s, found %s spam users and %s bad users (without IP or email)", 'cleantalk'), $cnt, $cnt_checked, $cnt_spam, $cnt_bad);
543
 
544
  $backup_notice = '&nbsp;';
545
  if ($cnt_spam > 0) {
@@ -662,10 +647,24 @@ function ct_ajax_delete_all_users($count_all = 0)
662
 
663
  function ct_ajax_clear_users()
664
  {
665
- check_ajax_referer( 'ct_secret_nonce', 'security' );
666
- global $wpdb;
667
- $wpdb->query("DELETE FROM {$wpdb->usermeta} WHERE meta_key IN ('ct_checked', 'ct_marked_as_spam', 'ct_bad');");
668
- die();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
  }
670
 
671
  /**
@@ -699,11 +698,84 @@ function ct_usercheck_get_csv_file() {
699
  die();
700
  }
701
 
702
- function ct_get_user_register( $user_id ) {
 
 
 
 
 
 
703
 
704
  $user_data = get_userdata( $user_id );
705
  $registered = $user_data->user_registered;
706
 
707
- return date( "Y-m-d", strtotime( $registered ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
 
709
  }
76
  <div class="ct_to_hide" id="ct_check_params_wrapper">
77
  <button class="button ct_check_params_elem" id="ct_check_spam_button" <?php echo !$apbct->data['moderate'] ? 'disabled="disabled"' : ''; ?>><?php _e("Start check", 'cleantalk'); ?></button>
78
  <?php if(!empty($_COOKIE['ct_paused_users_check'])) { ?><button class="button ct_check_params_elem" id="ct_proceed_check_button"><?php _e("Continue check", 'cleantalk'); ?></button><?php } ?>
79
+ <p class="ct_check_params_desc"><?php _e("The plugin will check all users against blacklists database and show you senders that have spam activity on other websites.", 'cleantalk'); ?></p>
80
  <br />
81
  <div class="ct_check_params_elem ct_check_params_elem_sub">
82
  <input id="ct_accurate_check" type="checkbox" value="1" /><b><label for="ct_accurate_check"><?php _e("Accurate check", 'cleantalk'); ?></b></label>
83
  </div>
84
+ <p class="ct_check_params_desc"><?php _e("Allows to use user's dates to perform more accurate check. Could seriously slow down the check.", 'cleantalk'); ?></p>
85
  <br />
86
  <div class="ct_check_params_elem ct_check_params_elem_sub">
87
  <input id="ct_allow_date_range" type="checkbox" value="1" /><label for="ct_allow_date_range"><b><?php _e("Specify date range", 'cleantalk'); ?></b></label>
88
  </div>
89
  <div class="ct_check_params_desc">
90
+ <input class="ct_date" type="text" id="ct_date_range_from" value="<?php echo ct_last_checked_user_register(); ?>" disabled readonly />
91
+ <input class="ct_date" type="text" id="ct_date_range_till" value="<?php echo date( "M j Y"); ?>" disabled readonly />
92
  </div>
93
+ <div class="ct_check_params_desc">
94
+ <p>Begin/end dates of creation user to check. If no date is specified, the plugin uses the last users check date.</p>
95
+ </div>
96
  <br>
97
  <?php apbct_admin__badge__get_premium(); ?>
98
  </div>
478
  {
479
  if (!$direct_call)
480
  check_ajax_referer( 'ct_secret_nonce', 'security' );
 
 
 
 
 
 
 
481
 
482
  // Total users
483
+ $params_total = array(
484
  'fields' => 'ID',
485
  'count'=>true,
486
  'orderby' => 'user_registered'
487
  );
488
+ $total_users = new WP_User_Query($params_total);
489
+ $cnt = $total_users->get_total();
 
490
 
491
+ // Checked users
492
+ $params_checked = array(
 
 
493
  'fields' => 'ID',
494
  'meta_key' => 'ct_checked',
495
  'count_total' => true,
496
  'orderby' => 'ct_checked'
497
  );
498
+ $checked_users = new WP_User_Query($params_checked);
499
+ $cnt_checked = $checked_users->get_total();
 
500
 
 
 
 
 
 
501
  // Spam users
502
+ $params_spam = array(
503
  'fields' => 'ID',
504
  'meta_key' => 'ct_marked_as_spam',
505
  'count_total' => true,
506
  );
507
+ $spam_users = new WP_User_Query($params_spam);
508
+ $cnt_spam = $spam_users->get_total();
 
509
 
510
  // Bad users (without IP and Email)
511
+ $params_bad = array(
512
  'fields' => 'ID',
513
  'meta_key' => 'ct_bad',
514
  'count_total' => true,
515
  );
516
+ $bad_users = new WP_User_Query($params_bad);
517
+ $cnt_bad = $bad_users->get_total();
 
518
 
519
  $return = array(
520
+ 'message' => '',
521
+ 'total' => $cnt,
522
+ 'spam' => $cnt_spam,
523
+ 'checked' => $cnt_checked,
524
+ 'bad' => $cnt_bad,
525
  );
526
 
527
+ $return['message'] .= sprintf (__("Total users %s, checked %s, last check %s, found %s spam users and %s bad users (without IP or email)", 'cleantalk'), $cnt, $cnt_checked, ct_get_last_check_date(), $cnt_spam, $cnt_bad);
528
 
529
  $backup_notice = '&nbsp;';
530
  if ($cnt_spam > 0) {
647
 
648
  function ct_ajax_clear_users()
649
  {
650
+ check_ajax_referer( 'ct_secret_nonce', 'security' );
651
+
652
+ if ( isset($_POST['from']) && isset($_POST['till']) ) {
653
+ if ( preg_match('/[a-zA-Z]{3}\s{1}\d{1,2}\s{1}\d{4}/', $_POST['from'] ) && preg_match('/[a-zA-Z]{3}\s{1}\d{1,2}\s{1}\d{4}/', $_POST['till'] ) ) {
654
+
655
+ $from = date('Y-m-d', intval(strtotime($_POST['from']))) . ' 00:00:00';
656
+ $till = date('Y-m-d', intval(strtotime($_POST['till']))) . ' 23:59:59';
657
+
658
+ global $wpdb;
659
+ $query_result = $wpdb->query("DELETE FROM {$wpdb->usermeta} WHERE
660
+ meta_key IN ('ct_checked', 'ct_marked_as_spam', 'ct_bad')
661
+ AND meta_value >= '{$from}'
662
+ AND meta_value <= '{$till}';");
663
+
664
+ die();
665
+
666
+ }
667
+ }
668
  }
669
 
670
  /**
698
  die();
699
  }
700
 
701
+ /**
702
+ * Get date user registered
703
+ *
704
+ * @param $user_id
705
+ * @return string Date format"M j Y"
706
+ */
707
+ function ct_get_user_register($user_id ) {
708
 
709
  $user_data = get_userdata( $user_id );
710
  $registered = $user_data->user_registered;
711
 
712
+ return date( "M j Y", strtotime( $registered ) );
713
+
714
+ }
715
+
716
+ /**
717
+ * Get date last checked user or date first registered user
718
+ *
719
+ * @return string date "M j Y"
720
+ */
721
+ function ct_last_checked_user_register() {
722
+
723
+ // Checked users
724
+ $params = array(
725
+ 'fields' => 'ID',
726
+ 'meta_key' => 'ct_checked',
727
+ 'count_total' => true,
728
+ 'orderby' => 'ct_checked'
729
+ );
730
+ $tmp = new WP_User_Query($params);
731
+ $cnt_checked = $tmp->get_total();
732
+
733
+ if( $cnt_checked > 0 ) {
734
+
735
+ // If we have checked users return last user reg date
736
+ $users = $tmp->get_results();
737
+ return ct_get_user_register( end( $users ) );
738
+
739
+ } else {
740
+
741
+ // If we have not any checked users return first user registered date
742
+ $params = array(
743
+ 'fields' => 'ID',
744
+ 'number' => 1,
745
+ 'orderby' => 'user_registered'
746
+ );
747
+ $tmp = new WP_User_Query($params);
748
+
749
+ return ct_get_user_register( current( $tmp->get_results() ) );
750
+
751
+ }
752
+
753
+ }
754
+
755
+ /**
756
+ * Get last users check date.
757
+ *
758
+ * @return string|null Date format"M j Y" or datetime format or null
759
+ */
760
+ function ct_get_last_check_date( $timestamp = false ) {
761
+
762
+ // Checked users
763
+ $params = array(
764
+ 'fields' => 'ID',
765
+ 'meta_key' => 'ct_checked',
766
+ 'count_total' => true,
767
+ 'orderby' => 'ct_checked'
768
+ );
769
+ $tmp = new WP_User_Query($params);
770
+ $cnt_checked = $tmp->get_total();
771
+ $last_check = null;
772
+
773
+ if( $cnt_checked > 0 ) {
774
+
775
+ $users = $tmp->get_results();
776
+ $last_check = $timestamp ? get_user_meta( end( $users ), 'ct_checked', true ) : date( "M j Y", strtotime( get_user_meta( end( $users ), 'ct_checked', true ) ) );
777
+ }
778
+
779
+ return $last_check;
780
 
781
  }
js/cleantalk-comments-checkspam.min.js CHANGED
@@ -1,2 +1,2 @@
1
- var ct_working=!(String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e}),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctCommentsCheck.ct_prev_accurate,ct_prev_from=ctCommentsCheck.ct_prev_from,ct_prev_till=ctCommentsCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctCommentsCheck.ct_ajax_nonce,ct_comments_total=0,ct_comments_checked=0,ct_comments_spam=0,ct_comments_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_comments(){var e={action:"ajax_clear_comments",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_show_info(),ct_send_comments()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_comments(),ct_show_info()}function ct_send_comments(){if(1!=ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_comments",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_comments();else{var t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||!0===ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_comments_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_comments_checked=+ct_comments_checked+ +e.checked,ct_comments_spam=+ct_comments_spam+ +e.spam,ct_comments_bad=+ct_comments_bad+ +e.bad,ct_unchecked=ct_comments_total-ct_comments_checked-ct_comments_bad;var c=(c=String(ctCommentsCheck.ct_status_string)).printf(ct_comments_total,ct_comments_checked,ct_comments_spam,ct_comments_bad);0<parseInt(ct_comments_spam)&&(c+=ctCommentsCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),+ct_comments_total<ct_comments_checked+ct_comments_bad&&(document.cookie="ct_comments_start_check=1; path=/",document.cookie="ct_comments_safe_check=1; path=/",location.href="edit-comments.php?page=ct_check_spam"),ct_send_comments()}},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_send_comments(),3e3)},timeout:25e3})}}function ct_show_info(){if(ct_working){if(1==ct_cooling_down_flag)return jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)"),void jQuery("#ct_cooling_notice").show();if(jQuery("#ct_cooling_notice").hide(),setTimeout(ct_show_info,3e3),!ct_comments_total){var e={action:"ajax_info_comments",security:ct_ajax_nonce};ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_comments_total=e.total,ct_comments_spam=e.spam,ct_comments_checked=e.checked,ct_comments_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_show_info(),3e3)},timeout:15e3})}}}function ct_insert_comments(t){var e={action:"ajax_insert_comments",security:ct_ajax_nonce};(t=t||null)&&(e.delete=!0),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){t?alert(ctCommentsCheck.ct_comments_deleted+" "+e+" "+ctCommentsCheck.ct_comments_added_after):alert(ctCommentsCheck.ct_comments_added+" "+e+" "+ctCommentsCheck.ct_comments_added_after)}})}function ct_delete_all(){var e={action:"ajax_delete_all",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0<e?(jQuery("#cleantalk_comments_left").html(e),ct_delete_all()):location.href="edit-comments.php?page=ct_check_spam"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_delete_all(),3e3)},timeout:25e3})}function ct_delete_checked(){ids=Array();var e=0;jQuery("input[id^=cb-select-][id!=cb-select-all-1]").each(function(){jQuery(this).prop("checked")&&(ids[e]=jQuery(this).attr("id").substring(10),e++)});var t={action:"ajax_delete_checked",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:t,success:function(e){location.href="edit-comments.php?page=ct_check_spam"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_delete_checked(),3e3)},timeout:15e3})}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))});var a=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"yy-mm-dd",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);a.not(this).datepicker("option",t,_)}});function e(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""==ct_date_from||""==ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_info(),ct_send_comments()):ct_clear_comments())}jQuery("#ct_check_spam_button").click(function(){e(!(document.cookie="ct_paused_comments_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){e(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_comments_check="+JSON.stringify(e)+"; path=/"}),jQuery("#ct_insert_comments").click(function(){ct_insert_comments()}),jQuery("#ct_delete_comments").click(function(){ct_insert_comments(!0)}),jQuery("#ct_delete_all").click(function(){if(!confirm(ctCommentsCheck.ct_confirm_deletion_all))return!1;jQuery(".ct_to_hide").hide(),jQuery("#ct_checking_status").hide(),jQuery("#ct_search_info").hide(),jQuery("#ct_preloader").show(),jQuery("#ct_deleting_message").show(),jQuery("#ct_stop_deletion").show(),jQuery("html, body").animate({scrollTop:0},"slow"),ct_delete_all()}),jQuery("#ct_delete_checked").click(function(){if(!confirm(ctCommentsCheck.ct_confirm_deletion_checked))return!1;ct_delete_checked()}),jQuery("#ct_stop_deletion").click(function(){location.href="edit-comments.php?page=ct_check_spam"}),jQuery(".cleantalk_delete_button").click(function(){id=jQuery(this).attr("data-id"),ids=Array(),ids[0]=id;var e={action:"ajax_delete_checked",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_close_animate=!1,jQuery("#comment-"+id).hide(),jQuery("#comment-"+id).remove(),ct_close_animate=!0}})}),jQuery(".cleantalk_delete_button").click(function(){id=jQuery(this).attr("data-id"),animate_comment(.3,id)}),jQuery(".cleantalk_comment").mouseover(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_button_set_"+id).show()}),jQuery(".cleantalk_comment").mouseout(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_button_set_"+id).hide()}),jQuery(".cleantalk_delete_from_list_button").click(function(){var t=jQuery(this).attr("data-id"),e={action:"ajax_ct_approve_comment",security:ct_ajax_nonce,id:t};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){jQuery("#comment-"+t).fadeOut("slow",function(){jQuery("#comment-"+t).remove()})}});e={action:"ct_feedback_comment",security:ct_ajax_nonce,comment_id:t,comment_status:"approve"};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){},error:function(e,t,c){},timeout:5e3})}),"1"===ctCommentsCheck.start&&(document.cookie="ct_comments_start_check=0; expires="+new Date(0).toUTCString()+"; path=/",jQuery("#ct_check_spam_button").click())});
2
  //# sourceMappingURL=cleantalk-comments-checkspam.min.js.map
1
+ var ct_working=!(String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e}),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctCommentsCheck.ct_prev_accurate,ct_prev_from=ctCommentsCheck.ct_prev_from,ct_prev_till=ctCommentsCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctCommentsCheck.ct_ajax_nonce,ct_comments_total=0,ct_comments_checked=0,ct_comments_spam=0,ct_comments_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_comments(){var e=0,t=0;jQuery("#ct_allow_date_range").is(":checked")&&(e=jQuery("#ct_date_range_from").val(),t=jQuery("#ct_date_range_till").val());var c={action:"ajax_clear_comments",security:ct_ajax_nonce,from:e,till:t};jQuery.ajax({type:"POST",url:ajaxurl,data:c,success:function(e){ct_show_info(),ct_send_comments()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_comments(),ct_show_info()}function ct_send_comments(){if(1!=ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_comments",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_comments();else{var t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||!0===ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_comments_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_comments_checked=+ct_comments_checked+ +e.checked,ct_comments_spam=+ct_comments_spam+ +e.spam,ct_comments_bad=+ct_comments_bad+ +e.bad,ct_unchecked=ct_comments_total-ct_comments_checked-ct_comments_bad;var c=(c=String(ctCommentsCheck.ct_status_string)).printf(ct_comments_total,ct_comments_checked,ct_comments_spam,ct_comments_bad);0<parseInt(ct_comments_spam)&&(c+=ctCommentsCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),+ct_comments_total<ct_comments_checked+ct_comments_bad&&(document.cookie="ct_comments_start_check=1; path=/",document.cookie="ct_comments_safe_check=1; path=/",location.href="edit-comments.php?page=ct_check_spam"),ct_send_comments()}},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_send_comments(),3e3)},timeout:25e3})}}function ct_show_info(){if(ct_working){if(1==ct_cooling_down_flag)return jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)"),void jQuery("#ct_cooling_notice").show();if(jQuery("#ct_cooling_notice").hide(),setTimeout(ct_show_info,3e3),!ct_comments_total){var e={action:"ajax_info_comments",security:ct_ajax_nonce};ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_comments_total=e.total,ct_comments_spam=e.spam,ct_comments_checked=e.checked,ct_comments_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_show_info(),3e3)},timeout:15e3})}}}function ct_insert_comments(t){var e={action:"ajax_insert_comments",security:ct_ajax_nonce};(t=t||null)&&(e.delete=!0),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){t?alert(ctCommentsCheck.ct_comments_deleted+" "+e+" "+ctCommentsCheck.ct_comments_added_after):alert(ctCommentsCheck.ct_comments_added+" "+e+" "+ctCommentsCheck.ct_comments_added_after)}})}function ct_delete_all(){var e={action:"ajax_delete_all",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0<e?(jQuery("#cleantalk_comments_left").html(e),ct_delete_all()):location.href="edit-comments.php?page=ct_check_spam"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_delete_all(),3e3)},timeout:25e3})}function ct_delete_checked(){ids=Array();var e=0;jQuery("input[id^=cb-select-][id!=cb-select-all-1]").each(function(){jQuery(this).prop("checked")&&(ids[e]=jQuery(this).attr("id").substring(10),e++)});var t={action:"ajax_delete_checked",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:t,success:function(e){location.href="edit-comments.php?page=ct_check_spam"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_delete_checked(),3e3)},timeout:15e3})}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))});var a=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"M d yy",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);a.not(this).datepicker("option",t,_)}});function e(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""==ct_date_from||""==ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_info(),ct_send_comments()):ct_clear_comments())}jQuery("#ct_check_spam_button").click(function(){e(!(document.cookie="ct_paused_comments_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){e(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_comments_check="+JSON.stringify(e)+"; path=/"}),jQuery("#ct_insert_comments").click(function(){ct_insert_comments()}),jQuery("#ct_delete_comments").click(function(){ct_insert_comments(!0)}),jQuery("#ct_delete_all").click(function(){if(!confirm(ctCommentsCheck.ct_confirm_deletion_all))return!1;jQuery(".ct_to_hide").hide(),jQuery("#ct_checking_status").hide(),jQuery("#ct_search_info").hide(),jQuery("#ct_preloader").show(),jQuery("#ct_deleting_message").show(),jQuery("#ct_stop_deletion").show(),jQuery("html, body").animate({scrollTop:0},"slow"),ct_delete_all()}),jQuery("#ct_delete_checked").click(function(){if(!confirm(ctCommentsCheck.ct_confirm_deletion_checked))return!1;ct_delete_checked()}),jQuery("#ct_stop_deletion").click(function(){location.href="edit-comments.php?page=ct_check_spam"}),jQuery(".cleantalk_delete_button").click(function(){id=jQuery(this).attr("data-id"),ids=Array(),ids[0]=id;var e={action:"ajax_delete_checked",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_close_animate=!1,jQuery("#comment-"+id).hide(),jQuery("#comment-"+id).remove(),ct_close_animate=!0}})}),jQuery(".cleantalk_delete_button").click(function(){id=jQuery(this).attr("data-id"),animate_comment(.3,id)}),jQuery(".cleantalk_comment").mouseover(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_button_set_"+id).show()}),jQuery(".cleantalk_comment").mouseout(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_button_set_"+id).hide()}),jQuery(".cleantalk_delete_from_list_button").click(function(){var t=jQuery(this).attr("data-id"),e={action:"ajax_ct_approve_comment",security:ct_ajax_nonce,id:t};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){jQuery("#comment-"+t).fadeOut("slow",function(){jQuery("#comment-"+t).remove()})}});e={action:"ct_feedback_comment",security:ct_ajax_nonce,comment_id:t,comment_status:"approve"};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){},error:function(e,t,c){},timeout:5e3})}),"1"===ctCommentsCheck.start&&(document.cookie="ct_comments_start_check=0; expires="+new Date(0).toUTCString()+"; path=/",jQuery("#ct_check_spam_button").click())});
2
  //# sourceMappingURL=cleantalk-comments-checkspam.min.js.map
js/cleantalk-comments-checkspam.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["cleantalk-comments-checkspam.js"],"names":["ct_working","String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctCommentsCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_comments_total","ct_comments_checked","ct_comments_spam","ct_comments_bad","ct_unchecked","ct_date_from","ct_date_till","animate_comment","to","id","jQuery","fadeTo","ct_clear_comments","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_info","ct_send_comments","ct_cooling_down_toggle","setTimeout","new_check","unchecked","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","document","cookie","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","total","ct_insert_comments","delete_comments","alert","ct_comments_deleted","ct_comments_added_after","ct_comments_added","ct_delete_all","ct_delete_checked","ids","Array","cnt","each","prop","attr","ct_toggle_depended","obj","secondary","depended","removeProp","ready","state","val","on","dates","datepicker","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","is","click","ct_check","accurate","from","till","JSON","stringify","ct_confirm_deletion_all","animate","scrollTop","ct_confirm_deletion_checked","remove","mouseover","mouseout","ct_id","fadeOut","comment_id","comment_status","start","Date","toUTCString"],"mappings":"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","file":"cleantalk-comments-checkspam.min.js","sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctCommentsCheck.ct_prev_accurate,\r\n\tct_prev_from = ctCommentsCheck.ct_prev_from,\t\r\n\tct_prev_till = ctCommentsCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctCommentsCheck.ct_ajax_nonce,\r\n\tct_comments_total = 0,\r\n\tct_comments_checked = 0,\r\n\tct_comments_spam = 0,\r\n\tct_comments_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to==0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_comments(){\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_clear_comments',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_comments();\r\n\tct_show_info();\r\n}\r\n\r\nfunction ct_send_comments(){\r\n\t\r\n\tif(ct_cooling_down_flag == true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_check_comments',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'new_check': ct_new_check,\r\n\t\t'unchecked': ct_unchecked\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause === true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_comments_checked = +ct_comments_checked + +msg.checked;\r\n\t\t\t\t\tct_comments_spam = +ct_comments_spam + +msg.spam;\r\n\t\t\t\t\tct_comments_bad = +ct_comments_bad + +msg.bad;\r\n\t\t\t\t\tct_unchecked = ct_comments_total - ct_comments_checked - ct_comments_bad;\r\n\t\t\t\t\tvar status_string = String(ctCommentsCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_comments_total, ct_comments_checked, ct_comments_spam, ct_comments_bad);\r\n\t\t\t\t\tif(parseInt(ct_comments_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctCommentsCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\t// If DB woks not properly\r\n\t\t\t\t\tif(+ct_comments_total < ct_comments_checked + ct_comments_bad){\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_start_check=1; path=/';\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_safe_check=1; path=/';\r\n\t\t\t\t\t\tlocation.href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_send_comments(), 3000); \r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_info(){\r\n\t\r\n\tif(ct_working){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag == true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\r\n\t\t\tjQuery('#ct_cooling_notice').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\t\r\n\t\t\r\n\t\tsetTimeout(ct_show_info, 3000);\r\n\t\t\r\n\t\tif(!ct_comments_total){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_comments',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(ct_date_from && ct_date_till){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_comments_total = msg.total;\r\n\t\t\t\t\tct_comments_spam = msg.spam;\r\n\t\t\t\t\tct_comments_checked = msg.checked;\r\n\t\t\t\t\tct_comments_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\t\t\tsetTimeout(ct_show_info(), 3000); \r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\nfunction ct_insert_comments(delete_comments){\r\n\r\n delete_comments = delete_comments || null;\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_insert_comments',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tif(delete_comments)\r\n\t\tdata['delete'] = true;\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(delete_comments)\r\n\t\t\t\talert(ctCommentsCheck.ct_comments_deleted + ' ' + msg + ' ' + ctCommentsCheck.ct_comments_added_after);\r\n\t\t\telse\r\n\t\t\t\talert(ctCommentsCheck.ct_comments_added + ' ' + msg + ' ' + ctCommentsCheck.ct_comments_added_after);\r\n\t\t}\r\n\t});\r\n}\r\nfunction ct_delete_all(){\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(msg>0){\r\n\t\t\t\tjQuery('#cleantalk_comments_left').html(msg);\r\n\t\t\t\tct_delete_all();\r\n\t\t\t}else{\r\n\t\t\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t\t\t}\r\n\t\t},\t\t\t\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_delete_all(), 3000); \r\n\t\t},\r\n\t\ttimeout: 25000\r\n\t});\r\n}\r\nfunction ct_delete_checked(){\r\n\t\r\n\tids=Array();\r\n\tvar cnt=0;\r\n\tjQuery('input[id^=cb-select-][id!=cb-select-all-1]').each(function(){\r\n\t\tif(jQuery(this).prop('checked')){\r\n\t\t\tids[cnt]=jQuery(this).attr('id').substring(10);\r\n\t\t\tcnt++;\r\n\t\t}\r\n\t});\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_checked',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'ids':ids\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_delete_checked(), 3000); \r\n\t\t},\r\n\t\ttimeout: 15000\r\n\t});\r\n}\r\n\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\t\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\t\t\t\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'yy-mm-dd',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\r\n\tfunction ct_start_check(continue_check){\r\n\r\n continue_check = continue_check || null;\r\n\r\n\t\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\t\t\t\r\n\t\t\tct_date_from = jQuery('#ct_date_range_from').val(),\r\n\t\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\t\t\t\t\t\t\r\n\t\t\tif(!(ct_date_from != '' && ct_date_till != '')){\r\n\t\t\t\talert('Please, specify a date range.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\t\tct_accurate_check = true;\r\n\t\t}\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_working_message').show();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_pause').show();\r\n\r\n\t\tct_working=true;\r\n\t\t\r\n\t\tif(continue_check){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}else\r\n\t\t\tct_clear_comments();\r\n\t\t\r\n\t}\r\n\t\r\n\t// Check comments\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_comments_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_insert_comments\").click(function(){\r\n\t\tct_insert_comments();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_delete_comments\").click(function(){\r\n\t\tct_insert_comments(true);\r\n\t});\r\n\t\r\n\t// Delete all spam comments\r\n\tjQuery(\"#ct_delete_all\").click(function(){\r\n\t\t\r\n\t\tif (!confirm(ctCommentsCheck.ct_confirm_deletion_all))\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_checking_status').hide();\r\n\t\tjQuery('#ct_search_info').hide();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_deleting_message').show();\r\n\t\tjQuery('#ct_stop_deletion').show();\r\n\t\tjQuery(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n\t\tct_delete_all();\r\n\t});\r\n\tjQuery(\"#ct_delete_checked\").click(function(){\r\n\t\tif (!confirm(ctCommentsCheck.ct_confirm_deletion_checked))\r\n\t\t\treturn false;\r\n\t\tct_delete_checked();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_stop_deletion\").click(function(){\r\n\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tids=Array();\r\n\t\tids[0]=id;\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_delete_checked',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'ids':ids\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tct_close_animate=false;\r\n\t\t\t\tjQuery(\"#comment-\"+id).hide();\r\n\t\t\t\tjQuery(\"#comment-\"+id).remove();\r\n\t\t\t\tct_close_animate=true;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tanimate_comment(0.3, id);\r\n\t});\r\n\t\r\n\t//Show/hide action on mouse over/out\r\n\tjQuery(\".cleantalk_comment\").mouseover(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_button_set_\"+id).show();\r\n\t});\r\n\tjQuery(\".cleantalk_comment\").mouseout(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_button_set_\"+id).hide();\r\n\t});\r\n\t\r\n\t//Approve button\t\r\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\r\n\t\tvar ct_id = jQuery(this).attr(\"data-id\");\r\n\t\t\r\n\t\t// Approving\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_approve_comment',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'id': ct_id\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\r\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\t\r\n\t\t// Positive feedback\r\n\t\tvar data = {\r\n\t\t\t'action': 'ct_feedback_comment',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'comment_id': ct_id,\r\n\t\t\t'comment_status': 'approve'\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(msg == 1){\r\n\t\t\t\t\t// Success\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 0){\r\n\t\t\t\t\t// Error occurred\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 'no_hash'){\r\n\t\t\t\t\t// No hash\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\ttimeout: 5000\r\n\t\t});\r\n\t});\r\n\tif(ctCommentsCheck.start === '1'){\r\n\t\tdocument.cookie = 'ct_comments_start_check=0; expires=' + new Date(0).toUTCString() + '; path=/';\r\n\t\tjQuery('#ct_check_spam_button').click();\t\r\n\t}\r\n});"]}
1
+ {"version":3,"sources":["cleantalk-comments-checkspam.js"],"names":["ct_working","String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctCommentsCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_comments_total","ct_comments_checked","ct_comments_spam","ct_comments_bad","ct_unchecked","ct_date_from","ct_date_till","animate_comment","to","id","jQuery","fadeTo","ct_clear_comments","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_info","ct_send_comments","ct_cooling_down_toggle","setTimeout","new_check","unchecked","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","document","cookie","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","total","ct_insert_comments","delete_comments","alert","ct_comments_deleted","ct_comments_added_after","ct_comments_added","ct_delete_all","ct_delete_checked","ids","Array","cnt","each","prop","attr","ct_toggle_depended","obj","secondary","depended","removeProp","ready","state","on","dates","datepicker","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","click","ct_check","accurate","JSON","stringify","ct_confirm_deletion_all","animate","scrollTop","ct_confirm_deletion_checked","remove","mouseover","mouseout","ct_id","fadeOut","comment_id","comment_status","start","Date","toUTCString"],"mappings":"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","file":"cleantalk-comments-checkspam.min.js","sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctCommentsCheck.ct_prev_accurate,\r\n\tct_prev_from = ctCommentsCheck.ct_prev_from,\t\r\n\tct_prev_till = ctCommentsCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctCommentsCheck.ct_ajax_nonce,\r\n\tct_comments_total = 0,\r\n\tct_comments_checked = 0,\r\n\tct_comments_spam = 0,\r\n\tct_comments_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to==0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_comments(){\r\n\r\n\tvar from = 0, till = 0;\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\r\n\t\tfrom = jQuery('#ct_date_range_from').val();\r\n\t\ttill = jQuery('#ct_date_range_till').val();\r\n\t}\r\n\tvar data = {\r\n\t\t'action' : 'ajax_clear_comments',\r\n\t\t'security' : ct_ajax_nonce,\r\n\t\t'from' : from,\r\n\t\t'till' : till\r\n\t};\r\n\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_comments();\r\n\tct_show_info();\r\n}\r\n\r\nfunction ct_send_comments(){\r\n\t\r\n\tif(ct_cooling_down_flag == true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_check_comments',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'new_check': ct_new_check,\r\n\t\t'unchecked': ct_unchecked\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause === true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_comments_checked = +ct_comments_checked + +msg.checked;\r\n\t\t\t\t\tct_comments_spam = +ct_comments_spam + +msg.spam;\r\n\t\t\t\t\tct_comments_bad = +ct_comments_bad + +msg.bad;\r\n\t\t\t\t\tct_unchecked = ct_comments_total - ct_comments_checked - ct_comments_bad;\r\n\t\t\t\t\tvar status_string = String(ctCommentsCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_comments_total, ct_comments_checked, ct_comments_spam, ct_comments_bad);\r\n\t\t\t\t\tif(parseInt(ct_comments_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctCommentsCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\t// If DB woks not properly\r\n\t\t\t\t\tif(+ct_comments_total < ct_comments_checked + ct_comments_bad){\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_start_check=1; path=/';\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_safe_check=1; path=/';\r\n\t\t\t\t\t\tlocation.href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_send_comments(), 3000); \r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_info(){\r\n\t\r\n\tif(ct_working){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag == true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\r\n\t\t\tjQuery('#ct_cooling_notice').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\t\r\n\t\t\r\n\t\tsetTimeout(ct_show_info, 3000);\r\n\t\t\r\n\t\tif(!ct_comments_total){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_comments',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(ct_date_from && ct_date_till){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_comments_total = msg.total;\r\n\t\t\t\t\tct_comments_spam = msg.spam;\r\n\t\t\t\t\tct_comments_checked = msg.checked;\r\n\t\t\t\t\tct_comments_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\t\t\tsetTimeout(ct_show_info(), 3000); \r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\nfunction ct_insert_comments(delete_comments){\r\n\r\n delete_comments = delete_comments || null;\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_insert_comments',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tif(delete_comments)\r\n\t\tdata['delete'] = true;\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(delete_comments)\r\n\t\t\t\talert(ctCommentsCheck.ct_comments_deleted + ' ' + msg + ' ' + ctCommentsCheck.ct_comments_added_after);\r\n\t\t\telse\r\n\t\t\t\talert(ctCommentsCheck.ct_comments_added + ' ' + msg + ' ' + ctCommentsCheck.ct_comments_added_after);\r\n\t\t}\r\n\t});\r\n}\r\nfunction ct_delete_all(){\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(msg>0){\r\n\t\t\t\tjQuery('#cleantalk_comments_left').html(msg);\r\n\t\t\t\tct_delete_all();\r\n\t\t\t}else{\r\n\t\t\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t\t\t}\r\n\t\t},\t\t\t\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_delete_all(), 3000); \r\n\t\t},\r\n\t\ttimeout: 25000\r\n\t});\r\n}\r\nfunction ct_delete_checked(){\r\n\t\r\n\tids=Array();\r\n\tvar cnt=0;\r\n\tjQuery('input[id^=cb-select-][id!=cb-select-all-1]').each(function(){\r\n\t\tif(jQuery(this).prop('checked')){\r\n\t\t\tids[cnt]=jQuery(this).attr('id').substring(10);\r\n\t\t\tcnt++;\r\n\t\t}\r\n\t});\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_checked',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'ids':ids\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_delete_checked(), 3000); \r\n\t\t},\r\n\t\ttimeout: 15000\r\n\t});\r\n}\r\n\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\t\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\t\t\t\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'M d yy',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\r\n\tfunction ct_start_check(continue_check){\r\n\r\n continue_check = continue_check || null;\r\n\r\n\t\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\t\t\t\r\n\t\t\tct_date_from = jQuery('#ct_date_range_from').val(),\r\n\t\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\t\t\t\t\t\t\r\n\t\t\tif(!(ct_date_from != '' && ct_date_till != '')){\r\n\t\t\t\talert('Please, specify a date range.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\t\tct_accurate_check = true;\r\n\t\t}\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_working_message').show();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_pause').show();\r\n\r\n\t\tct_working=true;\r\n\t\t\r\n\t\tif(continue_check){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}else\r\n\t\t\tct_clear_comments();\r\n\t\t\r\n\t}\r\n\t\r\n\t// Check comments\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_comments_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_insert_comments\").click(function(){\r\n\t\tct_insert_comments();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_delete_comments\").click(function(){\r\n\t\tct_insert_comments(true);\r\n\t});\r\n\t\r\n\t// Delete all spam comments\r\n\tjQuery(\"#ct_delete_all\").click(function(){\r\n\t\t\r\n\t\tif (!confirm(ctCommentsCheck.ct_confirm_deletion_all))\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_checking_status').hide();\r\n\t\tjQuery('#ct_search_info').hide();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_deleting_message').show();\r\n\t\tjQuery('#ct_stop_deletion').show();\r\n\t\tjQuery(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n\t\tct_delete_all();\r\n\t});\r\n\tjQuery(\"#ct_delete_checked\").click(function(){\r\n\t\tif (!confirm(ctCommentsCheck.ct_confirm_deletion_checked))\r\n\t\t\treturn false;\r\n\t\tct_delete_checked();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_stop_deletion\").click(function(){\r\n\t\tlocation.href='edit-comments.php?page=ct_check_spam';\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tids=Array();\r\n\t\tids[0]=id;\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_delete_checked',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'ids':ids\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tct_close_animate=false;\r\n\t\t\t\tjQuery(\"#comment-\"+id).hide();\r\n\t\t\t\tjQuery(\"#comment-\"+id).remove();\r\n\t\t\t\tct_close_animate=true;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tanimate_comment(0.3, id);\r\n\t});\r\n\t\r\n\t//Show/hide action on mouse over/out\r\n\tjQuery(\".cleantalk_comment\").mouseover(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_button_set_\"+id).show();\r\n\t});\r\n\tjQuery(\".cleantalk_comment\").mouseout(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_button_set_\"+id).hide();\r\n\t});\r\n\t\r\n\t//Approve button\t\r\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\r\n\t\tvar ct_id = jQuery(this).attr(\"data-id\");\r\n\t\t\r\n\t\t// Approving\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_approve_comment',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'id': ct_id\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\r\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\t\r\n\t\t// Positive feedback\r\n\t\tvar data = {\r\n\t\t\t'action': 'ct_feedback_comment',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'comment_id': ct_id,\r\n\t\t\t'comment_status': 'approve'\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(msg == 1){\r\n\t\t\t\t\t// Success\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 0){\r\n\t\t\t\t\t// Error occurred\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 'no_hash'){\r\n\t\t\t\t\t// No hash\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\ttimeout: 5000\r\n\t\t});\r\n\t});\r\n\tif(ctCommentsCheck.start === '1'){\r\n\t\tdocument.cookie = 'ct_comments_start_check=0; expires=' + new Date(0).toUTCString() + '; path=/';\r\n\t\tjQuery('#ct_check_spam_button').click();\t\r\n\t}\r\n});"]}
js/cleantalk-users-checkspam.min.js CHANGED
@@ -1,2 +1,2 @@
1
- String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e};var ct_working=!(document.cookie="ct_check_users__amount=100; path=/"),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctUsersCheck.ct_prev_accurate,ct_prev_from=ctUsersCheck.ct_prev_from,ct_prev_till=ctUsersCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctUsersCheck.ct_ajax_nonce,ct_users_total=0,ct_users_checked=0,ct_users_spam=0,ct_users_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function apbct_cookie__get(r,a){var s={};return"string"==typeof(r=r||null)&&(r=r.split()),"none"==(a=a||["apbct_","ct_"])&&(a=null),"string"==typeof a&&(a=a.split()),document.cookie.split(";").forEach(function(e,t,c){var _=e.trim().split("=");r&&r.forEach(function(e,t,c){_[0]===e&&(s[_[0]]=_[1])}),a&&a.forEach(function(e,t,c){0===_[0].indexOf(e)&&(s[_[0]]=_[1])})}),s}function apbct_get_cookie(e){var t=apbct_cookie__get(e,e);return"object"==typeof t&&void 0!==t[e]?t[e]:null}function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_users(){if(jQuery("#ct_allow_date_range").is(":checked"))ct_show_users_info(),ct_send_users();else{var e={action:"ajax_clear_users",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_show_users_info(),ct_send_users()}})}}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_users(),ct_show_users_info()}function ct_send_users(){if(1!=ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_users",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked,amount:apbct_get_cookie("ct_check_users__amount")};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_users();else{var t="users.php?page=ct_check_users";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||1==ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_users_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="users.php?page=ct_check_users&ct_worked=1";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_users_checked+=e.checked,ct_users_spam+=e.spam,ct_users_bad+=e.bad,ct_unchecked=ct_users_total-ct_users_checked-ct_users_bad;var c=(c=String(ctUsersCheck.ct_status_string)).printf(ct_users_total,ct_users_checked,ct_users_spam,ct_users_bad);0<parseInt(ct_users_spam)&&(c+=ctUsersCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),ct_send_users()}},error:function(e,t,c){20<check_amount&&(check_amount-=20,document.cookie="ct_check_users__amount="+check_amount+"; path=/"),jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check users"),setTimeout(ct_send_users(),3e3)},timeout:25e3})}}function ct_show_users_info(){if(ct_working){if(1==ct_cooling_down_flag)return jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)"),void jQuery("#ct_cooling_notice").show();if(jQuery("#ct_cooling_notice").hide(),setTimeout(ct_show_users_info,3e3),!ct_users_total){var e={action:"ajax_info_users",security:ct_ajax_nonce};ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_users_total=e.total,ct_users_spam=e.spam,ct_users_checked=e.checked,ct_users_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Show users"),setTimeout(ct_show_users_info(),3e3)},timeout:15e3})}}}function ct_insert_users(t){var e={action:"ajax_insert_users",security:ct_ajax_nonce};(t=t||null)&&(e.delete=!0),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){t?alert(ctUsersCheck.ct_deleted+" "+e+" "+ctUsersCheck.ct_iusers):alert(ctUsersCheck.ct_inserted+" "+e+" "+ctUsersCheck.ct_iusers)}})}function ct_delete_all_users(){var e={action:"ajax_delete_all_users",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0<e?(jQuery("#cleantalk_users_left").html(e),ct_delete_all_users()):location.href="users.php?page=ct_check_users&ct_worked=1"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("All users deleteion"),setTimeout(ct_delete_all_users(),3e3)},timeout:25e3})}function ct_delete_checked_users(){ids=Array();var e=0;jQuery("input[id^=cb-select-][id!=cb-select-all-1]").each(function(){jQuery(this).prop("checked")&&(ids[e]=jQuery(this).attr("id").substring(10),e++)});var t={action:"ajax_delete_checked_users",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:t,success:function(e){location.href="users.php?page=ct_check_users&ct_worked=1"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("All users deleteion"),setTimeout(ct_delete_checked_users(),3e3)},timeout:15e3})}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))});var r=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"yy-mm-dd",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);r.not(this).datepicker("option",t,_)}});function e(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""===ct_date_from||""===ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_users_info(),ct_send_users()):ct_clear_users())}jQuery("#ct_check_spam_button").click(function(){e(!(document.cookie="ct_paused_users_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){e(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_users_check="+JSON.stringify(e)+"; path=/"}),jQuery("#ct_insert_users").click(function(){ct_insert_users()}),jQuery("#ct_delete_users").click(function(){ct_insert_users(!0)}),jQuery("#ct_delete_all_users").click(function(){if(!confirm(ctUsersCheck.ct_confirm_deletion_all))return!1;jQuery(".ct_to_hide").hide(),jQuery("#ct_checking_status").hide(),jQuery("#ct_search_info").hide(),jQuery("#ct_preloader").show(),jQuery("#ct_deleting_message").show(),jQuery("#ct_stop_deletion").show(),jQuery("html, body").animate({scrollTop:0},"slow"),ct_delete_all_users()}),jQuery("#ct_delete_checked_users").click(function(){if(!confirm(ctUsersCheck.ct_confirm_deletion_checked))return!1;ct_delete_checked_users()}),jQuery("#ct_stop_deletion").click(function(){location.href="users.php?page=ct_check_users"}),jQuery(".cleantalk_delete_user_button").click(function(){id=jQuery(this).attr("data-id"),ids=Array(),ids[0]=id;var e={action:"ajax_delete_checked_users",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_close_animate=!1,jQuery("#comment-"+id).hide(),jQuery("#comment-"+id).remove(),ct_close_animate=!0},timeout:15e3})}),jQuery(".cleantalk_delete_user_button").click(function(){id=jQuery(this).attr("data-id"),animate_comment(.3,id)}),jQuery(".cleantalk_user").mouseover(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_delete_user_"+id).show()}),jQuery(".cleantalk_user").mouseout(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_delete_user_"+id).hide()}),jQuery(".cleantalk_delete_from_list_button").click(function(){ct_id=jQuery(this).attr("data-id");var e={action:"ajax_ct_approve_user",security:ct_ajax_nonce,id:ct_id};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){jQuery("#comment-"+ct_id).fadeOut("slow",function(){jQuery("#comment-"+ct_id).remove()})}});e={action:"ct_feedback_user",security:ct_ajax_nonce,user_id:ct_id,status:"approve"};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){},error:function(e,t,c){},timeout:5e3})}),jQuery("#ct_get_csv_file").click(function(){var e={action:"ajax_ct_get_csv_file",security:ct_ajax_nonce,filename:ctUsersCheck.ct_csv_filename};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0==parseInt(e)?alert(ctUsersCheck.ct_bad_csv):jQuery("#ct_csv_wrapper").html("<iframe src='"+location.protocol+"//"+location.hostname+"/wp-content/plugins/cleantalk-spam-protect/check-results/"+ctUsersCheck.ct_csv_filename+".csv'></iframe>")}})})});
2
- //# sourceMappingURL=cleantalk-users-checkspam.min.js.map
1
+ String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e};var ct_working=!(document.cookie="ct_check_users__amount=100; path=/"),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctUsersCheck.ct_prev_accurate,ct_prev_from=ctUsersCheck.ct_prev_from,ct_prev_till=ctUsersCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctUsersCheck.ct_ajax_nonce,ct_users_total=0,ct_users_checked=0,ct_users_spam=0,ct_users_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function apbct_cookie__get(r,a){var s={};return"string"==typeof(r=r||null)&&(r=r.split()),"none"==(a=a||["apbct_","ct_"])&&(a=null),"string"==typeof a&&(a=a.split()),document.cookie.split(";").forEach(function(e,t,c){var _=e.trim().split("=");r&&r.forEach(function(e,t,c){_[0]===e&&(s[_[0]]=_[1])}),a&&a.forEach(function(e,t,c){0===_[0].indexOf(e)&&(s[_[0]]=_[1])})}),s}function apbct_get_cookie(e){var t=apbct_cookie__get(e,e);return"object"==typeof t&&void 0!==t[e]?t[e]:null}function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_users(){var e=0,t=0;jQuery("#ct_allow_date_range").is(":checked")&&(e=jQuery("#ct_date_range_from").val(),t=jQuery("#ct_date_range_till").val());var c={action:"ajax_clear_users",security:ct_ajax_nonce,from:e,till:t};jQuery.ajax({type:"POST",url:ajaxurl,data:c,success:function(e){ct_show_users_info(),ct_send_users()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_users(),ct_show_users_info()}function ct_send_users(){if(1!=ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_users",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked,amount:apbct_get_cookie("ct_check_users__amount")};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_users();else{var t="users.php?page=ct_check_users";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||1==ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_users_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="users.php?page=ct_check_users&ct_worked=1";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_users_checked+=e.checked,ct_users_spam+=e.spam,ct_users_bad+=e.bad,ct_unchecked=ct_users_total-ct_users_checked-ct_users_bad;var c=(c=String(ctUsersCheck.ct_status_string)).printf(ct_users_total,ct_users_checked,ct_users_spam,ct_users_bad);0<parseInt(ct_users_spam)&&(c+=ctUsersCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),ct_send_users()}},error:function(e,t,c){20<check_amount&&(check_amount-=20,document.cookie="ct_check_users__amount="+check_amount+"; path=/"),jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check users"),setTimeout(ct_send_users(),3e3)},timeout:25e3})}}function ct_show_users_info(){if(ct_working){if(1==ct_cooling_down_flag)return jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)"),void jQuery("#ct_cooling_notice").show();if(jQuery("#ct_cooling_notice").hide(),setTimeout(ct_show_users_info,3e3),!ct_users_total){var e={action:"ajax_info_users",security:ct_ajax_nonce};ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_users_total=e.total,ct_users_spam=e.spam,ct_users_checked=e.checked,ct_users_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Show users"),setTimeout(ct_show_users_info(),3e3)},timeout:15e3})}}}function ct_insert_users(t){var e={action:"ajax_insert_users",security:ct_ajax_nonce};(t=t||null)&&(e.delete=!0),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){t?alert(ctUsersCheck.ct_deleted+" "+e+" "+ctUsersCheck.ct_iusers):alert(ctUsersCheck.ct_inserted+" "+e+" "+ctUsersCheck.ct_iusers)}})}function ct_delete_all_users(){var e={action:"ajax_delete_all_users",security:ct_ajax_nonce};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0<e?(jQuery("#cleantalk_users_left").html(e),ct_delete_all_users()):location.href="users.php?page=ct_check_users&ct_worked=1"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("All users deleteion"),setTimeout(ct_delete_all_users(),3e3)},timeout:25e3})}function ct_delete_checked_users(){ids=Array();var e=0;jQuery("input[id^=cb-select-][id!=cb-select-all-1]").each(function(){jQuery(this).prop("checked")&&(ids[e]=jQuery(this).attr("id").substring(10),e++)});var t={action:"ajax_delete_checked_users",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:t,success:function(e){location.href="users.php?page=ct_check_users&ct_worked=1"},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("All users deleteion"),setTimeout(ct_delete_checked_users(),3e3)},timeout:15e3})}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))});var r=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"M d yy",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);r.not(this).datepicker("option",t,_)}});function e(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""===ct_date_from||""===ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_users_info(),ct_send_users()):ct_clear_users())}jQuery("#ct_check_spam_button").click(function(){e(!(document.cookie="ct_paused_users_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){e(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_users_check="+JSON.stringify(e)+"; path=/"}),jQuery("#ct_insert_users").click(function(){ct_insert_users()}),jQuery("#ct_delete_users").click(function(){ct_insert_users(!0)}),jQuery("#ct_delete_all_users").click(function(){if(!confirm(ctUsersCheck.ct_confirm_deletion_all))return!1;jQuery(".ct_to_hide").hide(),jQuery("#ct_checking_status").hide(),jQuery("#ct_search_info").hide(),jQuery("#ct_preloader").show(),jQuery("#ct_deleting_message").show(),jQuery("#ct_stop_deletion").show(),jQuery("html, body").animate({scrollTop:0},"slow"),ct_delete_all_users()}),jQuery("#ct_delete_checked_users").click(function(){if(!confirm(ctUsersCheck.ct_confirm_deletion_checked))return!1;ct_delete_checked_users()}),jQuery("#ct_stop_deletion").click(function(){location.href="users.php?page=ct_check_users"}),jQuery(".cleantalk_delete_user_button").click(function(){id=jQuery(this).attr("data-id"),ids=Array(),ids[0]=id;var e={action:"ajax_delete_checked_users",security:ct_ajax_nonce,ids:ids};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){ct_close_animate=!1,jQuery("#comment-"+id).hide(),jQuery("#comment-"+id).remove(),ct_close_animate=!0},timeout:15e3})}),jQuery(".cleantalk_delete_user_button").click(function(){id=jQuery(this).attr("data-id"),animate_comment(.3,id)}),jQuery(".cleantalk_user").mouseover(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_delete_user_"+id).show()}),jQuery(".cleantalk_user").mouseout(function(){id=jQuery(this).attr("data-id"),jQuery("#cleantalk_delete_user_"+id).hide()}),jQuery(".cleantalk_delete_from_list_button").click(function(){ct_id=jQuery(this).attr("data-id");var e={action:"ajax_ct_approve_user",security:ct_ajax_nonce,id:ct_id};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){jQuery("#comment-"+ct_id).fadeOut("slow",function(){jQuery("#comment-"+ct_id).remove()})}});e={action:"ct_feedback_user",security:ct_ajax_nonce,user_id:ct_id,status:"approve"};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){},error:function(e,t,c){},timeout:5e3})}),jQuery("#ct_get_csv_file").click(function(){var e={action:"ajax_ct_get_csv_file",security:ct_ajax_nonce,filename:ctUsersCheck.ct_csv_filename};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0==parseInt(e)?alert(ctUsersCheck.ct_bad_csv):jQuery("#ct_csv_wrapper").html("<iframe src='"+location.protocol+"//"+location.hostname+"/wp-content/plugins/cleantalk-spam-protect/check-results/"+ctUsersCheck.ct_csv_filename+".csv'></iframe>")}})})});
2
+ //# sourceMappingURL=cleantalk-users-checkspam.min.js.map
js/cleantalk-users-checkspam.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["cleantalk-users-checkspam.js"],"names":["String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_working","document","cookie","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctUsersCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_users_total","ct_users_checked","ct_users_spam","ct_users_bad","ct_unchecked","ct_date_from","ct_date_till","apbct_cookie__get","names","prefixes","split","forEach","item","i","arr","curr","trim","name","all","prefix","apbct_get_cookie","animate_comment","to","id","jQuery","fadeTo","ct_clear_users","is","ct_show_users_info","ct_send_users","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_cooling_down_toggle","setTimeout","new_check","unchecked","amount","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","check_amount","show","timeout","message","total","ct_insert_users","delete_accounts","alert","ct_deleted","ct_iusers","ct_inserted","ct_delete_all_users","ct_delete_checked_users","ids","Array","cnt","each","prop","attr","ct_toggle_depended","obj","secondary","depended","removeProp","ready","state","val","on","dates","datepicker","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","click","ct_check","accurate","from","till","JSON","stringify","ct_confirm_deletion_all","animate","scrollTop","ct_confirm_deletion_checked","remove","mouseover","mouseout","ct_id","fadeOut","user_id","status","filename","ct_csv_filename","ct_bad_csv","protocol","hostname"],"mappings":"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","file":"cleantalk-users-checkspam.min.js","sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Set deafult amount to check by request.\r\ndocument.cookie = \"ct_check_users__amount=\" + 100 + \"; path=/\";\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctUsersCheck.ct_prev_accurate,\r\n\tct_prev_from = ctUsersCheck.ct_prev_from,\t\r\n\tct_prev_till = ctUsersCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctUsersCheck.ct_ajax_nonce,\r\n\tct_users_total = 0,\r\n\tct_users_checked = 0,\r\n\tct_users_spam = 0,\r\n\tct_users_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\n/* Function: Reuturns cookie with prefix */\r\nfunction apbct_cookie__get(names, prefixes){\r\n\tvar cookie = {};\r\n\tnames = names || null;\r\n\tif(typeof names == 'string') names = names.split();\r\n\tprefixes = prefixes || ['apbct_', 'ct_'];\r\n\tif(prefixes == 'none') prefixes = null;\r\n\tif(typeof prefixes == 'string') prefixes = prefixes.split();\r\n\tdocument.cookie.split(';').forEach(function(item, i, arr){\r\n\t\tvar curr = item.trim().split('=');\r\n\t\t// Detect by full cookie name\r\n\t\tif(names){\r\n\t\t\tnames.forEach(function(name, i, all){\r\n\t\t\t\tif(curr[0] === name)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Detect by name prefix\r\n\t\tif(prefixes){\r\n\t\t\tprefixes.forEach(function(prefix, i, all){\r\n\t\t\t\tif(curr[0].indexOf(prefix) === 0)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\treturn cookie;\r\n}\r\n\r\nfunction apbct_get_cookie( name ){\r\n\tvar cookie = apbct_cookie__get( name, name );\r\n\tif(typeof cookie === 'object' && typeof cookie[name] != 'undefined'){\r\n\t\treturn cookie[name];\r\n\t}else\r\n\t\treturn null;\r\n}\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to==0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_users(){\r\n\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\r\n\r\n\t\tct_show_users_info();\r\n\t\tct_send_users();\r\n\r\n\t} else {\r\n\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_clear_users',\r\n\t\t\t'security': ct_ajax_nonce\r\n\t\t};\r\n\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tct_show_users_info();\r\n\t\t\t\tct_send_users();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_users();\r\n\tct_show_users_info();\r\n}\r\n\r\nfunction ct_send_users(){\r\n\t\r\n\tif(ct_cooling_down_flag == true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\r\n\tvar data = {\r\n\t\taction: 'ajax_check_users',\r\n\t\tsecurity: ct_ajax_nonce,\r\n\t\tnew_check: ct_new_check,\r\n\t\tunchecked: ct_unchecked,\r\n\t\tamount: apbct_get_cookie('ct_check_users__amount'),\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause == true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users&ct_worked=1';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_users_checked += msg.checked;\r\n\t\t\t\t\tct_users_spam += msg.spam;\r\n\t\t\t\t\tct_users_bad += msg.bad;\r\n\t\t\t\t\tct_unchecked = ct_users_total - ct_users_checked - ct_users_bad;\r\n\t\t\t\t\tvar status_string = String(ctUsersCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_users_total, ct_users_checked, ct_users_spam, ct_users_bad);\r\n\t\t\t\t\tif(parseInt(ct_users_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctUsersCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tif(check_amount > 20){\r\n\t\t\t\tcheck_amount -= 20;\r\n\t\t\t\tdocument.cookie = \"ct_check_users__amount=\" + check_amount + \"; path=/\";\r\n\t\t\t}\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check users');\r\n\t\t\tsetTimeout(ct_send_users(), 3000);\r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_users_info(){\r\n\t\r\n\tif(ct_working){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag == true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\r\n\t\t\tjQuery('#ct_cooling_notice').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\r\n\t\t\r\n\t\tsetTimeout(ct_show_users_info, 3000);\r\n\t\t\r\n\t\tif(!ct_users_total){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_users',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(ct_date_from && ct_date_till){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_users_total = msg.total;\r\n\t\t\t\t\tct_users_spam = msg.spam;\r\n\t\t\t\t\tct_users_checked = msg.checked;\r\n\t\t\t\t\tct_users_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function (jqXHR, textStatus, errorThrown){\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Show users');\r\n\t\t\t\t\tsetTimeout(ct_show_users_info(), 3000);\r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\nfunction ct_insert_users(delete_accounts){\r\n\r\n delete_accounts = delete_accounts || null;\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_insert_users',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tif(delete_accounts)\r\n\t\tdata['delete'] = true;\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(delete_accounts)\r\n\t\t\t\talert(ctUsersCheck.ct_deleted + ' ' + msg + ' ' + ctUsersCheck.ct_iusers);\r\n\t\t\telse\r\n\t\t\t\talert(ctUsersCheck.ct_inserted + ' ' + msg + ' ' + ctUsersCheck.ct_iusers);\r\n\t\t}\r\n\t});\r\n}\r\nfunction ct_delete_all_users(){\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all_users',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(msg>0){\r\n\t\t\t\tjQuery('#cleantalk_users_left').html(msg);\r\n\t\t\t\tct_delete_all_users();\r\n\t\t\t}else{\r\n\t\t\t\tlocation.href='users.php?page=ct_check_users&ct_worked=1';\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\r\n\t\t\tsetTimeout(ct_delete_all_users(), 3000);\r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_delete_checked_users(){\r\n\t\r\n\tids=Array();\r\n\tvar cnt=0;\r\n\tjQuery('input[id^=cb-select-][id!=cb-select-all-1]').each(function(){\r\n\t\tif(jQuery(this).prop('checked')){\r\n\t\t\tids[cnt]=jQuery(this).attr('id').substring(10);\r\n\t\t\tcnt++;\r\n\t\t}\r\n\t});\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_checked_users',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'ids':ids\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tlocation.href='users.php?page=ct_check_users&ct_worked=1';\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\r\n\t\t\tsetTimeout(ct_delete_checked_users(), 3000);\r\n\t\t},\r\n\t\ttimeout: 15000\r\n\t});\r\n}\r\n\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\t\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\t\t\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'yy-mm-dd',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\t\r\n\tfunction ct_start_check(continue_check){\r\n\r\n\t continue_check = continue_check || null;\r\n\t\t\r\n\t\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\t\t\t\r\n\t\t\tct_date_from = jQuery('#ct_date_range_from').val();\r\n\t\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\t\t\t\t\t\t\r\n\t\t\tif(!(ct_date_from !== '' && ct_date_till !== '')){\r\n\t\t\t\talert('Please, specify a date range.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\t\tct_accurate_check = true;\r\n\t\t}\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_working_message').show();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_pause').show();\r\n\t\t\r\n\t\tct_working=true;\r\n\t\t\r\n\t\tif(continue_check){\r\n\t\t\tct_show_users_info();\r\n\t\t\tct_send_users();\r\n\t\t}else\r\n\t\t\tct_clear_users();\r\n\t\t\r\n\t}\r\n\t\r\n\t// Check users\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\t\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_users_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_insert_users\").click(function(){\r\n\t\tct_insert_users();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_delete_users\").click(function(){\r\n\t\tct_insert_users(true);\r\n\t});\r\n\t\r\n\t// Delete all spam users\r\n\tjQuery(\"#ct_delete_all_users\").click(function(){\r\n\t\t\r\n\t\tif (!confirm(ctUsersCheck.ct_confirm_deletion_all))\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_checking_status').hide();\r\n\t\tjQuery('#ct_search_info').hide();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_deleting_message').show();\r\n\t\tjQuery('#ct_stop_deletion').show();\r\n\t\tjQuery(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n\t\tct_delete_all_users();\r\n\t});\r\n\tjQuery(\"#ct_delete_checked_users\").click(function(){\r\n\t\tif (!confirm(ctUsersCheck.ct_confirm_deletion_checked))\r\n\t\t\treturn false;\r\n\t\tct_delete_checked_users();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_stop_deletion\").click(function(){\r\n\t\tlocation.href='users.php?page=ct_check_users';\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_user_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tids=Array();\r\n\t\tids[0]=id;\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_delete_checked_users',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'ids':ids\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tct_close_animate=false;\r\n\t\t\t\tjQuery(\"#comment-\"+id).hide();\r\n\t\t\t\tjQuery(\"#comment-\"+id).remove();\r\n\t\t\t\tct_close_animate=true;\r\n\t\t\t},\r\n\t\t\ttimeout: 15000\r\n\t\t});\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_user_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tanimate_comment(0.3, id);\r\n\t});\r\n\t\t\r\n\t//Show/hide action on mouse over/out\r\n\tjQuery(\".cleantalk_user\").mouseover(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_delete_user_\"+id).show();\r\n\t});\r\n\tjQuery(\".cleantalk_user\").mouseout(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_delete_user_\"+id).hide();\r\n\t});\r\n\t\t\r\n\t//Approve button\r\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\r\n\t\tct_id = jQuery(this).attr(\"data-id\");\r\n\t\t\r\n\t\t// Approving\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_approve_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'id': ct_id\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\r\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\t\r\n\t\t// Positive feedback\r\n\t\tvar data = {\r\n\t\t\t'action': 'ct_feedback_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'user_id': ct_id,\r\n\t\t\t'status': 'approve'\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(msg == 1){\r\n\t\t\t\t\t// Success\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 0){\r\n\t\t\t\t\t// Error occurred\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 'no_hash'){\r\n\t\t\t\t\t// No hash\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\ttimeout: 5000\r\n\t\t});\r\n\t\t\r\n\t});\r\n\t\r\n\t// Request to Download CSV file.\r\n\tjQuery(\"#ct_get_csv_file\").click(function(){\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_get_csv_file',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'filename': ctUsersCheck.ct_csv_filename\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(parseInt(msg)==0)\r\n\t\t\t\t\talert(ctUsersCheck.ct_bad_csv);\r\n\t\t\t\telse\r\n\t\t\t\t\tjQuery(\"#ct_csv_wrapper\").html(\"<iframe src='\"+location.protocol+\"//\"+location.hostname+\"/wp-content/plugins/cleantalk-spam-protect/check-results/\"+ctUsersCheck.ct_csv_filename+\".csv'></iframe>\");\r\n\t\t\t},\r\n\t\t});\r\n\t});\r\n});"]}
1
+ {"version":3,"sources":["cleantalk-users-checkspam.js"],"names":["String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_working","document","cookie","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctUsersCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_users_total","ct_users_checked","ct_users_spam","ct_users_bad","ct_unchecked","ct_date_from","ct_date_till","apbct_cookie__get","names","prefixes","split","forEach","item","i","arr","curr","trim","name","all","prefix","apbct_get_cookie","animate_comment","to","id","jQuery","fadeTo","ct_clear_users","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_users_info","ct_send_users","ct_cooling_down_toggle","setTimeout","new_check","unchecked","amount","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","check_amount","show","timeout","message","total","ct_insert_users","delete_accounts","alert","ct_deleted","ct_iusers","ct_inserted","ct_delete_all_users","ct_delete_checked_users","ids","Array","cnt","each","prop","attr","ct_toggle_depended","obj","secondary","depended","removeProp","ready","state","on","dates","datepicker","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","click","ct_check","accurate","JSON","stringify","ct_confirm_deletion_all","animate","scrollTop","ct_confirm_deletion_checked","remove","mouseover","mouseout","ct_id","fadeOut","user_id","status","filename","ct_csv_filename","ct_bad_csv","protocol","hostname"],"mappings":"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","file":"cleantalk-users-checkspam.min.js","sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Set deafult amount to check by request.\r\ndocument.cookie = \"ct_check_users__amount=\" + 100 + \"; path=/\";\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctUsersCheck.ct_prev_accurate,\r\n\tct_prev_from = ctUsersCheck.ct_prev_from,\t\r\n\tct_prev_till = ctUsersCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctUsersCheck.ct_ajax_nonce,\r\n\tct_users_total = 0,\r\n\tct_users_checked = 0,\r\n\tct_users_spam = 0,\r\n\tct_users_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\n/* Function: Reuturns cookie with prefix */\r\nfunction apbct_cookie__get(names, prefixes){\r\n\tvar cookie = {};\r\n\tnames = names || null;\r\n\tif(typeof names == 'string') names = names.split();\r\n\tprefixes = prefixes || ['apbct_', 'ct_'];\r\n\tif(prefixes == 'none') prefixes = null;\r\n\tif(typeof prefixes == 'string') prefixes = prefixes.split();\r\n\tdocument.cookie.split(';').forEach(function(item, i, arr){\r\n\t\tvar curr = item.trim().split('=');\r\n\t\t// Detect by full cookie name\r\n\t\tif(names){\r\n\t\t\tnames.forEach(function(name, i, all){\r\n\t\t\t\tif(curr[0] === name)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Detect by name prefix\r\n\t\tif(prefixes){\r\n\t\t\tprefixes.forEach(function(prefix, i, all){\r\n\t\t\t\tif(curr[0].indexOf(prefix) === 0)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\treturn cookie;\r\n}\r\n\r\nfunction apbct_get_cookie( name ){\r\n\tvar cookie = apbct_cookie__get( name, name );\r\n\tif(typeof cookie === 'object' && typeof cookie[name] != 'undefined'){\r\n\t\treturn cookie[name];\r\n\t}else\r\n\t\treturn null;\r\n}\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to==0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_users(){\r\n\r\n\tvar from = 0, till = 0;\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\r\n\t\tfrom = jQuery('#ct_date_range_from').val();\r\n\t\ttill = jQuery('#ct_date_range_till').val();\r\n\t}\r\n\tvar data = {\r\n\t\t'action' : 'ajax_clear_users',\r\n\t\t'security' : ct_ajax_nonce,\r\n\t\t'from' : from,\r\n\t\t'till' : till\r\n\t};\r\n\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tct_show_users_info();\r\n\t\t\tct_send_users();\r\n\t\t}\r\n\t});\r\n\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_users();\r\n\tct_show_users_info();\r\n}\r\n\r\nfunction ct_send_users(){\r\n\t\r\n\tif(ct_cooling_down_flag == true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\r\n\tvar data = {\r\n\t\taction: 'ajax_check_users',\r\n\t\tsecurity: ct_ajax_nonce,\r\n\t\tnew_check: ct_new_check,\r\n\t\tunchecked: ct_unchecked,\r\n\t\tamount: apbct_get_cookie('ct_check_users__amount'),\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause == true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users&ct_worked=1';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_users_checked += msg.checked;\r\n\t\t\t\t\tct_users_spam += msg.spam;\r\n\t\t\t\t\tct_users_bad += msg.bad;\r\n\t\t\t\t\tct_unchecked = ct_users_total - ct_users_checked - ct_users_bad;\r\n\t\t\t\t\tvar status_string = String(ctUsersCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_users_total, ct_users_checked, ct_users_spam, ct_users_bad);\r\n\t\t\t\t\tif(parseInt(ct_users_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctUsersCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tif(check_amount > 20){\r\n\t\t\t\tcheck_amount -= 20;\r\n\t\t\t\tdocument.cookie = \"ct_check_users__amount=\" + check_amount + \"; path=/\";\r\n\t\t\t}\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check users');\r\n\t\t\tsetTimeout(ct_send_users(), 3000);\r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_users_info(){\r\n\t\r\n\tif(ct_working){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag == true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\r\n\t\t\tjQuery('#ct_cooling_notice').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\r\n\t\t\r\n\t\tsetTimeout(ct_show_users_info, 3000);\r\n\t\t\r\n\t\tif(!ct_users_total){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_users',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(ct_date_from && ct_date_till){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_users_total = msg.total;\r\n\t\t\t\t\tct_users_spam = msg.spam;\r\n\t\t\t\t\tct_users_checked = msg.checked;\r\n\t\t\t\t\tct_users_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function (jqXHR, textStatus, errorThrown){\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Show users');\r\n\t\t\t\t\tsetTimeout(ct_show_users_info(), 3000);\r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\nfunction ct_insert_users(delete_accounts){\r\n\r\n delete_accounts = delete_accounts || null;\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_insert_users',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tif(delete_accounts)\r\n\t\tdata['delete'] = true;\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(delete_accounts)\r\n\t\t\t\talert(ctUsersCheck.ct_deleted + ' ' + msg + ' ' + ctUsersCheck.ct_iusers);\r\n\t\t\telse\r\n\t\t\t\talert(ctUsersCheck.ct_inserted + ' ' + msg + ' ' + ctUsersCheck.ct_iusers);\r\n\t\t}\r\n\t});\r\n}\r\nfunction ct_delete_all_users(){\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all_users',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tif(msg>0){\r\n\t\t\t\tjQuery('#cleantalk_users_left').html(msg);\r\n\t\t\t\tct_delete_all_users();\r\n\t\t\t}else{\r\n\t\t\t\tlocation.href='users.php?page=ct_check_users&ct_worked=1';\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\r\n\t\t\tsetTimeout(ct_delete_all_users(), 3000);\r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_delete_checked_users(){\r\n\t\r\n\tids=Array();\r\n\tvar cnt=0;\r\n\tjQuery('input[id^=cb-select-][id!=cb-select-all-1]').each(function(){\r\n\t\tif(jQuery(this).prop('checked')){\r\n\t\t\tids[cnt]=jQuery(this).attr('id').substring(10);\r\n\t\t\tcnt++;\r\n\t\t}\r\n\t});\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_checked_users',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'ids':ids\r\n\t};\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tlocation.href='users.php?page=ct_check_users&ct_worked=1';\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\r\n\t\t\tsetTimeout(ct_delete_checked_users(), 3000);\r\n\t\t},\r\n\t\ttimeout: 15000\r\n\t});\r\n}\r\n\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\t\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\t\t\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'M d yy',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\t\r\n\tfunction ct_start_check(continue_check){\r\n\r\n\t continue_check = continue_check || null;\r\n\t\t\r\n\t\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\t\t\t\r\n\t\t\tct_date_from = jQuery('#ct_date_range_from').val();\r\n\t\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\t\t\t\t\t\t\r\n\t\t\tif(!(ct_date_from !== '' && ct_date_till !== '')){\r\n\t\t\t\talert('Please, specify a date range.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\t\tct_accurate_check = true;\r\n\t\t}\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_working_message').show();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_pause').show();\r\n\t\t\r\n\t\tct_working=true;\r\n\t\t\r\n\t\tif(continue_check){\r\n\t\t\tct_show_users_info();\r\n\t\t\tct_send_users();\r\n\t\t}else\r\n\t\t\tct_clear_users();\r\n\t\t\r\n\t}\r\n\t\r\n\t// Check users\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\t\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_users_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_insert_users\").click(function(){\r\n\t\tct_insert_users();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_delete_users\").click(function(){\r\n\t\tct_insert_users(true);\r\n\t});\r\n\t\r\n\t// Delete all spam users\r\n\tjQuery(\"#ct_delete_all_users\").click(function(){\r\n\t\t\r\n\t\tif (!confirm(ctUsersCheck.ct_confirm_deletion_all))\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_checking_status').hide();\r\n\t\tjQuery('#ct_search_info').hide();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_deleting_message').show();\r\n\t\tjQuery('#ct_stop_deletion').show();\r\n\t\tjQuery(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n\t\tct_delete_all_users();\r\n\t});\r\n\tjQuery(\"#ct_delete_checked_users\").click(function(){\r\n\t\tif (!confirm(ctUsersCheck.ct_confirm_deletion_checked))\r\n\t\t\treturn false;\r\n\t\tct_delete_checked_users();\r\n\t});\r\n\t\r\n\tjQuery(\"#ct_stop_deletion\").click(function(){\r\n\t\tlocation.href='users.php?page=ct_check_users';\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_user_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tids=Array();\r\n\t\tids[0]=id;\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_delete_checked_users',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'ids':ids\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tct_close_animate=false;\r\n\t\t\t\tjQuery(\"#comment-\"+id).hide();\r\n\t\t\t\tjQuery(\"#comment-\"+id).remove();\r\n\t\t\t\tct_close_animate=true;\r\n\t\t\t},\r\n\t\t\ttimeout: 15000\r\n\t\t});\r\n\t});\r\n\t\r\n\tjQuery(\".cleantalk_delete_user_button\").click(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tanimate_comment(0.3, id);\r\n\t});\r\n\t\t\r\n\t//Show/hide action on mouse over/out\r\n\tjQuery(\".cleantalk_user\").mouseover(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_delete_user_\"+id).show();\r\n\t});\r\n\tjQuery(\".cleantalk_user\").mouseout(function(){\r\n\t\tid = jQuery(this).attr(\"data-id\");\r\n\t\tjQuery(\"#cleantalk_delete_user_\"+id).hide();\r\n\t});\r\n\t\t\r\n\t//Approve button\r\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\r\n\t\tct_id = jQuery(this).attr(\"data-id\");\r\n\t\t\r\n\t\t// Approving\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_approve_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'id': ct_id\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\r\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\t\r\n\t\t// Positive feedback\r\n\t\tvar data = {\r\n\t\t\t'action': 'ct_feedback_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'user_id': ct_id,\r\n\t\t\t'status': 'approve'\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(msg == 1){\r\n\t\t\t\t\t// Success\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 0){\r\n\t\t\t\t\t// Error occurred\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 'no_hash'){\r\n\t\t\t\t\t// No hash\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\ttimeout: 5000\r\n\t\t});\r\n\t\t\r\n\t});\r\n\t\r\n\t// Request to Download CSV file.\r\n\tjQuery(\"#ct_get_csv_file\").click(function(){\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_get_csv_file',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'filename': ctUsersCheck.ct_csv_filename\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(parseInt(msg)==0)\r\n\t\t\t\t\talert(ctUsersCheck.ct_bad_csv);\r\n\t\t\t\telse\r\n\t\t\t\t\tjQuery(\"#ct_csv_wrapper\").html(\"<iframe src='\"+location.protocol+\"//\"+location.hostname+\"/wp-content/plugins/cleantalk-spam-protect/check-results/\"+ctUsersCheck.ct_csv_filename+\".csv'></iframe>\");\r\n\t\t\t},\r\n\t\t});\r\n\t});\r\n});"]}
lib/Cleantalk/Antispam/API.php CHANGED
@@ -701,7 +701,7 @@ class API
701
  // Bad connection
702
  if(is_array($result) && isset($result['error'])){
703
  return array(
704
- 'error' => 'CONNECTION_ERROR: ' . (isset($result['error']) ? ' ' . $result['error'] : ''),
705
  );
706
  }
707
 
701
  // Bad connection
702
  if(is_array($result) && isset($result['error'])){
703
  return array(
704
+ 'error' => 'CONNECTION_ERROR' . (isset($result['error']) ? ': "' . $result['error'] . '"' : ''),
705
  );
706
  }
707
 
readme.txt CHANGED
@@ -1,3259 +1,3269 @@
1
- === Spam protection, AntiSpam, FireWall by CleanTalk ===
2
- Contributors: safronik
3
- Tags: spam, antispam, protection, comments, firewall
4
- Requires at least: 3.0
5
- Tested up to: 5.3
6
- Stable tag: 5.127.4
7
- License: GPLv2
8
-
9
- Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
10
-
11
- == Description ==
12
-
13
- **Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, any WordPress registrations & contact forms and themes. Just setup and forget the spam!**
14
-
15
- No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
16
-
17
- = AntiSpam features =
18
- 1. Stops spam comments.
19
- 2. Stops spam registrations.
20
- 3. Stops spam contact emails.
21
- 4. Stops spam orders.
22
- 5. Stops spam bookings.
23
- 6. Stops spam subscriptions.
24
- 7. Stops spam surveys, polls.
25
- 8. Stops spam in widgets.
26
- 9. Stops spam in WooCommerce.
27
- 10. Checks and removes the existing spam comments and spam users.
28
- 11. Compatible with mobile users and devices.
29
- 12. Compatible with General Data Protection Regulation (GDPR) (EU).
30
- 13. Real-time email validation. Is email real or Not.
31
- 14. Blocking disposable & temporary emails.
32
- 15. No Spam - No Google Penalties. Give your SEO boost.
33
- 16. Mobile friendly Anti Spam & FireWall.
34
- 16. Stops spam in Search Form.
35
-
36
- = Public reviews =
37
- > CleanTalk - Cloud-Based Anti-Spam Service to Keep Your Site Bot-Free.
38
- > <a href="https://newswatchtv.com/2018/07/18/cleantalk-newswatch-review/" rarget="_blank">NewsWatch Review</a>.
39
-
40
- > Using CleanTalk on WPLift was a great test as we receive huge amounts of spam.
41
- > *Oliver Dale, <a href="http://wplift.com/wordpress-anti-spam-plugin" target="_blank">WPLift.com</a>.*
42
-
43
- >I know you have heard of a number of anti-spam plugins. But you must know, the cloud-based ones are the best regarding detection rate. They compare all the content in forms with their own algorithm to find out the legibility.
44
- >*<a href="https://www.techwibe.com/cleantalk-wordpress-plugin-review/" target="_blank">www.techwibe.com</a>*
45
-
46
- > The key selling point of CleanTalk for me is not simply its effectiveness. It's the fact that CleanTalk works in the background. It does not make users jump through hoops in order to submit a comment or complete a form.
47
- > <a href="https://www.kevinmuldoon.com/cleantalk-anti-spam-service/">www.kevinmuldoon.com</a>
48
-
49
- = Free trial then $8 per year =
50
- CleanTalk is a free anti spam plugin which work with the premium Cloud AntiSpam service cleantalk.org. This plugin as a service https://en.wikipedia.org/wiki/Software_as_a_service.
51
-
52
- = AntiSpam protection for comments =
53
- Native spam protection for WordPress, JetPack comments and any other comment plugins. The plugin moves spam comments to SPAM folder or you can set the option to ban spam comments silently. You can also enable the option in the plugin settings to auto-delete comments from SPAM folder.
54
-
55
- = Spam bots registrations filter =
56
- Filters spam bots on registration forms of WordPress, BuddyPress, bbPress, S2Member, WooCommerce, Profile builder, Login with AJAX and any other registration plugins.
57
-
58
- = Protection from contact form spam =
59
- The plugin is tested and ready to protect from spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing Page Builder, Gravity forms, Contact Form by BestWebSoft, Simple Contact Form Plugin - PirateForms, Visual Form Builder, Contact Form by WebDorado, Contact Form Email, MW WP Form, Contact Form by Jeff Bulllins, Contact Us Form, WCP Contact Form, WPForms Lite, Custom Contact, Forms, Caldera Forms, Visual Form Builder, Contact Form Clean and Simple, Divi by Elegant Themes, The7 theme and any other themes or custom contact forms, amoForms, Ultimate Form Builder, Contact Bank - Contact Forms Builder, Forms easily built with Smart Forms, Usernoise contact form, Contact Form by Web-Settler, HubSpot Marketing Free, QuForm.
60
-
61
- = WooCommerce spam filter =
62
- Anti-spam by CleanTalk filters spam registrations and spam reviews for WooCommerce. The plugin is fully compatible with WooCommerce 2.1 and higher.
63
-
64
- = Newsletters antispam filter =
65
- Anti-spam by CleanTalk filters spam subscriptions for MailPoet, MailChimp, PopupAlly and many other newsletter plugins.
66
-
67
- = Spam filter for theme contact forms =
68
- The plugin blocks spam emails via any theme (built-in ones included) contact forms. The plugin filters spam emails silently (without any error notices on WordPress frontend) in AJAX forms as well.
69
-
70
- = bbPress spam filter =
71
- Spam protection for everything about bbPress: logins, registrations, forums, topics and replies.
72
-
73
- = Other spam filters =
74
- * WordPress Landing Pages.
75
- * WP User Frontend, UserPro.
76
- * Any WordPress form (checkbox 'Custom contact forms').
77
- * Any submission to the site (checkbox 'Check all POST data')
78
-
79
- = Compatible with WordPress cache plugins =
80
- * W3 Total Cache, Quick Cache, WP Fastest Cache, Hyper Cache, WP Super cache, WP-Rocket and any other cache plugins.
81
-
82
- = Check existing comments for spam. Bulk spam comments removal. Spam comment Cleaner =
83
- With the help of anti-spam by CleanTalk you can inspect through existing comments to find and quickly delete spam comments at once. To use this function, go to WP Console -> Comments -> Find spam comments.
84
-
85
- = Check existing users for spam. Bulk spam accounts removal. Spam users cleaner =
86
- With the help of anti-spam by CleanTalk you can inspect through existing accounts to find and quickly delete spam users at once. For use this function, go to WP Console -> Users -> Check for spam. Also, you can export a list of spam users to the CSV.
87
-
88
- = Blocking users by country =
89
- Automatically block comments and registrations from the countries you have set a ban for. This option is useful in cases of manual spam protection and for protection enhancement. If your site is not intended for international audience and you do not expect comments/users from other countries.
90
-
91
- = Blocking comments by "stop words" =
92
- You can block comments which contain "stop words" to enhance spam protection and messages with obscene words blocking. You can add particular words or phrases.
93
-
94
- = Private black lists for anti-spam service =
95
- Automatically block comments and registrations from your private black
96
- IP/email address list. This option helps to strengthen the spam protection from a manual spam or block unwanted comments from users. You can add not only the certain IP addresses, but also a separate subnet to your personal black list.
97
-
98
- = Private black list for Spam FireWall =
99
- It allows you to add individual IP addresses and subnets to Spam FireWall. It
100
- blocks the spam attacks from IP addresses which are not included in the SFW base yet. This option can help to block HTTP/HTTPS DDoS, SQL, brute force attacks and any others that made it through the HTTP/HTTPS. You can add not only the certain IP addresses, but also a separate subnet to your personal black list.
101
-
102
- = Low false/positive rate =
103
- This plugin uses multiple anti-spam tests to filter spam bots having as low false/positive rate as possible. Multiple anti-spam tests help to avoid false/positive blocks of the real website visitors even if one of the tests failed.
104
-
105
- = How effective is CleanTalk? =
106
- Accurately blocking spam is not an easy thing to do, but CleanTalk has a very low proven False/Positive rate. Here is actual statistics on false positives for all customers.
107
-
108
- * Registrations - 0.007%
109
- * Comments - 0.001%
110
- * Contact forms - 0.001%
111
- * Orders (WooCommerce) - 0.008%
112
-
113
- The statistic was calculated on November 10 2017 for 1 million requests.
114
-
115
- = How CleanTalk improves SEO for your website? =
116
- So, you already know that the speed of the site has a direct impact on SEO.
117
-
118
- *CleanTalk works faster than most of the other anti-spam plugins.* It is common knowledge that the faster your site loads, the better your customer experience is, the better your SEO will be, and the better your site will convert. Speed is becoming increasingly important in SEO, conversion and user experience. Today, site speed is one of the most important ranking factors on Google. A site that loads slowly will lose visitors and potential revenue.
119
-
120
- There are different ways of improving your site's loading performance. One important parameter for site performance is to install well-developed plugins from a reputable source.
121
-
122
- Among anti-spam plugins CleanTalk AntiSpam is one of the fastest. Despite the
123
- large plugin functionality, the developers have optimized the performance of
124
- the plugin so that AntiSpam by CleanTalk is faster than most analogs. This contributes to the cloud service architecture, as all calculations take place in the cloud, not on the server, the server receives the finished result for further action.
125
-
126
- https://s.w.org/plugins/cleantalk-spam-protect/screenshot-5.png?r=1288723
127
-
128
- = How CleanTalk works? =
129
- * A visitor writes a comment or registers
130
- * Anti-Spam by CleanTalk plugin sends action parameters into the CleanTalk cloud
131
- * Service analyzes the parameters
132
- * If this is a visitor, the comment will be published. If it's a spam bot, then CleanTalk blocks this comment or registration.
133
- * Parameters are written to the spam log which can be viewed in the Control Panel service.
134
-
135
- CleanTalk team has been developing a cloud antispam system for five years and has created a truly reliable anti-spam service designed for you to guarantee
136
- your safety.
137
-
138
- = Spam attacks log =
139
- Service CleanTalk (this plugin is a client application for CleanTalk anti-spam service) records all filtered comments, registration and other spam attacks in the "Log of spam attacks" and stores the data in the log for up to 45 days. Using the log, you can ensure reliable protection of your website from spam and no false/positive filtering.
140
-
141
- = Spam FireWall =
142
- CleanTalk has an advanced option "Spam FireWall". This option allows blocking the most active spam bots before they get access to your website. It prevents spam bots from loading website pages so your web server doesn't have to perform all scripts on these pages. Also it prevents scanning of pages of the website by spam bots. Therefore Spam FireWall significantly reduces the load on your web server. Spam FireWall also makes CleanTalk the two-step protection from spam bots. Spam FireWall is the first step and it blocks the most active spam bots. CleanTalk Anti-Spam is the second step and checks all other requests on the website in the moment of submitting comments/registers etc.
143
-
144
- Spam FireWall is fully compatible with the most popular VPN services.
145
- Also, Spam FireWall supports all search engines Google, Bing, Yahoo, Baidu, MSN, Yandex and etc.
146
-
147
- = How Spam FireWall works? =
148
- * The visitor enters to your web site.
149
- * HTTP request data are being checked in the nearly 5.8 million of the identified spam bot IPs.
150
- * If it is an active spam bot, the bot gets a blank page, if it is a visitor then he receives a normal page. This process is completely transparent for the visitors.
151
-
152
- All the CleanTalk Spam FireWall activity is being logged in the process of filtering.
153
-
154
- = Spam FireWall DDoS Protection =
155
- Spam FireWall can mitigate HTTP/HTTPS DDoS attacks. When an intruder makes GET requests to attack your website, Spam FireWall blocks all requests from bad IP addresses. Your website gives the intruder a special page with the description of DDoS rejection instead of the website pages. Therefore Spam FireWall helps to reduce CPU usage of your server.
156
- [youtube https://www.youtube.com/watch?v=Eu5Zqryvj4k]
157
-
158
- = XML-RPC brute force protection =
159
- Spam FireWall can mitigate XML-RPC brute force attacks. It blocks XML-RPC attacks from bad IP addresses. This helps to prevent bruteforce attacks by a Remote Procedure Call.
160
-
161
- = No spam comments, no spam registrations, no spam contact emails, no spam trackbacks. CAPTCHA-free anti-spam for WordPress =
162
- Spam is one of the most irritating things. Spam rates are increasing every year and conventional anti-spam can no longer handle all spam bots. CleanTalk prevents and automatically blocks spam. You'll be surprised how effective CleanTalk is in protecting from spam.
163
-
164
- = AntiSpam plugin info =
165
- CleanTalk is an all-in-one antispam solution for WordPress that protects login, comment, contact and WooCommerce forms at once. You don't need to install separate antispam plugins for each form. It allows your blog to work faster and save resources. After installation you will forget about spam; your CleanTalk plugin will do all the work. You won't have to deal with spam as CleanTalk does this for you automatically.
166
-
167
- CleanTalk is a transparent antispam tool, we provide detailed stats of all incoming comments and logins. You can always be sure that **there are no errors**. We have developed a mobile app for you to see antispam stats wherever you want.
168
-
169
- We have developed the antispam for WordPress that protects you from spam bots at the maximum level allowing you to provide your visitors a simple and convenient form of comments/registrations without annoying CAPTCHAs and puzzles. CleanTalk detects spam in multistage tests allowing us to block up to 99.998% of spam bots.
170
- The anti-spam method offered by CleanTalk avoids inconvenient for communication methods (CAPTCHA, question-answer etc.), and offers to your site visitors a more comfortable one.
171
-
172
- CleanTalk is a premium anti-spam service for WordPress, the plugin works with
173
- our own CleanTalk Cloud Service. Anti Spam by CleanTalk offers a free trial, you can look at the <a href="https://cleantalk.org/price">pricing</a> here. We provide anti-spam services at the highest level. To maintain this level we cannot afford to offer a free version of our service, as this will immediately affect the quality of the providing anti-spam protection. Paying for a year of anti-spam service, you save a lot more and receive:
174
-
175
- * Up to 99.998% protection from spam bots.
176
- * Time and resources saving.
177
- * More registrations/comments/visitors.
178
- * Spam protection of the several websites at once in different CMS.
179
- * Ease in installation and using.
180
- * Traffic increase and loyalty to the users.
181
- * 24/7 technical support.
182
- * Clear stats.
183
- * No captcha (reCaptcha), puzzles, etc.
184
- * Free mobile app to control anti-spam protection on your website.
185
-
186
- = Additional features =
187
- * Daily and weekly detailed anti-spam reports: traffic VS spam.
188
- * Apps for iPhone, Android to control anti-spam service, comments, signups, contacts, traffic and spam stats for the last 7 days.
189
- * AntiSpam apps for most popular CMS on cleantalk.org.
190
-
191
- = How to protect sites from spam bots without CAPTCHA? =
192
- The most popular anti spam method is CAPTCHA - the annoying picture with curved and sloping symbols, which are presented to the visitor to decipher and fill in. In is supposed that spam bots won't discern these CAPTCHA, but a visitor will. CAPTCHA provokes great irritation, but if the visitor wants to comment, he has to fill in these symbols time after time, making mistakes and starting once again. Sometimes CAPTCHA reminds us of the doodles of a two year old child. For users with vision problems CAPTCHA is an insurmountable obstacle. Users hate captcha. Captcha for users means "hate". Unreadable CAPTCHA stops about 80% of site visitors. After 2 failed attempts to decipher CAPTCHA 95% of visitors reject further attempts. At the sight of CAPTCHA and after input errors, many visitors leave the resource. Thus, CAPTCHA helps to protect the resource spam both from bots and visitors. CAPTCHA is not a panacea from spam. Doubts concerning the Need for CAPTCHA?
193
-
194
- *"Ultimately, CAPTCHAs are useless for spam because they're designed to tell you if someone is 'human' or not, but not whether something is spam or not." Matt Mullenweg*
195
-
196
- You do not have to work in IT to know what spam is. Besides piles of unwanted email, there are spam bots, or special software programs designed to act as human website visitors that post unwelcome messages over the Internet to advertise dubious services. More often than not spam messages do not even make sense. Similar to bacteria and virus mutations developing antibiotic resistance, spam bots are becoming more resilient in penetrating Internet firewalls and security layers.
197
-
198
- = CleanTalk's features =
199
- Anti-Spam by CleanTalk is one of the fastest plugins that allows you to lower the server load. One of the important parameters for each webmaster is the speed of the site, so we make sure that our plugin consumes as few server resources as possible. The Cloud Service provides the advantage: all data processing takes place in the Cloud.
200
-
201
- CleanTalk team has developed unique anti spam algorithms to assess visitors behavior. CleanTalk analyzes user behavior and the parameters of the filled forms. Our anti-spam module, being installed in your website, sends the behavior parameters of either a visitor or a spam bot. When these parameters are estimated, the anti spam service makes a decision - to post a message or to define it as spam and reject it. Based on these checks, the service forms its own list of email addresses used by spam bots.
202
-
203
- The registrations of visitors are being checked in a similar manner. The service adds to the blacklist not just email addresses, but also IP addresses and domains of websites that promote themselves through spam mailing. All of this happens automatically and requires no action from the administration of the website. In 2.5 million queries the service makes a mistake in 40-45 cases, i.e. CleanTalk detects spam with 99.9982% accuracy. We constantly monitor these errors and make adjustments to our algorithms. Even with this exceptional accuracy our team is aiming to improve the figures over time.
204
-
205
- All-in-one. CleanTalk protects form spam all forms instantaneously - comments, registrations, feedback, contacts. No need to install additional plugins for each form. You save resources and increase performance of your website.
206
-
207
- Spam attacks log. Anti-Spam by CleanTalk records all filtered comments, registrations and other spam attacks in the "Log of spam attacks" and stores the data in the log for up to 45 days. Using the log, you can ensure reliable protection of your website from spam and experience no false/positive filtering.
208
-
209
- With the help of anti-spam by CleanTalk you can check existing comments and users, to find and quickly delete spam comments at once. This allows administrators of websites to automatically check and identify spam bots, comments and users, which were not detected by conventional anti-spam tools. The existing comments and users checking process is performed in a database of the nearly 2 million identified spam bots. Detailed spam stats allows CleanTalk customers to fully control it.
210
-
211
- CleanTalk has an advanced option "Spam FireWall". This option allows you to block the most active spam bots before they get access to your website. It unloads you website pages when an attempt attack was made, so your web server won't run unnecessary scripts on these pages. Also it prevents any scanning of website pages by spam bots. Subsequently Spam FireWall significantly reduces your webserver load. Spam FireWall can mitigate HTTP/HTTPS DDoS attacks. When an intruder makes GET requests to attack your website, Spam FireWall will block requests from bad IP addresses. Your website gives the intruder a special page with a description of DDoS rejection instead of the website pages. Spam FireWall can help to reduce the CPU usage of your server because of this reason.
212
-
213
- "CleanTalk team has been developing a cloud spam protection system for five years and has created a truly reliable anti-spam service designed for you to guarantee your safety".
214
-
215
- = White Label Mode =
216
-
217
- To switch the plugin work in the white-label mode you must insert this code to your wp-config.php:
218
-
219
- define('APBCT_WHITELABEL', true);
220
- define('APBCT_WHITELABEL_NAME', 'YOUR_PLUGIN_NAME');
221
- define('APBCT_HOSTER_API_KEY', 'YOUR_HOSTER_API_KEY');
222
-
223
- Where APBCT_WHITELABEL_NAME is any name you want for the plugin.
224
- Where YOUR_HOSTER_API_KEY is a key from CleanTalk's hoster panel.
225
-
226
- The plugin will do everything rest.
227
-
228
- = Auto-Update CleanTalk AntiSpam =
229
-
230
- CleanTalk Dashboard allows you to set auto-update plugin and select several websites and update the plugin at once on all sites by one click or you can setup auto-update for all websites or separate websites.
231
-
232
- Note: there is 24 hours delay before auto-update will do. This delay allows needing to avoid any issues. All updates that made through CleanTalk Dashboard manually will do immediately.
233
-
234
- Auto-updating system will work from CleanTalk AntiSpam version 5.88
235
-
236
- = Real-time email validation. Is email real or Not. =
237
- It is very important to be sure that the user used his real email address. Spambots very often use fake email addresses, i.e. which addresses do not exist.
238
-
239
- CleanTalk will check email addresses for existence in real time.
240
-
241
- Non-existing email addresses also entail several other problems for website owners.
242
-
243
- * You can never contact them by email,
244
- * the client will never receive any notifications from you (account activation letter, password recovery, email distribution, notifications, etc.),
245
- * if you use email marketing for your clients, then a large number of nonexistent emails in the mailing list may result in your IP address being added to various blacklists of email servers.
246
-
247
- Improve your email list with email validation without fake emails.
248
-
249
- = Blocking disposable & temporary emails =
250
-
251
- Block fake and suspicious users with disposable & temporary emails to improve email delivery. So, it also prevents malicious activity, spam bots, and internet trolls.
252
-
253
- = Stops Spam in Search Form =
254
-
255
- Spam bots can use your search form to make a GET request with spam text.
256
- CleanTalk Anti-Spam has the option to protect your website search form from spam bots. Each time, the search generates a new page and if there are many requests, this can create additional load. So, under some conditions, spam searches can be indexed, which affects SEO,
257
-
258
- * Spam FireWall blocks access to all website pages for the most active spambots. It lowers your web server load and traffic just by doing this.
259
- * Anti-Spam protection for website search forms repels spambots.
260
- * If your search form gets data too often the CleanTalk Anti-Spam plugin will add a pause and increase it with each new attempt to send data. It saves your web server processor time.
261
- * Spam protection allows you to not forbid indexation for the crawler bots if you really need it but simultaneously you will get protection from spambots.
262
-
263
- You will always know what users were looking for on your site.
264
-
265
- = Translations =
266
- * Albanian (sq_AL) - thanks to fjalaime https://wordpress.org/support/users/fjalaime/
267
- * French (fr_FR) - thanks to Gilles Santacreu http://net-ik.net
268
- * Spanish (es_ES) - thanks to Andrew Kurtis and WebHostingHub
269
-
270
- = Requirements =
271
- WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enabled 'allow_url_fopen' setting. The plugin is fully compatible with PHP 7.
272
-
273
- > Max power, all-in-one, premium anti-spam WordPress plugin. No comments & registrations spam, no contact spam, protects any forms. Just install and forget spam.
274
-
275
- == Installation ==
276
-
277
- = Installation instructions =
278
-
279
- 1. Download, install and activate 'Anti-spam by CleanTalk'.
280
-
281
- 2. Get Access key <a href="https://cleantalk.org/register?platform=wordpress" target="_blank">https://cleantalk.org/register</a>
282
-
283
- 3. Enter Access key in the settings: WordPress console -> Settings -> Antispam by CleanTalk
284
-
285
- 4. Do dummy spam comment (registration or contact message) with email **stop_email@example.com**. You should see notice: **Forbidden. Sender blacklisted.**
286
-
287
- 5. Done! The plugin is ready to use.
288
-
289
- = Video guide - Anti-Spam Plugin Installation in WordPress. =
290
-
291
- [youtube https://www.youtube.com/watch?v=SktF0s-go6A ]
292
-
293
- **Important!** To test spam protection you must post a dummy submissions as website visitor (use must logged out from WordPress console), because the plugin doesn't filter submissions from WordPress administrators.
294
-
295
- = How can setup plugin in WPMU version? =
296
- In WordPress multisite version you can switch the plugin to use Global Access key. In this way the plugin doesn't show any options to enter Access key in plugin settings and doesn't show Trial banner in WordPress backend. To setup global CleanTalk access key for all websites in WPMS, define constant in your wp-config.php file before defining database constants:
297
-
298
- define('CLEANTALK_ACCESS_KEY', 'place your key here');
299
-
300
- **Make it before you activated the plugin. If the plugin already activated, deactivate it and add the code and active it again.**
301
- Now, all subsites will have this access key.
302
-
303
- = Manage and control spam protection =
304
-
305
- Go to <a href="https://cleantalk.org/my" target="_blank">Dashboard</a> at the cleantalk.org or use <a href="https://play.google.com/store/apps/details?id=org.cleantalk.app">Android</a>, <a href="https://itunes.apple.com/us/app/cleantalk/id825479913?mt=8">iPhone</a> anti-spam app to manage and control spam protection.
306
-
307
-
308
- == Frequently Asked Questions ==
309
-
310
- = Why are they spamming me? =
311
- Spammers want to get backlinks from your site to improve their site's PageRank or redirect your visitors to malicious sites.This level of spam can damage your reputation with readers and commentators if you fail to tackle it. It is not uncommon for some WordPress websites to receive hundreds or even thousands of comments every week. However, by using a CleanTalk plugin, spam can be easily handled by your WordPress website.
312
-
313
- = Is the anti-spam protection safe for mobile visitors? =
314
- Yes, it is. The plugin doesn't block mobile visitors as well as desktop website visitors. It uses several independent anti-spam tests to decrease the number of false outcomes and to have as low false-positive rate as possible. Multiple anti-spam tests help to avoid false/positive blocks for real website visitors even if one of the tests failed.
315
-
316
- = What does the plugin do with spam comments? =
317
- Spam comments are being moved to SPAM folder by default or you can set the option to ban spam comments silently.
318
-
319
- = How can I test the anti-spam protection? =
320
- Please use the email **stop_email@example.com** for comments, contacts or signups to see how the anti-spam protection works. Also you can see the logs for the last 7 days at the <a href="http://cleantalk.org/my/show_requests">Control panel</a> or look at the folder "Spam" for banned comments.
321
-
322
- = Is the plugin effective against spam bots? =
323
- The plugin Anti-Spam by CleanTalk stops up to 99.998% of spam comments, spam signups (registrations), spam contact emails, spam subscriptions, spam bookings or spam orders.
324
-
325
- = Does the plugin protect from brute force, DoS attacks and spam attacks? =
326
- Yes, it does. Please turn the option 'Spam FireWall' on in the plugin settings to protect your website from DoS/DDoS, XML-RPC attacks.
327
-
328
- = How does the plugin stop spam? =
329
- Please, note - administrator's actions are NOT being checked.
330
-
331
- The plugin uses several simple tests to stop spammers:
332
-
333
- 1. **JavaScript anti-spam test.** 99% of spam bots don't have full JavaScript functions support. So, the plugin has the code which can be run by normal visitor and can't be run by the spam bot.
334
- 1. **Email, IP, domain spam activity list entries check.** The plugin uses spam activity database online at cleantalk.org, consisting of more than 20 billion spam activity records of IPs, Emails, Domains and ASN. If the sender's IP or Email is in the database, the sender gets some spam scores. To reduce false/positive rate the plugin not only uses the blacklist test to ban spammers, the sender will be banned when and only when multiple spam tests have been failed.
335
- 1. **Comment submit time.** Spam bots usually submit the info immediately after the page has been loaded, this happens because spam bots don't actually fill the web form, they just send $_POST data to the blog. The normal visitor sends the data after several seconds or minutes.
336
-
337
- = Will the anti-spam plugin protect my theme? =
338
- Yes, it will. The Anti-spam by CleanTalk is compatible with any WordPress theme.
339
-
340
- = What about pingback, trackback spam? =
341
- The plugin passes pingbacks without any checks by default. All trackbacks will be blocked if the sender had spam activity.
342
-
343
- = Can I use CleanTalk with Akismet? =
344
- Sure, you can use CleanTalk with Akismet. In this case you will probably have higher false/positive rate (when legitimate comments/signups are being denied), but you will have stronger anti-spam protection on your website.
345
-
346
- = Is CleanTalk better than Akismet? =
347
- Please look at this features comparison here https://cleantalk.org/cleantalk-vs-akismet
348
-
349
- = Can I use CleanTalk to remove pending spam comments? =
350
- Yes, you can. The plugin has the option to test all pending comments via database of <a href="https://cleantalk.org/blacklists">spam active IP/Email</a>, found spam comments will be moved to Trash folder.
351
-
352
- = How does the plugin find spam in pending comments or registered accounts? =
353
- The plugin checks all non-spam comments in the blacklist database and shows you those senders who have spam activity on other websites.
354
- There are some differences between blacklist database and API to protect you from spam bot registrations/comments online. Blacklists show all history of spam activity, but our API (which is used in spam tests) relies on other parameters too: last day of activity, number of spam attacks during the last days etc. These mechanisms help us to reduce the number of false outcomes. So, there is nothing strange, if some emails/IPs are not found by bulk comments/accounts test.
355
-
356
- To check comments please go here:
357
- > WordPress console -> Comments -> Find spam comments
358
-
359
- To check users please go here:
360
- > WordPress console -> Users -> Find spam users
361
-
362
- = Should I use other anti-spam tools (Captcha, reCaptcha and etc.)? =
363
- CleanTalk stops up to 99.998% of spam bots, so you can disable other anti-spam plugins (especially CAPTCHA-type anti-spam plugins). In some cases several anti-spam plugins could conflict with each other, so it would be better to use just one plugin.
364
-
365
- = Is the plugin compatible with WordPress MultiUser (WPMU or WordPress network)? =
366
- Yes, the plugin is compatible with WordPress MultiUser. Each blog in multisite environment has individual anti-spam options for the protection from spam bots.
367
-
368
- = After the installation I noticed that the number of spam attacks has been increased in the stats =
369
- There are a few reasons for this:
370
-
371
- * With the indexing of your web-site by the search systems, appearance of external links and better search results position, your web-site attracts more and more spambots.
372
- * Non-transparent protection systems like CAPTCHA or question/answer, that don't have spam attacks stats, don't let you see the whole picture, or the picture is incomplete.
373
- * Counting methods for spam attacks and spam bots are different for different systems, thus the diversity appears. We seek to provide detailed stats.
374
-
375
- = Why my dummy "spam" comment passed to the WordPress? =
376
- The plugin has several options to detect spam bots and humans. If you just post spammy text like this:
377
-
378
- "I want to sell something", "Buy something here.." and etc
379
-
380
- the comments will be passed, because the plugin detects sender as a human. So, use special email *stop_email@example.com* to test the anti-spam functionality or wait a few days to see how the plugin works.
381
-
382
- = Is it free or paid? =
383
- The plugin is free. But the plugin uses CleanTalk cloud service to filter spam bots. You have to register an account and then you will receive a free trial to test anti-spam for comments, registrations, bookings, contacts or orders. When the trial (on CleanTalk account) is finished, you can renew the subscription for 1 year or deactivate anti-spam plugin.
384
-
385
- = Can I use CleanTalk with cache plugins? =
386
- Anti-spam by CleanTalk doesn't use static HTML code in its templates, so all anti-spam functions work correctly with any WordPress cache plugins.
387
-
388
- = Does the plugin protect from spam bots if I use forms with third-party services? =
389
- Yes, it does. Plugin protects web-forms on your websites which send data to third-party servers (like MailChimp). To enable this protection set the option 'Protect external forms' in the plugin settings.
390
-
391
- = Does CleanTalk compatible with Cloudflare? =
392
- CleanTalk is fully compatible with CloudFlare. Service doesn't filter CloudFlares IP's (AS13335) through blacklists database, so in this case plugin/service filters spam bots using other anti-spam tests.
393
-
394
- = Is CleanTalk compatible with a content delivery network (CDN)? =
395
- Yes, it is. CleanTalk works with any CDN system, i.e. CloudFlare, MaxCDN, Akamai.
396
-
397
- = Can I use CleanTalk functionality in my plugins? =
398
- Yes, you can. Just use following snippet:
399
-
400
- <?php
401
- if(!function_exists('ct_test_message')){
402
- include_once( ABSPATH . '/wp-content/plugins/cleantalk-spam-protect/cleantalk.php' );
403
- }
404
- //for registration test:
405
- $res=ct_test_registration("nickname", "stop_email@example.com", "127.0.0.1");
406
- //or for some other messages (contact forms, comments etc.)
407
- $res=ct_test_message("nickname", "stop_email@example.com", "127.0.0.1", "test message");
408
-
409
-
410
- $res now contents array with two parameters:
411
- * $res['allow'] - is request allowed (1) or not (0)
412
- * $res['comment'] - comment for our server's decision.
413
-
414
- = I see two loads of script cleantalk_nocache.js. Why do you use it twice? =
415
- This script is used for AJAX JavaScript checking. Different themes use different mechanisms of loading, so we use two methods for loading our script. If you absolutely know what you are doing, you can switch one of the methods off by defining constants in your wp-config.php file:
416
-
417
- define('CLEANTALK_AJAX_USE_BUFFER', false); //false - don't use output buffering to include AJAX script, true - use it
418
-
419
- or
420
-
421
- define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
422
-
423
- = Can I add exclusions for some pages of my site? =
424
- Yes, you can. Add this string in your wp-config.php file before defining database constants:
425
-
426
- $cleantalk_url_exclusions = array('url1', 'url2', 'url3');
427
-
428
- Now, all pages containing strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will not be applied in registration and comment checking - they are always protected from spam. This is similar to regular expression /.*url1.*/ or wildcard like *url1*.
429
-
430
- For example: If you need to except these URLs:
431
- example.com/some/thing
432
- example.com/some/one
433
- example.com/some/body
434
- You should type this in wp-config.php:
435
-
436
- $cleantalk_url_exclusions = array('some');
437
-
438
- = Can I not send my personal data to CleanTalk servers? =
439
- Yes, you can exclude your data. Add this string in your wp-config.php file before defining database constants:
440
-
441
- $cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
442
-
443
- Now all fields in your submissions with the keys named 'key1', 'key2' or 'key3' will be excluded from spam checking.
444
-
445
- = How to test Spam FireWall? =
446
- Use special IP 10.10.10.10 in URL to test Spam FireWall. For example,
447
-
448
- https://cleantalk.org/blog/?sfw_test_ip=10.10.10.10
449
-
450
- Attention! The incognito mode should be enabled in your browser when you do a test. To enable incognito mode press Ctrl+Shift+N for Chrome, Opera и Safari browsers; press Ctrl+Shift+P for Firefox, Internet Explorer and Microsoft Edge. A full guide to enable Incognito mode is here: https://www.wikihow.com/Activate-Incognito-Mode
451
-
452
- = How can I enter access key in WPMU version? =
453
- To set up global CleanTalk access key for all websites in WPMU, define constant in your wp-config.php file before defining database constants:
454
-
455
- define('CLEANTALK_ACCESS_KEY', 'place your key here');
456
-
457
- Now, all subsites will have this access key.
458
-
459
- = Why is CleanTalk faster and more reliable than stand-alone solutions? =
460
- All anti-spam checks are held in the cloud and don't overload the web server. The cloud solutions have a huge advantage since the parameters are being compared with information from more than 100,000 websites.
461
-
462
- = I see a lot of blocked messages with the reason "Forbidden. Please enable JavaScript. Spam sender name." in my logs =
463
- A lot of spam bots can't perform JavaScript code, so it is one of the important checks and most of the spam bots will be blocked with the reason **"Forbidden. Please enable JavaScript. Spam sender name."** All browsers can perform JS code, so real visitors won't be blocked.
464
-
465
- If you or some of your visitors have the error **"Forbidden. Enable JavaScript."** please check JavaScript support in your browser and do this JavaScript test at this page: https://cleantalk.org/checkout-javascript-support.
466
-
467
- If you think that there is something wrong in the messages blocking, let us know about it. Please submit a support request here: https://cleantalk.org/my/support.
468
-
469
- = Does the plugin work with Varnish? =
470
- CleanTalk works with Varnish, it protects WordPress against spam, but by default the plugin generates a few cookies for the protection from spam bots and it also disables Varnish cache on pages where CleanTalk's cookies have been stored. To get rid of the issue with cache turn off the option 'Set cookies' in the plugin settings.
471
-
472
- WordPress console -> Settings -> CleanTalk -> Advanced settings
473
-
474
- Now the plugin will protect WordPress comments, registrations and most of popular contact forms, but will not protect some of rarely used contact forms.
475
-
476
- = Does the anti-spam plugin work with Accelerated Mobile Pages (AMP)? =
477
- Yes, it does. But you have to turn off the option 'Use AJAX for JavaScript check' in Advanced settigns of the plugin to be fully compatible with Accelerated Mobile Pages.
478
-
479
- = How to close renewal or trial notice in the WordPress backend? =
480
- To close the notice please save the plugin settings again or it will be closed automatically within 60 minutes after the renewal.
481
-
482
- = I'm using PHP 4.2 version and i'm getting errors related with JSON. Why does it happens? =
483
- СleanTalk is no longer supports PHP lower than 5.2 version because the support code have incompatibility with PHP 7 version. Please, upgrade your PHP. If you couldn't perform that, let us know about it via support ticket here: https://cleantalk.org/my/support.
484
-
485
- = Should I change anything in the plugin's settings or in my CleanTalk Control Panel when I switch my website from HTTP to HTTPS or vice versa? =
486
- No. You don't need to change anything in the plugin's settings or in your CleanTalk Control Panel. The plugin will work regardless of the protocol.
487
-
488
- = How to use Anti-Spam Log? =
489
- The following possibilities are available for you in the Anti-Spam Log:
490
-
491
- - Time period for all spam records you want to see.
492
-
493
- - Filter spam records by their status: Any status, Denied, Approved.
494
-
495
- - Filter spam records by your websites.
496
-
497
- - Filter spam records by country they came from.
498
-
499
- - Filter spam records by IP address, e-mail address or username.
500
-
501
- - Available options for a specific record:
502
-
503
- * Details - see item 4 below.
504
- * Spam/Not Spam - press this string if our system made wrong decision and blocked or approved a registration, a comment ot a contact form submission. More about it here: https://cleantalk.org/faq#feedback_spam
505
- * Delete - delete a record permanently.
506
- * Personal blacklists - go to your website Black&White Lists page.
507
- * Record details: block reason, body of the message, additional caught data.
508
-
509
- = Spam FireWall and AntiSpam - Networks Blocking =
510
-
511
- Anti-Spam - will blocks users from selected IP or network from using contacts/messages/registrations/comments forms.
512
- Spam FireWall - will blocks users from selected IP or network from entering the website.
513
-
514
- Please, read more here
515
- https://cleantalk.org/help/sfw-blocks-networks
516
-
517
-
518
- = Spam Comment Management =
519
-
520
- By default, all spam comments are placed in the spam folder, now you can change the way the plugin deals with spam comments:
521
-
522
- 1. **Move to the Spam folder.** All spam comments will be placed to the folder "Spam" in the WordPress Comments section except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
523
-
524
- You can prevent the proliferation of Spam folder. It can be cleaned automatically using the option "Keep spam comments for 15 days." Enable this option in the settings of the plugin: WordPress Admin Page -> Settings -> Antispam by CleanTalk -> Advanced settings -> enable "Keep spam comments for 15 days" -> Save Changes.
525
-
526
- 2. **Move to Trash.** All spam comments will be placed to the folder "Trash" in the WordPress Comments section except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
527
-
528
- 3. **Ban comments without moving to WordPress backend.** All spam comments will be deleted permanently without going to the WordPress backend except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
529
-
530
- What comments were blocked and banned can be seen in the Anti-Spam Log here: https://cleantalk.org/my/show_requests?int=week
531
-
532
- To manage the actions with spam comments, go to the Control Panel, select the website you want to change the actions for and go to "Settings" under the name of the website.
533
-
534
- Please, read more here:
535
- https://cleantalk.org/help/spam-comment-management
536
-
537
- = How do I report a missed spam bot or incorrect filter? =
538
-
539
- If you think the service has missed a spam bot or improperly filtered visitor to the website, you may notify us via the Anti-spam control panel. To do this,
540
- Log in to Control panel https://cleantalk.org/my.
541
- Click the line "Log" under the name of your website.
542
- When you mark a record as "SPAM", its e-mail and IP-address will be added to your personal blacklist for your website.
543
- When you mark a record as "Not SPAM", its e-mail and IP-address will be added to your personal white list for your website.
544
-
545
- Please, read more here
546
- https://cleantalk.org/faq#feedback_spam
547
-
548
- = Is the plugin fast? =
549
- We develop plugin to do it as optimized as possible, CleanTalk doesn't downgrade response time in backend or frontend. The plugin proccess only POST requests to WordPress core, it tackes less than 1 second to return results.
550
-
551
- = Is the plugin EU GDPR compatible? =
552
- Yes, it is. Please read this article,
553
- <a href="https://cleantalk.org/help/CleanTalk-GDPR-Compliance">https://cleantalk.org/help/CleanTalk-GDPR-Compliance</a>
554
-
555
- = Check external forms =
556
- If your website has forms that send data to external sources, you can enable option to "Protect external forms". In this case, if plugin determinates that the current message is spam, your form action will be temporary replaced to your current hostname to prevent sending false data to an external source.
557
-
558
- == Screenshots ==
559
- 1. AntiSpam settings are easy to use.
560
- 2. AntiSpam plugin rejected a spam bot at the CAPTCHA less registration form. The plugin provides explanation to visitor and websites about each rejected comment/registration or contact message.
561
- 3. Use AntiSpam analytics tool for each website in service Dashboard to have information about spam/legitimate stats.
562
- 4. Use AntiSpam log to control anti-spam plugin.
563
- 5. CleanTalk works faster than most of other anti-spam plugins.
564
- 6. The Dashboard with a map of most spam active countries per your account.
565
- 7. The plugin deletes/removes the existing spam comments and users accounts.
566
- 8. CleanTalk's dashboard update link.
567
- 9. Auto upadte confimation.
568
- 10. Website's options.
569
-
570
- == Changelog ==
571
- = 5.127.4 October 13 2019 =
572
- * Mod: Automatically decrease amount of checked users by one request if an error occurs.
573
- * Fix: Security issue.
574
- * Fix: Static JS key.
575
-
576
- = 5.127.3 October 8 2019 =
577
- * Fix: Errors during registration.
578
-
579
- = 5.127.2 October 8 2019 =
580
- * Integration: SeedProd Coming Soon Page Pro.
581
- * Fix: WooCommerce double reuqests.
582
- * Fix: Static JS key.
583
-
584
- = 5.127.1 October 7 2019 =
585
- * Fix: WPMS settings logic.
586
- * Using default database storage engine for tables.
587
-
588
- = 5.127 September 30 2019 =
589
- * Fix: Delete redirect notice on external forms
590
- * Fix: Storing spam for 15 days.
591
- * Fix: correct DiVi display message.
592
- * Integration: Ultimate Members.
593
- * Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
594
- * Mod: Moving White Label option to main site settings.
595
- * New: Use static JS key if cache plugin detected.
596
- * New: Settings for URLs, fields, roles exclusions.
597
- * New: Regular Expressions support in URLs, fields exclusions.
598
- * New: Send validation errors on standard registration form.
599
- * Updater: Move exclusions from global variable to settings.
600
- * Deprecated: IP exclusions.
601
-
602
- = 5.126 September 9 2019 =
603
- * Spam protection improved!
604
- * Integration: Option wheel.
605
- * Mod: Improved Email detection.
606
- * Mod: Improved IP detection.
607
- * Fix: Too large database table with alternative sessions.
608
- * Fix: Exception for WooCommerce AJAX.
609
- * Fix: API key validation.
610
- * Minor fixes.
611
-
612
- = 5.125 August 26 2019 =
613
- * Fix: PHP Notices.
614
- * Fix: Auto update.
615
- * Fix: Displaying protection status for IP license.
616
- * Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
617
- * Fix: API key validating.
618
- * New: Complete deactivation setting.
619
-
620
- = 5.124.1 August 8 2019 =
621
- * Fix: Error on PHP 5.3.
622
-
623
- = 5.124 August 8 2019 =
624
- * Spam protection improved.
625
- * Fix: SpamFireWall local database counter on Multisite.
626
- * Fix: Caldera Forms integration.
627
- * Fix: Settings "Use AJAX for JS check" description.
628
- * Fix: Formidable integration.
629
- * New: External forms check now independed from JavaScript.
630
- * New: Setting Protect external - capture buffer.
631
- * New: QuForm integration.
632
-
633
- = 5.123 July 25 2019 =
634
- * Fix: Plenty of minor fixes.
635
- * Fix: wpDiscuz integration.
636
- * Fix: Integration with bbPress.
637
- * Fix: New comment email notification.
638
- * New: Follow-Up Emails integration.
639
- * Fix: Woocommerce integration.
640
- * Fix: Spelling.
641
-
642
- = 5.122 July 10 2019 =
643
- * Spam Protection improved.
644
- * Fix: Error while checking account status.
645
- * Fix: Conflict with Elementor Pro.
646
- * Fix: Integration with Ninja Forms.
647
- * Fix: Integration with Formidable.
648
- * New: Detecting mobile devices.
649
- * New: Integration for Easy Forms for Mailchimp.
650
-
651
- = 5.121 June 26 2019 =
652
- * Fix: Translation typos.
653
- * Fix: Woocommerce integration.
654
- * Fix: Catching admin in AJAX queries.
655
- * Mod: Session table (cleantalk_sessions) issue.
656
- * Mod: Spam protection improved.
657
- * Integration: Wilcity theme custom registration validation enabled
658
- * New: Option "Use static JS key".
659
-
660
- = 5.120.2 June 17 2019 =
661
- * Fix: WPForms integration.
662
- * Fix: Translation and spelling.
663
- * Fix: Minor PHP error
664
-
665
- = 5.120.1 June 6 2019 =
666
- * Mod: Description for Search form protection.
667
- * Fix: CSS and JS attachment.
668
- * Fix: Undefined index error.
669
-
670
- = 5.120 June 5 2019 =
671
- * Fix: bbPress false positives.
672
- * Fix: SpamFireWall check condition.
673
- * Fix: SpamFireWall block page.
674
- * Fix: Catch admin action via search form test.
675
- * Fix: Catch admin action (AJAX).
676
- * Mod: Using minified version of JS and CSS.
677
- * Mod: Date format in statistics.
678
-
679
- = 5.119.1 May 30 2019 =
680
- * Fix: Helper class error.
681
-
682
- = 5.119 May 30 2019 =
683
- * Fix: No more second request after registration.
684
- * Fix: Activation hook.
685
- * Fix: Alternative sessions. Clear table.
686
- * Fix: Stop capchuring AJAX requests in admin area.
687
- * Fix: Spelling.
688
- * Fix: Registration cookies set.
689
- * Mod: SFW exdtended die page when testing.
690
- * Mod: User-agent modified.
691
- * New: Test search queries for spam.
692
- * New: Gathering and output statistics.
693
-
694
- = 5.118.4 May 13 2019 =
695
- * Fix: SFW cookie. Set correct domain for subdomains.
696
- * Fix: SFW update.
697
- * Fix: IP detection.
698
- * Fix: Triggering AJAX check in backend.
699
- * Fix: Zero submit time on few forms.
700
-
701
- = 5.118.3 April 29 2019 =
702
- * Fix: Spam statistics in dashboard widget.
703
- * Fix: IP detection.
704
- * Fix: Double check AJAX integrated forms like Ninja Forms.
705
- * Fix: Use url exclusions for AJAX forms.
706
-
707
- = 5.118.2 April 25 2019 =
708
- * Mod: Spam filtration quality improved.
709
- * Mod: Store SFW cookie for 30 days.
710
- * Mod: Server IP added to connection report.
711
- * Fix: spam_stat is not defined.
712
-
713
- = 5.118.1 April 19 2019 =
714
- * Fix: Fatal error.
715
- * Mod: Spam protection improved on registrations.
716
-
717
- = 5.118 April 19 2019 =
718
- * Fix: Cookies on registration page.
719
- * Fix: Update fix.
720
- * Fix: Wordpress built-in API.
721
- * Fix: WooCommerce checkout form.
722
- * Fix: UpdraftPlus. Saving settings.
723
- * Fix: Convert Pro saving settings.
724
- * Fix: UTF-8 Converting.
725
- * Fix: GDPR notice.
726
- * Fix: cleantalk_sessions table size reduced.
727
- * Mod: Localization.
728
- * Mod: Performance improved.
729
- * Mod: SpamFierWall improvments.
730
- * Mod: IP detection improved.
731
- * Mod: JavaScript check rewised.
732
- * New: Setting "Use alternative mechanism for cookies".
733
-
734
- = 5.117.1 April 5 2019 =
735
- * Fix: GDPR notice.
736
- * Fix: noCacheJS localization.
737
- * Fix: Fatal error when updating.
738
-
739
- = 5.117 March 27 2019 =
740
- * New: Update logic runs on all pages.
741
- * New: Integration for Ajax Contact Forms plugin.
742
- * New: Notification for users groups about new comments.
743
- * New: SFW die page. Show browser and page creation time.
744
- * Fix: Huge bug in Cleantalk.php connected with servers changing.
745
- * Fix: Check AJAX requests for logged in users.
746
- * Fix: Deleting debug in JS.
747
- * Fix: Validating settings before saving.
748
-
749
- = 5.116.3 March 14 2019 =
750
- * Fix: "Headers already sent" error.
751
- * Fix: Images paths.
752
- * Fix: IP detection.
753
- * Fix: Skip lost password form check
754
- * Fix: Skip mobile requests (push settings)
755
- * Fix: PHP notice when detecting BuddyPress template.
756
-
757
- = 5.116.2 March 7 2019 =
758
- * Fix: Creating tables in MariaDB.
759
-
760
- = 5.116.1 March 6 2019 =
761
- * Fix: Creating tables in DB.
762
- * Fix: PHP Warning in spam statistics widget.
763
-
764
- = 5.116 March 6 2019 =
765
- * Spam filtration quality improved.
766
- * New: Storing visited URLs.
767
- * New: Check before validation Contact Form 7, Comments, Jetpack comments.
768
- * New: Get validation result for Contact Form 7, Comments, Jetpack comments.
769
- * Fix: ES add subscriber.
770
- * Fix: IP detection.
771
-
772
- = 5.115.2 February 27 2019 =
773
- * Fix: False positives spam detection in WP Forms and Contact Form 7.
774
-
775
- = 5.115.1 February 16 2019 =
776
- * Fix: SpamFireWall's false positives.
777
-
778
- = 5.115 February 14 2019 =
779
- * Fix: Http_only flag for backend cookies.
780
- * Fix: Spam filtration improved.
781
- * New: IP detection improved.
782
- * Fix: SpamFirewall update speeded up.
783
- * New: False positives with caching solutions decreased.
784
- * New: Opportunity to use Wordpress HTTP API to connect with Cloud.
785
-
786
- = 5.114 January 31 2019 =
787
- * New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
788
- * Fix: Formidable: Adding small JS check when adding JS_key.
789
- * Mod: layout of settings page.
790
- * Mod: Banner logic altered.
791
-
792
- = 5.113.2 January 18 2019 =
793
- * Fix: "Settings" link returns to plugin page.
794
-
795
- = 5.113.1 January 17 2019 =
796
- * Fix: Conflict with CityTours theme.
797
- * Fix: Error for Wordpress lower 4.7.
798
- * Add: Spam protection: "Validate email for existence".
799
-
800
- = 5.113 January 16 2019 =
801
- * Fix: Fast and Simple Contact Form.
802
- * Fix: Settings layout.
803
- * Fix: Error with WooCommerce Quickview.
804
- * Fix: Bitrix24 contact form.
805
- * Fix: Request time decreased.
806
- * Fix: Requesting account status when activating for IP licenses.
807
- * Add: Precise AJAX request detection.
808
- * Spam protection improved.
809
-
810
- = 5.112 December 21 2018 =
811
- * Fix: Woocommerce AJAX checkout form.
812
- * Fix: Profile Builder Pro.
813
- * Fix: DB structure improvements for WPMS.
814
- * Spam filtering quality improved.
815
- * Minor fixes.
816
-
817
- = 5.111 December 13 2018 =
818
- * Fix: Double request in JetPack contact form.
819
- * Fix: Email notification about spam registration.
820
- * Fix: Links button for feedback comments.
821
- * Fix: Mail notification about plugin error.
822
- * Fix: Key field output.
823
- * Minor fixes.
824
-
825
- = 5.110 November 29 2018 =
826
- * Integration: BuddyPress ActivityWall spam protection.
827
- * Add: GDPR setting for shortcode.
828
- * Add: Support different BuddyPress templates on activity wall.
829
- * Fix: Admin/moderator checking for validate post data.
830
-
831
- = 5.109 November 15 2018 =
832
- * Fix: Added URL and IP exclusions to Contact Form 7.
833
- * Fix: js error when responseText is not exists
834
- * Fix: Sitename when getting key automatically under WPMS.
835
- * Mod: SpamFireWall is now fully compatible with WPMS.
836
- * Mod: Setting 'Tell others about CleanTalk' was deleted.
837
- * Mod: Protection from spam improved.
838
-
839
- = 5.108.1 November 8 2018 =
840
- * Fix: Errors with integration class.
841
-
842
- = 5.108 November 7 2018 =
843
- * Fix: White label mode.
844
- * Fix: SpamFireWall now can be disabled.
845
- * Fix: Layout.
846
- * Integration: WPForms.
847
- * Add: Message about block for all no integrated AJAX forms.
848
- * Add: Displaying account name near api key.
849
-
850
- = 5.107 October 29 2018 =
851
- * Fix: Ninja Forms integration.
852
- * Fix: Cookie usage.
853
- * Add: Capturing AJAX responses from non integrated forms.
854
- * Spam protection improved.
855
- * Minor fixes.
856
-
857
- = 5.106 October 11 2018 =
858
- * Spam filtration improved.
859
- * New: White Label mode.
860
- * Modification: Warning message about test on SpamFireWall die page.
861
- * Integration: WP Maintenance Mode.
862
- * Fix: S2Member.
863
- * Fix: JavaScript attachments reconsidered.
864
- * Fix: Admin banners layout.
865
- * Fix: Minor layout fixes.
866
-
867
- = 5.105 September 26 2018 =
868
- * Integration: Now bloking spam for QAEngine questions.
869
- * Fix: Async http__request call.
870
- * Fix: Unnecessary get_antispam_report_breif method call.
871
- * Layout: Hide "Do you like Cleantlak?" when key is not ok.
872
- * Layout: Minor fixes.
873
-
874
- = 5.104 September 18 2018 =
875
- * Fix: Error when saving settings.
876
- * Fix: Trying update anti spam plugin for the first installation.
877
- * Fix: Update system.
878
- * Fix: Errors output.
879
- * Fix: Plugin's settings under WPMS.
880
- * Fix: SpamFireWall update.
881
- * Fix: The server change system repaired.
882
- * Mod: Cron saving tasks improved.
883
-
884
- = 5.103.1 September 14 2018 =
885
- * Fix: Error when saving settings.
886
- * Fix: Error when getting key automatically.
887
-
888
- = 5.103 September 13 2018 =
889
- * Fix: Gravity Forms response message.
890
- * Fix: SpamFireWall redirect to 404 page.
891
- * Major anti-spam plugin improvement.
892
- * Recombined setting page.
893
- * Added error notification.
894
- * Mod: S2 Members integration.
895
- * Mod: Improved remote calls.
896
-
897
- = 5.102 August 29 2018 =
898
- * Fix: Users and comments check.
899
- * Fix: Update from 5.70 or previous versions.
900
- * Fix: GDPR public JS-script.
901
- * Fix: Dashboard widget JS scripts attachment.
902
- * Fix: WooCommerce "Place order" action.
903
- * Mod: Notification logic altered.
904
- * Mod: Users check table now has 'Signed up' column.
905
- * Minor fixes.
906
-
907
- = 5.101 August 10 2018 =
908
- * Fix: Set cookie only for non-dashboard pages.
909
- * Fix: Dashboard widget JS error.
910
- * Fix: JavaScript error for some environment.
911
- * Mod: Antispam protection accelerated for some pages.
912
-
913
- = 5.100 July 30 2018 =
914
- * Fix: JavaScript dependencies.
915
-
916
- = 5.99.1 July 17 2018 =
917
- * IP detection fixed and improved.
918
-
919
- = 5.99 July 10 2018 =
920
- * Fix: WooCommerce false positives.
921
- * Fix: SpamFireWall IP detection.
922
- * Minor fixes.
923
-
924
- = 5.98 June 27 2018 =
925
- * Fix: WooCommerce: Theme exclusion.
926
- * Fix: Public GDPR JS code.
927
- * Minor fixes.
928
-
929
- = 5.97 June 7 2018 =
930
- * Fix: Update system.
931
- * Fix: Feedback from public page (admin only).
932
- * Fix: Users and comment check: API error.
933
- * Fix: Too many negative reports. (Too big ct_data option)
934
- * Fix: SpamFireWall: Infinite redirection on the blocking page.
935
- * Minor fixes.
936
-
937
- = 5.96 May 22 2018 =
938
- * Fix: Update system.
939
- * Mod: Reset all counters button in admin bar.
940
- * Mod: GDPR compliance.
941
- * Minor fixes.
942
-
943
- = 5.95.1 May 3 2018 =
944
- * Fix: "Get key automatically" button display logic.
945
- * Fix: PHP notices.
946
-
947
- = 5.95 May 2 2018 =
948
- * Spam filtration improved.
949
- * Fix: Public widget layout.
950
- * Fix: Connection reports output.
951
- * Minor fixes.
952
-
953
- = 5.94 April 23 2018 =
954
- * Mod: Async load option for JS.
955
- * Mod: JS scripts loading is conditional.
956
- * Fix: IP detection.
957
- * Fix: IP detection.
958
- * Fix: Javascript error.
959
-
960
- = 5.93.1 April 9 2018 =
961
- * Fix: Fatal error on PHP 5.5 or lower.
962
-
963
- = 5.93 April 9 2018 =
964
- * Fix: Spam FireWall IP detection.
965
- * Fix: Contact Form 7. False positives.
966
- * Mod: Autoupdate function improved.
967
- * Minor fixes.
968
-
969
- = 5.92.2 March 23 2018 =
970
- * Fix: Error if cURL extension is disabled.
971
-
972
- = 5.92.1 March 23 2018 =
973
- * Fix: Spelling
974
- * Fix: Fatal error if cURL extension is disabled.
975
-
976
- = 5.92 March 22 2018 =
977
- * IP detection improved.
978
- * Fix: SSL connection.
979
- * Fix: False positives spam detection in Contact Form 7.
980
- * Minor fixes.
981
-
982
- = 5.91 March 15 2018 =
983
- * Fix: Errors for PHP compiled without XML support.
984
- * Fix: Spelling and translation.
985
- * Stability increased.
986
- * Minor fixes.
987
-
988
- = 5.90 March 7 2018 =
989
- * Improvement: Better IP recognition in Spam FireWall.
990
- * Fix: Gravity Froms blocking message.
991
- * Security improvments.
992
- * Minor fixes.
993
-
994
- = 5.89 February 21 2018 =
995
- * Improved spam filtration quality.
996
- * Improved compatibility.
997
- * Public widget: Styles and referral link added.
998
- * Dashboard widget: revised and fixed.
999
- * Minor fixes.
1000
-
1001
- = 5.88 February 12 2018 =
1002
- * Integration: ConvertPro.
1003
- * Improvement: Search for visitor's names in request.
1004
- * Fix: Contact Form 7 message recognition.
1005
- * Preparation for the remote plugin update.
1006
- * Minor fixes.
1007
-
1008
- = 5.87 February 2 2018 =
1009
- * Filtration quality improved.
1010
- * Fix: WP Foto Vote downloading images.
1011
- * Fix: Fatal error for unsupported PHP 5.2.
1012
- * Fix: Formidable Forms improved spam filtration.
1013
-
1014
- = 5.86 January 25 2018 =
1015
- * Fix: High CPU load with wp-ajax.php.
1016
- * Fix: Mailpoet: Newsletter.
1017
- * Fix: Gravity: Forms standardization for input fields.
1018
- * Fix: ajax hook checks data for contact form.
1019
- * Fix: UTF8 character in requests.
1020
-
1021
- = 5.85 January 11 2018 =
1022
- * Fix: Fast Secure contact form spam block message.
1023
- * Fix: IP license status.
1024
- * Layout: Dashboard widget description altered.
1025
-
1026
- = 5.84 December 26 2017 =
1027
- * Integration: PeepSo contact form
1028
- * Repared: Feedback from comments page.
1029
- * Fix: mb_* functions used only if exists.
1030
- * Fix: Gravity forms: Multi-page form logic repared.
1031
- * Fix: Gravity forms: AJAX form logic repared.
1032
- * Minor fixes.
1033
-
1034
- = 5.83.2 December 19 2017 =
1035
- * Fix: Error in base class.
1036
-
1037
- = 5.83.1 December 19 2017 =
1038
- * Fix: CDN IP detection.
1039
-
1040
- = 5.83 December 19 2017 =
1041
- * Improving: Stability and compatibility.
1042
- * Improving: Spam protection.
1043
- * Fix: Comments logic filtration.
1044
- * Fix: Admin bar counter.
1045
- * Minor errors fixes.
1046
-
1047
- = 5.82.1 December 7 2017 =
1048
- * Fixed minor error with attaching JS and CSS files.
1049
-
1050
- = 5.82 December 4 2017 =
1051
- * Plugin doesn't use PHP sessions anymore.
1052
- * Bug fixes.
1053
- * Improved update logic.
1054
-
1055
- = 5.81 November 22 2017 =
1056
- * Fixed error with "Show/Hide key" button.
1057
- * Slightly improved spam protection for all forms.
1058
- * Small errors fixes.
1059
-
1060
- = 5.80 November 3 2017 =
1061
- * Spam protection improved.
1062
- * Improved filtration quality for WooCommerce checkout.
1063
- * Minor fixes for Spam FireWall.
1064
-
1065
- = 5.79 October 26 2017 =
1066
- * Spam protection improved.
1067
- * Fixed issue with existing spam comments check.
1068
- * Added posibility to exclude IP from check.
1069
- * Minor fixes.
1070
-
1071
- = 5.78 October 16 2017 =
1072
- * Improved compatibility with themes. Changed core functions prefix.
1073
- * Fixed issue with WooCommerce checkout.
1074
- * Spam protection improved.
1075
- * Minor fixes.
1076
-
1077
- = 5.77 October 2 2017 =
1078
- * Connection report's system.
1079
- * Integration for CouponXXL Theme.
1080
- * Fixed issue with mb_* functions.
1081
- * Banners logic updated.
1082
-
1083
- = 5.76 September 20 2017 =
1084
- * Fixed issue with Spam FireWall and caching plugins.
1085
- * Banners logic updated.
1086
-
1087
- = 5.75 September 15 2017 =
1088
- * Pause feature for users/comments spam check.
1089
- * Improved protection from spam.
1090
- * Small fixes.
1091
-
1092
- = 5.74.2 September 2 2017 =
1093
- * Fix for users spam check for PHP 5.3 and lower.
1094
-
1095
- = 5.74.1 September 2 2017 =
1096
- * Fix for the update system and cloud communication.
1097
- * Added possibility to check users and comments for spam with a specific date range.
1098
-
1099
- = 5.74 August 31 2017 =
1100
- * Users and comments spam check: Two check types (fast and accurate).
1101
- * Fix for WooCommerce checkout test.
1102
- * Minor fixes.
1103
-
1104
- = 5.73 August 11 2017 =
1105
- * Fix for spam check for already existed users and comments.
1106
- * Spam FireWall updated.
1107
- * Layout fix for BT Comments.
1108
- * Minor fixes.
1109
-
1110
- = 5.72 July 27 2017 =
1111
- * Improved spam check for existed users and comments.
1112
- * Minor fixes.
1113
-
1114
- = 5.71 July 20 2017 =
1115
- * Improved spam protection for external forms.
1116
- * Optimization.
1117
- * Minor fixes.
1118
-
1119
- = 5.70.2 July 17 2017 =
1120
- * Fix for Spam FireWall for Multisite.
1121
-
1122
- = 5.70.1 July 17 2017 =
1123
- * Fix for Spam FireWall.
1124
- * Spam detection improved.
1125
-
1126
- = 5.70 July 13 2017 =
1127
- * New updater logic.
1128
- * Self cron system.
1129
- * Improved AMP compatibility.
1130
- * Optimization.
1131
- * Fixed users and comments spam check.
1132
- * Fixed layout for Comment's feedback from public page.
1133
- * Updated Spam FireWall.
1134
- * SFW: Spam FireWall counter now work in real-time.
1135
- * SFW: Improved compatibility with different Data Bases.
1136
-
1137
- = 5.69 July 3 2017 =
1138
- * Reviewer - integration.
1139
- * Optimization for Users and Comments check for big databases.
1140
- * Errors fixes.
1141
- * Improved protection from spam.
1142
-
1143
- = 5.68 June 22 2017 =
1144
- * Contact Form for WordPress - Ultimate Form Builder Lite - integration.
1145
- * Contact Bank - Contact Forms Builder - integration.
1146
- * Smart Forms - integration.
1147
- * cformsII - integration.
1148
- * Contact Form by Web-Settler - integration.
1149
- * Error fixes.
1150
-
1151
- = 5.67.3 June 9 2017 =
1152
- * Fixed JS attachment error.
1153
-
1154
- = 5.67.2 June 5 2017 =
1155
- * Fixed error with IP determination.
1156
-
1157
- = 5.67.1 June 4 2017 =
1158
- * Fixed JS error in 5.67 version.
1159
- * Integrations: Enfold theme, Convertplug.
1160
- * Links to check for Emails/IP for spam.
1161
- * Control comments and feedback about them from public post's page.
1162
- * Improved connection stability with cloud service.
1163
- * Spam protection improved.
1164
- * Other small fixes.
1165
-
1166
- = 5.67 June 1 2017 =
1167
- * Integrations: Enfold theme, Convertplug.
1168
- * Links to check for Emails/IP for spam.
1169
- * Control comments and feedback about them from public post's page.
1170
- * Improved connection stability with cloud service.
1171
- * Spam protection improved.
1172
- * Other small fixes.
1173
-
1174
- = 5.66 May 23 2017 =
1175
- * Spam protection improved.
1176
- * Major fixes for users and comments spam check.
1177
- * Added feedback from Wordpress comments list.
1178
- * Fix for "internal forms check" option.
1179
- * Fixed issue with caching Spam FireWall die page.
1180
- * Other small fixes.
1181
-
1182
- = 5.65 May 16 2017 =
1183
- * Fix for PayPal redirecton.
1184
- * Fixed issue with empty query for bulk comments test.
1185
- * Added protection for Enfold contact form.
1186
- * Ninja forms integration.
1187
-
1188
- = 5.64 April 26 2017 =
1189
- * Integration for Facebook registrations.
1190
- * Small fixes for WPMS.
1191
- * Fix for Activecampaign service.
1192
- * Fix for check spam users.
1193
- * Fixed rare notice Notice: Undefined index: REQUEST_URI
1194
-
1195
- = 5.63 April 20 2017 =
1196
- * Fix for the dashboard spam stat widget.
1197
- * Added translation posibility for all text.
1198
-
1199
- = 5.62 April 17 2017 =
1200
- * Fix for the dashboard spam statistics widget.
1201
- * Fix for users spam check.
1202
- * Small appearance changes.
1203
-
1204
- = 5.61 April 6 2017 =
1205
- * Improved filtration.
1206
- * Additional logic for the form recognizing.
1207
- * Integration: Divi Theme Contact Form.
1208
- * Fix: Gravity Forms multipages forms.
1209
- * Stat Widget: Minor fixes.
1210
- * Added possibility to download results of the users check in CSV format.
1211
- * Alteration for settings page (footer).
1212
-
1213
- = 5.60.1 March 29 2017 =
1214
- * Fixed error function 'locale_get_display_region' no exists.
1215
-
1216
- = 5.60 March 29 2017 =
1217
- * Added main dashboard widget with spam sctivity stats.
1218
- * Mailster - integration.
1219
- * Base class updated.
1220
-
1221
- = 5.59 March 24 2017 =
1222
- * Users/comments check fix.
1223
- * Plugin's name changed to Anti-Spam by CleanTalk.
1224
- * Trial banner is dismissable. Disapear for 24h or till logout.
1225
- * Settings modified (Auto testing failed warning).
1226
- * Mailing(inactive key) interval increased to 6 hours.
1227
-
1228
- = 5.58.6 March 16 2017 =
1229
- * Fix for Ninja forms (protection updated).
1230
- * Fix for QA Theme.
1231
- * Fix for RSVP form.
1232
- * Setting changes (Spam FireWall).
1233
- * Improved debug section.
1234
- * Improved gathering data function.
1235
- * Minor fixes.
1236
-
1237
- = 5.58.5 March 6 2017 =
1238
- * Minor backend fix.
1239
-
1240
- = 5.58.4 March 6 2017 =
1241
- * Users check fix (redirect after the check).
1242
- * Fixed PHP Notice "HTTP_REFERER" is unset.
1243
- * Updated Notice logic.
1244
-
1245
- = 5.58.3 February 28 2017 =
1246
- * Bitrix24 Contact form integration.
1247
- * Users/comments check fix.
1248
- * Spam sorting updated.
1249
- * Banner showing logic.
1250
-
1251
- = 5.58.2 February 17 2017 =
1252
- * Cron fix for daily report.
1253
-
1254
- = 5.58.1 February 16 2017 =
1255
- * Minor fixes.
1256
-
1257
- = 5.58 February 15 2017 =
1258
- * Work without access key
1259
- * Bitrix24 contact integration
1260
- * Issues fixes
1261
-
1262
- = 5.57.1 February 8 2017 =
1263
- * Fix for notice logic.
1264
-
1265
- = 5.57 February 8 2017 =
1266
- * Setting page changes.
1267
- * Bug fixes for WooCommerce.
1268
- * Spam FireWall filters only GET requests.
1269
- * Optimization.
1270
- * Minor and major fixes.
1271
-
1272
- = 5.56.1 January 25 2017 =
1273
- * Minor fixes
1274
-
1275
- = 5.56 January 19 2017 =
1276
- * Integrations: MailChimp Premium, Profile Press.
1277
- * Changes comments flow.
1278
- * FireWall updater fix.
1279
- * Users check optimization.
1280
-
1281
- = 5.55 December 23 2016 =
1282
- * Integrations: Caldera Forms, Visual Form Builder.
1283
- * Fix for different 'cookies' header names.
1284
- * Fixed user deletion.
1285
-
1286
- = 5.54 December 12 2016 =
1287
- * Integrations: AmoForms, Contact Form Clean and Simple.
1288
- * Comments check logic refreshed.
1289
- * Registration JS error fix.
1290
- * Users check fix.
1291
- * Fix for translation system.
1292
- * Minor fixes.
1293
-
1294
- = 5.53.1 December 9 2016 =
1295
- * Minor layout fixes.
1296
-
1297
- = 5.53 November 28 2016 =
1298
- * Addition warning before deleting users.
1299
- * Spam FireWall is enabled by default.
1300
- * Usernoise modal feedback / contact form : integration.
1301
- * Translations.
1302
- * Optimization.
1303
- * Fixes.
1304
-
1305
- = 5.52.1 November 14 2016 =
1306
- * Users and comments check: Using new API method.
1307
- * Quick Contact From: Integration via "Custom Contact Forms" setting.
1308
- * JavaScript filtration improved.
1309
- * Translation changes.
1310
- * Optimized JavaScript code.
1311
-
1312
- = 5.51 November 2 2016 =
1313
- * Added protection for internal forms
1314
- * Immediate spam check for comments and users from WP dashboard
1315
- * Optimized code
1316
-
1317
- = 5.50.1 October 24 2016 =
1318
- * Improved filtration in contact forms.
1319
- * Spam FireWall: Fixed issue with SFW logs
1320
- * Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
1321
-
1322
- = 5.50 October 20 2016 =
1323
- * Custom contact forms: integration.
1324
- * Pirate Forms: integration.
1325
- * PHP 7 compatibility: Deleted third-party JSON library and dependences.
1326
- * PHP 7 compatibility: Fixed end of lines.
1327
- * YOAST Seo: Fixed PHP warnings.
1328
- * Spam FireWall: Minor fix for Spam FireWall counter.
1329
- * Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
1330
- * Improved filtration in contact forms.
1331
-
1332
- = 5.49.2 October 5 2016 =
1333
- * Second Fix for database error. Stable version.
1334
-
1335
- = 5.49.1 October 5 2016 =
1336
- * Fixed database error.
1337
-
1338
- = 5.49 October 3 2016 =
1339
- * Spam FireWall feature: Class upgraded.
1340
- * New feature: Delete links from approved comments.
1341
- * Settings: Grouped.
1342
- * Settings: Altered description fixed spelling mistakes.
1343
- * Settings: Added indicator for Spam FireWall.
1344
- * Admin bar: Added Spam FireWall counter
1345
- * Clean and Simple Contact Form: Direct integration.
1346
- * WooCommerce: Don't check password recovery form.
1347
- * WooCommerce Wishlists: Issue with check for Google bots.
1348
- * JetPack: contact form fix.
1349
- * Fixed and created the defaults for all CleanTalk options.
1350
- * Fixed spelling mistakes.
1351
-
1352
- = 5.48 September 15 2016 =
1353
- * buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
1354
- * buddyPress: Added option in settings for private messages check.
1355
- * WooCommerce Wishlist: Added check for wishlists.
1356
- * Fixed issue with "check all post data" option.
1357
- * Improved filtering for Gravity Forms
1358
- * Mobile Assistant Connector fix
1359
- * Minor fixes.
1360
-
1361
- = 5.47 September 5 2016 =
1362
- * WooCommerce: direct integration for checkout form.
1363
- * WooCommerce Sensei: login form fix.
1364
- * bbPress: Added the check for topics and comments with stop_words
1365
- * bbPress: Skip check for admin in comments and topics
1366
- * UserPro: fixes. Request without field "shortcode"
1367
- * Contact Form 7: Bug fix.
1368
- * Spam FireWall: Optimized logs rotation.
1369
- * Updated inner functions (compatibility fix for PHP 5.4+)
1370
- * Fixed output of counters (without spamfirewall stats)
1371
- * Fixed spelling in settings
1372
- * Added "Delete from the list" button in comments spam check page
1373
- * Minor fixes.
1374
-
1375
- = 5.46 August 17 2016 =
1376
- * Fixed issue with admin bar links in WP Multi Network mode.
1377
- * Added "All time counter" and "Daily counter" into admin bar.
1378
- * Added settings to disable counters in admin bar.
1379
- * New style for "Get access key manually" button.
1380
-
1381
- = 5.45.2 August 4 2016 =
1382
- * Added Anti-Spam protection for Quick Event Manager.
1383
- * Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more than 30 days ago.
1384
- * Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
1385
- * Minor fix function to get the API key.
1386
-
1387
- = 5.45.1 July 26 2016 =
1388
- * Fixed issue with missed spam messages, subscriptions.
1389
- * Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more than 30 days ago.
1390
-
1391
- = 5.45 July 21 2016 =
1392
- * Optimized bulk spam comments deletion.
1393
- * Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
1394
- * Added links to bulk spam comments&users removal tool.
1395
-
1396
- = 5.44.1 July 13 2016 =
1397
- * Optimized options getting code.
1398
- * Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
1399
-
1400
- = 5.43.2 June 30 2016 =
1401
- * Optimized anti-spam code for AJAX based contact forms.
1402
- * Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
1403
-
1404
- = 5.43.1 June 23 2016 =
1405
- * Added agent version in requests to test a connection between the website and servers.
1406
- * Fixed issue with PHP notices in cleantalk-admin.php.
1407
-
1408
- = 5.43 June 22 2016 =
1409
- * Added spam protection for registrations via 'Login with AJAX' plug-in.
1410
- * Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
1411
- * Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
1412
- * Fixed issue with spam protection for nested forms by Formidable plug-in.
1413
-
1414
- = 5.42 2016-06-15 =
1415
- * Added anti-spam protection for UserPro.
1416
- * Improved protection for Formidable forms + Varnish.
1417
- * Improved bulk search for spam accounts.
1418
- * Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
1419
- * Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
1420
- * Minor fixes in plugin backend.
1421
-
1422
- = 5.41 2016-05-31 =
1423
- * Added HTTP response in plugin response if an network issue was happend.
1424
- * Optimized JavaScript anti-spam test for Formidable forms.
1425
- * Re-stored the option to auto redirect to plugn settings after plugin activation.
1426
- * Updated Spanish, Russian translations.
1427
- * Fixed issue with nasted fields in Formidable forms.
1428
-
1429
- = 5.40.3 2016-05-26 =
1430
- * Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
1431
- * Added JSON encoding for AJAX forms.
1432
- * Obfuscated private data for Custom contact forms option.
1433
- * Optimized bulk users check for spam over blacklists database.
1434
- * Fixed issue with lost connection to servers and JavaScript anti-spam test.
1435
- * Fixed issue with WordFence and collect_details.
1436
-
1437
- = 5.40.2 2016-05-11 =
1438
- * Improved account status check logic.
1439
- * Fixed issue with double anti-spam tests for FastSecure contact forms.
1440
- * Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occured on standart WordPress registration form and with failed JavaScript spam test.
1441
- * Fixed issue with session_start() with PHP sessions stored in memcache.
1442
-
1443
- = 5.40.1 2016-04-28 =
1444
- * Fixed issue with Super Socializer.
1445
- * Fixed issue with spam filtration for logged in users and Formidable forms.
1446
- * Added logging of all submitted fields for FastSecure contact form.
1447
-
1448
- = 5.40 2016-04-19 =
1449
- * Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
1450
- * Minor fix in plugin settings.
1451
- * Fixed pagination for bulk users spam test.
1452
- * Fixed issue with unknown _SESSION.
1453
- * Fixed issue with double Spam FireWall database upload.
1454
-
1455
- = 5.39.1 2016-04-04 =
1456
- * Improved AJAX based anti-spam test with HTTPS backends.
1457
- * Added fix to avoid issue with empty ct_info_flag on JavaScript side.
1458
- * Added logic to exclude caching for Spam FireWall.
1459
- * Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
1460
-
1461
- = 5.38.1 2016-03-24 =
1462
- * Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
1463
- * Removed Spam FireWall protection on /feed page.
1464
- * Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
1465
- * Added reject notice for spam submissions on Gravity forms with AJAX calls.
1466
-
1467
- = 5.37.3 2016-03-10 =
1468
- * Fixed bug with broken MailPoet previews.
1469
- * Fixed bug with broken Geo My WP pop-up windows.
1470
- * Fixed issue with mb_convert_encoding() function.
1471
- * Removed double JavaScript code in front-end.
1472
- * Removed unused variables in anti spam logic.
1473
- * Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms.
1474
- * Added anti-spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
1475
-
1476
- = 5.36.1 2016-02-05 =
1477
- * Fixed bug, when users receive error after logging in
1478
- * Improve anti-spam filters for contact forms.
1479
-
1480
- = 5.36 2016-02-04 =
1481
- * Improved JavaScript anti spam protection
1482
- * Improvements for avoiding blocking requests from payment systems
1483
-
1484
- = 5.35 2016-01-14 =
1485
- * Added support for IP licensing
1486
- * Some anti-spam protection improvements
1487
- * Small backend interface fixes
1488
-
1489
- = 5.34.1 2015-12-17 =
1490
- * Fixed trackback antispam protection: improved checking mechanism
1491
- * Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
1492
-
1493
- = 5.34 2015-12-10 =
1494
- * Improved spam checking mechanism
1495
- * Added "Collect browser details" option for better antispam protection
1496
- * Fixed custom contact forms checking for AJAX requests
1497
- * Minor translations fixes
1498
-
1499
- = 5.33.1 2015-12-04 =
1500
- * Fixed issue with BBPress: restored old user permission checking mechanism
1501
- * Fixed anti-spam comments checking: sometimes get_comments returned wrong comments number
1502
- * Fixed bulk checking: made numeric indexes in users and comments arrays
1503
- * Fixed trackback and pingback checking: removed exception for checking
1504
-
1505
- = 5.33 2015-12-01 =
1506
- * Backend interface fixes
1507
- * Improved Spam FireWall efficiency
1508
- * Improved performance of anti spam checking
1509
-
1510
- = 5.32 2015-11-26 =
1511
- * Added improvements for manual spam detection
1512
- * Fixed errors in backend
1513
- * Fixed bulk users anti spam checking
1514
- * Added indicator for bulk spam checking
1515
- * Added "Get access key automatically" button
1516
-
1517
- = 5.31 2015-11-11 =
1518
- * Improved backend performance
1519
- * Fixed counter of approved/blocked spam attacks
1520
- * Fixed Spam FireWall logging
1521
-
1522
- = 5.30 2015-11-05 =
1523
- * Improved anti-spam checking
1524
- * Optimized performance
1525
- * Fixed blocking email preview in MailPoet
1526
- * Interface fixes
1527
- * WPMU interface fixes
1528
-
1529
- = 5.29 2015-10-27 =
1530
- * Optimized performance
1531
- * Fixed bugs in custom contact forms spam checking
1532
-
1533
- = 5.28.7 2015-10-23 =
1534
- * Optimized PHP sessions creation algorithm. This fix should increase plugin perfomance on hostings without retenion of PHP sessions files.
1535
- * Removed autoredirection to plugin settings after plugin activation.
1536
-
1537
- = 5.28 2015-10-16 =
1538
- * Fixed errors in anti-spam checking
1539
- * Restored options for spam checking registrations and cpmmon contact forms
1540
- * Improved spam protection
1541
- * Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
1542
-
1543
- = 5.27 2015-10-13 =
1544
- * Improvements in Spam FireWall feature
1545
- * Code optimization
1546
- * Backend interface fixes
1547
-
1548
- = 5.26 2015-10-05 =
1549
- * Added WordPress Language Pack support
1550
- * Removed spam checking for some autorisation plugins
1551
- * New experimental feature: Spam FireWall
1552
-
1553
- = 5.25.2 2015-09-28 =
1554
- * Fixed backend bug
1555
-
1556
- = 5.25.1 2015-09-28 =
1557
- * Added widget with anti-spam stats
1558
- * Added information about blocked spam attacks in admin dashboard and CleanTalk settings
1559
- * Added ability not to check comments for users with 3 or above allowed comments
1560
- * Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
1561
- * Some backend interface settings
1562
-
1563
- = 5.24.1 2015-09-16 =
1564
- * Fixed some errors in frontend
1565
- * Fixed access key saving
1566
-
1567
- = 5.24 2015-09-14 =
1568
- * Backend interface fixes
1569
- * Improvement for AJAX JavaScript spam checking
1570
-
1571
- = 5.23 2015-09-01 =
1572
- * Fixed BuddyPress profile search false positivities of anti-spam protection.
1573
- * Some interface fixes of bulk users & comments spam checking
1574
-
1575
- = 5.22 2015-08-26 =
1576
- * Fixed possible XSS issue for anti-spam test on third-party forms.
1577
-
1578
- = 5.21 2015-08-21 =
1579
- * Fixed bug with skipping spam submissions
1580
- * Fixed bug with receiving old user_token for viewing anti-spam stats
1581
- * Small backend fixes
1582
-
1583
- = 5.20 2015-08-15 =
1584
- * Fixed anti-spam stats in admin bar - now stats updates every hour
1585
- * Fixed issue with skipping spam submissions
1586
- * Added some PHP-constants for advanced users - CLEANTALK_AJAX_USE_BUFFER and CLEANTALK_AJAX_USE_FOOTER_HEADER can be defined to true or false in wp-config.php to control method, which will be used for injection of AJAX script.
1587
-
1588
- = 5.19 2015-08-11 =
1589
- * New feature: anti-spam checking for registered users
1590
- * Fixed issue with AJAX JavaScript anti-spam test.
1591
- * Fixed issue with SEO Yoast xml sitemaps and JavaScript anti-spam test.
1592
-
1593
- = 5.18 2015-08-04 =
1594
- * Fixed issue with user_token
1595
- * Added anti-spam API, see our FAQ
1596
-
1597
- = 5.17 2015-07-23 =
1598
- * Fixed infinite redirection after activation
1599
- * Minor backend fixes
1600
-
1601
- = 5.16 2015-07-22 =
1602
- * Fixed external services checking
1603
- * Fixed mass comments deletion
1604
- * Fixed AJAX anti-spam protection
1605
-
1606
- = 5.15 2015-07-16 =
1607
- * New feature: anti-spam protection for forms, that uses external services
1608
-
1609
- = 5.14 2015-07-03 =
1610
- * Added anti-spam protection for some themes and plugins
1611
- * Some backend fixes
1612
-
1613
- = 5.13 2015-06-12 =
1614
- * Closing notification for anti-spam renew
1615
- * Fixed bulk anti spam comment checking
1616
-
1617
- = 5.12 2015-06-01 =
1618
- * Added option for checking all post data for spam
1619
- * Some JavaScript protection improvements
1620
- * Added option for old JavaScript check (without AJAX)
1621
-
1622
- = 5.10 2015-05-25 =
1623
- * Fixed Javascript error on some forms
1624
-
1625
- = 5.9 2015-05-21 =
1626
- * Fixed Javascript error on CF7 and JetPack
1627
- * Some backend and frontent fixes
1628
-
1629
- = 5.8 2015-05-18 =
1630
- * Minor fixes
1631
-
1632
- = 5.7 2015-05-18 =
1633
- * Fixed French translation
1634
- * Fixed protection algorithm
1635
-
1636
- = 5.6 2015-05-11 =
1637
- * Fixed translation
1638
- * Fixed bulk comments anti-spam checking
1639
- * Added option for disabling anti spam stats in adminbar
1640
- * Some security fixes
1641
-
1642
- = 5.5 2015-04-29 =
1643
- * Fixed security issue
1644
- * Some interface fixes
1645
-
1646
- = 5.4 2015-04-27 =
1647
- * Some interface and functionality changes in plugin settings page
1648
- * Added counter for anti-spam stats in admin bar
1649
-
1650
- = 5.3 2015-04-13 =
1651
- * Added anti-spam protection for Divi theme contact forms
1652
- * Added anti-spam protection for MyMail contact forms
1653
- * Added anti-spam protection for MailPoet Newsletters
1654
- * Some interface and functionality changes in backend
1655
-
1656
- = 5.2 2015-04-01 =
1657
- * Added link for anti-spam stats
1658
- * Added WP User Frontend Pro registration form protection
1659
-
1660
- = 5.1 2015-03-24 =
1661
- * Fixed site crash after installing 5.0 on some websites
1662
-
1663
- = 5.0 2015-03-24 =
1664
- * Added bulk comments checking for spam via CleanTalk blacklists
1665
- * Added anti-spam form protection for 'Ajax Login & Register'
1666
- * Fixed JetPack form protection
1667
-
1668
- = 4.24 2015-03-20 =
1669
- * Added immediate spam protection activation.
1670
-
1671
- = 4.22 2015-03-17 =
1672
- * Added button for automatic spam protection key getting.
1673
-
1674
- = 4.21 2015-03-11 =
1675
- * Added license renew notification.
1676
-
1677
- = 4.20 2015-03-03 =
1678
- * Added German, Italian, Polish, Portuguese translations.
1679
- * Minor code fixes.
1680
-
1681
- = 4.19 2015-02-24 =
1682
- * Increased keys lifetime for JS spam test.
1683
-
1684
- = 4.18 2015-02-17 =
1685
- * Fixed bug with comments approvement - moved ct_unmark_red() to cleantalk-admin.php
1686
- * Added PayPal 'payment_status' in skip list.
1687
- * Added Akismet 'spam' status processing.
1688
-
1689
- = 4.17 2015-02-12 =
1690
- * New base class.
1691
- * Divided code to 3 separate files - common, public and admin.
1692
-
1693
- = 4.16 2015-02-05 =
1694
- * New base class.
1695
- * Fixed JetPack spam filters logics.
1696
- * Optimized Formidable, bbPress, BuddyPress spam filters.
1697
-
1698
- = 4.15 2015-01-29 =
1699
- * Support spam test for Contact Form 7 versions before 3.0.0.
1700
- * Fixed global JS-vars for JS spam test.
1701
- * Fixed online notice cookie logics.
1702
- * Optimized spam filters for FSCF, WooCommerce, JetPack.
1703
- * Optimized option getting.
1704
-
1705
- = 4.14 2015-01-19 =
1706
- * Removed deprecated option from comment approvement code.
1707
- * New API key URL.
1708
- * Trimmed API key in admin panel.
1709
- * Added current options to array sended to CleanTalk servers.
1710
- = 4.13 2014-12-29 =
1711
- * Fixed bug with autimatically aprovement not spam comments. Now this option disabled and do not override local WordPress policy.
1712
-
1713
- = 4.12 2014-12-29 =
1714
- * Fixed bug with 'Wrong Access key...' notice in WordPress dashboard.
1715
- * Fixed filtration bug in WordPress dashboard login form.
1716
-
1717
- = 4.11 2014-12-22 =
1718
- * Improved anti-spam protection for custom contact/registration/subscribe forms.
1719
- * Improved anti-spam protection for comments.
1720
- * Accelerated plugin speed for comments, regirstrations and contacts.
1721
- * Added translation to French.
1722
-
1723
- = 4.10 2014-12-10 =
1724
- * Improved anti-spam protection for custom contact/registration/subscribe forms.
1725
- * Option 'Custom contact forms' enabled by default for new setups.
1726
- * Removed settings "Publish relevant comments", "Use encrypted (SSL) connection".
1727
- * Added translation to Danish (thank you for Mikkel at KreativJul.dk).
1728
-
1729
- = 4.9 2014-11-24 =
1730
- * Fixed spam test for Contact Form 7.
1731
-
1732
- = 4.8 2014-11-19 =
1733
- * Improved anti-spam protection for BuddyPress registrations and custom contact forms.
1734
-
1735
- = 4.7 2014-11-16 =
1736
- * Fixed JavaScript spam test for FastSecure contact form.
1737
-
1738
- = 4.6 2014-11-11 =
1739
- * Improved anti-spam protection on BuddyPress registrations.
1740
- * Improved anti-spam protection on contact forms.
1741
- * Removed plugin sign from pending, spam comments. To get details about a comment please use Dashboard at cleantalk.org.
1742
- * Improved Access key validation function.
1743
- * Added protection for bbPress comments via stop list. Stop list function is a list to reject comments by prefiled words. To fill the list please use Dashboard at cleantalk.org.
1744
-
1745
- = 4.5 2014-11-04 =
1746
- * Fixed CF7 JavaScript bug.
1747
- * Fixed rejects in bbPress guests comments.
1748
-
1749
- = 4.4 2014-10-29 =
1750
- * Improved anti-spam JS test for CF7.
1751
- * Fixed 'noscript' text in FaceBook Like preview in Valenti theme.
1752
-
1753
- = 4.2 2014-10-20 =
1754
- * Fixed double checks issue for BuddyPress registrations.
1755
- * Increased timeout limits to find the work server.
1756
-
1757
- = 4.1 2014-10-13 =
1758
- * Optimized code for manual moderation feedback sending.
1759
- * Optimized anti-spam algorithms for comments, contacts and signups.
1760
-
1761
- = 4.0 2014-10-06 =
1762
- * Improved anti-spam protection for custom contact forms.
1763
- * Improved anti-spam protection for registration forms.
1764
-
1765
- = 3.9 2014-10-01 =
1766
- * Did exception to do not break to create new user in WordPress backend.
1767
-
1768
- = 3.8 2014-09-19 =
1769
- * Fixed json_encode() + malformed characters.
1770
- * Fixed JavaScript issue with wpautop().
1771
-
1772
- = 3.6 2014-09-15 =
1773
- * Fixed preg_match() issue for Formidable forms and Custom contact forms.
1774
- * Improved anti-spam protection for Custom contact forms.
1775
-
1776
- = 3.4 2014-09-04 =
1777
- * We've added anti-spam for themes contact forms and any untested contact forms plugins. To use this test enable option "Custom contact forms" in plugin settings.
1778
- * We've added auto rotation for spam comments. Now the plugin removes comments in SPAM folder older then 15 days. This option is enabled by default.
1779
-
1780
- = 3.2 2014-08-27 =
1781
- * Fixed submit_time() logic for failed submits (comments/registrations). Now form fill time resets after every failed submit.
1782
-
1783
- = 3.1 2014-08-19 =
1784
- * Added anti-spam test over senders Cookies.
1785
- * Improved form fill anti-spam test.
1786
- * Improved speed selection of the nearest server to website.
1787
- * Improved anti-spam speed for comments.
1788
- * Relevance anti-spam test disabled by default. To enable test should be used option 'relevance_test'.
1789
-
1790
- = 2.58 2014-08-06 =
1791
- * Added anti-spam protection for signups posted via WooCommerce order form.
1792
- * Improved anti-spam protection for Contact Form 7.
1793
- * Improved anti-spam protection for registrations. Now the plugin looking for JavaScript anti spam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
1794
- * Updated PHP API. Now the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
1795
-
1796
- = 2.57 2014-07-29 =
1797
- * Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
1798
- * Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
1799
- * Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
1800
-
1801
- = 2.56 2014-07-21 =
1802
- * Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
1803
-
1804
- = 2.55 2014-07-11 =
1805
- * Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it!' on every page.
1806
-
1807
- = 2.54 2014-07-11 =
1808
- * Fixed signup anti-spam protection logic for BuddyPress registrations.
1809
- * Fixed anti-spam protection for JetPack contact form.
1810
- * Changed account status check logic.
1811
-
1812
- = 2.53 2014-06-27 =
1813
- * Fixed anit-spam protection bug for signups.
1814
- * Changed anti-spam functions (comments and signups) priority.
1815
-
1816
- = 2.52 2014-06-25 =
1817
- * Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
1818
-
1819
- = 2.51 2014-06-23 =
1820
- * Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
1821
- * Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
1822
- * Fixed minor bug with loading backend functions.
1823
-
1824
- = 2.49 2014-06-10 =
1825
- * Added spam protection for S2Member Auth.net forms.
1826
- * Added spam protection for multisite signup form.
1827
- * Optimized account status check function.
1828
-
1829
- = 2.46 2014-05-19 =
1830
- * Added: HTML notice about the need to enable JavaScript.
1831
- * Fixed: Fixed pingbacks anti-spam test.
1832
-
1833
- = 2.44 2014-05-12 =
1834
- * Added: Anti-spam protection for S2Member framework.
1835
- * Improved: JavaScript anti-spam test.
1836
- * Improved: Plugin load time for backend and frontend.
1837
- * Fixed: PHP warning mb_convert_encoding()
1838
-
1839
- = 2.42 2014-04-29 =
1840
- * Fixed: JavaScript anti-spam test for comments.
1841
-
1842
- = 2.40 2014-04-25 =
1843
- * New: Fast Secure Contact form support.
1844
- * New: WordPress Landing Pages support
1845
-
1846
- = 2.38 2014-03-27 =
1847
- * Fixed: Registraion form submit time spam test.
1848
-
1849
- = 2.36 2014-03-12 =
1850
- * Reversed to patches from old revisions.
1851
-
1852
- = 2.35 2014-03-12 =
1853
- * New: Notifications about disabled account
1854
- * New: Improved JavaScript spam test.
1855
- * Fixed: Code optimization
1856
- * Fixed: JavaScript test for signups.
1857
-
1858
- = 2.33 2014-02-12 =
1859
- * Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
1860
-
1861
- = 2.32 2014-02-04 =
1862
- * New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
1863
- * New: At WordPress console added banner for notices.
1864
- * Changed: Screenshots updated.
1865
-
1866
- = 2.31 2014-01-24 =
1867
- * New: Added spam protection for JetPack comments
1868
- * Fixed: cURL connection issue "Expect: 100-continue"
1869
-
1870
- = 2.30 2014-01-13 =
1871
- * Changed: Improved servers connection logic.
1872
- * Fixed: Antispam test for Fomidable forms.
1873
-
1874
- = 2.28 2013-12-19 =
1875
- * New: Added protection against spam bots for WooCommerce review form.
1876
- * Fixed: JavaScript anti-spam logic for WooCommerce review form.
1877
-
1878
- = 2.27 2013-12-06 =
1879
- * New: Added protection against spam bots for JetPack Contact form.
1880
- * Fixed: JavaScript anti-spam logic for registrations and Contact form 7.
1881
-
1882
- = 2.25 2013-11-27 =
1883
- * New: Added protection against spam bots for BuddyPress registrations.
1884
- * New: Added protection against spam bots for Contact form 7.
1885
- * New: Added Spanish (es_ES) translation.
1886
-
1887
- = 2.23 2013-11-20 =
1888
- * New: Added automatic training blacklists on spam bot account deletion.
1889
- * New: Added URL to project homepage at plugin options.
1890
- * Changed: Improved anti-spam logic.
1891
-
1892
- = 2.21 2013-11-13 =
1893
- * Changed: WordPress blacklists settings get priority over plugin's anti-spam settings
1894
- * Changed: Disabled management approval comments for regular commentators of the blog. Automatically approved for publication only the comments of the new blog authors.
1895
- * Changed: Removed form submit time test. Imporved JavaScript spam test.
1896
- * Changed: PHP code optimizations
1897
-
1898
- = 2.19 2013-11-08 =
1899
- * New: Antispam protection from spam bots at the registration form
1900
- * Changed: Russian localization for admin panel
1901
- * Changed: PHP code optimizations
1902
-
1903
- = 2.5.18 2013-11-01 =
1904
- * Fixed: Bug with selection of the last comments for post
1905
- * New: Antispam protection for Formidable feedback forms
1906
- * New: Automatic deletion of outdated spam comments
1907
- * New: On/Off option for comments spam filtration
1908
- * Tested with WordPress 3.7.1
1909
-
1910
- = 2.4.15 2013-09-26 =
1911
- * Fixed: Bug with mass comments deletion
1912
- * Changed: Russian localization for admin panel
1913
- * Tested with mulitsite setup (WordPress network or WPMU)
1914
-
1915
- = 2.4.14 2013-08-29 =
1916
- * Changed: Removed feedback requests to the servers for banned (spam) comments.
1917
-
1918
- = 2.4.13 2013-08-19 =
1919
- * Changed: Switched HTTP requests from file_get_contents() to CURL. Added file_get_contens() as backup connection to the servers.
1920
- * Changed: Removed feedback requests for comments moved to trash.
1921
- * Fixed: "Fail connect to servers..." error on hostings with disabled 'allow_url_fopen' PHP option.
1922
-
1923
- = 2.4.12 2013-08-12 =
1924
- * Removed RPC::XML library from plugin.
1925
- * Switched plugin to HTTP+JSON connection with servers.
1926
- * Fixed bug with comments anti-spam tests with non UTF8 codepage.
1927
-
1928
- = 2.4.11 2013-08-02 =
1929
- * Removed spam tests for self-made pingbacks
1930
- * Tested up to WP 3.6
1931
-
1932
- = 2.4.10 2013-07-24 =
1933
- * Fixed warning in PHP 5.4
1934
- * Fixed bug with disabling comments test for Administrators, Authors and Editors
1935
- * "Stop words" settings moved to <a href="http://cleantalk.org/my">Control panel</a> of the service
1936
- * "Response language" settings moved <a href="http://cleantalk.org/my">Control panel</a> of the service
1937
-
1938
- = 2.4.9 =
1939
- * Fixed extra debugging in base class
1940
-
1941
- = 2.4.8 =
1942
- * Enabled convertion to UTF8 for comment and example text
1943
- * Optimized PHP code
1944
-
1945
- = 2.3.8 =
1946
- * Enabled selection the fastest server in the pool
1947
- * Fixed work server in plugin's config
1948
-
1949
- = 2.2.3 =
1950
- * Secured md5 string for JavaScript test
1951
- * Added requests's timestamp to calculate request work time
1952
- * Update base CleanTalk's PHP class
1953
-
1954
- = 2.1.2 =
1955
- * Improved perfomance for processing large comments (over 32kb size)
1956
- * Improved perfomance for bulk operations with comments in Comments panel
1957
- * Added feedback request with URL to approved comment
1958
-
1959
- = 2.0.2 =
1960
- * Fixed bug with JavaScript test and WordPress cache plugins
1961
-
1962
- = 2.0.1 =
1963
- * Added option "Publicate relevant comments" to plugin's options.
1964
- * Added descriptions to plugin options
1965
-
1966
- = 1.5.4 =
1967
- * Fixed HTTP_REFERER transmission to the servers
1968
- * Improved JavaScript spam test
1969
- * Optimized PHP code
1970
-
1971
- = 1.4.4 =
1972
- * Pingback, trackback comments has moved to manual moderataion
1973
- * Added transmission to the serves comment type and URL
1974
- * Post title, body and comments separated into individual data elements
1975
- * Added priority for matched words in the comment with post title
1976
- * Enabled stop words filtration as default option
1977
-
1978
- = 1.3.4 =
1979
- * Removed PHP debugging.
1980
-
1981
- = 1.3.3 =
1982
- * Added notice at admin panel about empty Access key in plugin settings
1983
- * Removed HTTP link to the site project from post page
1984
- * Removed unused options from settings page
1985
- * Tested up to WordPress 3.5
1986
-
1987
- = 1.2.3 =
1988
- * Fixed bug with session_start.
1989
-
1990
- = 1.2.2 =
1991
- * Plugin rename to CleanTalk. Spam prevent plugin
1992
- * Integration Base Class version 0.7
1993
- * Added fast submit check
1994
- * Added check website in form
1995
- * Added feedbacks for change comment status (Not spam, unapprove)
1996
- * Added function move comment in spam folder if CleanTalk say is spam
1997
- * Disable checking for user groups Administrator, Author, Editor
1998
- * Marked red color bad words
1999
-
2000
- = 1.1.2 =
2001
- * Addition: Title of the post attached to the example text in auto publication tool.
2002
- * Tested with WordPress 3.4.1.
2003
-
2004
- = 1.1.1 =
2005
- * HTTP_REFERER bug fixed
2006
-
2007
- = 1.1.1 =
2008
- * Added user locale support, tested up to WP 3.4
2009
-
2010
- = 1.1.0 =
2011
- * First version
2012
-
2013
- == Upgrade Notice ==
2014
- = 5.127.3 October 8 2019 =
2015
- * Fix: Errors during registration.
2016
-
2017
- = 5.127.2 October 8 2019 =
2018
- * Integration: SeedProd Coming Soon Page Pro.
2019
- * Fix: WooCommerce double reuqests.
2020
- * Fix: Static JS key.
2021
-
2022
- = 5.127.1 October 7 2019 =
2023
- * Fix: WPMS settings logic.
2024
- * Using default database storage engine for tables.
2025
-
2026
- = 5.127 September 30 2019 =
2027
- * Fix: Delete redirect notice on external forms
2028
- * Fix: Storing spam for 15 days.
2029
- * Fix: correct DiVi display message.
2030
- * Integration: Ultimate Members.
2031
- * Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
2032
- * Mod: Moving White Label option to main site settings.
2033
- * New: Use static JS key if cache plugin detected.
2034
- * New: Settings for URLs, fields, roles exclusions.
2035
- * New: Regular Expressions support in URLs, fields exclusions.
2036
- * New: Send validation errors on standard registration form.
2037
- * Updater: Move exclusions from global variable to settings.
2038
- * Deprecated: IP exclusions.
2039
-
2040
- = 5.126 September 9 2019 =
2041
- * Spam protection improved!
2042
- * Integration: Option wheel.
2043
- * Mod: Improved Email detection.
2044
- * Mod: Improved IP detection.
2045
- * Fix: Too large database table with alternative sessions.
2046
- * Fix: Exception for WooCommerce AJAX.
2047
- * Fix: API key validation.
2048
- * Minor fixes.
2049
-
2050
- = 5.125 August 26 2019 =
2051
- * Fix: PHP Notices.
2052
- * Fix: Auto update.
2053
- * Fix: Displaying protection status for IP license.
2054
- * Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
2055
- * Fix: API key validating.
2056
- * New: Complete deactivation setting.
2057
-
2058
- = 5.124.1 August 8 2019 =
2059
- * Fix: Error on PHP 5.3.
2060
-
2061
- = 5.124 August 8 2019 =
2062
- * Spam protection improved.
2063
- * Fix: SpamFireWall local database counter on Multisite.
2064
- * Fix: Caldera Forms integration.
2065
- * Fix: Settings "Use AJAX for JS check" description.
2066
- * Fix: Formidable integration.
2067
- * New: External forms check now independed from JavaScript.
2068
- * New: Setting Protect external - capture buffer.
2069
- * New: QuForm integration.
2070
-
2071
- = 5.123 July 25 2019 =
2072
- * Fix: Plenty of minor fixes.
2073
- * Fix: wpDiscuz integration.
2074
- * Fix: Integration with bbPress.
2075
- * Fix: New comment email notification.
2076
- * New: Follow-Up Emails integration.
2077
- * Fix: Woocommerce integration.
2078
- * Fix: Spelling.
2079
-
2080
- = 5.122 July 10 2019 =
2081
- * Spam Protection improved.
2082
- * Fix: Error while checking account status.
2083
- * Fix: Conflict with Elementor Pro.
2084
- * Fix: Integration with Ninja Forms.
2085
- * Fix: Integration with Formidable.
2086
- * New: Detecting mobile devices.
2087
- * New: Integration for Easy Forms for Mailchimp.
2088
-
2089
- = 5.121 June 26 2019 =
2090
- * Fix: Translation typos.
2091
- * Fix: Woocommerce integration.
2092
- * Fix: Catching admin in AJAX queries.
2093
- * Mod: Session table (cleantalk_sessions) issue.
2094
- * Mod: Spam protection improved.
2095
- * Integration: Wilcity theme custom registration validation enabled
2096
- * New: Option "Use static JS key".
2097
-
2098
- = 5.120.2 June 17 2019 =
2099
- * Fix: WPForms integration.
2100
- * Fix: Translation and spelling.
2101
- * Fix: Minor PHP error
2102
-
2103
- = 5.120.1 June 6 2019 =
2104
- * Mod: Description for Search form protection.
2105
- * Fix: CSS and JS attachment.
2106
- * Fix: Undefined index error.
2107
-
2108
- = 5.120 June 5 2019 =
2109
- * Fix: bbPress false positives.
2110
- * Fix: SpamFireWall check condition.
2111
- * Fix: SpamFireWall block page.
2112
- * Fix: Catch admin action via search form test.
2113
- * Fix: Catch admin action (AJAX).
2114
- * Mod: Using minified version of JS and CSS.
2115
- * Mod: Date format in statistics.
2116
-
2117
-
2118
- = 5.119.1 May 30 2019 =
2119
- * Fix: Helper class error.
2120
-
2121
- = 5.119 May 30 2019 =
2122
- * Fix: No more second request after registration.
2123
- * Fix: Activation hook.
2124
- * Fix: Alternative sessions. Clear table.
2125
- * Fix: Stop capchuring AJAX requests in admin area.
2126
- * Fix: Spelling.
2127
- * Fix: Registration cookies set.
2128
- * Mod: SFW exdtended die page when testing.
2129
- * Mod: User-agent modified.
2130
- * New: Test search queries for spam.
2131
- * New: Gathering and output statistics.
2132
-
2133
- = 5.118.4 May 13 2019 =
2134
- * Fix: SFW cookie. Set correct domain for subdomains.
2135
- * Fix: SFW update.
2136
- * Fix: IP detection.
2137
- * Fix: Triggering AJAX check in backend.
2138
- * Fix: Zero submit time on few forms.
2139
-
2140
- = 5.118.3 April 29 2019 =
2141
- * Fix: Spam statistics in dashboard widget.
2142
- * Fix: IP detection.
2143
- * Fix: Double check AJAX integrated forms like Ninja Forms.
2144
- * Fix: Use url exclusions for AJAX forms.
2145
-
2146
- = 5.118.2 April 25 2019 =
2147
- * Mod: Spam filtration quality improved.
2148
- * Mod: Store SFW cookie for 30 days.
2149
- * Mod: Server IP added to connection report.
2150
- * Fix: spam_stat is not defined.
2151
-
2152
- = 5.118.1 April 19 2019 =
2153
- * Fix: Fatal error.
2154
- * Mod: Spam protection improved on registrations.
2155
-
2156
- = 5.118 April 19 2019 =
2157
- * Fix: Cookies on registration page.
2158
- * Fix: Update fix.
2159
- * Fix: Wordpress built-in API.
2160
- * Fix: WooCommerce checkout form.
2161
- * Fix: UpdraftPlus. Saving settings.
2162
- * Fix: Convert Pro saving settings.
2163
- * Fix: UTF-8 Converting.
2164
- * Fix: GDPR notice.
2165
- * Fix: cleantalk_sessions table size reduced.
2166
- * Mod: Localization.
2167
- * Mod: Performance improved.
2168
- * Mod: SpamFierWall improvments.
2169
- * Mod: IP detection improved.
2170
- * Mod: JavaScript check rewised.
2171
- * New: Setting "Use alternative mechanism for cookies".
2172
-
2173
- = 5.117.1 April 5 2019 =
2174
- * Fix: GDPR notice.
2175
- * Fix: noCacheJS localization.
2176
- * Fix: Fatal error when updating.
2177
-
2178
- = 5.117 March 27 2019 =
2179
- * New: Update logic runs on all pages.
2180
- * New: Integration for Ajax Contact Forms plugin.
2181
- * New: Notification for users groups about new comments.
2182
- * New: SFW die page. Show browser and page creation time.
2183
- * Fix: Huge bug in Cleantalk.php connected with servers changing.
2184
- * Fix: Check AJAX requests for logged in users.
2185
- * Fix: Deleting debug in JS.
2186
- * Fix: Validating settings before saving.
2187
-
2188
- = 5.116.3 March 14 2019 =
2189
- * Fix: "Headers already sent" error.
2190
- * Fix: Images paths.
2191
- * Fix: IP detection.
2192
- * Fix: Skip lost password form check
2193
- * Fix: Skip mobile requests (push settings)
2194
- * Fix: PHP notice when detecting BuddyPress template.
2195
-
2196
- = 5.116.2 March 7 2019 =
2197
- * Fix: Creating tables in MariaDB.
2198
-
2199
- = 5.116.1 March 6 2019 =
2200
- * Fix: Creating tables in DB.
2201
- * Fix: PHP Warning in spam statistics widget.
2202
-
2203
- = 5.116 March 6 2019 =
2204
- * Spam filtration quality improved.
2205
- * New: Storing visited URLs.
2206
- * New: Check before validation Contact Form 7, Comments, Jetpack comments.
2207
- * New: Get validation result for Contact Form 7, Comments, Jetpack comments.
2208
- * Fix: ES add subscriber.
2209
- * Fix: IP detection.
2210
-
2211
- = 5.115.2 February 27 2019 =
2212
- * Fix: False positives spam detection in WP Forms and Contact Form 7.
2213
-
2214
- = 5.115.1 February 16 2019 =
2215
- * Fix: SpamFireWall's false positives.
2216
-
2217
- = 5.115 February 14 2019 =
2218
- * Fix: Http_only flag for backend cookies.
2219
- * Fix: Spam filtration improved.
2220
- * New: IP detection improved.
2221
- * Fix: SpamFirewall update speeded up.
2222
- * New: False positives with caching solutions decreased.
2223
- * New: Opportunity to use Wordpress HTTP API to connect with Cloud.
2224
-
2225
- = 5.114 January 31 2019 =
2226
- * New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
2227
- * Fix: Formidable: Adding small JS check when adding JS_key.
2228
- * Mod: layout of settings page.
2229
- * Mod: Banner logic altered.
2230
-
2231
- = 5.113.2 January 18 2019 =
2232
- * Fix: "Settings" link returns to plugin page.
2233
-
2234
- = 5.113.1 January 17 2019 =
2235
- * Fix: Conflict with CityTours theme.
2236
- * Fix: Error for Wordperss lower 4.7.
2237
- * Add: Spam protection: "Validate email for existance".
2238
-
2239
- = 5.113 January 16 2019 =
2240
- * Fix: Fast and Simple Contact Form.
2241
- * Fix: Settings layout.
2242
- * Fix: Error with WooCommerce Quickview.
2243
- * Fix: Bitrix24 contact form.
2244
- * Fix: Request time decreased.
2245
- * Fix: Requesting account status when activating for IP licenses.
2246
- * Add: Precise AJAX request detection.
2247
- * Spam protection improved.
2248
-
2249
- = 5.112 December 21 2018 =
2250
- * Fix: Woocommerce AJAX checkout form.
2251
- * Fix: Profile Builder Pro.
2252
- * Fix: DB structure improvements for WPMS.
2253
- * Spam filtering quality improved.
2254
- * Minor fixes.
2255
-
2256
- = 5.111 December 13 2018 =
2257
- * Fix: Double request in JetPack contact form.
2258
- * Fix: Email notification about spam registration.
2259
- * Fix: Links button for feedback comments.
2260
- * Fix: Mail notification about plugin error.
2261
- * Fix: Key field output.
2262
- * Minor fixes.
2263
-
2264
- = 5.110 November 29 2018 =
2265
- * Integration: BuddyPress ActivityWall spam protection.
2266
- * Add: Support different BuddyPress templates on activity wall.
2267
- * Fix: Admin/moderator checking for validate post data.
2268
- * Add: GDPR setting for shortcode.
2269
- * Fix: Increase timeout for spam_check_cms to 15.
2270
-
2271
- = 5.109 November 15 2018 =
2272
- * Fix: Added URL and IP exclusions to Contact Form 7.
2273
- * Fix: js error when responseText is not exists
2274
- * Fix: Sitename when getting key automatically under WPMS.
2275
- * Mod: SpamFireWall is now fully compatible with WPMS.
2276
- * Mod: Setting 'Tell others about CleanTalk' was deleted.
2277
- * Mod: Protection from spam improved.
2278
-
2279
- = 5.108.1 November 8 2018 =
2280
- * Fix: Errors with integration class.
2281
-
2282
- = 5.108 November 7 2018 =
2283
- * Fix: White label mode.
2284
- * Fix: SpamFireWall now can be disabled.
2285
- * Fix: Layout.
2286
- * Integration: WPForms.
2287
- * Add: Message about block for all no integrated AJAX forms.
2288
- * Add: Displaying account name near api key.
2289
-
2290
- = 5.107 October 29 2018 =
2291
- * Fix: Ninja Forms integration.
2292
- * Fix: Cookie usage.
2293
- * Add: Capturing AJAX responses from non integrated forms.
2294
- * Spam protection improved.
2295
- * Minor fixes.
2296
-
2297
- = 5.106 October 11 2018 =
2298
- * Spam filtration improved.
2299
- * New: White Label mode.
2300
- * Modification: Warning message about test on SpamFireWall die page.
2301
- * Integration: WP Maintenance Mode.
2302
- * Fix: S2Member.
2303
- * Fix: JavaScript attachments reconsidered.
2304
- * Fix: Admin banners layout.
2305
- * Fix: Minor layout fixes.
2306
-
2307
- = 5.105 September 26 2018 =
2308
- * Integration: Now bloking spam for QAEngine questions.
2309
- * Fix: Async http__request call.
2310
- * Fix: Unnecessary get_antispam_report_breif method call.
2311
- * Layout: Hide "Do you like Cleantlak?" when key is not ok.
2312
- * Layout: Minor fixes.
2313
-
2314
- = 5.104 September 18 2018 =
2315
- * Fix: Error when saving settings.
2316
- * Fix: Trying update plugin plugin for the first installation.
2317
- * Fix: Update system.
2318
- * Fix: Errors output.
2319
- * Fix: Plugin's settings under WPMS.
2320
- * Fix: SpamFireWall update.
2321
- * Fix: The server change system repaired.
2322
- * Mod: Cron saving tasks improved.
2323
-
2324
- = 5.103.1 September 14 2018 =
2325
- * Fix: Error when saving settings.
2326
- * Fix: Error when getting key automatically.
2327
-
2328
- = 5.103 September 13 2018 =
2329
- * Fix: Gravity Forms response message.
2330
- * Fix: SpamFireWall redirect to 404 page.
2331
- * Major anti-spam plugin improvement.
2332
- * Recombined setting page.
2333
- * Added error notification.
2334
- * Mod: S2 Members integration.
2335
- * Mod: Improved remote calls.
2336
-
2337
- = 5.102 August 29 2018 =
2338
- * Fix: Users and comments check.
2339
- * Fix: Update from 5.70 or previous versions.
2340
- * Fix: GDPR public JS-script.
2341
- * Fix: Dashboard widget JS scripts attachment.
2342
- * Fix: WooCommerce "Place order" action.
2343
- * Mod: Notification logic altered.
2344
- * Mod: Users check table now has 'Signed up' column.
2345
- * Minor fixes.
2346
-
2347
- = 5.101 August 10 2018 =
2348
- * Fix: Set cookie only for non-dashboard pages.
2349
- * Fix: Dashboard widget JS error.
2350
- * Fix: JavaScript error for some environment.
2351
- * Mod: Antispam protection accelerated for some pages.
2352
-
2353
- = 5.100 July 30 2018 =
2354
- * Fix: JavaScript dependencies.
2355
-
2356
- = 5.99.1 July 17 2018 =
2357
- * IP detection fixed and improved.
2358
-
2359
- = 5.99 July 10 2018 =
2360
- * Fix: WooCommerce false positives.
2361
- * Fix: SpamFireWall IP detection.
2362
- * Minor fixes.
2363
-
2364
- = 5.98 June 27 2018 =
2365
- * Fix: WooCommerce: Exclusion.
2366
- * Fix: Public GDPR JS code.
2367
- * Minor fixes.
2368
-
2369
- = 5.97 June 7 2018 =
2370
- * Fix: Update system.
2371
- * Fix: Feedback from public page (admin only).
2372
- * Fix: Users and comment check: API error.
2373
- * Fix: Too many negative reports. (Too big ct_data option)
2374
- * Fix: SpamFireWall: Infinite redirection on the blocking page.
2375
- * Minor fixes.
2376
-
2377
- = 5.96 May 22 2018 =
2378
- * Fix: Update system.
2379
- * Mod: Reset all counters button in admin bar.
2380
- * Mod: GDPR compliance.
2381
- * Minor fixes.
2382
-
2383
- = 5.95.1 May 3 2018 =
2384
- * Fix: "Get key automatically" button display logic.
2385
- * Fix: PHP notices.
2386
-
2387
- = 5.95 May 2 2018 =
2388
- * Spam filtration improved.
2389
- * Fix: Public widget layout.
2390
- * Fix: Connection reports output.
2391
- * Minor fixes.
2392
-
2393
- = 5.94 April 23 2018 =
2394
- * Mod: Async load option for JS.
2395
- * Mod: JS scripts loading is conditional.
2396
- * Fix: IP detection.
2397
- * Fix: IP detection.
2398
- * Fix: Javascript error.
2399
-
2400
- = 5.93.1 April 9 2018 =
2401
- * Fix: Fatal error on PHP 5.5 or lower.
2402
-
2403
- = 5.93 April 9 2018 =
2404
- * Fix: SpamFirewall IP detection.
2405
- * Fix: Contact Form 7. False positives.
2406
- * Mod: Autoupdate function improved.
2407
- * Minor fixes.
2408
-
2409
- = 5.92.2 March 23 2018 =
2410
- * Fix: Error if cURL extension is disabled.
2411
-
2412
- = 5.92.1 March 23 2018 =
2413
- * Fix: Spelling
2414
- * Fix: Fatal error if cURL extension is disabled.
2415
-
2416
- = 5.92 March 22 2018 =
2417
- * IP detection improved.
2418
- * Fix: SSL connection.
2419
- * Fix: False positives spam detection in Contact Form 7.
2420
- * Minor fixes.
2421
-
2422
- = 5.91 March 15 2018 =
2423
- * Fix: Errors for PHP compiled without XML support.
2424
- * Fix: Spelling and translation.
2425
- * Stability increased.
2426
- * Minor fixes.
2427
-
2428
- = 5.90 March 7 2018 =
2429
- * Improvement: Better IP recognition in Spam FireWall.
2430
- * Fix: Gravity Froms blocking message.
2431
- * Security improvments.
2432
- * Minor fixes.
2433
-
2434
- = 5.89 February 21 2018 =
2435
- * Improved spam filtration quality.
2436
- * Improved compatibility.
2437
- * Public widget: Styles and referral link added.
2438
- * Dashboard widget: revised and fixed.
2439
- * Minor fixes.
2440
-
2441
- = 5.88 February 12 2018 =
2442
- * Integration: ConvertPro.
2443
- * Improvement: Search for visitor's names in request.
2444
- * Fix: Contact Form 7 message recognition.
2445
- * Preparation for the remote plugin update.
2446
- * Minor fixes.
2447
-
2448
- = 5.87 February 2 2018 =
2449
- * Filtration quality improved.
2450
- * Fix: WP Foto Vote downloading images.
2451
- * Fix: Fatal error for unsupported PHP 5.2.
2452
- * Fix: Formidable Forms improved spam filtration.
2453
-
2454
- = 5.86 January 25 2018 =
2455
- * Fix: High CPU load with wp-ajax.php.
2456
- * Fix: Mailpoet: Newsletter.
2457
- * Fix: Gravity: Forms standardization for input fields.
2458
- * Fix: ajax hook checks data for contact form.
2459
- * Fix: UTF8 character in requests.
2460
-
2461
- = 5.85 January 11 2018 =
2462
- * Fix: Fast Secure contact form spam block message.
2463
- * Fix: IP license status.
2464
- * Layout: Dashboard widget description altered.
2465
-
2466
- = 5.84 December 26 2017 =
2467
- * Integration: PeepSo contact form
2468
- * Repared: Feedback from comments page.
2469
- * Fix: mb_* functions used only if exists.
2470
- * Fix: Gravity forms: Multi-page form logic repared.
2471
- * Fix: Gravity forms: AJAX form logic repared.
2472
- * Minor fixes.
2473
-
2474
- = 5.83.2 December 19 2017 =
2475
- * Fix: Error in base class.
2476
-
2477
- = 5.83.1 December 19 2017 =
2478
- * Fix: CDN IP detection.
2479
-
2480
- = 5.83 December 19 2017 =
2481
- * Improving: Stability and compatibility.
2482
- * Improving: Spam protection.
2483
- * Fix: Comments logic filtration.
2484
- * Fix: Admin bar counter.
2485
- * Minor errors fixes.
2486
-
2487
- = 5.82.1 December 7 2017 =
2488
- * Fixed minor error with attaching JS and CSS files.
2489
-
2490
- = 5.82 December 4 2017 =
2491
- * Plugin doesn't use PHP sessions anymore.
2492
- * Bug fixes.
2493
- * Improved update logic.
2494
-
2495
- = 5.81 November 22 2017 =
2496
- * Fixed error with "Show/Hide key" button.
2497
- * Slightly improved spam protection for all forms.
2498
- * Small errors fixes.
2499
-
2500
- = 5.80 November 3 2017 =
2501
- * Spam protection improved.
2502
- * Improved filtration quality for WooCommerce checkout.
2503
- * Minor fixes for Spam FireWall.
2504
-
2505
- = 5.79 October 26 2017 =
2506
- * Spam protection improved.
2507
- * Fixed issue with existing spam comments check.
2508
- * Added posibility to exclude IP from check.
2509
- * Minor fixes.
2510
-
2511
- = 5.78 October 16 2017 =
2512
- * Improved compatibility with themes. Changed core functions prefix.
2513
- * Fixed issue with WooCommerce checkout.
2514
- * Spam protection improved.
2515
- * Minor fixes.
2516
-
2517
- = 5.77 October 2 2017 =
2518
- * Connection report's system.
2519
- * Integration for CouponXXL Theme.
2520
- * Fixed issue with mb_* functions.
2521
- * Banners logic updated.
2522
-
2523
- = 5.76 September 20 2017 =
2524
- * Fixed issue with Spam FireWall and caching plugins.
2525
- * Banners logic updated.
2526
-
2527
- = 5.75 September 15 2017 =
2528
- * Pause feature for users/comments spam check.
2529
- * Improved protection from spam.
2530
- * Small fixes.
2531
-
2532
- = 5.74.2 September 2 2017 =
2533
- * Fix for users spam check for PHP 5.3 and lower.
2534
-
2535
- = 5.74.1 September 2 2017 =
2536
- * Fix for the update system and cloud communication.
2537
- * Added possibility to check users and comments for spam with a specific date range.
2538
-
2539
- = 5.74 August 31 2017 =
2540
- * Users and comments spam check: Two check types (fast and accurate).
2541
- * Fix for WooCommerce checkout test.
2542
- * Minor fixes.
2543
-
2544
- = 5.73 August 11 2017 =
2545
- * Fix for spam check for already existed users and comments.
2546
- * Spam FireWall updated.
2547
- * Layout fix for BT Comments.
2548
- * Minor fixes.
2549
-
2550
- = 5.72 July 27 2017 =
2551
- * Improved spam check for existed users and comments.
2552
- * Minor fixes.
2553
-
2554
- = 5.71 July 20 2017 =
2555
- * Improved spam protection for external forms.
2556
- * Optimization.
2557
- * Minor fixes.
2558
-
2559
- = 5.70.2 July 17 2017 =
2560
- * Fix for Spam FireWall for Multisite.
2561
-
2562
- = 5.70.1 July 17 2017 =
2563
- * Fix for Spam FireWall.
2564
- * Spam detection improved.
2565
-
2566
- = 5.70 July 13 2017 =
2567
- * New updater logic.
2568
- * Self cron system.
2569
- * Improved AMP compatibility.
2570
- * Optimization.
2571
- * Fixed users and comments spam check.
2572
- * Fixed layout for Comment's feedback from public page.
2573
- * Updated Spam FireWall.
2574
- * SFW: Spam FireWall counter now work in real-time.
2575
- * SFW: Improved compatibility with different Data Bases.
2576
-
2577
- = 5.69 July 3 2017 =
2578
- * Reviewer - integration.
2579
- * Optimization for Users and Comments check for big databases.
2580
- * Errors fixes.
2581
- * Improved protection from spam.
2582
-
2583
- = 5.68 June 22 2017 =
2584
- * Contact Form for WordPress - Ultimate Form Builder Lite - integration.
2585
- * Contact Bank - Contact Forms Builder - integration.
2586
- * Smart Forms - integration.
2587
- * cformsII - integration.
2588
- * Contact Form by Web-Settler - integration.
2589
- * Error fixes.
2590
-
2591
- = 5.67.3 June 9 2017 =
2592
- * Fixed JS attachment error.
2593
-
2594
- = 5.67.2 June 5 2017 =
2595
- * Fixed error with IP determination.
2596
-
2597
- = 5.67.1 June 4 2017 =
2598
- * Fixed JS error in 5.67 version.
2599
- * Integrations: Enfold theme, Convertplug.
2600
- * Links to check for Emails/IP for spam.
2601
- * Control comments and feedback about them from public post's page.
2602
- * Improved connection stability with cloud service.
2603
- * Spam protection improved.
2604
- * Other small fixes.
2605
-
2606
- = 5.67 June 1 2017 =
2607
- * Integrations: Enfold theme, Convertplug.
2608
- * Links to check for Emails/IP for spam.
2609
- * Control comments and feedback about them from public post's page.
2610
- * Improved connection stability with cloud service.
2611
- * Spam protection improved.
2612
- * Other small fixes.
2613
-
2614
- = 5.66 May 23 2017 =
2615
- * Spam protection improved.
2616
- * Major fixes for users and comments spam check.
2617
- * Added feedback from Wordpress comments list.
2618
- * Fix for "internal forms check" option.
2619
- * Fixed issue with caching Spam FireWall die page.
2620
- * Other small fixes.
2621
-
2622
- = 5.65 May 16 2017 =
2623
- * Fix for PayPal redirecton.
2624
- * Fixed issue with empty query for bulk comments test.
2625
- * Added protection for Enfold contact form.
2626
- * Ninja forms integration.
2627
-
2628
- = 5.64 April 26 2017 =
2629
- * Integration for Facebook registrations.
2630
- * Small fixes for WPMS.
2631
- * Fix for Activecampaign service.
2632
- * Fix for check spam users.
2633
- * Fixed rare notice Notice: Undefined index: REQUEST_URI
2634
-
2635
- = 5.63 April 20 2017 =
2636
- * Fix for the dashboard spam stat widget.
2637
- * Added translation posibility for all text.
2638
-
2639
- = 5.62 April 17 2017 =
2640
- * Fix for the dashboard spam statistics widget.
2641
- * Fix for users spam check.
2642
- * Small appearance changes.
2643
-
2644
- = 5.61 April 6 2017 =
2645
- * Improved filtration.
2646
- * Additional logic for the form recognizing.
2647
- * Integration: Divi Theme Contact Form.
2648
- * Fix: Gravity Forms multipages forms.
2649
- * Stat Widget: Minor fixes.
2650
- * Added possibility to download results of the users check in CSV format.
2651
- * Alteration for settings page (footer).
2652
-
2653
- = 5.60.1 March 29 2017 =
2654
- * Fixed error function 'locale_get_display_region' no exists.
2655
-
2656
- = 5.60 March 29 2017 =
2657
- * Added main dashboard widget with spam sctivity stats.
2658
- * Mailster - integration.
2659
- * Base class updated.
2660
-
2661
- = 5.59 March 24 2017 =
2662
- * Users/comments check fix.
2663
- * Plugin's name changed to Anti-Spam by CleanTalk.
2664
- * Trial banner is dismissable. Disapear for 24h or till logout.
2665
- * Settings modified (Auto testing failed warning).
2666
- * Mailing(inactive key) interval increased to 6 hours.
2667
-
2668
- = 5.58.6 March 16 2017 =
2669
- * Fix for Ninja forms (protection updated).
2670
- * Fix for QA Theme.
2671
- * Fix for RSVP form.
2672
- * Setting changes (Spam FireWall).
2673
- * Improved debug section.
2674
- * Improved gathering data function.
2675
- * Minor fixes.
2676
-
2677
- = 5.58.5 March 6 2017 =
2678
- * Minor backend fix.
2679
-
2680
- = 5.58.4 March 6 2017 =
2681
- * Users check fix (redirect after the check).
2682
- * Fixed PHP Notice "HTTP_REFERER" is unset.
2683
- * Updated Notice logic.
2684
-
2685
- = 5.58.3 February 28 2017 =
2686
- * Bitrix24 Contact form integration.
2687
- * Users/comments check fix.
2688
- * Spam sorting updated.
2689
- * Banner showing logic.
2690
-
2691
- = 5.58.2 February 17 2017 =
2692
- * Cron fix for daily report.
2693
-
2694
- = 5.58.1 February 16 2017 =
2695
- * Minor fixes.
2696
-
2697
- = 5.58 February 15 2017 =
2698
- * Work without access key
2699
- * Bitrix24 contact integration
2700
- * Issues fixes
2701
-
2702
- = 5.57.1 February 8 2017 =
2703
- * Fix for notice logic.
2704
-
2705
- = 5.57 February 8 2017 =
2706
- * Setting page changes.
2707
- * Bug fixes for WooCommerce.
2708
- * Spam FireWall filters only GET requests.
2709
- * Optimization.
2710
- * Minor and major fixes.
2711
-
2712
- = 5.56.1 January 25 2017 =
2713
- * Minor fixes
2714
-
2715
- = 5.56 January 19 2017 =
2716
- * Integrations: MailChimp Premium, Profile Press.
2717
- * Changes comments flow.
2718
- * FireWall updater fix.
2719
- * Users check optimization.
2720
-
2721
- = 5.55 December 23 2016 =
2722
- * Integrations: Caldera Forms, Visual Form Builder.
2723
- * Fix for different 'cookies' header names.
2724
- * Fixed user deletion.
2725
-
2726
- = 5.54 December 12 2016 =
2727
- * Integrations: AmoForms, Contact Form Clean and Simple.
2728
- * Comments check logic refreshed.
2729
- * Registration JS error fix.
2730
- * Users check fix.
2731
- * Fix for translation system.
2732
- * Minor fixes.
2733
-
2734
- = 5.53.1 December 9 2016 =
2735
- * Minor layout fixes.
2736
-
2737
- = 5.53 November 28 2016 =
2738
- * Addition warning before deleting users.
2739
- * Spam FireWall is enabled by default.
2740
- * Usernoise modal feedback / contact form : integration.
2741
- * Translations.
2742
- * Optimization.
2743
- * Fixes.
2744
-
2745
- = 5.52.1 November 14 2016 =
2746
- * Users and comments check: Using new API method.
2747
- * Quick Contact From: Integration via "Custom Contact Forms" setting.
2748
- * JavaScript filtration improved.
2749
- * Translation changes.
2750
- * Optimized JavaScript code.
2751
-
2752
- = 5.51 November 2 2016 =
2753
- * Added protection for internal forms
2754
- * Immediate spam check for comments and users from WP dashboard
2755
- * Optimized code
2756
-
2757
- = 5.50.1 October 24 2016 =
2758
- * Improved filtration in contact forms.
2759
- * Spam FireWall: Fixed issue with SFW logs
2760
- * Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
2761
-
2762
- = 5.50 October 20 2016 =
2763
- * Custom contact forms: integration.
2764
- * Pirate Forms: integration.
2765
- * PHP 7 compatibility: Deleted third-party JSON library and dependences.
2766
- * PHP 7 compatibility: Fixed end of lines.
2767
- * YOAST Seo: Fixed PHP warnings.
2768
- * Spam FireWall: Minor fix for Spam FireWall counter.
2769
- * Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
2770
- * Improved filtration in contact forms.
2771
-
2772
- = 5.49.2 October 5 2016 =
2773
- * Second Fix for database error. Stable version.
2774
-
2775
- = 5.49.1 October 5 2016 =
2776
- * Fixed database error.
2777
-
2778
- = 5.49 October 3 2016 =
2779
- * Spam FireWall feature: Class upgraded.
2780
- * New feature: Delete links from approved comments.
2781
- * Settings: Grouped.
2782
- * Settings: Altered description fixed spelling mistakes.
2783
- * Settings: Added indicator for Spam FireWall.
2784
- * Admin bar: Added Spam FireWall counter
2785
- * Clean and Simple Contact Form: Direct integration.
2786
- * WooCommerce: Don't check password recovery form.
2787
- * WooCommerce Wishlists: Issue with check for Google bots.
2788
- * JetPack: contact form fix.
2789
- * Fixed and created the defaults for all CleanTalk options.
2790
- * Fixed spelling mistakes.
2791
-
2792
- = 5.48 September 15 2016 =
2793
- * buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
2794
- * buddyPress: Added option in settings for private messages check.
2795
- * WooCommerce Wishlist: Added check for wishlists.
2796
- * Fixed issue with "check all post data" option.
2797
- * Improved filtering for Gravity Forms
2798
- * Mobile Assistant Connector fix
2799
- * Minor fixes.
2800
-
2801
- = 5.47 September 5 2016 =
2802
- * WooCommerce: direct integration for checkout form.
2803
- * WooCommerce Sensei: login form fix.
2804
- * bbPress: Added the check for topics and comments with stop_words
2805
- * bbPress: Skip check for admin in comments and topics
2806
- * UserPro: fixes. Request without field "shortcode"
2807
- * Contact Form 7: Bug fix.
2808
- * Spam FireWall: Optimized logs rotation.
2809
- * Updated inner functions (compatibility fix for PHP 5.4+)
2810
- * Fixed output of counters (without spamfirewall stats)
2811
- * Fixed spelling in settings
2812
- * Added "Delete from the list" button in comments spam check page
2813
- * Minor fixes.
2814
-
2815
- = 5.46 August 17 2016 =
2816
- * Fixed issue with admin bar links in WP Multi Network mode.
2817
- * Added "All time counter" and "Daily counter" into admin bar.
2818
- * Added settings to disable counters in admin bar.
2819
- * New style for "Get access key manually" button.
2820
-
2821
- = 5.45.2 August 4 2016 =
2822
- * Added Anti-Spam protection for Quick Event Manager.
2823
- * Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more then 30 days ago.
2824
- * Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
2825
- * Minor fix function to get the API key.
2826
-
2827
- = 5.45.1 July 26 2016 =
2828
- * Fixed issue with missed spam messages, subscriptions.
2829
- * Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more then 30 days ago.
2830
-
2831
- = 5.45 July 21 2016 =
2832
- * Optimized bulk spam comments deletion.
2833
- * Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
2834
- * Added links to bulk spam comments&users removal tool.
2835
-
2836
- = 5.44.1 July 13 2016 =
2837
- * Optimized options getting code.
2838
- * Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
2839
-
2840
- = 5.43.2 June 30 2016 =
2841
- * Optimized anti-spam code for AJAX based contact forms.
2842
- * Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
2843
-
2844
- = 5.43.1 June 23 2016 =
2845
- * Added agent version in requests to test a connection between the website and servers.
2846
- * Fixed issue with PHP notices in cleantalk-admin.php.
2847
-
2848
- = 5.43 June 22 2016 =
2849
- * Added spam protection for registrations via 'Login with AJAX' plug-in.
2850
- * Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
2851
- * Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
2852
- * Fixed issue with spam protection for nested forms by Formidable plug-in.
2853
-
2854
- = 5.42 2016-06-15 =
2855
- * Added anti-spam protection for UserPro.
2856
- * Improved protection for Formidable forms + Varnish.
2857
- * Improved bulk search for spam accounts.
2858
- * Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
2859
- * Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
2860
- * Minor fixes in plugin backend.
2861
-
2862
- = 5.41 2016-05-31 =
2863
- * Added HTTP response in plugin response if an network issue was happend.
2864
- * Optimized JavaScript anti-spam test for Formidable forms.
2865
- * Re-stored the option to auto redirect to plugn settings after plugin activation.
2866
- * Fixed issue with nasted fields in Formidable forms.
2867
-
2868
- = 5.40.3 2016-05-26 =
2869
- * Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
2870
- * Added JSON encoding for AJAX forms.
2871
- * Obfuscated private data for Custom contact forms option.
2872
- * Optimized bulk users check for spam over blacklists database.
2873
- * Fixed issue with lost connection to servers and JavaScript anti-spam test.
2874
- * Fixed issue with WordFence and collect_details.
2875
-
2876
- = 5.40.2 2016-05-11 =
2877
- * Improved account status check logic.
2878
- * Fixed issue with double anti-spam tests for FastSecure contact forms.
2879
- * Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occured on standart WordPress registration form and with failed JavaScript spam test.
2880
- * Fixed issue with session_start() with PHP sessions stored in memcache.
2881
-
2882
- = 5.40.1 2016-04-28 =
2883
- * Fixed issue with Super Socializer.
2884
- * Fixed issue with spam filtration for logged in users and Formidable forms.
2885
- * Added logging of all submitted fields for FastSecure contact form.
2886
-
2887
- = 5.40 2016-04-19 =
2888
- * Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
2889
- * Minor fix in plugin settings.
2890
- * Fixed pagination for bulk users spam test.
2891
- * Fixed issue with unknown _SESSION.
2892
- * Fixed issue with double Spam FireWall database upload.
2893
-
2894
- = 5.39.1 2016-04-04 =
2895
- * Improved AJAX based anti-spam test with HTTPS backends.
2896
- * Added fix to avoid issue with empty ct_info_flag on JavaScript side.
2897
- * Added logic to exclude caching for Spam FireWall.
2898
- * Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
2899
-
2900
- = 5.38.1 2016-03-24 =
2901
- * Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
2902
- * Removed Spam FireWall protection on /feed page.
2903
- * Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
2904
- * Added reject notice for spam submissions on Gravity forms with AJAX calls.
2905
-
2906
- = 5.37.3 2016-03-10 =
2907
- * Minor bug fixes. Added an option to support Varnish cache.
2908
-
2909
- = 5.36.1 2016-02-05 =
2910
- * Fixed bug, when users receive error after logging in
2911
-
2912
- = 5.36 2016-02-04 =
2913
- * Improved JavaScript anti spam protection
2914
- * Improvements for avoiding blocking requests from payment systems
2915
-
2916
- = 5.35 2016-01-14 =
2917
- * Added support for IP licensing
2918
- * Some anti-spam protection improvements
2919
- * Small backend interface fixes
2920
-
2921
- = 5.34.1 2015-12-17 =
2922
- * Fixed trackback antispam protection: improved checking mechanism
2923
- * Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
2924
-
2925
- = 5.34 2015-12-10 =
2926
- * Improved spam checking mechanism
2927
- * Added "Collect browser details" option for better antispam protection
2928
- * Fixed custom contact forms checking
2929
- * Minor translations fixes
2930
-
2931
- = 5.33.1 2015-12-04 =
2932
- * Fixed issue with BBPress
2933
- * Fixed anti-spam comments checking
2934
- * Fixed bulk checking
2935
- * Fixed trackback and pingback checking
2936
-
2937
- = 5.33 2015-12-01 =
2938
- * Backend interface fixes
2939
- * Improved Spam FireWall efficiency
2940
- * Improved performance of anti spam checking
2941
-
2942
- = 5.32 2015-11-26 =
2943
- * Added improvements for manual spam detection
2944
- * Fixed errors in backend
2945
- * Fixed bulk users anti spam checking
2946
- * Added indicator for bulk spam checking
2947
- * Added "Get access key automatically" feature
2948
-
2949
- = 5.31 2015-11-11 =
2950
- * Improved backend performance
2951
- * Fixed counter of approved/blocked spam attacks
2952
- * Fixed Spam Firewall logging
2953
-
2954
- = 5.30 2015-11-05 =
2955
- * Improved anti-spam checking
2956
- * Optimized performance
2957
- * Fixed blocking email preview in MailPoet
2958
- * Interface fixes
2959
- * WPMU interface fixes
2960
-
2961
- = 5.29 2015-10-27 =
2962
- * Optimized performance
2963
- * Fixed bugs in custom contact forms spam checking
2964
-
2965
- = 5.28.7 2015-10-23 =
2966
- * Major backend peromance fix.
2967
-
2968
- = 5.28 2015-10-16 =
2969
- * Fixed errors in anti-spam checking
2970
- * Restored options for spam checking registrations and cpmmon contact forms
2971
- * Improved anti spam defence
2972
- * Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
2973
-
2974
- = 5.27 2015-10-13 =
2975
- * Improvements in Spam FireWall feature
2976
- * Code optimization
2977
- * Backend interface fixes
2978
-
2979
- = 5.26 2015-10-05 =
2980
- * Added WordPress Language Pack support
2981
- * Removed spam checking for some autorisation plugins
2982
- * New experimental feature: Spam FireWall
2983
-
2984
- = 5.25.2 2015-09-28 =
2985
- * Fixed backend bug
2986
-
2987
- = 5.25.1 2015-09-28 =
2988
- * Added widget with anti-spam stats
2989
- * Added information about blocked spam attacks in admin dashboard and CleanTalk settings
2990
- * Added ability not to check comments for users with 3 or above allowed comments
2991
- * Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
2992
- * Some backend interface settings
2993
- * Removed "CleanTalk connection test" query
2994
-
2995
- = 5.24.1 2015-09-16 =
2996
- * Fixed some errors in frontend
2997
- * Fixed access key saving
2998
-
2999
- = 5.24 2015-09-14 =
3000
- * Backend interface fixes
3001
- * Improvement for AJAX JavaScript spam checking
3002
-
3003
- = 5.23 2015-09-01 =
3004
- * Fixed BuddyPress profile search false positivities of anti-spam protection.
3005
- * Some interface fixes of bulk users & comments spam checking
3006
-
3007
- = 5.22 2015-08-26 =
3008
- * Fixed possible XSS issue for anti-spam test on third-party forms.
3009
-
3010
- = 5.21 2015-08-21 =
3011
- * Fixed bug with skipping spam submissions
3012
- * Fixed bug with receiving old user_token for viewing anti-spam stats
3013
- * Small backend fixes
3014
-
3015
- = 5.20 2015-08-15 =
3016
- * Fixed anti-spam stats in admin bar
3017
- * Fixed issue with skipping spam submissions
3018
- * Added some PHP-constants for advanced users
3019
-
3020
- = 5.19 2015-08-11 =
3021
- * New feature: anti-spam checking for registered users
3022
- * Fixed issue with AJAX JavaScript checking
3023
- * Fixed issue with SEO Yoast xml sitemaps.
3024
-
3025
- = 5.18 2015-08-04 =
3026
- * Fixed issue with user_token
3027
- * Added anti-spam API, see our FAQ
3028
-
3029
- = 5.17 2015-07-23 =
3030
- * Fixed infinite redirection after activation
3031
- * Minor backend fixes
3032
-
3033
- = 5.16 2015-07-22 =
3034
- * Fixed external services checking
3035
- * Fixed mass comments deletion
3036
- * Fixed AJAX anti-spam protection
3037
-
3038
- = 5.15 2015-07-16 =
3039
- * New feature: anti-spam protection for forms, that uses external services
3040
-
3041
- = 5.14 2015-07-03 =
3042
- * Added anti-spam protection for some themes and plugins
3043
- * Some backend fixes
3044
-
3045
- = 5.13 2015-06-12 =
3046
- * Closing notification for anti-spam renew
3047
- * Fixed bulk anti spam comment checking
3048
-
3049
- = 5.12 2015-06-01 =
3050
- * Added option for checking all post data for spam
3051
- * Some JavaScript protection improvements
3052
- * Added option for old JavaScript check (without AJAX)
3053
-
3054
- = 5.10 2015-05-25 =
3055
- * Fixed Javascript error on some forms
3056
-
3057
- = 5.9 2015-05-21 =
3058
- * Fixed Javascript error on CF7 and JetPack
3059
- * Some backend and frontent fixes
3060
-
3061
- = 5.8 2015-05-18 =
3062
- * Minor fixes
3063
-
3064
- = 5.7 2015-05-18 =
3065
- * Fixed French translation
3066
- * Fixed protection algorithm
3067
-
3068
- = 5.6 2015-05-11 =
3069
- * Fixed translation
3070
- * Fixed bulk comments anti-spam checking
3071
- * Added option for disabling anti spam stats in adminbar
3072
- * Some security fixes
3073
-
3074
- = 5.5 2015-04-29
3075
- * Fixed security issue
3076
-
3077
- = 5.4 2015-04-27 =
3078
- * Some interface and functionality changes in plugin settings page
3079
- * Added counter for anti-spam stats in admin bar
3080
-
3081
- = 5.3 2015-04-13 =
3082
- * Added anti-spam protection for Divi theme contact forms
3083
- * Added anti-spam protection for MyMail contact forms
3084
- * Added anti-spam protection for MailPoet Newsletters
3085
- * Some interface and functionality changes in backend
3086
-
3087
- = 5.2 2015-04-01 =
3088
- * Added link for anti-spam stats
3089
- * Added WP User Frontend Pro registration form protection
3090
-
3091
- = 5.10 2015-03-24 =
3092
- * Fixed site crash after installing 5.0 on some websites
3093
-
3094
- = 5.00 2015-03-24 =
3095
- * Added bulk comments checking for spam via CleanTalk blacklists
3096
- * Added anti-spam form protection for 'Ajax Login & Register'
3097
- * Fixed JetPack form protection
3098
-
3099
- = 4.24 2015-03-20 =
3100
- Added immediate spam protection activation.
3101
-
3102
- = 4.22 2015-03-17 =
3103
- * Added button for automatic spam protection key getting.
3104
-
3105
- = 4.21 2015-03-11 =
3106
- * Added license renew notification.
3107
-
3108
- = 4.20 2015-03-03 =
3109
- * German, Italian, Polish, Portuguese translations, minor code fixes.
3110
-
3111
- = 4.19 2015-02-24 =
3112
- * Increased JS keys lifetime.
3113
-
3114
- = 4.18 2015-02-17 =
3115
- * Bugfix - fixed bug with comments approvement, PayPal 'payment_status' and Akismet 'spam' status processing.
3116
-
3117
- = 4.17 2015-02-12 =
3118
- * New base class, divided code to 3 separate files - common, public and admin.
3119
-
3120
- = 4.16 2015-02-05 =
3121
- * New base class, fixed JetPack filters logics, optimized Formidable, bbPress, BuddyPress filters.
3122
-
3123
- = 4.15 2015-01-29 =
3124
- * Support of Contact Form 7 versions before 3.0.0, fixed global JS-vars and online notice cookie logics.
3125
-
3126
- = 4.14 2015-01-19 =
3127
- * Removed deprecated option from comment approvement code.
3128
-
3129
- = 4.13 2014-12-29 =
3130
- * Not spam comments auto approvement bug fix.
3131
-
3132
- = 4.12 2014-12-29 =
3133
- * Plugin backend minfor bug fixes.
3134
-
3135
- = 4.11 2014-12-22 =
3136
- * Major changes in spam protection algorithms.
3137
-
3138
- = 4.10 2014-12-10 =
3139
- * Minor improvements for custom contact/registration/subscribe forms.
3140
-
3141
- = 4.9 2014-11-24 =
3142
- * Minor bug fix for Contact form 7.
3143
-
3144
- = 4.8 2014-11-19 =
3145
- * Improved anti-spam protection for BuddyPress registrations and custom contact forms.
3146
-
3147
- = 4.7 2014-11-16 =
3148
- * Fixed JavaScript antispam test for FastSecure contact form.
3149
-
3150
- = 4.6 2014-11-11 =
3151
- * Minor changes in anti-spam logic for BuddyPress registrations, contact forms and bbPress guest posting.
3152
-
3153
- = 4.5 2014-11-04 =
3154
- * Bug fixes for Contact form 7 and bbPress guests posting.
3155
-
3156
- = 4.4 2014-10-29 =
3157
- * Improved JS checking for CF7.
3158
-
3159
- = 4.2 2014-10-20 =
3160
- * Increased plugin perfomance for BuddyPress registrations.
3161
-
3162
- = 4.1 2014-10-13 =
3163
- * Minor anti-spam improvements for contacts, registration and contact forms.
3164
-
3165
- = 4.0 2014-10-06 =
3166
- * Major anti-spam improvements for registration and contact forms.
3167
-
3168
- = 3.9 2014-10-01 =
3169
- * Did exception to do not break to create new user in WordPress backend.
3170
-
3171
- = 3.8 2014-09-19 =
3172
- * Bug fix release. Minor fixes in API class and JavaScript anti-spam test.
3173
-
3174
- = 3.6 2014-09-15 =
3175
- * Minor fixes in anti-spam protection for Formidable and custom contact forms.
3176
-
3177
- = 3.4 2014-09-04 =
3178
- * Spam comments rotation. Custom (themes) contact forms support.
3179
-
3180
- = 3.2 2014-08-27 =
3181
- * Minor changes in spam filtration logic.
3182
-
3183
- = 3.1 2014-08-19 =
3184
- * Major changes for comments antispam logic. Improved plugin speed.
3185
-
3186
- = 2.59 2014-08-14 =
3187
- * Antispam protection for bbPress guests posts. Improvement for JetPack comments and PHP API update.
3188
-
3189
- = 2.58 2014-08-06 =
3190
- * Added anti-spam protection for signups posted via WooCommerce order form.
3191
- * Improved anti-spam protection for Contact Form 7.
3192
- * Improved anti-spam protection for registrations. Now the plugin looking for JavaScript antispam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
3193
- * Updated PHP API. No the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
3194
-
3195
- = 2.57 2014-07-29 =
3196
- * Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
3197
- * Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
3198
- * Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
3199
-
3200
- = 2.56 2014-07-21 =
3201
- * Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
3202
-
3203
- = 2.55 2014-07-11 =
3204
- * Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it on every page.
3205
-
3206
- = 2.54 2014-07-11 =
3207
- * Fixed signup anti-spam protection logic for BuddyPress registrations.
3208
- * Fixed anti-spam protection for JetPack contact form.
3209
- * Changed account status check logic.
3210
-
3211
- = 2.53 2014-06-27 =
3212
- * Fixed anit-spam protection bug for signups.
3213
- * Changed anti-spam functions (comments and signups) priority.
3214
-
3215
- = 2.52 2014-06-25 =
3216
- * Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
3217
-
3218
- = 2.51 2014-06-23 =
3219
- * Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
3220
- * Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
3221
- * Fixed minor bug with loading backend functions.
3222
-
3223
- = 2.49 2014-06-10 =
3224
- * Added spam protection for S2Member Auth.net forms.
3225
- * Added spam protection for multisite signup form.
3226
- * Optimized account status check function.
3227
-
3228
- = 2.46 2014-05-19 =
3229
- * Added: HTML notice about the need to enable JavaScript.
3230
- * Fixed: Fixed pingbacks anti-spam test.
3231
-
3232
- = 2.44 2014-05-12 =
3233
- * Added: Anti-spam protection for S2Member framework.
3234
- * Improved: Plugin load time for backend and frontend.
3235
- * Improved: JavaScript anti-spam test.
3236
- * Fixed: PHP warning mb_convert_encoding()
3237
-
3238
- = 2.42 2014-04-29 =
3239
- * Fixed: JavaScript anti-spam test for comments.
3240
-
3241
- = 2.38 2014-03-27 =
3242
- * Fixed: Registraion form submit time spam test.
3243
-
3244
- = 2.36 2014-03-12 =
3245
- * Reversed to patches from old revisions.
3246
-
3247
- = 2.35 2014-03-12 =
3248
- * New: Notifications about disabled account
3249
- * New: Improved JavaScript spam test.
3250
- * Fixed: Code optimization
3251
- * Fixed: JavaScript test for signups.
3252
-
3253
- = 2.33 2014-02-12 =
3254
- * Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
3255
-
3256
- = 2.32 2014-02-04 =
3257
- * New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
3258
- * New: At WordPress console added banner for notices.
3259
- * Changed: Screenshots updated.
 
 
 
 
 
 
 
 
 
 
1
+ === Spam protection, AntiSpam, FireWall by CleanTalk ===
2
+ Contributors: safronik
3
+ Tags: spam, antispam, protection, comments, firewall
4
+ Requires at least: 3.0
5
+ Tested up to: 5.3
6
+ Stable tag: 5.128
7
+ License: GPLv2
8
+
9
+ Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
10
+
11
+ == Description ==
12
+
13
+ **Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, any WordPress registrations & contact forms and themes. Just setup and forget the spam!**
14
+
15
+ No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
16
+
17
+ = AntiSpam features =
18
+ 1. Stops spam comments.
19
+ 2. Stops spam registrations.
20
+ 3. Stops spam contact emails.
21
+ 4. Stops spam orders.
22
+ 5. Stops spam bookings.
23
+ 6. Stops spam subscriptions.
24
+ 7. Stops spam surveys, polls.
25
+ 8. Stops spam in widgets.
26
+ 9. Stops spam in WooCommerce.
27
+ 10. Checks and removes the existing spam comments and spam users.
28
+ 11. Compatible with mobile users and devices.
29
+ 12. Compatible with General Data Protection Regulation (GDPR) (EU).
30
+ 13. Real-time email validation. Is email real or Not.
31
+ 14. Blocking disposable & temporary emails.
32
+ 15. No Spam - No Google Penalties. Give your SEO boost.
33
+ 16. Mobile friendly Anti Spam & FireWall.
34
+ 16. Stops spam in Search Form.
35
+
36
+ = Public reviews =
37
+ > CleanTalk - Cloud-Based Anti-Spam Service to Keep Your Site Bot-Free.
38
+ > <a href="https://newswatchtv.com/2018/07/18/cleantalk-newswatch-review/" rarget="_blank">NewsWatch Review</a>.
39
+
40
+ > Using CleanTalk on WPLift was a great test as we receive huge amounts of spam.
41
+ > *Oliver Dale, <a href="http://wplift.com/wordpress-anti-spam-plugin" target="_blank">WPLift.com</a>.*
42
+
43
+ >I know you have heard of a number of anti-spam plugins. But you must know, the cloud-based ones are the best regarding detection rate. They compare all the content in forms with their own algorithm to find out the legibility.
44
+ >*<a href="https://www.techwibe.com/cleantalk-wordpress-plugin-review/" target="_blank">www.techwibe.com</a>*
45
+
46
+ > The key selling point of CleanTalk for me is not simply its effectiveness. It's the fact that CleanTalk works in the background. It does not make users jump through hoops in order to submit a comment or complete a form.
47
+ > <a href="https://www.kevinmuldoon.com/cleantalk-anti-spam-service/">www.kevinmuldoon.com</a>
48
+
49
+ = Free trial then $8 per year =
50
+ CleanTalk is a free anti spam plugin which work with the premium Cloud AntiSpam service cleantalk.org. This plugin as a service https://en.wikipedia.org/wiki/Software_as_a_service.
51
+
52
+ = AntiSpam protection for comments =
53
+ Native spam protection for WordPress, JetPack comments and any other comment plugins. The plugin moves spam comments to SPAM folder or you can set the option to ban spam comments silently. You can also enable the option in the plugin settings to auto-delete comments from SPAM folder.
54
+
55
+ = Spam bots registrations filter =
56
+ Filters spam bots on registration forms of WordPress, BuddyPress, bbPress, S2Member, WooCommerce, Profile builder, Login with AJAX and any other registration plugins.
57
+
58
+ = Protection from contact form spam =
59
+ The plugin is tested and ready to protect from spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing Page Builder, Gravity forms, Contact Form by BestWebSoft, Simple Contact Form Plugin - PirateForms, Visual Form Builder, Contact Form by WebDorado, Contact Form Email, MW WP Form, Contact Form by Jeff Bulllins, Contact Us Form, WCP Contact Form, WPForms Lite, Custom Contact, Forms, Caldera Forms, Visual Form Builder, Contact Form Clean and Simple, Divi by Elegant Themes, The7 theme and any other themes or custom contact forms, amoForms, Ultimate Form Builder, Contact Bank - Contact Forms Builder, Forms easily built with Smart Forms, Usernoise contact form, Contact Form by Web-Settler, HubSpot Marketing Free, QuForm.
60
+
61
+ = WooCommerce spam filter =
62
+ Anti-spam by CleanTalk filters spam registrations and spam reviews for WooCommerce. The plugin is fully compatible with WooCommerce 2.1 and higher.
63
+
64
+ = Newsletters antispam filter =
65
+ Anti-spam by CleanTalk filters spam subscriptions for MailPoet, MailChimp, PopupAlly and many other newsletter plugins.
66
+
67
+ = Spam filter for theme contact forms =
68
+ The plugin blocks spam emails via any theme (built-in ones included) contact forms. The plugin filters spam emails silently (without any error notices on WordPress frontend) in AJAX forms as well.
69
+
70
+ = bbPress spam filter =
71
+ Spam protection for everything about bbPress: logins, registrations, forums, topics and replies.
72
+
73
+ = Other spam filters =
74
+ * WordPress Landing Pages.
75
+ * WP User Frontend, UserPro.
76
+ * Any WordPress form (checkbox 'Custom contact forms').
77
+ * Any submission to the site (checkbox 'Check all POST data')
78
+
79
+ = Compatible with WordPress cache plugins =
80
+ * W3 Total Cache, Quick Cache, WP Fastest Cache, Hyper Cache, WP Super cache, WP-Rocket and any other cache plugins.
81
+
82
+ = Check existing comments for spam. Bulk spam comments removal. Spam comment Cleaner =
83
+ With the help of anti-spam by CleanTalk you can inspect through existing comments to find and quickly delete spam comments at once. To use this function, go to WP Console -> Comments -> Find spam comments.
84
+
85
+ = Check existing users for spam. Bulk spam accounts removal. Spam users cleaner =
86
+ With the help of anti-spam by CleanTalk you can inspect through existing accounts to find and quickly delete spam users at once. For use this function, go to WP Console -> Users -> Check for spam. Also, you can export a list of spam users to the CSV.
87
+
88
+ = Blocking users by country =
89
+ Automatically block comments and registrations from the countries you have set a ban for. This option is useful in cases of manual spam protection and for protection enhancement. If your site is not intended for international audience and you do not expect comments/users from other countries.
90
+
91
+ = Blocking comments by "stop words" =
92
+ You can block comments which contain "stop words" to enhance spam protection and messages with obscene words blocking. You can add particular words or phrases.
93
+
94
+ = Private black lists for anti-spam service =
95
+ Automatically block comments and registrations from your private black
96
+ IP/email address list. This option helps to strengthen the spam protection from a manual spam or block unwanted comments from users. You can add not only the certain IP addresses, but also a separate subnet to your personal black list.
97
+
98
+ = Private black list for Spam FireWall =
99
+ It allows you to add individual IP addresses and subnets to Spam FireWall. It
100
+ blocks the spam attacks from IP addresses which are not included in the SFW base yet. This option can help to block HTTP/HTTPS DDoS, SQL, brute force attacks and any others that made it through the HTTP/HTTPS. You can add not only the certain IP addresses, but also a separate subnet to your personal black list.
101
+
102
+ = Low false/positive rate =
103
+ This plugin uses multiple anti-spam tests to filter spam bots having as low false/positive rate as possible. Multiple anti-spam tests help to avoid false/positive blocks of the real website visitors even if one of the tests failed.
104
+
105
+ = How effective is CleanTalk? =
106
+ Accurately blocking spam is not an easy thing to do, but CleanTalk has a very low proven False/Positive rate. Here is actual statistics on false positives for all customers.
107
+
108
+ * Registrations - 0.007%
109
+ * Comments - 0.001%
110
+ * Contact forms - 0.001%
111
+ * Orders (WooCommerce) - 0.008%
112
+
113
+ The statistic was calculated on November 10 2017 for 1 million requests.
114
+
115
+ = How CleanTalk improves SEO for your website? =
116
+ So, you already know that the speed of the site has a direct impact on SEO.
117
+
118
+ *CleanTalk works faster than most of the other anti-spam plugins.* It is common knowledge that the faster your site loads, the better your customer experience is, the better your SEO will be, and the better your site will convert. Speed is becoming increasingly important in SEO, conversion and user experience. Today, site speed is one of the most important ranking factors on Google. A site that loads slowly will lose visitors and potential revenue.
119
+
120
+ There are different ways of improving your site's loading performance. One important parameter for site performance is to install well-developed plugins from a reputable source.
121
+
122
+ Among anti-spam plugins CleanTalk AntiSpam is one of the fastest. Despite the
123
+ large plugin functionality, the developers have optimized the performance of
124
+ the plugin so that AntiSpam by CleanTalk is faster than most analogs. This contributes to the cloud service architecture, as all calculations take place in the cloud, not on the server, the server receives the finished result for further action.
125
+
126
+ https://s.w.org/plugins/cleantalk-spam-protect/screenshot-5.png?r=1288723
127
+
128
+ = How CleanTalk works? =
129
+ * A visitor writes a comment or registers
130
+ * Anti-Spam by CleanTalk plugin sends action parameters into the CleanTalk cloud
131
+ * Service analyzes the parameters
132
+ * If this is a visitor, the comment will be published. If it's a spam bot, then CleanTalk blocks this comment or registration.
133
+ * Parameters are written to the spam log which can be viewed in the Control Panel service.
134
+
135
+ CleanTalk team has been developing a cloud antispam system for five years and has created a truly reliable anti-spam service designed for you to guarantee
136
+ your safety.
137
+
138
+ = Spam attacks log =
139
+ Service CleanTalk (this plugin is a client application for CleanTalk anti-spam service) records all filtered comments, registration and other spam attacks in the "Log of spam attacks" and stores the data in the log for up to 45 days. Using the log, you can ensure reliable protection of your website from spam and no false/positive filtering.
140
+
141
+ = Spam FireWall =
142
+ CleanTalk has an advanced option "Spam FireWall". This option allows blocking the most active spam bots before they get access to your website. It prevents spam bots from loading website pages so your web server doesn't have to perform all scripts on these pages. Also it prevents scanning of pages of the website by spam bots. Therefore Spam FireWall significantly reduces the load on your web server. Spam FireWall also makes CleanTalk the two-step protection from spam bots. Spam FireWall is the first step and it blocks the most active spam bots. CleanTalk Anti-Spam is the second step and checks all other requests on the website in the moment of submitting comments/registers etc.
143
+
144
+ Spam FireWall is fully compatible with the most popular VPN services.
145
+ Also, Spam FireWall supports all search engines Google, Bing, Yahoo, Baidu, MSN, Yandex and etc.
146
+
147
+ = How Spam FireWall works? =
148
+ * The visitor enters to your web site.
149
+ * HTTP request data are being checked in the nearly 5.8 million of the identified spam bot IPs.
150
+ * If it is an active spam bot, the bot gets a blank page, if it is a visitor then he receives a normal page. This process is completely transparent for the visitors.
151
+
152
+ All the CleanTalk Spam FireWall activity is being logged in the process of filtering.
153
+
154
+ = Spam FireWall DDoS Protection =
155
+ Spam FireWall can mitigate HTTP/HTTPS DDoS attacks. When an intruder makes GET requests to attack your website, Spam FireWall blocks all requests from bad IP addresses. Your website gives the intruder a special page with the description of DDoS rejection instead of the website pages. Therefore Spam FireWall helps to reduce CPU usage of your server.
156
+ [youtube https://www.youtube.com/watch?v=Eu5Zqryvj4k]
157
+
158
+ = XML-RPC brute force protection =
159
+ Spam FireWall can mitigate XML-RPC brute force attacks. It blocks XML-RPC attacks from bad IP addresses. This helps to prevent bruteforce attacks by a Remote Procedure Call.
160
+
161
+ = No spam comments, no spam registrations, no spam contact emails, no spam trackbacks. CAPTCHA-free anti-spam for WordPress =
162
+ Spam is one of the most irritating things. Spam rates are increasing every year and conventional anti-spam can no longer handle all spam bots. CleanTalk prevents and automatically blocks spam. You'll be surprised how effective CleanTalk is in protecting from spam.
163
+
164
+ = AntiSpam plugin info =
165
+ CleanTalk is an all-in-one antispam solution for WordPress that protects login, comment, contact and WooCommerce forms at once. You don't need to install separate antispam plugins for each form. It allows your blog to work faster and save resources. After installation you will forget about spam; your CleanTalk plugin will do all the work. You won't have to deal with spam as CleanTalk does this for you automatically.
166
+
167
+ CleanTalk is a transparent antispam tool, we provide detailed stats of all incoming comments and logins. You can always be sure that **there are no errors**. We have developed a mobile app for you to see antispam stats wherever you want.
168
+
169
+ We have developed the antispam for WordPress that protects you from spam bots at the maximum level allowing you to provide your visitors a simple and convenient form of comments/registrations without annoying CAPTCHAs and puzzles. CleanTalk detects spam in multistage tests allowing us to block up to 99.998% of spam bots.
170
+ The anti-spam method offered by CleanTalk avoids inconvenient for communication methods (CAPTCHA, question-answer etc.), and offers to your site visitors a more comfortable one.
171
+
172
+ CleanTalk is a premium anti-spam service for WordPress, the plugin works with
173
+ our own CleanTalk Cloud Service. Anti Spam by CleanTalk offers a free trial, you can look at the <a href="https://cleantalk.org/price">pricing</a> here. We provide anti-spam services at the highest level. To maintain this level we cannot afford to offer a free version of our service, as this will immediately affect the quality of the providing anti-spam protection. Paying for a year of anti-spam service, you save a lot more and receive:
174
+
175
+ * Up to 99.998% protection from spam bots.
176
+ * Time and resources saving.
177
+ * More registrations/comments/visitors.
178
+ * Spam protection of the several websites at once in different CMS.
179
+ * Ease in installation and using.
180
+ * Traffic increase and loyalty to the users.
181
+ * 24/7 technical support.
182
+ * Clear stats.
183
+ * No captcha (reCaptcha), puzzles, etc.
184
+ * Free mobile app to control anti-spam protection on your website.
185
+
186
+ = Additional features =
187
+ * Daily and weekly detailed anti-spam reports: traffic VS spam.
188
+ * Apps for iPhone, Android to control anti-spam service, comments, signups, contacts, traffic and spam stats for the last 7 days.
189
+ * AntiSpam apps for most popular CMS on cleantalk.org.
190
+
191
+ = How to protect sites from spam bots without CAPTCHA? =
192
+ The most popular anti spam method is CAPTCHA - the annoying picture with curved and sloping symbols, which are presented to the visitor to decipher and fill in. In is supposed that spam bots won't discern these CAPTCHA, but a visitor will. CAPTCHA provokes great irritation, but if the visitor wants to comment, he has to fill in these symbols time after time, making mistakes and starting once again. Sometimes CAPTCHA reminds us of the doodles of a two year old child. For users with vision problems CAPTCHA is an insurmountable obstacle. Users hate captcha. Captcha for users means "hate". Unreadable CAPTCHA stops about 80% of site visitors. After 2 failed attempts to decipher CAPTCHA 95% of visitors reject further attempts. At the sight of CAPTCHA and after input errors, many visitors leave the resource. Thus, CAPTCHA helps to protect the resource spam both from bots and visitors. CAPTCHA is not a panacea from spam. Doubts concerning the Need for CAPTCHA?
193
+
194
+ *"Ultimately, CAPTCHAs are useless for spam because they're designed to tell you if someone is 'human' or not, but not whether something is spam or not." Matt Mullenweg*
195
+
196
+ You do not have to work in IT to know what spam is. Besides piles of unwanted email, there are spam bots, or special software programs designed to act as human website visitors that post unwelcome messages over the Internet to advertise dubious services. More often than not spam messages do not even make sense. Similar to bacteria and virus mutations developing antibiotic resistance, spam bots are becoming more resilient in penetrating Internet firewalls and security layers.
197
+
198
+ = CleanTalk's features =
199
+ Anti-Spam by CleanTalk is one of the fastest plugins that allows you to lower the server load. One of the important parameters for each webmaster is the speed of the site, so we make sure that our plugin consumes as few server resources as possible. The Cloud Service provides the advantage: all data processing takes place in the Cloud.
200
+
201
+ CleanTalk team has developed unique anti spam algorithms to assess visitors behavior. CleanTalk analyzes user behavior and the parameters of the filled forms. Our anti-spam module, being installed in your website, sends the behavior parameters of either a visitor or a spam bot. When these parameters are estimated, the anti spam service makes a decision - to post a message or to define it as spam and reject it. Based on these checks, the service forms its own list of email addresses used by spam bots.
202
+
203
+ The registrations of visitors are being checked in a similar manner. The service adds to the blacklist not just email addresses, but also IP addresses and domains of websites that promote themselves through spam mailing. All of this happens automatically and requires no action from the administration of the website. In 2.5 million queries the service makes a mistake in 40-45 cases, i.e. CleanTalk detects spam with 99.9982% accuracy. We constantly monitor these errors and make adjustments to our algorithms. Even with this exceptional accuracy our team is aiming to improve the figures over time.
204
+
205
+ All-in-one. CleanTalk protects form spam all forms instantaneously - comments, registrations, feedback, contacts. No need to install additional plugins for each form. You save resources and increase performance of your website.
206
+
207
+ Spam attacks log. Anti-Spam by CleanTalk records all filtered comments, registrations and other spam attacks in the "Log of spam attacks" and stores the data in the log for up to 45 days. Using the log, you can ensure reliable protection of your website from spam and experience no false/positive filtering.
208
+
209
+ With the help of anti-spam by CleanTalk you can check existing comments and users, to find and quickly delete spam comments at once. This allows administrators of websites to automatically check and identify spam bots, comments and users, which were not detected by conventional anti-spam tools. The existing comments and users checking process is performed in a database of the nearly 2 million identified spam bots. Detailed spam stats allows CleanTalk customers to fully control it.
210
+
211
+ CleanTalk has an advanced option "Spam FireWall". This option allows you to block the most active spam bots before they get access to your website. It unloads you website pages when an attempt attack was made, so your web server won't run unnecessary scripts on these pages. Also it prevents any scanning of website pages by spam bots. Subsequently Spam FireWall significantly reduces your webserver load. Spam FireWall can mitigate HTTP/HTTPS DDoS attacks. When an intruder makes GET requests to attack your website, Spam FireWall will block requests from bad IP addresses. Your website gives the intruder a special page with a description of DDoS rejection instead of the website pages. Spam FireWall can help to reduce the CPU usage of your server because of this reason.
212
+
213
+ "CleanTalk team has been developing a cloud spam protection system for five years and has created a truly reliable anti-spam service designed for you to guarantee your safety".
214
+
215
+ = White Label Mode =
216
+
217
+ To switch the plugin work in the white-label mode you must insert this code to your wp-config.php:
218
+
219
+ define('APBCT_WHITELABEL', true);
220
+ define('APBCT_WHITELABEL_NAME', 'YOUR_PLUGIN_NAME');
221
+ define('APBCT_HOSTER_API_KEY', 'YOUR_HOSTER_API_KEY');
222
+
223
+ Where APBCT_WHITELABEL_NAME is any name you want for the plugin.
224
+ Where YOUR_HOSTER_API_KEY is a key from CleanTalk's hoster panel.
225
+
226
+ The plugin will do everything rest.
227
+
228
+ = Auto-Update CleanTalk AntiSpam =
229
+
230
+ CleanTalk Dashboard allows you to set auto-update plugin and select several websites and update the plugin at once on all sites by one click or you can setup auto-update for all websites or separate websites.
231
+
232
+ Note: there is 24 hours delay before auto-update will do. This delay allows needing to avoid any issues. All updates that made through CleanTalk Dashboard manually will do immediately.
233
+
234
+ Auto-updating system will work from CleanTalk AntiSpam version 5.88
235
+
236
+ = Real-time email validation. Is email real or Not. =
237
+ It is very important to be sure that the user used his real email address. Spambots very often use fake email addresses, i.e. which addresses do not exist.
238
+
239
+ CleanTalk will check email addresses for existence in real time.
240
+
241
+ Non-existing email addresses also entail several other problems for website owners.
242
+
243
+ * You can never contact them by email,
244
+ * the client will never receive any notifications from you (account activation letter, password recovery, email distribution, notifications, etc.),
245
+ * if you use email marketing for your clients, then a large number of nonexistent emails in the mailing list may result in your IP address being added to various blacklists of email servers.
246
+
247
+ Improve your email list with email validation without fake emails.
248
+
249
+ = Blocking disposable & temporary emails =
250
+
251
+ Block fake and suspicious users with disposable & temporary emails to improve email delivery. So, it also prevents malicious activity, spam bots, and internet trolls.
252
+
253
+ = Stops Spam in Search Form =
254
+
255
+ Spam bots can use your search form to make a GET request with spam text.
256
+ CleanTalk Anti-Spam has the option to protect your website search form from spam bots. Each time, the search generates a new page and if there are many requests, this can create additional load. So, under some conditions, spam searches can be indexed, which affects SEO,
257
+
258
+ * Spam FireWall blocks access to all website pages for the most active spambots. It lowers your web server load and traffic just by doing this.
259
+ * Anti-Spam protection for website search forms repels spambots.
260
+ * If your search form gets data too often the CleanTalk Anti-Spam plugin will add a pause and increase it with each new attempt to send data. It saves your web server processor time.
261
+ * Spam protection allows you to not forbid indexation for the crawler bots if you really need it but simultaneously you will get protection from spambots.
262
+
263
+ You will always know what users were looking for on your site.
264
+
265
+ = Translations =
266
+ * Albanian (sq_AL) - thanks to fjalaime https://wordpress.org/support/users/fjalaime/
267
+ * French (fr_FR) - thanks to Gilles Santacreu http://net-ik.net
268
+ * Spanish (es_ES) - thanks to Andrew Kurtis and WebHostingHub
269
+
270
+ = Requirements =
271
+ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enabled 'allow_url_fopen' setting. The plugin is fully compatible with PHP 7.
272
+
273
+ > Max power, all-in-one, premium anti-spam WordPress plugin. No comments & registrations spam, no contact spam, protects any forms. Just install and forget spam.
274
+
275
+ == Installation ==
276
+
277
+ = Installation instructions =
278
+
279
+ 1. Download, install and activate 'Anti-spam by CleanTalk'.
280
+
281
+ 2. Get Access key <a href="https://cleantalk.org/register?platform=wordpress" target="_blank">https://cleantalk.org/register</a>
282
+
283
+ 3. Enter Access key in the settings: WordPress console -> Settings -> Antispam by CleanTalk
284
+
285
+ 4. Do dummy spam comment (registration or contact message) with email **stop_email@example.com**. You should see notice: **Forbidden. Sender blacklisted.**
286
+
287
+ 5. Done! The plugin is ready to use.
288
+
289
+ = Video guide - Anti-Spam Plugin Installation in WordPress. =
290
+
291
+ [youtube https://www.youtube.com/watch?v=SktF0s-go6A ]
292
+
293
+ **Important!** To test spam protection you must post a dummy submissions as website visitor (use must logged out from WordPress console), because the plugin doesn't filter submissions from WordPress administrators.
294
+
295
+ = How can setup plugin in WPMU version? =
296
+ In WordPress multisite version you can switch the plugin to use Global Access key. In this way the plugin doesn't show any options to enter Access key in plugin settings and doesn't show Trial banner in WordPress backend. To setup global CleanTalk access key for all websites in WPMS, define constant in your wp-config.php file before defining database constants:
297
+
298
+ define('CLEANTALK_ACCESS_KEY', 'place your key here');
299
+
300
+ **Make it before you activated the plugin. If the plugin already activated, deactivate it and add the code and active it again.**
301
+ Now, all subsites will have this access key.
302
+
303
+ = Manage and control spam protection =
304
+
305
+ Go to <a href="https://cleantalk.org/my" target="_blank">Dashboard</a> at the cleantalk.org or use <a href="https://play.google.com/store/apps/details?id=org.cleantalk.app">Android</a>, <a href="https://itunes.apple.com/us/app/cleantalk/id825479913?mt=8">iPhone</a> anti-spam app to manage and control spam protection.
306
+
307
+
308
+ == Frequently Asked Questions ==
309
+
310
+ = Why are they spamming me? =
311
+ Spammers want to get backlinks from your site to improve their site's PageRank or redirect your visitors to malicious sites.This level of spam can damage your reputation with readers and commentators if you fail to tackle it. It is not uncommon for some WordPress websites to receive hundreds or even thousands of comments every week. However, by using a CleanTalk plugin, spam can be easily handled by your WordPress website.
312
+
313
+ = Is the anti-spam protection safe for mobile visitors? =
314
+ Yes, it is. The plugin doesn't block mobile visitors as well as desktop website visitors. It uses several independent anti-spam tests to decrease the number of false outcomes and to have as low false-positive rate as possible. Multiple anti-spam tests help to avoid false/positive blocks for real website visitors even if one of the tests failed.
315
+
316
+ = What does the plugin do with spam comments? =
317
+ Spam comments are being moved to SPAM folder by default or you can set the option to ban spam comments silently.
318
+
319
+ = How can I test the anti-spam protection? =
320
+ Please use the email **stop_email@example.com** for comments, contacts or signups to see how the anti-spam protection works. Also you can see the logs for the last 7 days at the <a href="http://cleantalk.org/my/show_requests">Control panel</a> or look at the folder "Spam" for banned comments.
321
+
322
+ = Is the plugin effective against spam bots? =
323
+ The plugin Anti-Spam by CleanTalk stops up to 99.998% of spam comments, spam signups (registrations), spam contact emails, spam subscriptions, spam bookings or spam orders.
324
+
325
+ = Does the plugin protect from brute force, DoS attacks and spam attacks? =
326
+ Yes, it does. Please turn the option 'Spam FireWall' on in the plugin settings to protect your website from DoS/DDoS, XML-RPC attacks.
327
+
328
+ = How does the plugin stop spam? =
329
+ Please, note - administrator's actions are NOT being checked.
330
+
331
+ The plugin uses several simple tests to stop spammers:
332
+
333
+ 1. **JavaScript anti-spam test.** 99% of spam bots don't have full JavaScript functions support. So, the plugin has the code which can be run by normal visitor and can't be run by the spam bot.
334
+ 1. **Email, IP, domain spam activity list entries check.** The plugin uses spam activity database online at cleantalk.org, consisting of more than 20 billion spam activity records of IPs, Emails, Domains and ASN. If the sender's IP or Email is in the database, the sender gets some spam scores. To reduce false/positive rate the plugin not only uses the blacklist test to ban spammers, the sender will be banned when and only when multiple spam tests have been failed.
335
+ 1. **Comment submit time.** Spam bots usually submit the info immediately after the page has been loaded, this happens because spam bots don't actually fill the web form, they just send $_POST data to the blog. The normal visitor sends the data after several seconds or minutes.
336
+
337
+ = Will the anti-spam plugin protect my theme? =
338
+ Yes, it will. The Anti-spam by CleanTalk is compatible with any WordPress theme.
339
+
340
+ = What about pingback, trackback spam? =
341
+ The plugin passes pingbacks without any checks by default. All trackbacks will be blocked if the sender had spam activity.
342
+
343
+ = Can I use CleanTalk with Akismet? =
344
+ Sure, you can use CleanTalk with Akismet. In this case you will probably have higher false/positive rate (when legitimate comments/signups are being denied), but you will have stronger anti-spam protection on your website.
345
+
346
+ = Is CleanTalk better than Akismet? =
347
+ Please look at this features comparison here https://cleantalk.org/cleantalk-vs-akismet
348
+
349
+ = Can I use CleanTalk to remove pending spam comments? =
350
+ Yes, you can. The plugin has the option to test all pending comments via database of <a href="https://cleantalk.org/blacklists">spam active IP/Email</a>, found spam comments will be moved to Trash folder.
351
+
352
+ = How does the plugin find spam in pending comments or registered accounts? =
353
+ The plugin checks all non-spam comments in the blacklist database and shows you those senders who have spam activity on other websites.
354
+ There are some differences between blacklist database and API to protect you from spam bot registrations/comments online. Blacklists show all history of spam activity, but our API (which is used in spam tests) relies on other parameters too: last day of activity, number of spam attacks during the last days etc. These mechanisms help us to reduce the number of false outcomes. So, there is nothing strange, if some emails/IPs are not found by bulk comments/accounts test.
355
+
356
+ To check comments please go here:
357
+ > WordPress console -> Comments -> Find spam comments
358
+
359
+ To check users please go here:
360
+ > WordPress console -> Users -> Find spam users
361
+
362
+ = Should I use other anti-spam tools (Captcha, reCaptcha and etc.)? =
363
+ CleanTalk stops up to 99.998% of spam bots, so you can disable other anti-spam plugins (especially CAPTCHA-type anti-spam plugins). In some cases several anti-spam plugins could conflict with each other, so it would be better to use just one plugin.
364
+
365
+ = Is the plugin compatible with WordPress MultiUser (WPMU or WordPress network)? =
366
+ Yes, the plugin is compatible with WordPress MultiUser. Each blog in multisite environment has individual anti-spam options for the protection from spam bots.
367
+
368
+ = After the installation I noticed that the number of spam attacks has been increased in the stats =
369
+ There are a few reasons for this:
370
+
371
+ * With the indexing of your web-site by the search systems, appearance of external links and better search results position, your web-site attracts more and more spambots.
372
+ * Non-transparent protection systems like CAPTCHA or question/answer, that don't have spam attacks stats, don't let you see the whole picture, or the picture is incomplete.
373
+ * Counting methods for spam attacks and spam bots are different for different systems, thus the diversity appears. We seek to provide detailed stats.
374
+
375
+ = Why my dummy "spam" comment passed to the WordPress? =
376
+ The plugin has several options to detect spam bots and humans. If you just post spammy text like this:
377
+
378
+ "I want to sell something", "Buy something here.." and etc
379
+
380
+ the comments will be passed, because the plugin detects sender as a human. So, use special email *stop_email@example.com* to test the anti-spam functionality or wait a few days to see how the plugin works.
381
+
382
+ = Is it free or paid? =
383
+ The plugin is free. But the plugin uses CleanTalk cloud service to filter spam bots. You have to register an account and then you will receive a free trial to test anti-spam for comments, registrations, bookings, contacts or orders. When the trial (on CleanTalk account) is finished, you can renew the subscription for 1 year or deactivate anti-spam plugin.
384
+
385
+ = Can I use CleanTalk with cache plugins? =
386
+ Anti-spam by CleanTalk doesn't use static HTML code in its templates, so all anti-spam functions work correctly with any WordPress cache plugins.
387
+
388
+ = Does the plugin protect from spam bots if I use forms with third-party services? =
389
+ Yes, it does. Plugin protects web-forms on your websites which send data to third-party servers (like MailChimp). To enable this protection set the option 'Protect external forms' in the plugin settings.
390
+
391
+ = Does CleanTalk compatible with Cloudflare? =
392
+ CleanTalk is fully compatible with CloudFlare. Service doesn't filter CloudFlares IP's (AS13335) through blacklists database, so in this case plugin/service filters spam bots using other anti-spam tests.
393
+
394
+ = Is CleanTalk compatible with a content delivery network (CDN)? =
395
+ Yes, it is. CleanTalk works with any CDN system, i.e. CloudFlare, MaxCDN, Akamai.
396
+
397
+ = Can I use CleanTalk functionality in my plugins? =
398
+ Yes, you can. Just use following snippet:
399
+
400
+ <?php
401
+ if(!function_exists('ct_test_message')){
402
+ include_once( ABSPATH . '/wp-content/plugins/cleantalk-spam-protect/cleantalk.php' );
403
+ }
404
+ //for registration test:
405
+ $res=ct_test_registration("nickname", "stop_email@example.com", "127.0.0.1");
406
+ //or for some other messages (contact forms, comments etc.)
407
+ $res=ct_test_message("nickname", "stop_email@example.com", "127.0.0.1", "test message");
408
+
409
+
410
+ $res now contents array with two parameters:
411
+ * $res['allow'] - is request allowed (1) or not (0)
412
+ * $res['comment'] - comment for our server's decision.
413
+
414
+ = I see two loads of script cleantalk_nocache.js. Why do you use it twice? =
415
+ This script is used for AJAX JavaScript checking. Different themes use different mechanisms of loading, so we use two methods for loading our script. If you absolutely know what you are doing, you can switch one of the methods off by defining constants in your wp-config.php file:
416
+
417
+ define('CLEANTALK_AJAX_USE_BUFFER', false); //false - don't use output buffering to include AJAX script, true - use it
418
+
419
+ or
420
+
421
+ define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
422
+
423
+ = Can I add exclusions for some pages of my site? =
424
+ Yes, you can. Add this string in your wp-config.php file before defining database constants:
425
+
426
+ $cleantalk_url_exclusions = array('url1', 'url2', 'url3');
427
+
428
+ Now, all pages containing strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will not be applied in registration and comment checking - they are always protected from spam. This is similar to regular expression /.*url1.*/ or wildcard like *url1*.
429
+
430
+ For example: If you need to except these URLs:
431
+ example.com/some/thing
432
+ example.com/some/one
433
+ example.com/some/body
434
+ You should type this in wp-config.php:
435
+
436
+ $cleantalk_url_exclusions = array('some');
437
+
438
+ = Can I not send my personal data to CleanTalk servers? =
439
+ Yes, you can exclude your data. Add this string in your wp-config.php file before defining database constants:
440
+
441
+ $cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
442
+
443
+ Now all fields in your submissions with the keys named 'key1', 'key2' or 'key3' will be excluded from spam checking.
444
+
445
+ = How to test Spam FireWall? =
446
+ Use special IP 10.10.10.10 in URL to test Spam FireWall. For example,
447
+
448
+ https://cleantalk.org/blog/?sfw_test_ip=10.10.10.10
449
+
450
+ Attention! The incognito mode should be enabled in your browser when you do a test. To enable incognito mode press Ctrl+Shift+N for Chrome, Opera и Safari browsers; press Ctrl+Shift+P for Firefox, Internet Explorer and Microsoft Edge. A full guide to enable Incognito mode is here: https://www.wikihow.com/Activate-Incognito-Mode
451
+
452
+ = How can I enter access key in WPMU version? =
453
+ To set up global CleanTalk access key for all websites in WPMU, define constant in your wp-config.php file before defining database constants:
454
+
455
+ define('CLEANTALK_ACCESS_KEY', 'place your key here');
456
+
457
+ Now, all subsites will have this access key.
458
+
459
+ = Why is CleanTalk faster and more reliable than stand-alone solutions? =
460
+ All anti-spam checks are held in the cloud and don't overload the web server. The cloud solutions have a huge advantage since the parameters are being compared with information from more than 100,000 websites.
461
+
462
+ = I see a lot of blocked messages with the reason "Forbidden. Please enable JavaScript. Spam sender name." in my logs =
463
+ A lot of spam bots can't perform JavaScript code, so it is one of the important checks and most of the spam bots will be blocked with the reason **"Forbidden. Please enable JavaScript. Spam sender name."** All browsers can perform JS code, so real visitors won't be blocked.
464
+
465
+ If you or some of your visitors have the error **"Forbidden. Enable JavaScript."** please check JavaScript support in your browser and do this JavaScript test at this page: https://cleantalk.org/checkout-javascript-support.
466
+
467
+ If you think that there is something wrong in the messages blocking, let us know about it. Please submit a support request here: https://cleantalk.org/my/support.
468
+
469
+ = Does the plugin work with Varnish? =
470
+ CleanTalk works with Varnish, it protects WordPress against spam, but by default the plugin generates a few cookies for the protection from spam bots and it also disables Varnish cache on pages where CleanTalk's cookies have been stored. To get rid of the issue with cache turn off the option 'Set cookies' in the plugin settings.
471
+
472
+ WordPress console -> Settings -> CleanTalk -> Advanced settings
473
+
474
+ Now the plugin will protect WordPress comments, registrations and most of popular contact forms, but will not protect some of rarely used contact forms.
475
+
476
+ = Does the anti-spam plugin work with Accelerated Mobile Pages (AMP)? =
477
+ Yes, it does. But you have to turn off the option 'Use AJAX for JavaScript check' in Advanced settigns of the plugin to be fully compatible with Accelerated Mobile Pages.
478
+
479
+ = How to close renewal or trial notice in the WordPress backend? =
480
+ To close the notice please save the plugin settings again or it will be closed automatically within 60 minutes after the renewal.
481
+
482
+ = I'm using PHP 4.2 version and i'm getting errors related with JSON. Why does it happens? =
483
+ СleanTalk is no longer supports PHP lower than 5.2 version because the support code have incompatibility with PHP 7 version. Please, upgrade your PHP. If you couldn't perform that, let us know about it via support ticket here: https://cleantalk.org/my/support.
484
+
485
+ = Should I change anything in the plugin's settings or in my CleanTalk Control Panel when I switch my website from HTTP to HTTPS or vice versa? =
486
+ No. You don't need to change anything in the plugin's settings or in your CleanTalk Control Panel. The plugin will work regardless of the protocol.
487
+
488
+ = How to use Anti-Spam Log? =
489
+ The following possibilities are available for you in the Anti-Spam Log:
490
+
491
+ - Time period for all spam records you want to see.
492
+
493
+ - Filter spam records by their status: Any status, Denied, Approved.
494
+
495
+ - Filter spam records by your websites.
496
+
497
+ - Filter spam records by country they came from.
498
+
499
+ - Filter spam records by IP address, e-mail address or username.
500
+
501
+ - Available options for a specific record:
502
+
503
+ * Details - see item 4 below.
504
+ * Spam/Not Spam - press this string if our system made wrong decision and blocked or approved a registration, a comment ot a contact form submission. More about it here: https://cleantalk.org/faq#feedback_spam
505
+ * Delete - delete a record permanently.
506
+ * Personal blacklists - go to your website Black&White Lists page.
507
+ * Record details: block reason, body of the message, additional caught data.
508
+
509
+ = Spam FireWall and AntiSpam - Networks Blocking =
510
+
511
+ Anti-Spam - will blocks users from selected IP or network from using contacts/messages/registrations/comments forms.
512
+ Spam FireWall - will blocks users from selected IP or network from entering the website.
513
+
514
+ Please, read more here
515
+ https://cleantalk.org/help/sfw-blocks-networks
516
+
517
+
518
+ = Spam Comment Management =
519
+
520
+ By default, all spam comments are placed in the spam folder, now you can change the way the plugin deals with spam comments:
521
+
522
+ 1. **Move to the Spam folder.** All spam comments will be placed to the folder "Spam" in the WordPress Comments section except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
523
+
524
+ You can prevent the proliferation of Spam folder. It can be cleaned automatically using the option "Keep spam comments for 15 days." Enable this option in the settings of the plugin: WordPress Admin Page -> Settings -> Antispam by CleanTalk -> Advanced settings -> enable "Keep spam comments for 15 days" -> Save Changes.
525
+
526
+ 2. **Move to Trash.** All spam comments will be placed to the folder "Trash" in the WordPress Comments section except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
527
+
528
+ 3. **Ban comments without moving to WordPress backend.** All spam comments will be deleted permanently without going to the WordPress backend except comments with Stop-Words. Stop-Word comments will be always stored in the "Pending" folder.
529
+
530
+ What comments were blocked and banned can be seen in the Anti-Spam Log here: https://cleantalk.org/my/show_requests?int=week
531
+
532
+ To manage the actions with spam comments, go to the Control Panel, select the website you want to change the actions for and go to "Settings" under the name of the website.
533
+
534
+ Please, read more here:
535
+ https://cleantalk.org/help/spam-comment-management
536
+
537
+ = How do I report a missed spam bot or incorrect filter? =
538
+
539
+ If you think the service has missed a spam bot or improperly filtered visitor to the website, you may notify us via the Anti-spam control panel. To do this,
540
+ Log in to Control panel https://cleantalk.org/my.
541
+ Click the line "Log" under the name of your website.
542
+ When you mark a record as "SPAM", its e-mail and IP-address will be added to your personal blacklist for your website.
543
+ When you mark a record as "Not SPAM", its e-mail and IP-address will be added to your personal white list for your website.
544
+
545
+ Please, read more here
546
+ https://cleantalk.org/faq#feedback_spam
547
+
548
+ = Is the plugin fast? =
549
+ We develop plugin to do it as optimized as possible, CleanTalk doesn't downgrade response time in backend or frontend. The plugin proccess only POST requests to WordPress core, it tackes less than 1 second to return results.
550
+
551
+ = Is the plugin EU GDPR compatible? =
552
+ Yes, it is. Please read this article,
553
+ <a href="https://cleantalk.org/help/CleanTalk-GDPR-Compliance">https://cleantalk.org/help/CleanTalk-GDPR-Compliance</a>
554
+
555
+ = Check external forms =
556
+ If your website has forms that send data to external sources, you can enable option to "Protect external forms". In this case, if plugin determinates that the current message is spam, your form action will be temporary replaced to your current hostname to prevent sending false data to an external source.
557
+
558
+ == Screenshots ==
559
+ 1. AntiSpam settings are easy to use.
560
+ 2. AntiSpam plugin rejected a spam bot at the CAPTCHA less registration form. The plugin provides explanation to visitor and websites about each rejected comment/registration or contact message.
561
+ 3. Use AntiSpam analytics tool for each website in service Dashboard to have information about spam/legitimate stats.
562
+ 4. Use AntiSpam log to control anti-spam plugin.
563
+ 5. CleanTalk works faster than most of other anti-spam plugins.
564
+ 6. The Dashboard with a map of most spam active countries per your account.
565
+ 7. The plugin deletes/removes the existing spam comments and users accounts.
566
+ 8. CleanTalk's dashboard update link.
567
+ 9. Auto upadte confimation.
568
+ 10. Website's options.
569
+
570
+ == Changelog ==
571
+ = 5.128 October 17 2019 =
572
+ * Mod: Users check - functionality updated.
573
+ * Fix: Users check - dates format updated.
574
+ * Mod: Comments check - functionality updated.
575
+ * Fix: Comments check - dates format updated.
576
+ * Fix: Fields exclusion fixed.
577
+ * Fix: Notice fixed.
578
+ * Fix: Cleantalk/Antispam/API.
579
+ * Fix: Minor improvements and bug fixes.
580
+
581
+ = 5.127.4 October 13 2019 =
582
+ * Mod: Automatically decrease amount of checked users by one request if an error occurs.
583
+ * Fix: Security issue.
584
+ * Fix: Static JS key.
585
+
586
+ = 5.127.3 October 8 2019 =
587
+ * Fix: Errors during registration.
588
+
589
+ = 5.127.2 October 8 2019 =
590
+ * Integration: SeedProd Coming Soon Page Pro.
591
+ * Fix: WooCommerce double reuqests.
592
+ * Fix: Static JS key.
593
+
594
+ = 5.127.1 October 7 2019 =
595
+ * Fix: WPMS settings logic.
596
+ * Using default database storage engine for tables.
597
+
598
+ = 5.127 September 30 2019 =
599
+ * Fix: Delete redirect notice on external forms
600
+ * Fix: Storing spam for 15 days.
601
+ * Fix: correct DiVi display message.
602
+ * Integration: Ultimate Members.
603
+ * Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
604
+ * Mod: Moving White Label option to main site settings.
605
+ * New: Use static JS key if cache plugin detected.
606
+ * New: Settings for URLs, fields, roles exclusions.
607
+ * New: Regular Expressions support in URLs, fields exclusions.
608
+ * New: Send validation errors on standard registration form.
609
+ * Updater: Move exclusions from global variable to settings.
610
+ * Deprecated: IP exclusions.
611
+
612
+ = 5.126 September 9 2019 =
613
+ * Spam protection improved!
614
+ * Integration: Option wheel.
615
+ * Mod: Improved Email detection.
616
+ * Mod: Improved IP detection.
617
+ * Fix: Too large database table with alternative sessions.
618
+ * Fix: Exception for WooCommerce AJAX.
619
+ * Fix: API key validation.
620
+ * Minor fixes.
621
+
622
+ = 5.125 August 26 2019 =
623
+ * Fix: PHP Notices.
624
+ * Fix: Auto update.
625
+ * Fix: Displaying protection status for IP license.
626
+ * Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
627
+ * Fix: API key validating.
628
+ * New: Complete deactivation setting.
629
+
630
+ = 5.124.1 August 8 2019 =
631
+ * Fix: Error on PHP 5.3.
632
+
633
+ = 5.124 August 8 2019 =
634
+ * Spam protection improved.
635
+ * Fix: SpamFireWall local database counter on Multisite.
636
+ * Fix: Caldera Forms integration.
637
+ * Fix: Settings "Use AJAX for JS check" description.
638
+ * Fix: Formidable integration.
639
+ * New: External forms check now independed from JavaScript.
640
+ * New: Setting Protect external - capture buffer.
641
+ * New: QuForm integration.
642
+
643
+ = 5.123 July 25 2019 =
644
+ * Fix: Plenty of minor fixes.
645
+ * Fix: wpDiscuz integration.
646
+ * Fix: Integration with bbPress.
647
+ * Fix: New comment email notification.
648
+ * New: Follow-Up Emails integration.
649
+ * Fix: Woocommerce integration.
650
+ * Fix: Spelling.
651
+
652
+ = 5.122 July 10 2019 =
653
+ * Spam Protection improved.
654
+ * Fix: Error while checking account status.
655
+ * Fix: Conflict with Elementor Pro.
656
+ * Fix: Integration with Ninja Forms.
657
+ * Fix: Integration with Formidable.
658
+ * New: Detecting mobile devices.
659
+ * New: Integration for Easy Forms for Mailchimp.
660
+
661
+ = 5.121 June 26 2019 =
662
+ * Fix: Translation typos.
663
+ * Fix: Woocommerce integration.
664
+ * Fix: Catching admin in AJAX queries.
665
+ * Mod: Session table (cleantalk_sessions) issue.
666
+ * Mod: Spam protection improved.
667
+ * Integration: Wilcity theme custom registration validation enabled
668
+ * New: Option "Use static JS key".
669
+
670
+ = 5.120.2 June 17 2019 =
671
+ * Fix: WPForms integration.
672
+ * Fix: Translation and spelling.
673
+ * Fix: Minor PHP error
674
+
675
+ = 5.120.1 June 6 2019 =
676
+ * Mod: Description for Search form protection.
677
+ * Fix: CSS and JS attachment.
678
+ * Fix: Undefined index error.
679
+
680
+ = 5.120 June 5 2019 =
681
+ * Fix: bbPress false positives.
682
+ * Fix: SpamFireWall check condition.
683
+ * Fix: SpamFireWall block page.
684
+ * Fix: Catch admin action via search form test.
685
+ * Fix: Catch admin action (AJAX).
686
+ * Mod: Using minified version of JS and CSS.
687
+ * Mod: Date format in statistics.
688
+
689
+ = 5.119.1 May 30 2019 =
690
+ * Fix: Helper class error.
691
+
692
+ = 5.119 May 30 2019 =
693
+ * Fix: No more second request after registration.
694
+ * Fix: Activation hook.
695
+ * Fix: Alternative sessions. Clear table.
696
+ * Fix: Stop capchuring AJAX requests in admin area.
697
+ * Fix: Spelling.
698
+ * Fix: Registration cookies set.
699
+ * Mod: SFW exdtended die page when testing.
700
+ * Mod: User-agent modified.
701
+ * New: Test search queries for spam.
702
+ * New: Gathering and output statistics.
703
+
704
+ = 5.118.4 May 13 2019 =
705
+ * Fix: SFW cookie. Set correct domain for subdomains.
706
+ * Fix: SFW update.
707
+ * Fix: IP detection.
708
+ * Fix: Triggering AJAX check in backend.
709
+ * Fix: Zero submit time on few forms.
710
+
711
+ = 5.118.3 April 29 2019 =
712
+ * Fix: Spam statistics in dashboard widget.
713
+ * Fix: IP detection.
714
+ * Fix: Double check AJAX integrated forms like Ninja Forms.
715
+ * Fix: Use url exclusions for AJAX forms.
716
+
717
+ = 5.118.2 April 25 2019 =
718
+ * Mod: Spam filtration quality improved.
719
+ * Mod: Store SFW cookie for 30 days.
720
+ * Mod: Server IP added to connection report.
721
+ * Fix: spam_stat is not defined.
722
+
723
+ = 5.118.1 April 19 2019 =
724
+ * Fix: Fatal error.
725
+ * Mod: Spam protection improved on registrations.
726
+
727
+ = 5.118 April 19 2019 =
728
+ * Fix: Cookies on registration page.
729
+ * Fix: Update fix.
730
+ * Fix: Wordpress built-in API.
731
+ * Fix: WooCommerce checkout form.
732
+ * Fix: UpdraftPlus. Saving settings.
733
+ * Fix: Convert Pro saving settings.
734
+ * Fix: UTF-8 Converting.
735
+ * Fix: GDPR notice.
736
+ * Fix: cleantalk_sessions table size reduced.
737
+ * Mod: Localization.
738
+ * Mod: Performance improved.
739
+ * Mod: SpamFierWall improvments.
740
+ * Mod: IP detection improved.
741
+ * Mod: JavaScript check rewised.
742
+ * New: Setting "Use alternative mechanism for cookies".
743
+
744
+ = 5.117.1 April 5 2019 =
745
+ * Fix: GDPR notice.
746
+ * Fix: noCacheJS localization.
747
+ * Fix: Fatal error when updating.
748
+
749
+ = 5.117 March 27 2019 =
750
+ * New: Update logic runs on all pages.
751
+ * New: Integration for Ajax Contact Forms plugin.
752
+ * New: Notification for users groups about new comments.
753
+ * New: SFW die page. Show browser and page creation time.
754
+ * Fix: Huge bug in Cleantalk.php connected with servers changing.
755
+ * Fix: Check AJAX requests for logged in users.
756
+ * Fix: Deleting debug in JS.
757
+ * Fix: Validating settings before saving.
758
+
759
+ = 5.116.3 March 14 2019 =
760
+ * Fix: "Headers already sent" error.
761
+ * Fix: Images paths.
762
+ * Fix: IP detection.
763
+ * Fix: Skip lost password form check
764
+ * Fix: Skip mobile requests (push settings)
765
+ * Fix: PHP notice when detecting BuddyPress template.
766
+
767
+ = 5.116.2 March 7 2019 =
768
+ * Fix: Creating tables in MariaDB.
769
+
770
+ = 5.116.1 March 6 2019 =
771
+ * Fix: Creating tables in DB.
772
+ * Fix: PHP Warning in spam statistics widget.
773
+
774
+ = 5.116 March 6 2019 =
775
+ * Spam filtration quality improved.
776
+ * New: Storing visited URLs.
777
+ * New: Check before validation Contact Form 7, Comments, Jetpack comments.
778
+ * New: Get validation result for Contact Form 7, Comments, Jetpack comments.
779
+ * Fix: ES add subscriber.
780
+ * Fix: IP detection.
781
+
782
+ = 5.115.2 February 27 2019 =
783
+ * Fix: False positives spam detection in WP Forms and Contact Form 7.
784
+
785
+ = 5.115.1 February 16 2019 =
786
+ * Fix: SpamFireWall's false positives.
787
+
788
+ = 5.115 February 14 2019 =
789
+ * Fix: Http_only flag for backend cookies.
790
+ * Fix: Spam filtration improved.
791
+ * New: IP detection improved.
792
+ * Fix: SpamFirewall update speeded up.
793
+ * New: False positives with caching solutions decreased.
794
+ * New: Opportunity to use Wordpress HTTP API to connect with Cloud.
795
+
796
+ = 5.114 January 31 2019 =
797
+ * New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
798
+ * Fix: Formidable: Adding small JS check when adding JS_key.
799
+ * Mod: layout of settings page.
800
+ * Mod: Banner logic altered.
801
+
802
+ = 5.113.2 January 18 2019 =
803
+ * Fix: "Settings" link returns to plugin page.
804
+
805
+ = 5.113.1 January 17 2019 =
806
+ * Fix: Conflict with CityTours theme.
807
+ * Fix: Error for Wordpress lower 4.7.
808
+ * Add: Spam protection: "Validate email for existence".
809
+
810
+ = 5.113 January 16 2019 =
811
+ * Fix: Fast and Simple Contact Form.
812
+ * Fix: Settings layout.
813
+ * Fix: Error with WooCommerce Quickview.
814
+ * Fix: Bitrix24 contact form.
815
+ * Fix: Request time decreased.
816
+ * Fix: Requesting account status when activating for IP licenses.
817
+ * Add: Precise AJAX request detection.
818
+ * Spam protection improved.
819
+
820
+ = 5.112 December 21 2018 =
821
+ * Fix: Woocommerce AJAX checkout form.
822
+ * Fix: Profile Builder Pro.
823
+ * Fix: DB structure improvements for WPMS.
824
+ * Spam filtering quality improved.
825
+ * Minor fixes.
826
+
827
+ = 5.111 December 13 2018 =
828
+ * Fix: Double request in JetPack contact form.
829
+ * Fix: Email notification about spam registration.
830
+ * Fix: Links button for feedback comments.
831
+ * Fix: Mail notification about plugin error.
832
+ * Fix: Key field output.
833
+ * Minor fixes.
834
+
835
+ = 5.110 November 29 2018 =
836
+ * Integration: BuddyPress ActivityWall spam protection.
837
+ * Add: GDPR setting for shortcode.
838
+ * Add: Support different BuddyPress templates on activity wall.
839
+ * Fix: Admin/moderator checking for validate post data.
840
+
841
+ = 5.109 November 15 2018 =
842
+ * Fix: Added URL and IP exclusions to Contact Form 7.
843
+ * Fix: js error when responseText is not exists
844
+ * Fix: Sitename when getting key automatically under WPMS.
845
+ * Mod: SpamFireWall is now fully compatible with WPMS.
846
+ * Mod: Setting 'Tell others about CleanTalk' was deleted.
847
+ * Mod: Protection from spam improved.
848
+
849
+ = 5.108.1 November 8 2018 =
850
+ * Fix: Errors with integration class.
851
+
852
+ = 5.108 November 7 2018 =
853
+ * Fix: White label mode.
854
+ * Fix: SpamFireWall now can be disabled.
855
+ * Fix: Layout.
856
+ * Integration: WPForms.
857
+ * Add: Message about block for all no integrated AJAX forms.
858
+ * Add: Displaying account name near api key.
859
+
860
+ = 5.107 October 29 2018 =
861
+ * Fix: Ninja Forms integration.
862
+ * Fix: Cookie usage.
863
+ * Add: Capturing AJAX responses from non integrated forms.
864
+ * Spam protection improved.
865
+ * Minor fixes.
866
+
867
+ = 5.106 October 11 2018 =
868
+ * Spam filtration improved.
869
+ * New: White Label mode.
870
+ * Modification: Warning message about test on SpamFireWall die page.
871
+ * Integration: WP Maintenance Mode.
872
+ * Fix: S2Member.
873
+ * Fix: JavaScript attachments reconsidered.
874
+ * Fix: Admin banners layout.
875
+ * Fix: Minor layout fixes.
876
+
877
+ = 5.105 September 26 2018 =
878
+ * Integration: Now bloking spam for QAEngine questions.
879
+ * Fix: Async http__request call.
880
+ * Fix: Unnecessary get_antispam_report_breif method call.
881
+ * Layout: Hide "Do you like Cleantlak?" when key is not ok.
882
+ * Layout: Minor fixes.
883
+
884
+ = 5.104 September 18 2018 =
885
+ * Fix: Error when saving settings.
886
+ * Fix: Trying update anti spam plugin for the first installation.
887
+ * Fix: Update system.
888
+ * Fix: Errors output.
889
+ * Fix: Plugin's settings under WPMS.
890
+ * Fix: SpamFireWall update.
891
+ * Fix: The server change system repaired.
892
+ * Mod: Cron saving tasks improved.
893
+
894
+ = 5.103.1 September 14 2018 =
895
+ * Fix: Error when saving settings.
896
+ * Fix: Error when getting key automatically.
897
+
898
+ = 5.103 September 13 2018 =
899
+ * Fix: Gravity Forms response message.
900
+ * Fix: SpamFireWall redirect to 404 page.
901
+ * Major anti-spam plugin improvement.
902
+ * Recombined setting page.
903
+ * Added error notification.
904
+ * Mod: S2 Members integration.
905
+ * Mod: Improved remote calls.
906
+
907
+ = 5.102 August 29 2018 =
908
+ * Fix: Users and comments check.
909
+ * Fix: Update from 5.70 or previous versions.
910
+ * Fix: GDPR public JS-script.
911
+ * Fix: Dashboard widget JS scripts attachment.
912
+ * Fix: WooCommerce "Place order" action.
913
+ * Mod: Notification logic altered.
914
+ * Mod: Users check table now has 'Signed up' column.
915
+ * Minor fixes.
916
+
917
+ = 5.101 August 10 2018 =
918
+ * Fix: Set cookie only for non-dashboard pages.
919
+ * Fix: Dashboard widget JS error.
920
+ * Fix: JavaScript error for some environment.
921
+ * Mod: Antispam protection accelerated for some pages.
922
+
923
+ = 5.100 July 30 2018 =
924
+ * Fix: JavaScript dependencies.
925
+
926
+ = 5.99.1 July 17 2018 =
927
+ * IP detection fixed and improved.
928
+
929
+ = 5.99 July 10 2018 =
930
+ * Fix: WooCommerce false positives.
931
+ * Fix: SpamFireWall IP detection.
932
+ * Minor fixes.
933
+
934
+ = 5.98 June 27 2018 =
935
+ * Fix: WooCommerce: Theme exclusion.
936
+ * Fix: Public GDPR JS code.
937
+ * Minor fixes.
938
+
939
+ = 5.97 June 7 2018 =
940
+ * Fix: Update system.
941
+ * Fix: Feedback from public page (admin only).
942
+ * Fix: Users and comment check: API error.
943
+ * Fix: Too many negative reports. (Too big ct_data option)
944
+ * Fix: SpamFireWall: Infinite redirection on the blocking page.
945
+ * Minor fixes.
946
+
947
+ = 5.96 May 22 2018 =
948
+ * Fix: Update system.
949
+ * Mod: Reset all counters button in admin bar.
950
+ * Mod: GDPR compliance.
951
+ * Minor fixes.
952
+
953
+ = 5.95.1 May 3 2018 =
954
+ * Fix: "Get key automatically" button display logic.
955
+ * Fix: PHP notices.
956
+
957
+ = 5.95 May 2 2018 =
958
+ * Spam filtration improved.
959
+ * Fix: Public widget layout.
960
+ * Fix: Connection reports output.
961
+ * Minor fixes.
962
+
963
+ = 5.94 April 23 2018 =
964
+ * Mod: Async load option for JS.
965
+ * Mod: JS scripts loading is conditional.
966
+ * Fix: IP detection.
967
+ * Fix: IP detection.
968
+ * Fix: Javascript error.
969
+
970
+ = 5.93.1 April 9 2018 =
971
+ * Fix: Fatal error on PHP 5.5 or lower.
972
+
973
+ = 5.93 April 9 2018 =
974
+ * Fix: Spam FireWall IP detection.
975
+ * Fix: Contact Form 7. False positives.
976
+ * Mod: Autoupdate function improved.
977
+ * Minor fixes.
978
+
979
+ = 5.92.2 March 23 2018 =
980
+ * Fix: Error if cURL extension is disabled.
981
+
982
+ = 5.92.1 March 23 2018 =
983
+ * Fix: Spelling
984
+ * Fix: Fatal error if cURL extension is disabled.
985
+
986
+ = 5.92 March 22 2018 =
987
+ * IP detection improved.
988
+ * Fix: SSL connection.
989
+ * Fix: False positives spam detection in Contact Form 7.
990
+ * Minor fixes.
991
+
992
+ = 5.91 March 15 2018 =
993
+ * Fix: Errors for PHP compiled without XML support.
994
+ * Fix: Spelling and translation.
995
+ * Stability increased.
996
+ * Minor fixes.
997
+
998
+ = 5.90 March 7 2018 =
999
+ * Improvement: Better IP recognition in Spam FireWall.
1000
+ * Fix: Gravity Froms blocking message.
1001
+ * Security improvments.
1002
+ * Minor fixes.
1003
+
1004
+ = 5.89 February 21 2018 =
1005
+ * Improved spam filtration quality.
1006
+ * Improved compatibility.
1007
+ * Public widget: Styles and referral link added.
1008
+ * Dashboard widget: revised and fixed.
1009
+ * Minor fixes.
1010
+
1011
+ = 5.88 February 12 2018 =
1012
+ * Integration: ConvertPro.
1013
+ * Improvement: Search for visitor's names in request.
1014
+ * Fix: Contact Form 7 message recognition.
1015
+ * Preparation for the remote plugin update.
1016
+ * Minor fixes.
1017
+
1018
+ = 5.87 February 2 2018 =
1019
+ * Filtration quality improved.
1020
+ * Fix: WP Foto Vote downloading images.
1021
+ * Fix: Fatal error for unsupported PHP 5.2.
1022
+ * Fix: Formidable Forms improved spam filtration.
1023
+
1024
+ = 5.86 January 25 2018 =
1025
+ * Fix: High CPU load with wp-ajax.php.
1026
+ * Fix: Mailpoet: Newsletter.
1027
+ * Fix: Gravity: Forms standardization for input fields.
1028
+ * Fix: ajax hook checks data for contact form.
1029
+ * Fix: UTF8 character in requests.
1030
+
1031
+ = 5.85 January 11 2018 =
1032
+ * Fix: Fast Secure contact form spam block message.
1033
+ * Fix: IP license status.
1034
+ * Layout: Dashboard widget description altered.
1035
+
1036
+ = 5.84 December 26 2017 =
1037
+ * Integration: PeepSo contact form
1038
+ * Repared: Feedback from comments page.
1039
+ * Fix: mb_* functions used only if exists.
1040
+ * Fix: Gravity forms: Multi-page form logic repared.
1041
+ * Fix: Gravity forms: AJAX form logic repared.
1042
+ * Minor fixes.
1043
+
1044
+ = 5.83.2 December 19 2017 =
1045
+ * Fix: Error in base class.
1046
+
1047
+ = 5.83.1 December 19 2017 =
1048
+ * Fix: CDN IP detection.
1049
+
1050
+ = 5.83 December 19 2017 =
1051
+ * Improving: Stability and compatibility.
1052
+ * Improving: Spam protection.
1053
+ * Fix: Comments logic filtration.
1054
+ * Fix: Admin bar counter.
1055
+ * Minor errors fixes.
1056
+
1057
+ = 5.82.1 December 7 2017 =
1058
+ * Fixed minor error with attaching JS and CSS files.
1059
+
1060
+ = 5.82 December 4 2017 =
1061
+ * Plugin doesn't use PHP sessions anymore.
1062
+ * Bug fixes.
1063
+ * Improved update logic.
1064
+
1065
+ = 5.81 November 22 2017 =
1066
+ * Fixed error with "Show/Hide key" button.
1067
+ * Slightly improved spam protection for all forms.
1068
+ * Small errors fixes.
1069
+
1070
+ = 5.80 November 3 2017 =
1071
+ * Spam protection improved.
1072
+ * Improved filtration quality for WooCommerce checkout.
1073
+ * Minor fixes for Spam FireWall.
1074
+
1075
+ = 5.79 October 26 2017 =
1076
+ * Spam protection improved.
1077
+ * Fixed issue with existing spam comments check.
1078
+ * Added posibility to exclude IP from check.
1079
+ * Minor fixes.
1080
+
1081
+ = 5.78 October 16 2017 =
1082
+ * Improved compatibility with themes. Changed core functions prefix.
1083
+ * Fixed issue with WooCommerce checkout.
1084
+ * Spam protection improved.
1085
+ * Minor fixes.
1086
+
1087
+ = 5.77 October 2 2017 =
1088
+ * Connection report's system.
1089
+ * Integration for CouponXXL Theme.
1090
+ * Fixed issue with mb_* functions.
1091
+ * Banners logic updated.
1092
+
1093
+ = 5.76 September 20 2017 =
1094
+ * Fixed issue with Spam FireWall and caching plugins.
1095
+ * Banners logic updated.
1096
+
1097
+ = 5.75 September 15 2017 =
1098
+ * Pause feature for users/comments spam check.
1099
+ * Improved protection from spam.
1100
+ * Small fixes.
1101
+
1102
+ = 5.74.2 September 2 2017 =
1103
+ * Fix for users spam check for PHP 5.3 and lower.
1104
+
1105
+ = 5.74.1 September 2 2017 =
1106
+ * Fix for the update system and cloud communication.
1107
+ * Added possibility to check users and comments for spam with a specific date range.
1108
+
1109
+ = 5.74 August 31 2017 =
1110
+ * Users and comments spam check: Two check types (fast and accurate).
1111
+ * Fix for WooCommerce checkout test.
1112
+ * Minor fixes.
1113
+
1114
+ = 5.73 August 11 2017 =
1115
+ * Fix for spam check for already existed users and comments.
1116
+ * Spam FireWall updated.
1117
+ * Layout fix for BT Comments.
1118
+ * Minor fixes.
1119
+
1120
+ = 5.72 July 27 2017 =
1121
+ * Improved spam check for existed users and comments.
1122
+ * Minor fixes.
1123
+
1124
+ = 5.71 July 20 2017 =
1125
+ * Improved spam protection for external forms.
1126
+ * Optimization.
1127
+ * Minor fixes.
1128
+
1129
+ = 5.70.2 July 17 2017 =
1130
+ * Fix for Spam FireWall for Multisite.
1131
+
1132
+ = 5.70.1 July 17 2017 =
1133
+ * Fix for Spam FireWall.
1134
+ * Spam detection improved.
1135
+
1136
+ = 5.70 July 13 2017 =
1137
+ * New updater logic.
1138
+ * Self cron system.
1139
+ * Improved AMP compatibility.
1140
+ * Optimization.
1141
+ * Fixed users and comments spam check.
1142
+ * Fixed layout for Comment's feedback from public page.
1143
+ * Updated Spam FireWall.
1144
+ * SFW: Spam FireWall counter now work in real-time.
1145
+ * SFW: Improved compatibility with different Data Bases.
1146
+
1147
+ = 5.69 July 3 2017 =
1148
+ * Reviewer - integration.
1149
+ * Optimization for Users and Comments check for big databases.
1150
+ * Errors fixes.
1151
+ * Improved protection from spam.
1152
+
1153
+ = 5.68 June 22 2017 =
1154
+ * Contact Form for WordPress - Ultimate Form Builder Lite - integration.
1155
+ * Contact Bank - Contact Forms Builder - integration.
1156
+ * Smart Forms - integration.
1157
+ * cformsII - integration.
1158
+ * Contact Form by Web-Settler - integration.
1159
+ * Error fixes.
1160
+
1161
+ = 5.67.3 June 9 2017 =
1162
+ * Fixed JS attachment error.
1163
+
1164
+ = 5.67.2 June 5 2017 =
1165
+ * Fixed error with IP determination.
1166
+
1167
+ = 5.67.1 June 4 2017 =
1168
+ * Fixed JS error in 5.67 version.
1169
+ * Integrations: Enfold theme, Convertplug.
1170
+ * Links to check for Emails/IP for spam.
1171
+ * Control comments and feedback about them from public post's page.
1172
+ * Improved connection stability with cloud service.
1173
+ * Spam protection improved.
1174
+ * Other small fixes.
1175
+
1176
+ = 5.67 June 1 2017 =
1177
+ * Integrations: Enfold theme, Convertplug.
1178
+ * Links to check for Emails/IP for spam.
1179
+ * Control comments and feedback about them from public post's page.
1180
+ * Improved connection stability with cloud service.
1181
+ * Spam protection improved.
1182
+ * Other small fixes.
1183
+
1184
+ = 5.66 May 23 2017 =
1185
+ * Spam protection improved.
1186
+ * Major fixes for users and comments spam check.
1187
+ * Added feedback from Wordpress comments list.
1188
+ * Fix for "internal forms check" option.
1189
+ * Fixed issue with caching Spam FireWall die page.
1190
+ * Other small fixes.
1191
+
1192
+ = 5.65 May 16 2017 =
1193
+ * Fix for PayPal redirecton.
1194
+ * Fixed issue with empty query for bulk comments test.
1195
+ * Added protection for Enfold contact form.
1196
+ * Ninja forms integration.
1197
+
1198
+ = 5.64 April 26 2017 =
1199
+ * Integration for Facebook registrations.
1200
+ * Small fixes for WPMS.
1201
+ * Fix for Activecampaign service.
1202
+ * Fix for check spam users.
1203
+ * Fixed rare notice Notice: Undefined index: REQUEST_URI
1204
+
1205
+ = 5.63 April 20 2017 =
1206
+ * Fix for the dashboard spam stat widget.
1207
+ * Added translation posibility for all text.
1208
+
1209
+ = 5.62 April 17 2017 =
1210
+ * Fix for the dashboard spam statistics widget.
1211
+ * Fix for users spam check.
1212
+ * Small appearance changes.
1213
+
1214
+ = 5.61 April 6 2017 =
1215
+ * Improved filtration.
1216
+ * Additional logic for the form recognizing.
1217
+ * Integration: Divi Theme Contact Form.
1218
+ * Fix: Gravity Forms multipages forms.
1219
+ * Stat Widget: Minor fixes.
1220
+ * Added possibility to download results of the users check in CSV format.
1221
+ * Alteration for settings page (footer).
1222
+
1223
+ = 5.60.1 March 29 2017 =
1224
+ * Fixed error function 'locale_get_display_region' no exists.
1225
+
1226
+ = 5.60 March 29 2017 =
1227
+ * Added main dashboard widget with spam sctivity stats.
1228
+ * Mailster - integration.
1229
+ * Base class updated.
1230
+
1231
+ = 5.59 March 24 2017 =
1232
+ * Users/comments check fix.
1233
+ * Plugin's name changed to Anti-Spam by CleanTalk.
1234
+ * Trial banner is dismissable. Disapear for 24h or till logout.
1235
+ * Settings modified (Auto testing failed warning).
1236
+ * Mailing(inactive key) interval increased to 6 hours.
1237
+
1238
+ = 5.58.6 March 16 2017 =
1239
+ * Fix for Ninja forms (protection updated).
1240
+ * Fix for QA Theme.
1241
+ * Fix for RSVP form.
1242
+ * Setting changes (Spam FireWall).
1243
+ * Improved debug section.
1244
+ * Improved gathering data function.
1245
+ * Minor fixes.
1246
+
1247
+ = 5.58.5 March 6 2017 =
1248
+ * Minor backend fix.
1249
+
1250
+ = 5.58.4 March 6 2017 =
1251
+ * Users check fix (redirect after the check).
1252
+ * Fixed PHP Notice "HTTP_REFERER" is unset.
1253
+ * Updated Notice logic.
1254
+
1255
+ = 5.58.3 February 28 2017 =
1256
+ * Bitrix24 Contact form integration.
1257
+ * Users/comments check fix.
1258
+ * Spam sorting updated.
1259
+ * Banner showing logic.
1260
+
1261
+ = 5.58.2 February 17 2017 =
1262
+ * Cron fix for daily report.
1263
+
1264
+ = 5.58.1 February 16 2017 =
1265
+ * Minor fixes.
1266
+
1267
+ = 5.58 February 15 2017 =
1268
+ * Work without access key
1269
+ * Bitrix24 contact integration
1270
+ * Issues fixes
1271
+
1272
+ = 5.57.1 February 8 2017 =
1273
+ * Fix for notice logic.
1274
+
1275
+ = 5.57 February 8 2017 =
1276
+ * Setting page changes.
1277
+ * Bug fixes for WooCommerce.
1278
+ * Spam FireWall filters only GET requests.
1279
+ * Optimization.
1280
+ * Minor and major fixes.
1281
+
1282
+ = 5.56.1 January 25 2017 =
1283
+ * Minor fixes
1284
+
1285
+ = 5.56 January 19 2017 =
1286
+ * Integrations: MailChimp Premium, Profile Press.
1287
+ * Changes comments flow.
1288
+ * FireWall updater fix.
1289
+ * Users check optimization.
1290
+
1291
+ = 5.55 December 23 2016 =
1292
+ * Integrations: Caldera Forms, Visual Form Builder.
1293
+ * Fix for different 'cookies' header names.
1294
+ * Fixed user deletion.
1295
+
1296
+ = 5.54 December 12 2016 =
1297
+ * Integrations: AmoForms, Contact Form Clean and Simple.
1298
+ * Comments check logic refreshed.
1299
+ * Registration JS error fix.
1300
+ * Users check fix.
1301
+ * Fix for translation system.
1302
+ * Minor fixes.
1303
+
1304
+ = 5.53.1 December 9 2016 =
1305
+ * Minor layout fixes.
1306
+
1307
+ = 5.53 November 28 2016 =
1308
+ * Addition warning before deleting users.
1309
+ * Spam FireWall is enabled by default.
1310
+ * Usernoise modal feedback / contact form : integration.
1311
+ * Translations.
1312
+ * Optimization.
1313
+ * Fixes.
1314
+
1315
+ = 5.52.1 November 14 2016 =
1316
+ * Users and comments check: Using new API method.
1317
+ * Quick Contact From: Integration via "Custom Contact Forms" setting.
1318
+ * JavaScript filtration improved.
1319
+ * Translation changes.
1320
+ * Optimized JavaScript code.
1321
+
1322
+ = 5.51 November 2 2016 =
1323
+ * Added protection for internal forms
1324
+ * Immediate spam check for comments and users from WP dashboard
1325
+ * Optimized code
1326
+
1327
+ = 5.50.1 October 24 2016 =
1328
+ * Improved filtration in contact forms.
1329
+ * Spam FireWall: Fixed issue with SFW logs
1330
+ * Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
1331
+
1332
+ = 5.50 October 20 2016 =
1333
+ * Custom contact forms: integration.
1334
+ * Pirate Forms: integration.
1335
+ * PHP 7 compatibility: Deleted third-party JSON library and dependences.
1336
+ * PHP 7 compatibility: Fixed end of lines.
1337
+ * YOAST Seo: Fixed PHP warnings.
1338
+ * Spam FireWall: Minor fix for Spam FireWall counter.
1339
+ * Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
1340
+ * Improved filtration in contact forms.
1341
+
1342
+ = 5.49.2 October 5 2016 =
1343
+ * Second Fix for database error. Stable version.
1344
+
1345
+ = 5.49.1 October 5 2016 =
1346
+ * Fixed database error.
1347
+
1348
+ = 5.49 October 3 2016 =
1349
+ * Spam FireWall feature: Class upgraded.
1350
+ * New feature: Delete links from approved comments.
1351
+ * Settings: Grouped.
1352
+ * Settings: Altered description fixed spelling mistakes.
1353
+ * Settings: Added indicator for Spam FireWall.
1354
+ * Admin bar: Added Spam FireWall counter
1355
+ * Clean and Simple Contact Form: Direct integration.
1356
+ * WooCommerce: Don't check password recovery form.
1357
+ * WooCommerce Wishlists: Issue with check for Google bots.
1358
+ * JetPack: contact form fix.
1359
+ * Fixed and created the defaults for all CleanTalk options.
1360
+ * Fixed spelling mistakes.
1361
+
1362
+ = 5.48 September 15 2016 =
1363
+ * buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
1364
+ * buddyPress: Added option in settings for private messages check.
1365
+ * WooCommerce Wishlist: Added check for wishlists.
1366
+ * Fixed issue with "check all post data" option.
1367
+ * Improved filtering for Gravity Forms
1368
+ * Mobile Assistant Connector fix
1369
+ * Minor fixes.
1370
+
1371
+ = 5.47 September 5 2016 =
1372
+ * WooCommerce: direct integration for checkout form.
1373
+ * WooCommerce Sensei: login form fix.
1374
+ * bbPress: Added the check for topics and comments with stop_words
1375
+ * bbPress: Skip check for admin in comments and topics
1376
+ * UserPro: fixes. Request without field "shortcode"
1377
+ * Contact Form 7: Bug fix.
1378
+ * Spam FireWall: Optimized logs rotation.
1379
+ * Updated inner functions (compatibility fix for PHP 5.4+)
1380
+ * Fixed output of counters (without spamfirewall stats)
1381
+ * Fixed spelling in settings
1382
+ * Added "Delete from the list" button in comments spam check page
1383
+ * Minor fixes.
1384
+
1385
+ = 5.46 August 17 2016 =
1386
+ * Fixed issue with admin bar links in WP Multi Network mode.
1387
+ * Added "All time counter" and "Daily counter" into admin bar.
1388
+ * Added settings to disable counters in admin bar.
1389
+ * New style for "Get access key manually" button.
1390
+
1391
+ = 5.45.2 August 4 2016 =
1392
+ * Added Anti-Spam protection for Quick Event Manager.
1393
+ * Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more than 30 days ago.
1394
+ * Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
1395
+ * Minor fix function to get the API key.
1396
+
1397
+ = 5.45.1 July 26 2016 =
1398
+ * Fixed issue with missed spam messages, subscriptions.
1399
+ * Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more than 30 days ago.
1400
+
1401
+ = 5.45 July 21 2016 =
1402
+ * Optimized bulk spam comments deletion.
1403
+ * Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
1404
+ * Added links to bulk spam comments&users removal tool.
1405
+
1406
+ = 5.44.1 July 13 2016 =
1407
+ * Optimized options getting code.
1408
+ * Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
1409
+
1410
+ = 5.43.2 June 30 2016 =
1411
+ * Optimized anti-spam code for AJAX based contact forms.
1412
+ * Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
1413
+
1414
+ = 5.43.1 June 23 2016 =
1415
+ * Added agent version in requests to test a connection between the website and servers.
1416
+ * Fixed issue with PHP notices in cleantalk-admin.php.
1417
+
1418
+ = 5.43 June 22 2016 =
1419
+ * Added spam protection for registrations via 'Login with AJAX' plug-in.
1420
+ * Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
1421
+ * Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
1422
+ * Fixed issue with spam protection for nested forms by Formidable plug-in.
1423
+
1424
+ = 5.42 2016-06-15 =
1425
+ * Added anti-spam protection for UserPro.
1426
+ * Improved protection for Formidable forms + Varnish.
1427
+ * Improved bulk search for spam accounts.
1428
+ * Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
1429
+ * Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
1430
+ * Minor fixes in plugin backend.
1431
+
1432
+ = 5.41 2016-05-31 =
1433
+ * Added HTTP response in plugin response if an network issue was happend.
1434
+ * Optimized JavaScript anti-spam test for Formidable forms.
1435
+ * Re-stored the option to auto redirect to plugn settings after plugin activation.
1436
+ * Updated Spanish, Russian translations.
1437
+ * Fixed issue with nasted fields in Formidable forms.
1438
+
1439
+ = 5.40.3 2016-05-26 =
1440
+ * Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
1441
+ * Added JSON encoding for AJAX forms.
1442
+ * Obfuscated private data for Custom contact forms option.
1443
+ * Optimized bulk users check for spam over blacklists database.
1444
+ * Fixed issue with lost connection to servers and JavaScript anti-spam test.
1445
+ * Fixed issue with WordFence and collect_details.
1446
+
1447
+ = 5.40.2 2016-05-11 =
1448
+ * Improved account status check logic.
1449
+ * Fixed issue with double anti-spam tests for FastSecure contact forms.
1450
+ * Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occured on standart WordPress registration form and with failed JavaScript spam test.
1451
+ * Fixed issue with session_start() with PHP sessions stored in memcache.
1452
+
1453
+ = 5.40.1 2016-04-28 =
1454
+ * Fixed issue with Super Socializer.
1455
+ * Fixed issue with spam filtration for logged in users and Formidable forms.
1456
+ * Added logging of all submitted fields for FastSecure contact form.
1457
+
1458
+ = 5.40 2016-04-19 =
1459
+ * Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
1460
+ * Minor fix in plugin settings.
1461
+ * Fixed pagination for bulk users spam test.
1462
+ * Fixed issue with unknown _SESSION.
1463
+ * Fixed issue with double Spam FireWall database upload.
1464
+
1465
+ = 5.39.1 2016-04-04 =
1466
+ * Improved AJAX based anti-spam test with HTTPS backends.
1467
+ * Added fix to avoid issue with empty ct_info_flag on JavaScript side.
1468
+ * Added logic to exclude caching for Spam FireWall.
1469
+ * Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
1470
+
1471
+ = 5.38.1 2016-03-24 =
1472
+ * Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
1473
+ * Removed Spam FireWall protection on /feed page.
1474
+ * Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
1475
+ * Added reject notice for spam submissions on Gravity forms with AJAX calls.
1476
+
1477
+ = 5.37.3 2016-03-10 =
1478
+ * Fixed bug with broken MailPoet previews.
1479
+ * Fixed bug with broken Geo My WP pop-up windows.
1480
+ * Fixed issue with mb_convert_encoding() function.
1481
+ * Removed double JavaScript code in front-end.
1482
+ * Removed unused variables in anti spam logic.
1483
+ * Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms.
1484
+ * Added anti-spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
1485
+
1486
+ = 5.36.1 2016-02-05 =
1487
+ * Fixed bug, when users receive error after logging in
1488
+ * Improve anti-spam filters for contact forms.
1489
+
1490
+ = 5.36 2016-02-04 =
1491
+ * Improved JavaScript anti spam protection
1492
+ * Improvements for avoiding blocking requests from payment systems
1493
+
1494
+ = 5.35 2016-01-14 =
1495
+ * Added support for IP licensing
1496
+ * Some anti-spam protection improvements
1497
+ * Small backend interface fixes
1498
+
1499
+ = 5.34.1 2015-12-17 =
1500
+ * Fixed trackback antispam protection: improved checking mechanism
1501
+ * Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
1502
+
1503
+ = 5.34 2015-12-10 =
1504
+ * Improved spam checking mechanism
1505
+ * Added "Collect browser details" option for better antispam protection
1506
+ * Fixed custom contact forms checking for AJAX requests
1507
+ * Minor translations fixes
1508
+
1509
+ = 5.33.1 2015-12-04 =
1510
+ * Fixed issue with BBPress: restored old user permission checking mechanism
1511
+ * Fixed anti-spam comments checking: sometimes get_comments returned wrong comments number
1512
+ * Fixed bulk checking: made numeric indexes in users and comments arrays
1513
+ * Fixed trackback and pingback checking: removed exception for checking
1514
+
1515
+ = 5.33 2015-12-01 =
1516
+ * Backend interface fixes
1517
+ * Improved Spam FireWall efficiency
1518
+ * Improved performance of anti spam checking
1519
+
1520
+ = 5.32 2015-11-26 =
1521
+ * Added improvements for manual spam detection
1522
+ * Fixed errors in backend
1523
+ * Fixed bulk users anti spam checking
1524
+ * Added indicator for bulk spam checking
1525
+ * Added "Get access key automatically" button
1526
+
1527
+ = 5.31 2015-11-11 =
1528
+ * Improved backend performance
1529
+ * Fixed counter of approved/blocked spam attacks
1530
+ * Fixed Spam FireWall logging
1531
+
1532
+ = 5.30 2015-11-05 =
1533
+ * Improved anti-spam checking
1534
+ * Optimized performance
1535
+ * Fixed blocking email preview in MailPoet
1536
+ * Interface fixes
1537
+ * WPMU interface fixes
1538
+
1539
+ = 5.29 2015-10-27 =
1540
+ * Optimized performance
1541
+ * Fixed bugs in custom contact forms spam checking
1542
+
1543
+ = 5.28.7 2015-10-23 =
1544
+ * Optimized PHP sessions creation algorithm. This fix should increase plugin perfomance on hostings without retenion of PHP sessions files.
1545
+ * Removed autoredirection to plugin settings after plugin activation.
1546
+
1547
+ = 5.28 2015-10-16 =
1548
+ * Fixed errors in anti-spam checking
1549
+ * Restored options for spam checking registrations and cpmmon contact forms
1550
+ * Improved spam protection
1551
+ * Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
1552
+
1553
+ = 5.27 2015-10-13 =
1554
+ * Improvements in Spam FireWall feature
1555
+ * Code optimization
1556
+ * Backend interface fixes
1557
+
1558
+ = 5.26 2015-10-05 =
1559
+ * Added WordPress Language Pack support
1560
+ * Removed spam checking for some autorisation plugins
1561
+ * New experimental feature: Spam FireWall
1562
+
1563
+ = 5.25.2 2015-09-28 =
1564
+ * Fixed backend bug
1565
+
1566
+ = 5.25.1 2015-09-28 =
1567
+ * Added widget with anti-spam stats
1568
+ * Added information about blocked spam attacks in admin dashboard and CleanTalk settings
1569
+ * Added ability not to check comments for users with 3 or above allowed comments
1570
+ * Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
1571
+ * Some backend interface settings
1572
+
1573
+ = 5.24.1 2015-09-16 =
1574
+ * Fixed some errors in frontend
1575
+ * Fixed access key saving
1576
+
1577
+ = 5.24 2015-09-14 =
1578
+ * Backend interface fixes
1579
+ * Improvement for AJAX JavaScript spam checking
1580
+
1581
+ = 5.23 2015-09-01 =
1582
+ * Fixed BuddyPress profile search false positivities of anti-spam protection.
1583
+ * Some interface fixes of bulk users & comments spam checking
1584
+
1585
+ = 5.22 2015-08-26 =
1586
+ * Fixed possible XSS issue for anti-spam test on third-party forms.
1587
+
1588
+ = 5.21 2015-08-21 =
1589
+ * Fixed bug with skipping spam submissions
1590
+ * Fixed bug with receiving old user_token for viewing anti-spam stats
1591
+ * Small backend fixes
1592
+
1593
+ = 5.20 2015-08-15 =
1594
+ * Fixed anti-spam stats in admin bar - now stats updates every hour
1595
+ * Fixed issue with skipping spam submissions
1596
+ * Added some PHP-constants for advanced users - CLEANTALK_AJAX_USE_BUFFER and CLEANTALK_AJAX_USE_FOOTER_HEADER can be defined to true or false in wp-config.php to control method, which will be used for injection of AJAX script.
1597
+
1598
+ = 5.19 2015-08-11 =
1599
+ * New feature: anti-spam checking for registered users
1600
+ * Fixed issue with AJAX JavaScript anti-spam test.
1601
+ * Fixed issue with SEO Yoast xml sitemaps and JavaScript anti-spam test.
1602
+
1603
+ = 5.18 2015-08-04 =
1604
+ * Fixed issue with user_token
1605
+ * Added anti-spam API, see our FAQ
1606
+
1607
+ = 5.17 2015-07-23 =
1608
+ * Fixed infinite redirection after activation
1609
+ * Minor backend fixes
1610
+
1611
+ = 5.16 2015-07-22 =
1612
+ * Fixed external services checking
1613
+ * Fixed mass comments deletion
1614
+ * Fixed AJAX anti-spam protection
1615
+
1616
+ = 5.15 2015-07-16 =
1617
+ * New feature: anti-spam protection for forms, that uses external services
1618
+
1619
+ = 5.14 2015-07-03 =
1620
+ * Added anti-spam protection for some themes and plugins
1621
+ * Some backend fixes
1622
+
1623
+ = 5.13 2015-06-12 =
1624
+ * Closing notification for anti-spam renew
1625
+ * Fixed bulk anti spam comment checking
1626
+
1627
+ = 5.12 2015-06-01 =
1628
+ * Added option for checking all post data for spam
1629
+ * Some JavaScript protection improvements
1630
+ * Added option for old JavaScript check (without AJAX)
1631
+
1632
+ = 5.10 2015-05-25 =
1633
+ * Fixed Javascript error on some forms
1634
+
1635
+ = 5.9 2015-05-21 =
1636
+ * Fixed Javascript error on CF7 and JetPack
1637
+ * Some backend and frontent fixes
1638
+
1639
+ = 5.8 2015-05-18 =
1640
+ * Minor fixes
1641
+
1642
+ = 5.7 2015-05-18 =
1643
+ * Fixed French translation
1644
+ * Fixed protection algorithm
1645
+
1646
+ = 5.6 2015-05-11 =
1647
+ * Fixed translation
1648
+ * Fixed bulk comments anti-spam checking
1649
+ * Added option for disabling anti spam stats in adminbar
1650
+ * Some security fixes
1651
+
1652
+ = 5.5 2015-04-29 =
1653
+ * Fixed security issue
1654
+ * Some interface fixes
1655
+
1656
+ = 5.4 2015-04-27 =
1657
+ * Some interface and functionality changes in plugin settings page
1658
+ * Added counter for anti-spam stats in admin bar
1659
+
1660
+ = 5.3 2015-04-13 =
1661
+ * Added anti-spam protection for Divi theme contact forms
1662
+ * Added anti-spam protection for MyMail contact forms
1663
+ * Added anti-spam protection for MailPoet Newsletters
1664
+ * Some interface and functionality changes in backend
1665
+
1666
+ = 5.2 2015-04-01 =
1667
+ * Added link for anti-spam stats
1668
+ * Added WP User Frontend Pro registration form protection
1669
+
1670
+ = 5.1 2015-03-24 =
1671
+ * Fixed site crash after installing 5.0 on some websites
1672
+
1673
+ = 5.0 2015-03-24 =
1674
+ * Added bulk comments checking for spam via CleanTalk blacklists
1675
+ * Added anti-spam form protection for 'Ajax Login & Register'
1676
+ * Fixed JetPack form protection
1677
+
1678
+ = 4.24 2015-03-20 =
1679
+ * Added immediate spam protection activation.
1680
+
1681
+ = 4.22 2015-03-17 =
1682
+ * Added button for automatic spam protection key getting.
1683
+
1684
+ = 4.21 2015-03-11 =
1685
+ * Added license renew notification.
1686
+
1687
+ = 4.20 2015-03-03 =
1688
+ * Added German, Italian, Polish, Portuguese translations.
1689
+ * Minor code fixes.
1690
+
1691
+ = 4.19 2015-02-24 =
1692
+ * Increased keys lifetime for JS spam test.
1693
+
1694
+ = 4.18 2015-02-17 =
1695
+ * Fixed bug with comments approvement - moved ct_unmark_red() to cleantalk-admin.php
1696
+ * Added PayPal 'payment_status' in skip list.
1697
+ * Added Akismet 'spam' status processing.
1698
+
1699
+ = 4.17 2015-02-12 =
1700
+ * New base class.
1701
+ * Divided code to 3 separate files - common, public and admin.
1702
+
1703
+ = 4.16 2015-02-05 =
1704
+ * New base class.
1705
+ * Fixed JetPack spam filters logics.
1706
+ * Optimized Formidable, bbPress, BuddyPress spam filters.
1707
+
1708
+ = 4.15 2015-01-29 =
1709
+ * Support spam test for Contact Form 7 versions before 3.0.0.
1710
+ * Fixed global JS-vars for JS spam test.
1711
+ * Fixed online notice cookie logics.
1712
+ * Optimized spam filters for FSCF, WooCommerce, JetPack.
1713
+ * Optimized option getting.
1714
+
1715
+ = 4.14 2015-01-19 =
1716
+ * Removed deprecated option from comment approvement code.
1717
+ * New API key URL.
1718
+ * Trimmed API key in admin panel.
1719
+ * Added current options to array sended to CleanTalk servers.
1720
+ = 4.13 2014-12-29 =
1721
+ * Fixed bug with autimatically aprovement not spam comments. Now this option disabled and do not override local WordPress policy.
1722
+
1723
+ = 4.12 2014-12-29 =
1724
+ * Fixed bug with 'Wrong Access key...' notice in WordPress dashboard.
1725
+ * Fixed filtration bug in WordPress dashboard login form.
1726
+
1727
+ = 4.11 2014-12-22 =
1728
+ * Improved anti-spam protection for custom contact/registration/subscribe forms.
1729
+ * Improved anti-spam protection for comments.
1730
+ * Accelerated plugin speed for comments, regirstrations and contacts.
1731
+ * Added translation to French.
1732
+
1733
+ = 4.10 2014-12-10 =
1734
+ * Improved anti-spam protection for custom contact/registration/subscribe forms.
1735
+ * Option 'Custom contact forms' enabled by default for new setups.
1736
+ * Removed settings "Publish relevant comments", "Use encrypted (SSL) connection".
1737
+ * Added translation to Danish (thank you for Mikkel at KreativJul.dk).
1738
+
1739
+ = 4.9 2014-11-24 =
1740
+ * Fixed spam test for Contact Form 7.
1741
+
1742
+ = 4.8 2014-11-19 =
1743
+ * Improved anti-spam protection for BuddyPress registrations and custom contact forms.
1744
+
1745
+ = 4.7 2014-11-16 =
1746
+ * Fixed JavaScript spam test for FastSecure contact form.
1747
+
1748
+ = 4.6 2014-11-11 =
1749
+ * Improved anti-spam protection on BuddyPress registrations.
1750
+ * Improved anti-spam protection on contact forms.
1751
+ * Removed plugin sign from pending, spam comments. To get details about a comment please use Dashboard at cleantalk.org.
1752
+ * Improved Access key validation function.
1753
+ * Added protection for bbPress comments via stop list. Stop list function is a list to reject comments by prefiled words. To fill the list please use Dashboard at cleantalk.org.
1754
+
1755
+ = 4.5 2014-11-04 =
1756
+ * Fixed CF7 JavaScript bug.
1757
+ * Fixed rejects in bbPress guests comments.
1758
+
1759
+ = 4.4 2014-10-29 =
1760
+ * Improved anti-spam JS test for CF7.
1761
+ * Fixed 'noscript' text in FaceBook Like preview in Valenti theme.
1762
+
1763
+ = 4.2 2014-10-20 =
1764
+ * Fixed double checks issue for BuddyPress registrations.
1765
+ * Increased timeout limits to find the work server.
1766
+
1767
+ = 4.1 2014-10-13 =
1768
+ * Optimized code for manual moderation feedback sending.
1769
+ * Optimized anti-spam algorithms for comments, contacts and signups.
1770
+
1771
+ = 4.0 2014-10-06 =
1772
+ * Improved anti-spam protection for custom contact forms.
1773
+ * Improved anti-spam protection for registration forms.
1774
+
1775
+ = 3.9 2014-10-01 =
1776
+ * Did exception to do not break to create new user in WordPress backend.
1777
+
1778
+ = 3.8 2014-09-19 =
1779
+ * Fixed json_encode() + malformed characters.
1780
+ * Fixed JavaScript issue with wpautop().
1781
+
1782
+ = 3.6 2014-09-15 =
1783
+ * Fixed preg_match() issue for Formidable forms and Custom contact forms.
1784
+ * Improved anti-spam protection for Custom contact forms.
1785
+
1786
+ = 3.4 2014-09-04 =
1787
+ * We've added anti-spam for themes contact forms and any untested contact forms plugins. To use this test enable option "Custom contact forms" in plugin settings.
1788
+ * We've added auto rotation for spam comments. Now the plugin removes comments in SPAM folder older then 15 days. This option is enabled by default.
1789
+
1790
+ = 3.2 2014-08-27 =
1791
+ * Fixed submit_time() logic for failed submits (comments/registrations). Now form fill time resets after every failed submit.
1792
+
1793
+ = 3.1 2014-08-19 =
1794
+ * Added anti-spam test over senders Cookies.
1795
+ * Improved form fill anti-spam test.
1796
+ * Improved speed selection of the nearest server to website.
1797
+ * Improved anti-spam speed for comments.
1798
+ * Relevance anti-spam test disabled by default. To enable test should be used option 'relevance_test'.
1799
+
1800
+ = 2.58 2014-08-06 =
1801
+ * Added anti-spam protection for signups posted via WooCommerce order form.
1802
+ * Improved anti-spam protection for Contact Form 7.
1803
+ * Improved anti-spam protection for registrations. Now the plugin looking for JavaScript anti spam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
1804
+ * Updated PHP API. Now the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
1805
+
1806
+ = 2.57 2014-07-29 =
1807
+ * Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
1808
+ * Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
1809
+ * Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
1810
+
1811
+ = 2.56 2014-07-21 =
1812
+ * Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
1813
+
1814
+ = 2.55 2014-07-11 =
1815
+ * Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it!' on every page.
1816
+
1817
+ = 2.54 2014-07-11 =
1818
+ * Fixed signup anti-spam protection logic for BuddyPress registrations.
1819
+ * Fixed anti-spam protection for JetPack contact form.
1820
+ * Changed account status check logic.
1821
+
1822
+ = 2.53 2014-06-27 =
1823
+ * Fixed anit-spam protection bug for signups.
1824
+ * Changed anti-spam functions (comments and signups) priority.
1825
+
1826
+ = 2.52 2014-06-25 =
1827
+ * Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
1828
+
1829
+ = 2.51 2014-06-23 =
1830
+ * Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
1831
+ * Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
1832
+ * Fixed minor bug with loading backend functions.
1833
+
1834
+ = 2.49 2014-06-10 =
1835
+ * Added spam protection for S2Member Auth.net forms.
1836
+ * Added spam protection for multisite signup form.
1837
+ * Optimized account status check function.
1838
+
1839
+ = 2.46 2014-05-19 =
1840
+ * Added: HTML notice about the need to enable JavaScript.
1841
+ * Fixed: Fixed pingbacks anti-spam test.
1842
+
1843
+ = 2.44 2014-05-12 =
1844
+ * Added: Anti-spam protection for S2Member framework.
1845
+ * Improved: JavaScript anti-spam test.
1846
+ * Improved: Plugin load time for backend and frontend.
1847
+ * Fixed: PHP warning mb_convert_encoding()
1848
+
1849
+ = 2.42 2014-04-29 =
1850
+ * Fixed: JavaScript anti-spam test for comments.
1851
+
1852
+ = 2.40 2014-04-25 =
1853
+ * New: Fast Secure Contact form support.
1854
+ * New: WordPress Landing Pages support
1855
+
1856
+ = 2.38 2014-03-27 =
1857
+ * Fixed: Registraion form submit time spam test.
1858
+
1859
+ = 2.36 2014-03-12 =
1860
+ * Reversed to patches from old revisions.
1861
+
1862
+ = 2.35 2014-03-12 =
1863
+ * New: Notifications about disabled account
1864
+ * New: Improved JavaScript spam test.
1865
+ * Fixed: Code optimization
1866
+ * Fixed: JavaScript test for signups.
1867
+
1868
+ = 2.33 2014-02-12 =
1869
+ * Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
1870
+
1871
+ = 2.32 2014-02-04 =
1872
+ * New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
1873
+ * New: At WordPress console added banner for notices.
1874
+ * Changed: Screenshots updated.
1875
+
1876
+ = 2.31 2014-01-24 =
1877
+ * New: Added spam protection for JetPack comments
1878
+ * Fixed: cURL connection issue "Expect: 100-continue"
1879
+
1880
+ = 2.30 2014-01-13 =
1881
+ * Changed: Improved servers connection logic.
1882
+ * Fixed: Antispam test for Fomidable forms.
1883
+
1884
+ = 2.28 2013-12-19 =
1885
+ * New: Added protection against spam bots for WooCommerce review form.
1886
+ * Fixed: JavaScript anti-spam logic for WooCommerce review form.
1887
+
1888
+ = 2.27 2013-12-06 =
1889
+ * New: Added protection against spam bots for JetPack Contact form.
1890
+ * Fixed: JavaScript anti-spam logic for registrations and Contact form 7.
1891
+
1892
+ = 2.25 2013-11-27 =
1893
+ * New: Added protection against spam bots for BuddyPress registrations.
1894
+ * New: Added protection against spam bots for Contact form 7.
1895
+ * New: Added Spanish (es_ES) translation.
1896
+
1897
+ = 2.23 2013-11-20 =
1898
+ * New: Added automatic training blacklists on spam bot account deletion.
1899
+ * New: Added URL to project homepage at plugin options.
1900
+ * Changed: Improved anti-spam logic.
1901
+
1902
+ = 2.21 2013-11-13 =
1903
+ * Changed: WordPress blacklists settings get priority over plugin's anti-spam settings
1904
+ * Changed: Disabled management approval comments for regular commentators of the blog. Automatically approved for publication only the comments of the new blog authors.
1905
+ * Changed: Removed form submit time test. Imporved JavaScript spam test.
1906
+ * Changed: PHP code optimizations
1907
+
1908
+ = 2.19 2013-11-08 =
1909
+ * New: Antispam protection from spam bots at the registration form
1910
+ * Changed: Russian localization for admin panel
1911
+ * Changed: PHP code optimizations
1912
+
1913
+ = 2.5.18 2013-11-01 =
1914
+ * Fixed: Bug with selection of the last comments for post
1915
+ * New: Antispam protection for Formidable feedback forms
1916
+ * New: Automatic deletion of outdated spam comments
1917
+ * New: On/Off option for comments spam filtration
1918
+ * Tested with WordPress 3.7.1
1919
+
1920
+ = 2.4.15 2013-09-26 =
1921
+ * Fixed: Bug with mass comments deletion
1922
+ * Changed: Russian localization for admin panel
1923
+ * Tested with mulitsite setup (WordPress network or WPMU)
1924
+
1925
+ = 2.4.14 2013-08-29 =
1926
+ * Changed: Removed feedback requests to the servers for banned (spam) comments.
1927
+
1928
+ = 2.4.13 2013-08-19 =
1929
+ * Changed: Switched HTTP requests from file_get_contents() to CURL. Added file_get_contens() as backup connection to the servers.
1930
+ * Changed: Removed feedback requests for comments moved to trash.
1931
+ * Fixed: "Fail connect to servers..." error on hostings with disabled 'allow_url_fopen' PHP option.
1932
+
1933
+ = 2.4.12 2013-08-12 =
1934
+ * Removed RPC::XML library from plugin.
1935
+ * Switched plugin to HTTP+JSON connection with servers.
1936
+ * Fixed bug with comments anti-spam tests with non UTF8 codepage.
1937
+
1938
+ = 2.4.11 2013-08-02 =
1939
+ * Removed spam tests for self-made pingbacks
1940
+ * Tested up to WP 3.6
1941
+
1942
+ = 2.4.10 2013-07-24 =
1943
+ * Fixed warning in PHP 5.4
1944
+ * Fixed bug with disabling comments test for Administrators, Authors and Editors
1945
+ * "Stop words" settings moved to <a href="http://cleantalk.org/my">Control panel</a> of the service
1946
+ * "Response language" settings moved <a href="http://cleantalk.org/my">Control panel</a> of the service
1947
+
1948
+ = 2.4.9 =
1949
+ * Fixed extra debugging in base class
1950
+
1951
+ = 2.4.8 =
1952
+ * Enabled convertion to UTF8 for comment and example text
1953
+ * Optimized PHP code
1954
+
1955
+ = 2.3.8 =
1956
+ * Enabled selection the fastest server in the pool
1957
+ * Fixed work server in plugin's config
1958
+
1959
+ = 2.2.3 =
1960
+ * Secured md5 string for JavaScript test
1961
+ * Added requests's timestamp to calculate request work time
1962
+ * Update base CleanTalk's PHP class
1963
+
1964
+ = 2.1.2 =
1965
+ * Improved perfomance for processing large comments (over 32kb size)
1966
+ * Improved perfomance for bulk operations with comments in Comments panel
1967
+ * Added feedback request with URL to approved comment
1968
+
1969
+ = 2.0.2 =
1970
+ * Fixed bug with JavaScript test and WordPress cache plugins
1971
+
1972
+ = 2.0.1 =
1973
+ * Added option "Publicate relevant comments" to plugin's options.
1974
+ * Added descriptions to plugin options
1975
+
1976
+ = 1.5.4 =
1977
+ * Fixed HTTP_REFERER transmission to the servers
1978
+ * Improved JavaScript spam test
1979
+ * Optimized PHP code
1980
+
1981
+ = 1.4.4 =
1982
+ * Pingback, trackback comments has moved to manual moderataion
1983
+ * Added transmission to the serves comment type and URL
1984
+ * Post title, body and comments separated into individual data elements
1985
+ * Added priority for matched words in the comment with post title
1986
+ * Enabled stop words filtration as default option
1987
+
1988
+ = 1.3.4 =
1989
+ * Removed PHP debugging.
1990
+
1991
+ = 1.3.3 =
1992
+ * Added notice at admin panel about empty Access key in plugin settings
1993
+ * Removed HTTP link to the site project from post page
1994
+ * Removed unused options from settings page
1995
+ * Tested up to WordPress 3.5
1996
+
1997
+ = 1.2.3 =
1998
+ * Fixed bug with session_start.
1999
+
2000
+ = 1.2.2 =
2001
+ * Plugin rename to CleanTalk. Spam prevent plugin
2002
+ * Integration Base Class version 0.7
2003
+ * Added fast submit check
2004
+ * Added check website in form
2005
+ * Added feedbacks for change comment status (Not spam, unapprove)
2006
+ * Added function move comment in spam folder if CleanTalk say is spam
2007
+ * Disable checking for user groups Administrator, Author, Editor
2008
+ * Marked red color bad words
2009
+
2010
+ = 1.1.2 =
2011
+ * Addition: Title of the post attached to the example text in auto publication tool.
2012
+ * Tested with WordPress 3.4.1.
2013
+
2014
+ = 1.1.1 =
2015
+ * HTTP_REFERER bug fixed
2016
+
2017
+ = 1.1.1 =
2018
+ * Added user locale support, tested up to WP 3.4
2019
+
2020
+ = 1.1.0 =
2021
+ * First version
2022
+
2023
+ == Upgrade Notice ==
2024
+ = 5.127.3 October 8 2019 =
2025
+ * Fix: Errors during registration.
2026
+
2027
+ = 5.127.2 October 8 2019 =
2028
+ * Integration: SeedProd Coming Soon Page Pro.
2029
+ * Fix: WooCommerce double reuqests.
2030
+ * Fix: Static JS key.
2031
+
2032
+ = 5.127.1 October 7 2019 =
2033
+ * Fix: WPMS settings logic.
2034
+ * Using default database storage engine for tables.
2035
+
2036
+ = 5.127 September 30 2019 =
2037
+ * Fix: Delete redirect notice on external forms
2038
+ * Fix: Storing spam for 15 days.
2039
+ * Fix: correct DiVi display message.
2040
+ * Integration: Ultimate Members.
2041
+ * Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
2042
+ * Mod: Moving White Label option to main site settings.
2043
+ * New: Use static JS key if cache plugin detected.
2044
+ * New: Settings for URLs, fields, roles exclusions.
2045
+ * New: Regular Expressions support in URLs, fields exclusions.
2046
+ * New: Send validation errors on standard registration form.
2047
+ * Updater: Move exclusions from global variable to settings.
2048
+ * Deprecated: IP exclusions.
2049
+
2050
+ = 5.126 September 9 2019 =
2051
+ * Spam protection improved!
2052
+ * Integration: Option wheel.
2053
+ * Mod: Improved Email detection.
2054
+ * Mod: Improved IP detection.
2055
+ * Fix: Too large database table with alternative sessions.
2056
+ * Fix: Exception for WooCommerce AJAX.
2057
+ * Fix: API key validation.
2058
+ * Minor fixes.
2059
+
2060
+ = 5.125 August 26 2019 =
2061
+ * Fix: PHP Notices.
2062
+ * Fix: Auto update.
2063
+ * Fix: Displaying protection status for IP license.
2064
+ * Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
2065
+ * Fix: API key validating.
2066
+ * New: Complete deactivation setting.
2067
+
2068
+ = 5.124.1 August 8 2019 =
2069
+ * Fix: Error on PHP 5.3.
2070
+
2071
+ = 5.124 August 8 2019 =
2072
+ * Spam protection improved.
2073
+ * Fix: SpamFireWall local database counter on Multisite.
2074
+ * Fix: Caldera Forms integration.
2075
+ * Fix: Settings "Use AJAX for JS check" description.
2076
+ * Fix: Formidable integration.
2077
+ * New: External forms check now independed from JavaScript.
2078
+ * New: Setting Protect external - capture buffer.
2079
+ * New: QuForm integration.
2080
+
2081
+ = 5.123 July 25 2019 =
2082
+ * Fix: Plenty of minor fixes.
2083
+ * Fix: wpDiscuz integration.
2084
+ * Fix: Integration with bbPress.
2085
+ * Fix: New comment email notification.
2086
+ * New: Follow-Up Emails integration.
2087
+ * Fix: Woocommerce integration.
2088
+ * Fix: Spelling.
2089
+
2090
+ = 5.122 July 10 2019 =
2091
+ * Spam Protection improved.
2092
+ * Fix: Error while checking account status.
2093
+ * Fix: Conflict with Elementor Pro.
2094
+ * Fix: Integration with Ninja Forms.
2095
+ * Fix: Integration with Formidable.
2096
+ * New: Detecting mobile devices.
2097
+ * New: Integration for Easy Forms for Mailchimp.
2098
+
2099
+ = 5.121 June 26 2019 =
2100
+ * Fix: Translation typos.
2101
+ * Fix: Woocommerce integration.
2102
+ * Fix: Catching admin in AJAX queries.
2103
+ * Mod: Session table (cleantalk_sessions) issue.
2104
+ * Mod: Spam protection improved.
2105
+ * Integration: Wilcity theme custom registration validation enabled
2106
+ * New: Option "Use static JS key".
2107
+
2108
+ = 5.120.2 June 17 2019 =
2109
+ * Fix: WPForms integration.
2110
+ * Fix: Translation and spelling.
2111
+ * Fix: Minor PHP error
2112
+
2113
+ = 5.120.1 June 6 2019 =
2114
+ * Mod: Description for Search form protection.
2115
+ * Fix: CSS and JS attachment.
2116
+ * Fix: Undefined index error.
2117
+
2118
+ = 5.120 June 5 2019 =
2119
+ * Fix: bbPress false positives.
2120
+ * Fix: SpamFireWall check condition.
2121
+ * Fix: SpamFireWall block page.
2122
+ * Fix: Catch admin action via search form test.
2123
+ * Fix: Catch admin action (AJAX).
2124
+ * Mod: Using minified version of JS and CSS.
2125
+ * Mod: Date format in statistics.
2126
+
2127
+
2128
+ = 5.119.1 May 30 2019 =
2129
+ * Fix: Helper class error.
2130
+
2131
+ = 5.119 May 30 2019 =
2132
+ * Fix: No more second request after registration.
2133
+ * Fix: Activation hook.
2134
+ * Fix: Alternative sessions. Clear table.
2135
+ * Fix: Stop capchuring AJAX requests in admin area.
2136
+ * Fix: Spelling.
2137
+ * Fix: Registration cookies set.
2138
+ * Mod: SFW exdtended die page when testing.
2139
+ * Mod: User-agent modified.
2140
+ * New: Test search queries for spam.
2141
+ * New: Gathering and output statistics.
2142
+
2143
+ = 5.118.4 May 13 2019 =
2144
+ * Fix: SFW cookie. Set correct domain for subdomains.
2145
+ * Fix: SFW update.
2146
+ * Fix: IP detection.
2147
+ * Fix: Triggering AJAX check in backend.
2148
+ * Fix: Zero submit time on few forms.
2149
+
2150
+ = 5.118.3 April 29 2019 =
2151
+ * Fix: Spam statistics in dashboard widget.
2152
+ * Fix: IP detection.
2153
+ * Fix: Double check AJAX integrated forms like Ninja Forms.
2154
+ * Fix: Use url exclusions for AJAX forms.
2155
+
2156
+ = 5.118.2 April 25 2019 =
2157
+ * Mod: Spam filtration quality improved.
2158
+ * Mod: Store SFW cookie for 30 days.
2159
+ * Mod: Server IP added to connection report.
2160
+ * Fix: spam_stat is not defined.
2161
+
2162
+ = 5.118.1 April 19 2019 =
2163
+ * Fix: Fatal error.
2164
+ * Mod: Spam protection improved on registrations.
2165
+
2166
+ = 5.118 April 19 2019 =
2167
+ * Fix: Cookies on registration page.
2168
+ * Fix: Update fix.
2169
+ * Fix: Wordpress built-in API.
2170
+ * Fix: WooCommerce checkout form.
2171
+ * Fix: UpdraftPlus. Saving settings.
2172
+ * Fix: Convert Pro saving settings.
2173
+ * Fix: UTF-8 Converting.
2174
+ * Fix: GDPR notice.
2175
+ * Fix: cleantalk_sessions table size reduced.
2176
+ * Mod: Localization.
2177
+ * Mod: Performance improved.
2178
+ * Mod: SpamFierWall improvments.
2179
+ * Mod: IP detection improved.
2180
+ * Mod: JavaScript check rewised.
2181
+ * New: Setting "Use alternative mechanism for cookies".
2182
+
2183
+ = 5.117.1 April 5 2019 =
2184
+ * Fix: GDPR notice.
2185
+ * Fix: noCacheJS localization.
2186
+ * Fix: Fatal error when updating.
2187
+
2188
+ = 5.117 March 27 2019 =
2189
+ * New: Update logic runs on all pages.
2190
+ * New: Integration for Ajax Contact Forms plugin.
2191
+ * New: Notification for users groups about new comments.
2192
+ * New: SFW die page. Show browser and page creation time.
2193
+ * Fix: Huge bug in Cleantalk.php connected with servers changing.
2194
+ * Fix: Check AJAX requests for logged in users.
2195
+ * Fix: Deleting debug in JS.
2196
+ * Fix: Validating settings before saving.
2197
+
2198
+ = 5.116.3 March 14 2019 =
2199
+ * Fix: "Headers already sent" error.
2200
+ * Fix: Images paths.
2201
+ * Fix: IP detection.
2202
+ * Fix: Skip lost password form check
2203
+ * Fix: Skip mobile requests (push settings)
2204
+ * Fix: PHP notice when detecting BuddyPress template.
2205
+
2206
+ = 5.116.2 March 7 2019 =
2207
+ * Fix: Creating tables in MariaDB.
2208
+
2209
+ = 5.116.1 March 6 2019 =
2210
+ * Fix: Creating tables in DB.
2211
+ * Fix: PHP Warning in spam statistics widget.
2212
+
2213
+ = 5.116 March 6 2019 =
2214
+ * Spam filtration quality improved.
2215
+ * New: Storing visited URLs.
2216
+ * New: Check before validation Contact Form 7, Comments, Jetpack comments.
2217
+ * New: Get validation result for Contact Form 7, Comments, Jetpack comments.
2218
+ * Fix: ES add subscriber.
2219
+ * Fix: IP detection.
2220
+
2221
+ = 5.115.2 February 27 2019 =
2222
+ * Fix: False positives spam detection in WP Forms and Contact Form 7.
2223
+
2224
+ = 5.115.1 February 16 2019 =
2225
+ * Fix: SpamFireWall's false positives.
2226
+
2227
+ = 5.115 February 14 2019 =
2228
+ * Fix: Http_only flag for backend cookies.
2229
+ * Fix: Spam filtration improved.
2230
+ * New: IP detection improved.
2231
+ * Fix: SpamFirewall update speeded up.
2232
+ * New: False positives with caching solutions decreased.
2233
+ * New: Opportunity to use Wordpress HTTP API to connect with Cloud.
2234
+
2235
+ = 5.114 January 31 2019 =
2236
+ * New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
2237
+ * Fix: Formidable: Adding small JS check when adding JS_key.
2238
+ * Mod: layout of settings page.
2239
+ * Mod: Banner logic altered.
2240
+
2241
+ = 5.113.2 January 18 2019 =
2242
+ * Fix: "Settings" link returns to plugin page.
2243
+
2244
+ = 5.113.1 January 17 2019 =
2245
+ * Fix: Conflict with CityTours theme.
2246
+ * Fix: Error for Wordperss lower 4.7.
2247
+ * Add: Spam protection: "Validate email for existance".
2248
+
2249
+ = 5.113 January 16 2019 =
2250
+ * Fix: Fast and Simple Contact Form.
2251
+ * Fix: Settings layout.
2252
+ * Fix: Error with WooCommerce Quickview.
2253
+ * Fix: Bitrix24 contact form.
2254
+ * Fix: Request time decreased.
2255
+ * Fix: Requesting account status when activating for IP licenses.
2256
+ * Add: Precise AJAX request detection.
2257
+ * Spam protection improved.
2258
+
2259
+ = 5.112 December 21 2018 =
2260
+ * Fix: Woocommerce AJAX checkout form.
2261
+ * Fix: Profile Builder Pro.
2262
+ * Fix: DB structure improvements for WPMS.
2263
+ * Spam filtering quality improved.
2264
+ * Minor fixes.
2265
+
2266
+ = 5.111 December 13 2018 =
2267
+ * Fix: Double request in JetPack contact form.
2268
+ * Fix: Email notification about spam registration.
2269
+ * Fix: Links button for feedback comments.
2270
+ * Fix: Mail notification about plugin error.
2271
+ * Fix: Key field output.
2272
+ * Minor fixes.
2273
+
2274
+ = 5.110 November 29 2018 =
2275
+ * Integration: BuddyPress ActivityWall spam protection.
2276
+ * Add: Support different BuddyPress templates on activity wall.
2277
+ * Fix: Admin/moderator checking for validate post data.
2278
+ * Add: GDPR setting for shortcode.
2279
+ * Fix: Increase timeout for spam_check_cms to 15.
2280
+
2281
+ = 5.109 November 15 2018 =
2282
+ * Fix: Added URL and IP exclusions to Contact Form 7.
2283
+ * Fix: js error when responseText is not exists
2284
+ * Fix: Sitename when getting key automatically under WPMS.
2285
+ * Mod: SpamFireWall is now fully compatible with WPMS.
2286
+ * Mod: Setting 'Tell others about CleanTalk' was deleted.
2287
+ * Mod: Protection from spam improved.
2288
+
2289
+ = 5.108.1 November 8 2018 =
2290
+ * Fix: Errors with integration class.
2291
+
2292
+ = 5.108 November 7 2018 =
2293
+ * Fix: White label mode.
2294
+ * Fix: SpamFireWall now can be disabled.
2295
+ * Fix: Layout.
2296
+ * Integration: WPForms.
2297
+ * Add: Message about block for all no integrated AJAX forms.
2298
+ * Add: Displaying account name near api key.
2299
+
2300
+ = 5.107 October 29 2018 =
2301
+ * Fix: Ninja Forms integration.
2302
+ * Fix: Cookie usage.
2303
+ * Add: Capturing AJAX responses from non integrated forms.
2304
+ * Spam protection improved.
2305
+ * Minor fixes.
2306
+
2307
+ = 5.106 October 11 2018 =
2308
+ * Spam filtration improved.
2309
+ * New: White Label mode.
2310
+ * Modification: Warning message about test on SpamFireWall die page.
2311
+ * Integration: WP Maintenance Mode.
2312
+ * Fix: S2Member.
2313
+ * Fix: JavaScript attachments reconsidered.
2314
+ * Fix: Admin banners layout.
2315
+ * Fix: Minor layout fixes.
2316
+
2317
+ = 5.105 September 26 2018 =
2318
+ * Integration: Now bloking spam for QAEngine questions.
2319
+ * Fix: Async http__request call.
2320
+ * Fix: Unnecessary get_antispam_report_breif method call.
2321
+ * Layout: Hide "Do you like Cleantlak?" when key is not ok.
2322
+ * Layout: Minor fixes.
2323
+
2324
+ = 5.104 September 18 2018 =
2325
+ * Fix: Error when saving settings.
2326
+ * Fix: Trying update plugin plugin for the first installation.
2327
+ * Fix: Update system.
2328
+ * Fix: Errors output.
2329
+ * Fix: Plugin's settings under WPMS.
2330
+ * Fix: SpamFireWall update.
2331
+ * Fix: The server change system repaired.
2332
+ * Mod: Cron saving tasks improved.
2333
+
2334
+ = 5.103.1 September 14 2018 =
2335
+ * Fix: Error when saving settings.
2336
+ * Fix: Error when getting key automatically.
2337
+
2338
+ = 5.103 September 13 2018 =
2339
+ * Fix: Gravity Forms response message.
2340
+ * Fix: SpamFireWall redirect to 404 page.
2341
+ * Major anti-spam plugin improvement.
2342
+ * Recombined setting page.
2343
+ * Added error notification.
2344
+ * Mod: S2 Members integration.
2345
+ * Mod: Improved remote calls.
2346
+
2347
+ = 5.102 August 29 2018 =
2348
+ * Fix: Users and comments check.
2349
+ * Fix: Update from 5.70 or previous versions.
2350
+ * Fix: GDPR public JS-script.
2351
+ * Fix: Dashboard widget JS scripts attachment.
2352
+ * Fix: WooCommerce "Place order" action.
2353
+ * Mod: Notification logic altered.
2354
+ * Mod: Users check table now has 'Signed up' column.
2355
+ * Minor fixes.
2356
+
2357
+ = 5.101 August 10 2018 =
2358
+ * Fix: Set cookie only for non-dashboard pages.
2359
+ * Fix: Dashboard widget JS error.
2360
+ * Fix: JavaScript error for some environment.
2361
+ * Mod: Antispam protection accelerated for some pages.
2362
+
2363
+ = 5.100 July 30 2018 =
2364
+ * Fix: JavaScript dependencies.
2365
+
2366
+ = 5.99.1 July 17 2018 =
2367
+ * IP detection fixed and improved.
2368
+
2369
+ = 5.99 July 10 2018 =
2370
+ * Fix: WooCommerce false positives.
2371
+ * Fix: SpamFireWall IP detection.
2372
+ * Minor fixes.
2373
+
2374
+ = 5.98 June 27 2018 =
2375
+ * Fix: WooCommerce: Exclusion.
2376
+ * Fix: Public GDPR JS code.
2377
+ * Minor fixes.
2378
+
2379
+ = 5.97 June 7 2018 =
2380
+ * Fix: Update system.
2381
+ * Fix: Feedback from public page (admin only).
2382
+ * Fix: Users and comment check: API error.
2383
+ * Fix: Too many negative reports. (Too big ct_data option)
2384
+ * Fix: SpamFireWall: Infinite redirection on the blocking page.
2385
+ * Minor fixes.
2386
+
2387
+ = 5.96 May 22 2018 =
2388
+ * Fix: Update system.
2389
+ * Mod: Reset all counters button in admin bar.
2390
+ * Mod: GDPR compliance.
2391
+ * Minor fixes.
2392
+
2393
+ = 5.95.1 May 3 2018 =
2394
+ * Fix: "Get key automatically" button display logic.
2395
+ * Fix: PHP notices.
2396
+
2397
+ = 5.95 May 2 2018 =
2398
+ * Spam filtration improved.
2399
+ * Fix: Public widget layout.
2400
+ * Fix: Connection reports output.
2401
+ * Minor fixes.
2402
+
2403
+ = 5.94 April 23 2018 =
2404
+ * Mod: Async load option for JS.
2405
+ * Mod: JS scripts loading is conditional.
2406
+ * Fix: IP detection.
2407
+ * Fix: IP detection.
2408
+ * Fix: Javascript error.
2409
+
2410
+ = 5.93.1 April 9 2018 =
2411
+ * Fix: Fatal error on PHP 5.5 or lower.
2412
+
2413
+ = 5.93 April 9 2018 =
2414
+ * Fix: SpamFirewall IP detection.
2415
+ * Fix: Contact Form 7. False positives.
2416
+ * Mod: Autoupdate function improved.
2417
+ * Minor fixes.
2418
+
2419
+ = 5.92.2 March 23 2018 =
2420
+ * Fix: Error if cURL extension is disabled.
2421
+
2422
+ = 5.92.1 March 23 2018 =
2423
+ * Fix: Spelling
2424
+ * Fix: Fatal error if cURL extension is disabled.
2425
+
2426
+ = 5.92 March 22 2018 =
2427
+ * IP detection improved.
2428
+ * Fix: SSL connection.
2429
+ * Fix: False positives spam detection in Contact Form 7.
2430
+ * Minor fixes.
2431
+
2432
+ = 5.91 March 15 2018 =
2433
+ * Fix: Errors for PHP compiled without XML support.
2434
+ * Fix: Spelling and translation.
2435
+ * Stability increased.
2436
+ * Minor fixes.
2437
+
2438
+ = 5.90 March 7 2018 =
2439
+ * Improvement: Better IP recognition in Spam FireWall.
2440
+ * Fix: Gravity Froms blocking message.
2441
+ * Security improvments.
2442
+ * Minor fixes.
2443
+
2444
+ = 5.89 February 21 2018 =
2445
+ * Improved spam filtration quality.
2446
+ * Improved compatibility.
2447
+ * Public widget: Styles and referral link added.
2448
+ * Dashboard widget: revised and fixed.
2449
+ * Minor fixes.
2450
+
2451
+ = 5.88 February 12 2018 =
2452
+ * Integration: ConvertPro.
2453
+ * Improvement: Search for visitor's names in request.
2454
+ * Fix: Contact Form 7 message recognition.
2455
+ * Preparation for the remote plugin update.
2456
+ * Minor fixes.
2457
+
2458
+ = 5.87 February 2 2018 =
2459
+ * Filtration quality improved.
2460
+ * Fix: WP Foto Vote downloading images.
2461
+ * Fix: Fatal error for unsupported PHP 5.2.
2462
+ * Fix: Formidable Forms improved spam filtration.
2463
+
2464
+ = 5.86 January 25 2018 =
2465
+ * Fix: High CPU load with wp-ajax.php.
2466
+ * Fix: Mailpoet: Newsletter.
2467
+ * Fix: Gravity: Forms standardization for input fields.
2468
+ * Fix: ajax hook checks data for contact form.
2469
+ * Fix: UTF8 character in requests.
2470
+
2471
+ = 5.85 January 11 2018 =
2472
+ * Fix: Fast Secure contact form spam block message.
2473
+ * Fix: IP license status.
2474
+ * Layout: Dashboard widget description altered.
2475
+
2476
+ = 5.84 December 26 2017 =
2477
+ * Integration: PeepSo contact form
2478
+ * Repared: Feedback from comments page.
2479
+ * Fix: mb_* functions used only if exists.
2480
+ * Fix: Gravity forms: Multi-page form logic repared.
2481
+ * Fix: Gravity forms: AJAX form logic repared.
2482
+ * Minor fixes.
2483
+
2484
+ = 5.83.2 December 19 2017 =
2485
+ * Fix: Error in base class.
2486
+
2487
+ = 5.83.1 December 19 2017 =
2488
+ * Fix: CDN IP detection.
2489
+
2490
+ = 5.83 December 19 2017 =
2491
+ * Improving: Stability and compatibility.
2492
+ * Improving: Spam protection.
2493
+ * Fix: Comments logic filtration.
2494
+ * Fix: Admin bar counter.
2495
+ * Minor errors fixes.
2496
+
2497
+ = 5.82.1 December 7 2017 =
2498
+ * Fixed minor error with attaching JS and CSS files.
2499
+
2500
+ = 5.82 December 4 2017 =
2501
+ * Plugin doesn't use PHP sessions anymore.
2502
+ * Bug fixes.
2503
+ * Improved update logic.
2504
+
2505
+ = 5.81 November 22 2017 =
2506
+ * Fixed error with "Show/Hide key" button.
2507
+ * Slightly improved spam protection for all forms.
2508
+ * Small errors fixes.
2509
+
2510
+ = 5.80 November 3 2017 =
2511
+ * Spam protection improved.
2512
+ * Improved filtration quality for WooCommerce checkout.
2513
+ * Minor fixes for Spam FireWall.
2514
+
2515
+ = 5.79 October 26 2017 =
2516
+ * Spam protection improved.
2517
+ * Fixed issue with existing spam comments check.
2518
+ * Added posibility to exclude IP from check.
2519
+ * Minor fixes.
2520
+
2521
+ = 5.78 October 16 2017 =
2522
+ * Improved compatibility with themes. Changed core functions prefix.
2523
+ * Fixed issue with WooCommerce checkout.
2524
+ * Spam protection improved.
2525
+ * Minor fixes.
2526
+
2527
+ = 5.77 October 2 2017 =
2528
+ * Connection report's system.
2529
+ * Integration for CouponXXL Theme.
2530
+ * Fixed issue with mb_* functions.
2531
+ * Banners logic updated.
2532
+
2533
+ = 5.76 September 20 2017 =
2534
+ * Fixed issue with Spam FireWall and caching plugins.
2535
+ * Banners logic updated.
2536
+
2537
+ = 5.75 September 15 2017 =
2538
+ * Pause feature for users/comments spam check.
2539
+ * Improved protection from spam.
2540
+ * Small fixes.
2541
+
2542
+ = 5.74.2 September 2 2017 =
2543
+ * Fix for users spam check for PHP 5.3 and lower.
2544
+
2545
+ = 5.74.1 September 2 2017 =
2546
+ * Fix for the update system and cloud communication.
2547
+ * Added possibility to check users and comments for spam with a specific date range.
2548
+
2549
+ = 5.74 August 31 2017 =
2550
+ * Users and comments spam check: Two check types (fast and accurate).
2551
+ * Fix for WooCommerce checkout test.
2552
+ * Minor fixes.
2553
+
2554
+ = 5.73 August 11 2017 =
2555
+ * Fix for spam check for already existed users and comments.
2556
+ * Spam FireWall updated.
2557
+ * Layout fix for BT Comments.
2558
+ * Minor fixes.
2559
+
2560
+ = 5.72 July 27 2017 =
2561
+ * Improved spam check for existed users and comments.
2562
+ * Minor fixes.
2563
+
2564
+ = 5.71 July 20 2017 =
2565
+ * Improved spam protection for external forms.
2566
+ * Optimization.
2567
+ * Minor fixes.
2568
+
2569
+ = 5.70.2 July 17 2017 =
2570
+ * Fix for Spam FireWall for Multisite.
2571
+
2572
+ = 5.70.1 July 17 2017 =
2573
+ * Fix for Spam FireWall.
2574
+ * Spam detection improved.
2575
+
2576
+ = 5.70 July 13 2017 =
2577
+ * New updater logic.
2578
+ * Self cron system.
2579
+ * Improved AMP compatibility.
2580
+ * Optimization.
2581
+ * Fixed users and comments spam check.
2582
+ * Fixed layout for Comment's feedback from public page.
2583
+ * Updated Spam FireWall.
2584
+ * SFW: Spam FireWall counter now work in real-time.
2585
+ * SFW: Improved compatibility with different Data Bases.
2586
+
2587
+ = 5.69 July 3 2017 =
2588
+ * Reviewer - integration.
2589
+ * Optimization for Users and Comments check for big databases.
2590
+ * Errors fixes.
2591
+ * Improved protection from spam.
2592
+
2593
+ = 5.68 June 22 2017 =
2594
+ * Contact Form for WordPress - Ultimate Form Builder Lite - integration.
2595
+ * Contact Bank - Contact Forms Builder - integration.
2596
+ * Smart Forms - integration.
2597
+ * cformsII - integration.
2598
+ * Contact Form by Web-Settler - integration.
2599
+ * Error fixes.
2600
+
2601
+ = 5.67.3 June 9 2017 =
2602
+ * Fixed JS attachment error.
2603
+
2604
+ = 5.67.2 June 5 2017 =
2605
+ * Fixed error with IP determination.
2606
+
2607
+ = 5.67.1 June 4 2017 =
2608
+ * Fixed JS error in 5.67 version.
2609
+ * Integrations: Enfold theme, Convertplug.
2610
+ * Links to check for Emails/IP for spam.
2611
+ * Control comments and feedback about them from public post's page.
2612
+ * Improved connection stability with cloud service.
2613
+ * Spam protection improved.
2614
+ * Other small fixes.
2615
+
2616
+ = 5.67 June 1 2017 =
2617
+ * Integrations: Enfold theme, Convertplug.
2618
+ * Links to check for Emails/IP for spam.
2619
+ * Control comments and feedback about them from public post's page.
2620
+ * Improved connection stability with cloud service.
2621
+ * Spam protection improved.
2622
+ * Other small fixes.
2623
+
2624
+ = 5.66 May 23 2017 =
2625
+ * Spam protection improved.
2626
+ * Major fixes for users and comments spam check.
2627
+ * Added feedback from Wordpress comments list.
2628
+ * Fix for "internal forms check" option.
2629
+ * Fixed issue with caching Spam FireWall die page.
2630
+ * Other small fixes.
2631
+
2632
+ = 5.65 May 16 2017 =
2633
+ * Fix for PayPal redirecton.
2634
+ * Fixed issue with empty query for bulk comments test.
2635
+ * Added protection for Enfold contact form.
2636
+ * Ninja forms integration.
2637
+
2638
+ = 5.64 April 26 2017 =
2639
+ * Integration for Facebook registrations.
2640
+ * Small fixes for WPMS.
2641
+ * Fix for Activecampaign service.
2642
+ * Fix for check spam users.
2643
+ * Fixed rare notice Notice: Undefined index: REQUEST_URI
2644
+
2645
+ = 5.63 April 20 2017 =
2646
+ * Fix for the dashboard spam stat widget.
2647
+ * Added translation posibility for all text.
2648
+
2649
+ = 5.62 April 17 2017 =
2650
+ * Fix for the dashboard spam statistics widget.
2651
+ * Fix for users spam check.
2652
+ * Small appearance changes.
2653
+
2654
+ = 5.61 April 6 2017 =
2655
+ * Improved filtration.
2656
+ * Additional logic for the form recognizing.
2657
+ * Integration: Divi Theme Contact Form.
2658
+ * Fix: Gravity Forms multipages forms.
2659
+ * Stat Widget: Minor fixes.
2660
+ * Added possibility to download results of the users check in CSV format.
2661
+ * Alteration for settings page (footer).
2662
+
2663
+ = 5.60.1 March 29 2017 =
2664
+ * Fixed error function 'locale_get_display_region' no exists.
2665
+
2666
+ = 5.60 March 29 2017 =
2667
+ * Added main dashboard widget with spam sctivity stats.
2668
+ * Mailster - integration.
2669
+ * Base class updated.
2670
+
2671
+ = 5.59 March 24 2017 =
2672
+ * Users/comments check fix.
2673
+ * Plugin's name changed to Anti-Spam by CleanTalk.
2674
+ * Trial banner is dismissable. Disapear for 24h or till logout.
2675
+ * Settings modified (Auto testing failed warning).
2676
+ * Mailing(inactive key) interval increased to 6 hours.
2677
+
2678
+ = 5.58.6 March 16 2017 =
2679
+ * Fix for Ninja forms (protection updated).
2680
+ * Fix for QA Theme.
2681
+ * Fix for RSVP form.
2682
+ * Setting changes (Spam FireWall).
2683
+ * Improved debug section.
2684
+ * Improved gathering data function.
2685
+ * Minor fixes.
2686
+
2687
+ = 5.58.5 March 6 2017 =
2688
+ * Minor backend fix.
2689
+
2690
+ = 5.58.4 March 6 2017 =
2691
+ * Users check fix (redirect after the check).
2692
+ * Fixed PHP Notice "HTTP_REFERER" is unset.
2693
+ * Updated Notice logic.
2694
+
2695
+ = 5.58.3 February 28 2017 =
2696
+ * Bitrix24 Contact form integration.
2697
+ * Users/comments check fix.
2698
+ * Spam sorting updated.
2699
+ * Banner showing logic.
2700
+
2701
+ = 5.58.2 February 17 2017 =
2702
+ * Cron fix for daily report.
2703
+
2704
+ = 5.58.1 February 16 2017 =
2705
+ * Minor fixes.
2706
+
2707
+ = 5.58 February 15 2017 =
2708
+ * Work without access key
2709
+ * Bitrix24 contact integration
2710
+ * Issues fixes
2711
+
2712
+ = 5.57.1 February 8 2017 =
2713
+ * Fix for notice logic.
2714
+
2715
+ = 5.57 February 8 2017 =
2716
+ * Setting page changes.
2717
+ * Bug fixes for WooCommerce.
2718
+ * Spam FireWall filters only GET requests.
2719
+ * Optimization.
2720
+ * Minor and major fixes.
2721
+
2722
+ = 5.56.1 January 25 2017 =
2723
+ * Minor fixes
2724
+
2725
+ = 5.56 January 19 2017 =
2726
+ * Integrations: MailChimp Premium, Profile Press.
2727
+ * Changes comments flow.
2728
+ * FireWall updater fix.
2729
+ * Users check optimization.
2730
+
2731
+ = 5.55 December 23 2016 =
2732
+ * Integrations: Caldera Forms, Visual Form Builder.
2733
+ * Fix for different 'cookies' header names.
2734
+ * Fixed user deletion.
2735
+
2736
+ = 5.54 December 12 2016 =
2737
+ * Integrations: AmoForms, Contact Form Clean and Simple.
2738
+ * Comments check logic refreshed.
2739
+ * Registration JS error fix.
2740
+ * Users check fix.
2741
+ * Fix for translation system.
2742
+ * Minor fixes.
2743
+
2744
+ = 5.53.1 December 9 2016 =
2745
+ * Minor layout fixes.
2746
+
2747
+ = 5.53 November 28 2016 =
2748
+ * Addition warning before deleting users.
2749
+ * Spam FireWall is enabled by default.
2750
+ * Usernoise modal feedback / contact form : integration.
2751
+ * Translations.
2752
+ * Optimization.
2753
+ * Fixes.
2754
+
2755
+ = 5.52.1 November 14 2016 =
2756
+ * Users and comments check: Using new API method.
2757
+ * Quick Contact From: Integration via "Custom Contact Forms" setting.
2758
+ * JavaScript filtration improved.
2759
+ * Translation changes.
2760
+ * Optimized JavaScript code.
2761
+
2762
+ = 5.51 November 2 2016 =
2763
+ * Added protection for internal forms
2764
+ * Immediate spam check for comments and users from WP dashboard
2765
+ * Optimized code
2766
+
2767
+ = 5.50.1 October 24 2016 =
2768
+ * Improved filtration in contact forms.
2769
+ * Spam FireWall: Fixed issue with SFW logs
2770
+ * Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
2771
+
2772
+ = 5.50 October 20 2016 =
2773
+ * Custom contact forms: integration.
2774
+ * Pirate Forms: integration.
2775
+ * PHP 7 compatibility: Deleted third-party JSON library and dependences.
2776
+ * PHP 7 compatibility: Fixed end of lines.
2777
+ * YOAST Seo: Fixed PHP warnings.
2778
+ * Spam FireWall: Minor fix for Spam FireWall counter.
2779
+ * Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
2780
+ * Improved filtration in contact forms.
2781
+
2782
+ = 5.49.2 October 5 2016 =
2783
+ * Second Fix for database error. Stable version.
2784
+
2785
+ = 5.49.1 October 5 2016 =
2786
+ * Fixed database error.
2787
+
2788
+ = 5.49 October 3 2016 =
2789
+ * Spam FireWall feature: Class upgraded.
2790
+ * New feature: Delete links from approved comments.
2791
+ * Settings: Grouped.
2792
+ * Settings: Altered description fixed spelling mistakes.
2793
+ * Settings: Added indicator for Spam FireWall.
2794
+ * Admin bar: Added Spam FireWall counter
2795
+ * Clean and Simple Contact Form: Direct integration.
2796
+ * WooCommerce: Don't check password recovery form.
2797
+ * WooCommerce Wishlists: Issue with check for Google bots.
2798
+ * JetPack: contact form fix.
2799
+ * Fixed and created the defaults for all CleanTalk options.
2800
+ * Fixed spelling mistakes.
2801
+
2802
+ = 5.48 September 15 2016 =
2803
+ * buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
2804
+ * buddyPress: Added option in settings for private messages check.
2805
+ * WooCommerce Wishlist: Added check for wishlists.
2806
+ * Fixed issue with "check all post data" option.
2807
+ * Improved filtering for Gravity Forms
2808
+ * Mobile Assistant Connector fix
2809
+ * Minor fixes.
2810
+
2811
+ = 5.47 September 5 2016 =
2812
+ * WooCommerce: direct integration for checkout form.
2813
+ * WooCommerce Sensei: login form fix.
2814
+ * bbPress: Added the check for topics and comments with stop_words
2815
+ * bbPress: Skip check for admin in comments and topics
2816
+ * UserPro: fixes. Request without field "shortcode"
2817
+ * Contact Form 7: Bug fix.
2818
+ * Spam FireWall: Optimized logs rotation.
2819
+ * Updated inner functions (compatibility fix for PHP 5.4+)
2820
+ * Fixed output of counters (without spamfirewall stats)
2821
+ * Fixed spelling in settings
2822
+ * Added "Delete from the list" button in comments spam check page
2823
+ * Minor fixes.
2824
+
2825
+ = 5.46 August 17 2016 =
2826
+ * Fixed issue with admin bar links in WP Multi Network mode.
2827
+ * Added "All time counter" and "Daily counter" into admin bar.
2828
+ * Added settings to disable counters in admin bar.
2829
+ * New style for "Get access key manually" button.
2830
+
2831
+ = 5.45.2 August 4 2016 =
2832
+ * Added Anti-Spam protection for Quick Event Manager.
2833
+ * Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more then 30 days ago.
2834
+ * Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
2835
+ * Minor fix function to get the API key.
2836
+
2837
+ = 5.45.1 July 26 2016 =
2838
+ * Fixed issue with missed spam messages, subscriptions.
2839
+ * Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more then 30 days ago.
2840
+
2841
+ = 5.45 July 21 2016 =
2842
+ * Optimized bulk spam comments deletion.
2843
+ * Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
2844
+ * Added links to bulk spam comments&users removal tool.
2845
+
2846
+ = 5.44.1 July 13 2016 =
2847
+ * Optimized options getting code.
2848
+ * Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
2849
+
2850
+ = 5.43.2 June 30 2016 =
2851
+ * Optimized anti-spam code for AJAX based contact forms.
2852
+ * Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
2853
+
2854
+ = 5.43.1 June 23 2016 =
2855
+ * Added agent version in requests to test a connection between the website and servers.
2856
+ * Fixed issue with PHP notices in cleantalk-admin.php.
2857
+
2858
+ = 5.43 June 22 2016 =
2859
+ * Added spam protection for registrations via 'Login with AJAX' plug-in.
2860
+ * Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
2861
+ * Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
2862
+ * Fixed issue with spam protection for nested forms by Formidable plug-in.
2863
+
2864
+ = 5.42 2016-06-15 =
2865
+ * Added anti-spam protection for UserPro.
2866
+ * Improved protection for Formidable forms + Varnish.
2867
+ * Improved bulk search for spam accounts.
2868
+ * Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
2869
+ * Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
2870
+ * Minor fixes in plugin backend.
2871
+
2872
+ = 5.41 2016-05-31 =
2873
+ * Added HTTP response in plugin response if an network issue was happend.
2874
+ * Optimized JavaScript anti-spam test for Formidable forms.
2875
+ * Re-stored the option to auto redirect to plugn settings after plugin activation.
2876
+ * Fixed issue with nasted fields in Formidable forms.
2877
+
2878
+ = 5.40.3 2016-05-26 =
2879
+ * Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
2880
+ * Added JSON encoding for AJAX forms.
2881
+ * Obfuscated private data for Custom contact forms option.
2882
+ * Optimized bulk users check for spam over blacklists database.
2883
+ * Fixed issue with lost connection to servers and JavaScript anti-spam test.
2884
+ * Fixed issue with WordFence and collect_details.
2885
+
2886
+ = 5.40.2 2016-05-11 =
2887
+ * Improved account status check logic.
2888
+ * Fixed issue with double anti-spam tests for FastSecure contact forms.
2889
+ * Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occured on standart WordPress registration form and with failed JavaScript spam test.
2890
+ * Fixed issue with session_start() with PHP sessions stored in memcache.
2891
+
2892
+ = 5.40.1 2016-04-28 =
2893
+ * Fixed issue with Super Socializer.
2894
+ * Fixed issue with spam filtration for logged in users and Formidable forms.
2895
+ * Added logging of all submitted fields for FastSecure contact form.
2896
+
2897
+ = 5.40 2016-04-19 =
2898
+ * Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
2899
+ * Minor fix in plugin settings.
2900
+ * Fixed pagination for bulk users spam test.
2901
+ * Fixed issue with unknown _SESSION.
2902
+ * Fixed issue with double Spam FireWall database upload.
2903
+
2904
+ = 5.39.1 2016-04-04 =
2905
+ * Improved AJAX based anti-spam test with HTTPS backends.
2906
+ * Added fix to avoid issue with empty ct_info_flag on JavaScript side.
2907
+ * Added logic to exclude caching for Spam FireWall.
2908
+ * Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
2909
+
2910
+ = 5.38.1 2016-03-24 =
2911
+ * Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
2912
+ * Removed Spam FireWall protection on /feed page.
2913
+ * Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
2914
+ * Added reject notice for spam submissions on Gravity forms with AJAX calls.
2915
+
2916
+ = 5.37.3 2016-03-10 =
2917
+ * Minor bug fixes. Added an option to support Varnish cache.
2918
+
2919
+ = 5.36.1 2016-02-05 =
2920
+ * Fixed bug, when users receive error after logging in
2921
+
2922
+ = 5.36 2016-02-04 =
2923
+ * Improved JavaScript anti spam protection
2924
+ * Improvements for avoiding blocking requests from payment systems
2925
+
2926
+ = 5.35 2016-01-14 =
2927
+ * Added support for IP licensing
2928
+ * Some anti-spam protection improvements
2929
+ * Small backend interface fixes
2930
+
2931
+ = 5.34.1 2015-12-17 =
2932
+ * Fixed trackback antispam protection: improved checking mechanism
2933
+ * Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
2934
+
2935
+ = 5.34 2015-12-10 =
2936
+ * Improved spam checking mechanism
2937
+ * Added "Collect browser details" option for better antispam protection
2938
+ * Fixed custom contact forms checking
2939
+ * Minor translations fixes
2940
+
2941
+ = 5.33.1 2015-12-04 =
2942
+ * Fixed issue with BBPress
2943
+ * Fixed anti-spam comments checking
2944
+ * Fixed bulk checking
2945
+ * Fixed trackback and pingback checking
2946
+
2947
+ = 5.33 2015-12-01 =
2948
+ * Backend interface fixes
2949
+ * Improved Spam FireWall efficiency
2950
+ * Improved performance of anti spam checking
2951
+
2952
+ = 5.32 2015-11-26 =
2953
+ * Added improvements for manual spam detection
2954
+ * Fixed errors in backend
2955
+ * Fixed bulk users anti spam checking
2956
+ * Added indicator for bulk spam checking
2957
+ * Added "Get access key automatically" feature
2958
+
2959
+ = 5.31 2015-11-11 =
2960
+ * Improved backend performance
2961
+ * Fixed counter of approved/blocked spam attacks
2962
+ * Fixed Spam Firewall logging
2963
+
2964
+ = 5.30 2015-11-05 =
2965
+ * Improved anti-spam checking
2966
+ * Optimized performance
2967
+ * Fixed blocking email preview in MailPoet
2968
+ * Interface fixes
2969
+ * WPMU interface fixes
2970
+
2971
+ = 5.29 2015-10-27 =
2972
+ * Optimized performance
2973
+ * Fixed bugs in custom contact forms spam checking
2974
+
2975
+ = 5.28.7 2015-10-23 =
2976
+ * Major backend peromance fix.
2977
+
2978
+ = 5.28 2015-10-16 =
2979
+ * Fixed errors in anti-spam checking
2980
+ * Restored options for spam checking registrations and cpmmon contact forms
2981
+ * Improved anti spam defence
2982
+ * Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
2983
+
2984
+ = 5.27 2015-10-13 =
2985
+ * Improvements in Spam FireWall feature
2986
+ * Code optimization
2987
+ * Backend interface fixes
2988
+
2989
+ = 5.26 2015-10-05 =
2990
+ * Added WordPress Language Pack support
2991
+ * Removed spam checking for some autorisation plugins
2992
+ * New experimental feature: Spam FireWall
2993
+
2994
+ = 5.25.2 2015-09-28 =
2995
+ * Fixed backend bug
2996
+
2997
+ = 5.25.1 2015-09-28 =
2998
+ * Added widget with anti-spam stats
2999
+ * Added information about blocked spam attacks in admin dashboard and CleanTalk settings
3000
+ * Added ability not to check comments for users with 3 or above allowed comments
3001
+ * Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
3002
+ * Some backend interface settings
3003
+ * Removed "CleanTalk connection test" query
3004
+
3005
+ = 5.24.1 2015-09-16 =
3006
+ * Fixed some errors in frontend
3007
+ * Fixed access key saving
3008
+
3009
+ = 5.24 2015-09-14 =
3010
+ * Backend interface fixes
3011
+ * Improvement for AJAX JavaScript spam checking
3012
+
3013
+ = 5.23 2015-09-01 =
3014
+ * Fixed BuddyPress profile search false positivities of anti-spam protection.
3015
+ * Some interface fixes of bulk users & comments spam checking
3016
+
3017
+ = 5.22 2015-08-26 =
3018
+ * Fixed possible XSS issue for anti-spam test on third-party forms.
3019
+
3020
+ = 5.21 2015-08-21 =
3021
+ * Fixed bug with skipping spam submissions
3022
+ * Fixed bug with receiving old user_token for viewing anti-spam stats
3023
+ * Small backend fixes
3024
+
3025
+ = 5.20 2015-08-15 =
3026
+ * Fixed anti-spam stats in admin bar
3027
+ * Fixed issue with skipping spam submissions
3028
+ * Added some PHP-constants for advanced users
3029
+
3030
+ = 5.19 2015-08-11 =
3031
+ * New feature: anti-spam checking for registered users
3032
+ * Fixed issue with AJAX JavaScript checking
3033
+ * Fixed issue with SEO Yoast xml sitemaps.
3034
+
3035
+ = 5.18 2015-08-04 =
3036
+ * Fixed issue with user_token
3037
+ * Added anti-spam API, see our FAQ
3038
+
3039
+ = 5.17 2015-07-23 =
3040
+ * Fixed infinite redirection after activation
3041
+ * Minor backend fixes
3042
+
3043
+ = 5.16 2015-07-22 =
3044
+ * Fixed external services checking
3045
+ * Fixed mass comments deletion
3046
+ * Fixed AJAX anti-spam protection
3047
+
3048
+ = 5.15 2015-07-16 =
3049
+ * New feature: anti-spam protection for forms, that uses external services
3050
+
3051
+ = 5.14 2015-07-03 =
3052
+ * Added anti-spam protection for some themes and plugins
3053
+ * Some backend fixes
3054
+
3055
+ = 5.13 2015-06-12 =
3056
+ * Closing notification for anti-spam renew
3057
+ * Fixed bulk anti spam comment checking
3058
+
3059
+ = 5.12 2015-06-01 =
3060
+ * Added option for checking all post data for spam
3061
+ * Some JavaScript protection improvements
3062
+ * Added option for old JavaScript check (without AJAX)
3063
+
3064
+ = 5.10 2015-05-25 =
3065
+ * Fixed Javascript error on some forms
3066
+
3067
+ = 5.9 2015-05-21 =
3068
+ * Fixed Javascript error on CF7 and JetPack
3069
+ * Some backend and frontent fixes
3070
+
3071
+ = 5.8 2015-05-18 =
3072
+ * Minor fixes
3073
+
3074
+ = 5.7 2015-05-18 =
3075
+ * Fixed French translation
3076
+ * Fixed protection algorithm
3077
+
3078
+ = 5.6 2015-05-11 =
3079
+ * Fixed translation
3080
+ * Fixed bulk comments anti-spam checking
3081
+ * Added option for disabling anti spam stats in adminbar
3082
+ * Some security fixes
3083
+
3084
+ = 5.5 2015-04-29
3085
+ * Fixed security issue
3086
+
3087
+ = 5.4 2015-04-27 =
3088
+ * Some interface and functionality changes in plugin settings page
3089
+ * Added counter for anti-spam stats in admin bar
3090
+
3091
+ = 5.3 2015-04-13 =
3092
+ * Added anti-spam protection for Divi theme contact forms
3093
+ * Added anti-spam protection for MyMail contact forms
3094
+ * Added anti-spam protection for MailPoet Newsletters
3095
+ * Some interface and functionality changes in backend
3096
+
3097
+ = 5.2 2015-04-01 =
3098
+ * Added link for anti-spam stats
3099
+ * Added WP User Frontend Pro registration form protection
3100
+
3101
+ = 5.10 2015-03-24 =
3102
+ * Fixed site crash after installing 5.0 on some websites
3103
+
3104
+ = 5.00 2015-03-24 =
3105
+ * Added bulk comments checking for spam via CleanTalk blacklists
3106
+ * Added anti-spam form protection for 'Ajax Login & Register'
3107
+ * Fixed JetPack form protection
3108
+
3109
+ = 4.24 2015-03-20 =
3110
+ Added immediate spam protection activation.
3111
+
3112
+ = 4.22 2015-03-17 =
3113
+ * Added button for automatic spam protection key getting.
3114
+
3115
+ = 4.21 2015-03-11 =
3116
+ * Added license renew notification.
3117
+
3118
+ = 4.20 2015-03-03 =
3119
+ * German, Italian, Polish, Portuguese translations, minor code fixes.
3120
+
3121
+ = 4.19 2015-02-24 =
3122
+ * Increased JS keys lifetime.
3123
+
3124
+ = 4.18 2015-02-17 =
3125
+ * Bugfix - fixed bug with comments approvement, PayPal 'payment_status' and Akismet 'spam' status processing.
3126
+
3127
+ = 4.17 2015-02-12 =
3128
+ * New base class, divided code to 3 separate files - common, public and admin.
3129
+
3130
+ = 4.16 2015-02-05 =
3131
+ * New base class, fixed JetPack filters logics, optimized Formidable, bbPress, BuddyPress filters.
3132
+
3133
+ = 4.15 2015-01-29 =
3134
+ * Support of Contact Form 7 versions before 3.0.0, fixed global JS-vars and online notice cookie logics.
3135
+
3136
+ = 4.14 2015-01-19 =
3137
+ * Removed deprecated option from comment approvement code.
3138
+
3139
+ = 4.13 2014-12-29 =
3140
+ * Not spam comments auto approvement bug fix.
3141
+
3142
+ = 4.12 2014-12-29 =
3143
+ * Plugin backend minfor bug fixes.
3144
+
3145
+ = 4.11 2014-12-22 =
3146
+ * Major changes in spam protection algorithms.
3147
+
3148
+ = 4.10 2014-12-10 =
3149
+ * Minor improvements for custom contact/registration/subscribe forms.
3150
+
3151
+ = 4.9 2014-11-24 =
3152
+ * Minor bug fix for Contact form 7.
3153
+
3154
+ = 4.8 2014-11-19 =
3155
+ * Improved anti-spam protection for BuddyPress registrations and custom contact forms.
3156
+
3157
+ = 4.7 2014-11-16 =
3158
+ * Fixed JavaScript antispam test for FastSecure contact form.
3159
+
3160
+ = 4.6 2014-11-11 =
3161
+ * Minor changes in anti-spam logic for BuddyPress registrations, contact forms and bbPress guest posting.
3162
+
3163
+ = 4.5 2014-11-04 =
3164
+ * Bug fixes for Contact form 7 and bbPress guests posting.
3165
+
3166
+ = 4.4 2014-10-29 =
3167
+ * Improved JS checking for CF7.
3168
+
3169
+ = 4.2 2014-10-20 =
3170
+ * Increased plugin perfomance for BuddyPress registrations.
3171
+
3172
+ = 4.1 2014-10-13 =
3173
+ * Minor anti-spam improvements for contacts, registration and contact forms.
3174
+
3175
+ = 4.0 2014-10-06 =
3176
+ * Major anti-spam improvements for registration and contact forms.
3177
+
3178
+ = 3.9 2014-10-01 =
3179
+ * Did exception to do not break to create new user in WordPress backend.
3180
+
3181
+ = 3.8 2014-09-19 =
3182
+ * Bug fix release. Minor fixes in API class and JavaScript anti-spam test.
3183
+
3184
+ = 3.6 2014-09-15 =
3185
+ * Minor fixes in anti-spam protection for Formidable and custom contact forms.
3186
+
3187
+ = 3.4 2014-09-04 =
3188
+ * Spam comments rotation. Custom (themes) contact forms support.
3189
+
3190
+ = 3.2 2014-08-27 =
3191
+ * Minor changes in spam filtration logic.
3192
+
3193
+ = 3.1 2014-08-19 =
3194
+ * Major changes for comments antispam logic. Improved plugin speed.
3195
+
3196
+ = 2.59 2014-08-14 =
3197
+ * Antispam protection for bbPress guests posts. Improvement for JetPack comments and PHP API update.
3198
+
3199
+ = 2.58 2014-08-06 =
3200
+ * Added anti-spam protection for signups posted via WooCommerce order form.
3201
+ * Improved anti-spam protection for Contact Form 7.
3202
+ * Improved anti-spam protection for registrations. Now the plugin looking for JavaScript antispam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
3203
+ * Updated PHP API. No the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
3204
+
3205
+ = 2.57 2014-07-29 =
3206
+ * Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
3207
+ * Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
3208
+ * Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
3209
+
3210
+ = 2.56 2014-07-21 =
3211
+ * Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
3212
+
3213
+ = 2.55 2014-07-11 =
3214
+ * Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it on every page.
3215
+
3216
+ = 2.54 2014-07-11 =
3217
+ * Fixed signup anti-spam protection logic for BuddyPress registrations.
3218
+ * Fixed anti-spam protection for JetPack contact form.
3219
+ * Changed account status check logic.
3220
+
3221
+ = 2.53 2014-06-27 =
3222
+ * Fixed anit-spam protection bug for signups.
3223
+ * Changed anti-spam functions (comments and signups) priority.
3224
+
3225
+ = 2.52 2014-06-25 =
3226
+ * Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
3227
+
3228
+ = 2.51 2014-06-23 =
3229
+ * Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
3230
+ * Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
3231
+ * Fixed minor bug with loading backend functions.
3232
+
3233
+ = 2.49 2014-06-10 =
3234
+ * Added spam protection for S2Member Auth.net forms.
3235
+ * Added spam protection for multisite signup form.
3236
+ * Optimized account status check function.
3237
+
3238
+ = 2.46 2014-05-19 =
3239
+ * Added: HTML notice about the need to enable JavaScript.
3240
+ * Fixed: Fixed pingbacks anti-spam test.
3241
+
3242
+ = 2.44 2014-05-12 =
3243
+ * Added: Anti-spam protection for S2Member framework.
3244
+ * Improved: Plugin load time for backend and frontend.
3245
+ * Improved: JavaScript anti-spam test.
3246
+ * Fixed: PHP warning mb_convert_encoding()
3247
+
3248
+ = 2.42 2014-04-29 =
3249
+ * Fixed: JavaScript anti-spam test for comments.
3250
+
3251
+ = 2.38 2014-03-27 =
3252
+ * Fixed: Registraion form submit time spam test.
3253
+
3254
+ = 2.36 2014-03-12 =
3255
+ * Reversed to patches from old revisions.
3256
+
3257
+ = 2.35 2014-03-12 =
3258
+ * New: Notifications about disabled account
3259
+ * New: Improved JavaScript spam test.
3260
+ * Fixed: Code optimization
3261
+ * Fixed: JavaScript test for signups.
3262
+
3263
+ = 2.33 2014-02-12 =
3264
+ * Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
3265
+
3266
+ = 2.32 2014-02-04 =
3267
+ * New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
3268
+ * New: At WordPress console added banner for notices.
3269
+ * Changed: Screenshots updated.