Version Description
2015-11-26 = * Added improvements for manual spam detection * Fixed errors in backend * Fixed bulk users antispam checking * Added indicator for bulk spam checking * Added "Get access key automatically" button
Download this release
Release Info
Developer | shagimuratov |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.32 |
Comparing to | |
See all releases |
Code changes from version 5.31 to 5.32
- cleantalk.php +31 -6
- inc/cleantalk-admin.php +9 -5
- inc/cleantalk-ajax.php +9 -0
- inc/cleantalk-comments-checkspam.js +1 -0
- inc/cleantalk-comments.php +3 -2
- inc/cleantalk-common.php +10 -2
- inc/cleantalk-public.php +8 -3
- inc/cleantalk-users-checkspam.js +1 -0
- inc/cleantalk-users.php +33 -82
- inc/cleantalk_nocache.js +76 -0
- inc/images/preloader.gif +0 -0
- readme.txt +23 -9
cleantalk.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org
|
5 |
Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
-
Version: 5.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
-
$cleantalk_plugin_version='5.
|
11 |
$cleantalk_executed=false;
|
12 |
|
13 |
if(defined('CLEANTALK_AJAX_USE_BUFFER'))
|
@@ -35,6 +35,10 @@ if(!defined('CLEANTALK_PLUGIN_DIR')){
|
|
35 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-widget.php');
|
36 |
$ct_options=ct_get_options();
|
37 |
$ct_data=ct_get_data();
|
|
|
|
|
|
|
|
|
38 |
|
39 |
if(isset($ct_options['spam_firewall']))
|
40 |
{
|
@@ -319,19 +323,40 @@ function ct_add_nocache_script_footer()
|
|
319 |
print "\n<script type='text/javascript'>var ct_blog_home = '".get_home_url()."';</script>\n";
|
320 |
print "<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_external.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
321 |
}
|
|
|
322 |
}
|
323 |
|
324 |
function ct_add_nocache_script_header()
|
325 |
{
|
326 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
}
|
328 |
|
329 |
function ct_inject_nocache_script($html)
|
330 |
{
|
331 |
-
global $test_external_forms, $cleantalk_plugin_version;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
if(!is_admin()&&stripos($html,"</body")!==false)
|
333 |
{
|
334 |
-
//$ct_replace.="\n<script type='text/javascript'>var ajaxurl = '".admin_url('admin-ajax.php')."'
|
335 |
$ct_replace="<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_nocache.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
336 |
if($test_external_forms)
|
337 |
{
|
@@ -344,7 +369,7 @@ function ct_inject_nocache_script($html)
|
|
344 |
}
|
345 |
if(!is_admin()&&preg_match("#<head[^>]*>#i",$html)==1)
|
346 |
{
|
347 |
-
$ct_replace="\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n</script>\n";
|
348 |
$html=preg_replace("(<head[^>]*>)","$0".$ct_replace,$html,1);
|
349 |
}
|
350 |
return $html;
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org
|
5 |
Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
+
Version: 5.32
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
+
$cleantalk_plugin_version='5.32';
|
11 |
$cleantalk_executed=false;
|
12 |
|
13 |
if(defined('CLEANTALK_AJAX_USE_BUFFER'))
|
35 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-widget.php');
|
36 |
$ct_options=ct_get_options();
|
37 |
$ct_data=ct_get_data();
|
38 |
+
if(@stripos($_SERVER['REQUEST_URI'],'admin-ajax.php')!==false && sizeof($_POST)>0 && isset($_GET['action']) && $_GET['action']=='ninja_forms_ajax_submit')
|
39 |
+
{
|
40 |
+
$_POST['action']='ninja_forms_ajax_submit';
|
41 |
+
}
|
42 |
|
43 |
if(isset($ct_options['spam_firewall']))
|
44 |
{
|
323 |
print "\n<script type='text/javascript'>var ct_blog_home = '".get_home_url()."';</script>\n";
|
324 |
print "<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_external.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
325 |
}
|
326 |
+
//print "<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk-info.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
327 |
}
|
328 |
|
329 |
function ct_add_nocache_script_header()
|
330 |
{
|
331 |
+
global $ct_options;
|
332 |
+
$ct_options=ct_get_options();
|
333 |
+
if(substr($ct_options['apikey'],0,1)=='y')
|
334 |
+
{
|
335 |
+
$ct_info_flag="var ct_info_flag=true;\n";
|
336 |
+
}
|
337 |
+
else
|
338 |
+
{
|
339 |
+
$ct_info_flag="var ct_info_flag=false;\n";
|
340 |
+
}
|
341 |
+
|
342 |
+
print "\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
343 |
}
|
344 |
|
345 |
function ct_inject_nocache_script($html)
|
346 |
{
|
347 |
+
global $test_external_forms, $cleantalk_plugin_version, $ct_options;
|
348 |
+
$ct_options=ct_get_options();
|
349 |
+
if(substr($ct_options['apikey'],0,1)=='y')
|
350 |
+
{
|
351 |
+
$ct_info_flag="var ct_info_flag=true;\n";
|
352 |
+
}
|
353 |
+
else
|
354 |
+
{
|
355 |
+
$ct_info_flag="var ct_info_flag=false;\n";
|
356 |
+
}
|
357 |
if(!is_admin()&&stripos($html,"</body")!==false)
|
358 |
{
|
359 |
+
//$ct_replace.="\n<script type='text/javascript'>var ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
360 |
$ct_replace="<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_nocache.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
361 |
if($test_external_forms)
|
362 |
{
|
369 |
}
|
370 |
if(!is_admin()&&preg_match("#<head[^>]*>#i",$html)==1)
|
371 |
{
|
372 |
+
$ct_replace="\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
373 |
$html=preg_replace("(<head[^>]*>)","$0".$ct_replace,$html,1);
|
374 |
}
|
375 |
return $html;
|
inc/cleantalk-admin.php
CHANGED
@@ -124,8 +124,10 @@ function ct_admin_init()
|
|
124 |
'checkjs' => 1
|
125 |
));
|
126 |
}
|
127 |
-
if(isset($_POST['option_page'])&&$_POST['option_page']=='cleantalk_settings')
|
128 |
{
|
|
|
|
|
129 |
$ct_base_call_result = ct_base_call(array(
|
130 |
'message' => 'This message is a test to check the connection to the CleanTalk servers. ',
|
131 |
'example' => null,
|
@@ -584,11 +586,12 @@ function ct_input_apikey() {
|
|
584 |
echo "<script src='".plugins_url( 'cleantalk-admin.js', __FILE__ )."'></script>\n";
|
585 |
if (ct_valid_key($value) === false && !$is_wpmu) {
|
586 |
echo "<script>var cleantalk_good_key=false;</script>";
|
587 |
-
echo "<br /><br /><a target='__blank' class='cleantalk_manual_link' style='text-decoration:none;' href='https://cleantalk.org/register?platform=wordpress&email=".urlencode(get_option('admin_email'))."&website=".urlencode(parse_url(get_option('siteurl'),PHP_URL_HOST))."'>".__('Get the Access key', 'cleantalk')."</a>";
|
588 |
if (function_exists('curl_init') && function_exists('json_decode')) {
|
589 |
-
|
590 |
-
|
591 |
-
|
|
|
|
|
592 |
}
|
593 |
} else {
|
594 |
echo "<script>var cleantalk_good_key=true;</script>";
|
@@ -1293,6 +1296,7 @@ function ct_update_option($option_name) {
|
|
1293 |
require_once('cleantalk.class.php');
|
1294 |
}
|
1295 |
$result=sendRawRequest($url, $request);
|
|
|
1296 |
if ($result)
|
1297 |
{
|
1298 |
$result = json_decode($result, true);
|
124 |
'checkjs' => 1
|
125 |
));
|
126 |
}
|
127 |
+
if(isset($_POST['option_page'])&&$_POST['option_page']=='cleantalk_settings'&&isset($_POST['cleantalk_settings']['apikey']))
|
128 |
{
|
129 |
+
$ct_options['apikey']=$_POST['cleantalk_settings']['apikey'];
|
130 |
+
update_option('cleantalk_settings', $ct_options);
|
131 |
$ct_base_call_result = ct_base_call(array(
|
132 |
'message' => 'This message is a test to check the connection to the CleanTalk servers. ',
|
133 |
'example' => null,
|
586 |
echo "<script src='".plugins_url( 'cleantalk-admin.js', __FILE__ )."'></script>\n";
|
587 |
if (ct_valid_key($value) === false && !$is_wpmu) {
|
588 |
echo "<script>var cleantalk_good_key=false;</script>";
|
|
|
589 |
if (function_exists('curl_init') && function_exists('json_decode')) {
|
590 |
+
echo "<a target='__blank' style='' href='https://cleantalk.org/register?platform=wordpress&email=".urlencode(get_option('admin_email'))."&website=".urlencode(parse_url(get_option('siteurl'),PHP_URL_HOST))."'>".__('Click here to get access key manually', 'cleantalk')."</a>";
|
591 |
+
echo '<br /><br /><input name="get_apikey_auto" type="submit" class="cleantalk_manual_link" value="' . __('Get access key automatically', 'cleantalk') . '" />';
|
592 |
+
|
593 |
+
admin_addDescriptionsFields(sprintf(__('Admin e-mail (%s) will be used for registration', 'cleantalk'), get_option('admin_email')));
|
594 |
+
admin_addDescriptionsFields(sprintf('<a target="__blank" style="color:#BBB;" href="https://cleantalk.org/publicoffer">%s</a>', __('License agreement', 'cleantalk')));
|
595 |
}
|
596 |
} else {
|
597 |
echo "<script>var cleantalk_good_key=true;</script>";
|
1296 |
require_once('cleantalk.class.php');
|
1297 |
}
|
1298 |
$result=sendRawRequest($url, $request);
|
1299 |
+
|
1300 |
if ($result)
|
1301 |
{
|
1302 |
$result = json_decode($result, true);
|
inc/cleantalk-ajax.php
CHANGED
@@ -89,6 +89,10 @@ add_action( 'wp_ajax_tmpl_submit_form_recaptcha_validation', 'ct_ajax_hook',1 )
|
|
89 |
/**hooks for cm answers pro */
|
90 |
add_action( 'template_redirect', 'ct_ajax_hook',1 );
|
91 |
|
|
|
|
|
|
|
|
|
92 |
function ct_get_stats()
|
93 |
{
|
94 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
@@ -446,6 +450,11 @@ function ct_ajax_hook()
|
|
446 |
print $ct_result->comment;
|
447 |
die();
|
448 |
}
|
|
|
|
|
|
|
|
|
|
|
449 |
}
|
450 |
}
|
451 |
}
|
89 |
/**hooks for cm answers pro */
|
90 |
add_action( 'template_redirect', 'ct_ajax_hook',1 );
|
91 |
|
92 |
+
/* hooks for ninja forms ajax*/
|
93 |
+
add_action( 'wp_ajax_nopriv_ninja_forms_ajax_submit', 'ct_ajax_hook',1 );
|
94 |
+
add_action( 'wp_ajax_ninja_forms_ajax_submit', 'ct_ajax_hook',1 );
|
95 |
+
|
96 |
function ct_get_stats()
|
97 |
{
|
98 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
450 |
print $ct_result->comment;
|
451 |
die();
|
452 |
}
|
453 |
+
else if($_POST['action']=='ninja_forms_ajax_submit')
|
454 |
+
{
|
455 |
+
print '{"form_id":'.$_POST['_form_id'].',"errors":false,"success":{"success_msg-Success":"'.$ct_result->comment.'"}}';
|
456 |
+
die();
|
457 |
+
}
|
458 |
}
|
459 |
}
|
460 |
}
|
inc/cleantalk-comments-checkspam.js
CHANGED
@@ -183,6 +183,7 @@ jQuery("#ct_check_spam_button").click(function(){
|
|
183 |
jQuery('#ct_check_comments_table').hide();
|
184 |
jQuery('#ct_delete_all').hide();
|
185 |
jQuery('#ct_delete_checked').hide();
|
|
|
186 |
working=true;
|
187 |
ct_show_info();
|
188 |
});
|
183 |
jQuery('#ct_check_comments_table').hide();
|
184 |
jQuery('#ct_delete_all').hide();
|
185 |
jQuery('#ct_delete_checked').hide();
|
186 |
+
jQuery('#ct_preloader').show();
|
187 |
working=true;
|
188 |
ct_show_info();
|
189 |
});
|
inc/cleantalk-comments.php
CHANGED
@@ -17,6 +17,7 @@ function ct_show_checkspam_page()
|
|
17 |
<h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
|
18 |
|
19 |
<h3 id="ct_checking_status" style="text-align:center;width:90%;"></h3>
|
|
|
20 |
<?php
|
21 |
$args_spam = array(
|
22 |
'meta_query' => array(
|
@@ -277,6 +278,7 @@ function ct_ajax_check_comments()
|
|
277 |
|
278 |
$u=get_comments($args_unchecked);
|
279 |
$u=array_slice($u,0,500);
|
|
|
280 |
if(sizeof($u)>0)
|
281 |
{
|
282 |
//print_r($u);
|
@@ -299,7 +301,6 @@ function ct_ajax_check_comments()
|
|
299 |
);
|
300 |
|
301 |
$context = stream_context_create($opts);
|
302 |
-
|
303 |
$result = @file_get_contents("https://api.cleantalk.org/?method_name=spam_check&auth_key=".$ct_options['apikey'], 0, $context);
|
304 |
$result=json_decode($result);
|
305 |
if(isset($result->error_message))
|
@@ -315,7 +316,7 @@ function ct_ajax_check_comments()
|
|
315 |
if(empty($uip))continue;
|
316 |
$uim=$u[$i]->comment_author_email;
|
317 |
if(empty($uim))continue;
|
318 |
-
if($result->data->$uip->appears==1
|
319 |
{
|
320 |
add_comment_meta($u[$i]->comment_ID,'ct_marked_as_spam','1',true);
|
321 |
}
|
17 |
<h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
|
18 |
|
19 |
<h3 id="ct_checking_status" style="text-align:center;width:90%;"></h3>
|
20 |
+
<div style="text-align:center;width:100%;display:none;" id="ct_preloader"><img border=0 src="<?php print plugin_dir_url(__FILE__); ?>images/preloader.gif" /></div>
|
21 |
<?php
|
22 |
$args_spam = array(
|
23 |
'meta_query' => array(
|
278 |
|
279 |
$u=get_comments($args_unchecked);
|
280 |
$u=array_slice($u,0,500);
|
281 |
+
//$u=array_values($u);
|
282 |
if(sizeof($u)>0)
|
283 |
{
|
284 |
//print_r($u);
|
301 |
);
|
302 |
|
303 |
$context = stream_context_create($opts);
|
|
|
304 |
$result = @file_get_contents("https://api.cleantalk.org/?method_name=spam_check&auth_key=".$ct_options['apikey'], 0, $context);
|
305 |
$result=json_decode($result);
|
306 |
if(isset($result->error_message))
|
316 |
if(empty($uip))continue;
|
317 |
$uim=$u[$i]->comment_author_email;
|
318 |
if(empty($uim))continue;
|
319 |
+
if(isset($result->data->$uip) && $result->data->$uip->appears==1 || isset($result->data->$uim) && $result->data->$uim->appears==1)
|
320 |
{
|
321 |
add_comment_meta($u[$i]->comment_ID,'ct_marked_as_spam','1',true);
|
322 |
}
|
inc/cleantalk-common.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
$ct_agent_version = 'wordpress-
|
4 |
$ct_plugin_name = 'Anti-spam by CleanTalk';
|
5 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
6 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
@@ -143,6 +143,7 @@ function ct_base_call($params = array()) {
|
|
143 |
if (array_key_exists('sender_info', $params)) {
|
144 |
$sender_info = array_merge($sender_info, (array) $params['sender_info']);
|
145 |
}
|
|
|
146 |
$sender_info = json_encode($sender_info);
|
147 |
if ($sender_info === false)
|
148 |
$sender_info = '';
|
@@ -187,7 +188,7 @@ function ct_base_call($params = array()) {
|
|
187 |
);
|
188 |
}
|
189 |
|
190 |
-
if($ct_result->errno != 0)
|
191 |
{
|
192 |
if($params['checkjs']!=1)
|
193 |
{
|
@@ -277,6 +278,12 @@ function get_sender_info() {
|
|
277 |
'ssl_on' => $ct_options['ssl_on'],
|
278 |
);*/
|
279 |
$options2server=$ct_options;
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
|
281 |
return $sender_info = array(
|
282 |
'page_url' => htmlspecialchars(@$_SERVER['SERVER_NAME'].@$_SERVER['REQUEST_URI']),
|
@@ -290,6 +297,7 @@ function get_sender_info() {
|
|
290 |
'checkjs_data_cookies' => $checkjs_data_cookies,
|
291 |
'ct_options' => json_encode($options2server),
|
292 |
'fields_number' => sizeof($_POST),
|
|
|
293 |
);
|
294 |
}
|
295 |
|
1 |
<?php
|
2 |
|
3 |
+
$ct_agent_version = 'wordpress-532';
|
4 |
$ct_plugin_name = 'Anti-spam by CleanTalk';
|
5 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
6 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
143 |
if (array_key_exists('sender_info', $params)) {
|
144 |
$sender_info = array_merge($sender_info, (array) $params['sender_info']);
|
145 |
}
|
146 |
+
|
147 |
$sender_info = json_encode($sender_info);
|
148 |
if ($sender_info === false)
|
149 |
$sender_info = '';
|
188 |
);
|
189 |
}
|
190 |
|
191 |
+
if(@intval($ct_result->errno) != 0)
|
192 |
{
|
193 |
if($params['checkjs']!=1)
|
194 |
{
|
278 |
'ssl_on' => $ct_options['ssl_on'],
|
279 |
);*/
|
280 |
$options2server=$ct_options;
|
281 |
+
$js_info='';
|
282 |
+
if(isset($_COOKIE['ct_user_info']))
|
283 |
+
{
|
284 |
+
$js_info=stripslashes(rawurldecode($_COOKIE['ct_user_info']));
|
285 |
+
$js_info=mb_convert_encoding($js_info, "UTF-8", "Windows-1252");
|
286 |
+
}
|
287 |
|
288 |
return $sender_info = array(
|
289 |
'page_url' => htmlspecialchars(@$_SERVER['SERVER_NAME'].@$_SERVER['REQUEST_URI']),
|
297 |
'checkjs_data_cookies' => $checkjs_data_cookies,
|
298 |
'ct_options' => json_encode($options2server),
|
299 |
'fields_number' => sizeof($_POST),
|
300 |
+
'js_info' => $js_info,
|
301 |
);
|
302 |
}
|
303 |
|
inc/cleantalk-public.php
CHANGED
@@ -979,6 +979,7 @@ function ct_test_registration($nickname, $email, $ip){
|
|
979 |
if ($sender_info === false) {
|
980 |
$sender_info= '';
|
981 |
}
|
|
|
982 |
|
983 |
require_once('cleantalk.class.php');
|
984 |
$config = get_option('cleantalk_server');
|
@@ -1117,7 +1118,7 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1117 |
)
|
1118 |
);
|
1119 |
}
|
1120 |
-
|
1121 |
$ct_signup_done = true;
|
1122 |
|
1123 |
if ($ct_result->errno != 0 && $ct_options['notice_api_errors']) {
|
@@ -1469,6 +1470,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
|
|
1469 |
|
1470 |
if ($ct_options['contact_forms_test'] == 0)
|
1471 |
return $form_errors;
|
|
|
1472 |
|
1473 |
$checkjs = js_test('ct_checkjs', $_POST, true);
|
1474 |
|
@@ -1492,6 +1494,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
|
|
1492 |
|
1493 |
if (isset($_POST['message']))
|
1494 |
$message = $_POST['message'];
|
|
|
1495 |
|
1496 |
$ct_base_call_result = ct_base_call(array(
|
1497 |
'message' => $subject . "\n\n" . $message,
|
@@ -1728,7 +1731,8 @@ function ct_contact_form_validate () {
|
|
1728 |
isset($_POST['bbp_topic_content']) ||
|
1729 |
isset($_POST['bbp_reply_content']) ||
|
1730 |
isset($_COOKIE[LOGGED_IN_COOKIE]) ||
|
1731 |
-
isset($_POST['fscf_submitted'])
|
|
|
1732 |
) {
|
1733 |
return null;
|
1734 |
}
|
@@ -1891,7 +1895,8 @@ function ct_contact_form_validate_postdata () {
|
|
1891 |
@intval($ct_options['general_contact_forms_test'])==0 ||
|
1892 |
isset($_POST['bbp_topic_content']) ||
|
1893 |
isset($_POST['bbp_reply_content']) ||
|
1894 |
-
isset($_POST['fscf_submitted'])
|
|
|
1895 |
) {
|
1896 |
return null;
|
1897 |
}
|
979 |
if ($sender_info === false) {
|
980 |
$sender_info= '';
|
981 |
}
|
982 |
+
|
983 |
|
984 |
require_once('cleantalk.class.php');
|
985 |
$config = get_option('cleantalk_server');
|
1118 |
)
|
1119 |
);
|
1120 |
}
|
1121 |
+
|
1122 |
$ct_signup_done = true;
|
1123 |
|
1124 |
if ($ct_result->errno != 0 && $ct_options['notice_api_errors']) {
|
1470 |
|
1471 |
if ($ct_options['contact_forms_test'] == 0)
|
1472 |
return $form_errors;
|
1473 |
+
$sender_info='';
|
1474 |
|
1475 |
$checkjs = js_test('ct_checkjs', $_POST, true);
|
1476 |
|
1494 |
|
1495 |
if (isset($_POST['message']))
|
1496 |
$message = $_POST['message'];
|
1497 |
+
|
1498 |
|
1499 |
$ct_base_call_result = ct_base_call(array(
|
1500 |
'message' => $subject . "\n\n" . $message,
|
1731 |
isset($_POST['bbp_topic_content']) ||
|
1732 |
isset($_POST['bbp_reply_content']) ||
|
1733 |
isset($_COOKIE[LOGGED_IN_COOKIE]) ||
|
1734 |
+
isset($_POST['fscf_submitted']) ||
|
1735 |
+
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false
|
1736 |
) {
|
1737 |
return null;
|
1738 |
}
|
1895 |
@intval($ct_options['general_contact_forms_test'])==0 ||
|
1896 |
isset($_POST['bbp_topic_content']) ||
|
1897 |
isset($_POST['bbp_reply_content']) ||
|
1898 |
+
isset($_POST['fscf_submitted']) ||
|
1899 |
+
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false
|
1900 |
) {
|
1901 |
return null;
|
1902 |
}
|
inc/cleantalk-users-checkspam.js
CHANGED
@@ -212,6 +212,7 @@ jQuery("#ct_check_users_button").click(function(){
|
|
212 |
jQuery('#ct_check_users_table').hide();
|
213 |
jQuery('#ct_delete_all_users').hide();
|
214 |
jQuery('#ct_delete_checked_users').hide();
|
|
|
215 |
working=true;
|
216 |
ct_show_users_info();
|
217 |
});
|
212 |
jQuery('#ct_check_users_table').hide();
|
213 |
jQuery('#ct_delete_all_users').hide();
|
214 |
jQuery('#ct_delete_checked_users').hide();
|
215 |
+
jQuery('#ct_preloader').show();
|
216 |
working=true;
|
217 |
ct_show_users_info();
|
218 |
});
|
inc/cleantalk-users.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
add_action('admin_menu', 'ct_add_users_menu');
|
4 |
|
5 |
function ct_add_users_menu()
|
@@ -16,7 +15,7 @@ function ct_show_users_page()
|
|
16 |
<div class="wrap">
|
17 |
<h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
|
18 |
<?php
|
19 |
-
|
20 |
'meta_query' => array(
|
21 |
'relation' => 'AND',
|
22 |
Array(
|
@@ -30,28 +29,25 @@ function ct_show_users_page()
|
|
30 |
'compare' => 'NOT EXISTS'
|
31 |
)
|
32 |
)
|
33 |
-
)
|
34 |
-
$
|
35 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
'meta_query' => array(
|
37 |
Array(
|
38 |
'key' => 'ct_marked_as_spam',
|
39 |
'compare' => 'EXISTS'
|
40 |
)
|
41 |
)
|
42 |
-
)
|
43 |
-
$
|
44 |
-
|
45 |
-
{
|
46 |
-
?>
|
47 |
-
</div>
|
48 |
-
<?php
|
49 |
-
}
|
50 |
-
?>
|
51 |
-
<?php
|
52 |
-
//print '<button class="button" id="ct_insert_users">Insert users</button><br />';
|
53 |
?>
|
54 |
-
|
55 |
<div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
|
56 |
<?php _e("Please wait for a while. CleanTalk is checking all users via blacklist database at cleantalk.org. You will have option to delete found spam users after plugin finish.", 'cleantalk'); ?>
|
57 |
</div>
|
@@ -63,18 +59,8 @@ function ct_show_users_page()
|
|
63 |
?>
|
64 |
</div>
|
65 |
<h3 id="ct_checking_users_status" style="text-align:center;width:90%;"></h3>
|
|
|
66 |
<?php
|
67 |
-
$args_spam = array(
|
68 |
-
'meta_query' => array(
|
69 |
-
Array(
|
70 |
-
'key' => 'ct_marked_as_spam',
|
71 |
-
'compare' => 'EXISTS'
|
72 |
-
)
|
73 |
-
)
|
74 |
-
);
|
75 |
-
$cnt_spam=sizeof(get_users($args_spam));
|
76 |
-
|
77 |
-
|
78 |
$page=1;
|
79 |
if(isset($_GET['spam_page']))
|
80 |
{
|
@@ -93,7 +79,7 @@ function ct_show_users_page()
|
|
93 |
);
|
94 |
|
95 |
$c_spam=get_users($args_spam);
|
96 |
-
if($
|
97 |
{
|
98 |
?>
|
99 |
<table class="widefat fixed comments" id="ct_check_users_table">
|
@@ -168,25 +154,14 @@ function ct_show_users_page()
|
|
168 |
</tr>
|
169 |
<?php
|
170 |
}
|
171 |
-
$
|
172 |
-
'meta_query' => array(
|
173 |
-
Array(
|
174 |
-
'key' => 'ct_marked_as_spam',
|
175 |
-
'value' => '1',
|
176 |
-
'compare' => 'NUMERIC'
|
177 |
-
)
|
178 |
-
|
179 |
-
)
|
180 |
-
);
|
181 |
-
$cnt_spam=sizeof(get_users($args_spam));
|
182 |
-
if($cnt_spam>30)
|
183 |
{
|
184 |
?>
|
185 |
<tr class="comment even thread-even depth-1 approved">
|
186 |
<td colspan="4">
|
187 |
<?php
|
188 |
|
189 |
-
$pages=ceil(intval($
|
190 |
for($i=1;$i<=$pages;$i++)
|
191 |
{
|
192 |
if($i==$page)
|
@@ -214,7 +189,7 @@ function ct_show_users_page()
|
|
214 |
<br /><br />
|
215 |
<div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all users against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam users' to start.", 'cleantalk'); ?>
|
216 |
<?php
|
217 |
-
if($
|
218 |
{
|
219 |
print "<br />
|
220 |
There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.<br /><br />";
|
@@ -295,7 +270,7 @@ function ct_ajax_check_users()
|
|
295 |
}
|
296 |
else
|
297 |
{
|
298 |
-
$data[]='
|
299 |
}
|
300 |
$data[]=$u[$i]->data->user_email;
|
301 |
}
|
@@ -336,12 +311,12 @@ function ct_ajax_check_users()
|
|
336 |
{
|
337 |
$uip='127.0.0.1';
|
338 |
}
|
339 |
-
|
340 |
$uim=$u[$i]->data->user_email;
|
341 |
if(empty($uim))continue;
|
342 |
|
343 |
//print "uip: $uip, uim: $uim\n";
|
344 |
-
if($result->data->$uip->appears==1
|
345 |
{
|
346 |
update_user_meta($u[$i]->ID,'ct_marked_as_spam','1',true);
|
347 |
}
|
@@ -361,42 +336,18 @@ add_action( 'wp_ajax_ajax_info_users', 'ct_ajax_info_users' );
|
|
361 |
function ct_ajax_info_users()
|
362 |
{
|
363 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
);
|
375 |
-
|
376 |
-
$cnt_spam=sizeof(get_users($args_spam));
|
377 |
-
|
378 |
-
$args_checked1=array(
|
379 |
-
'meta_query' => array(
|
380 |
-
Array(
|
381 |
-
'key' => 'ct_hash',
|
382 |
-
'compare' => 'EXISTS'
|
383 |
-
)
|
384 |
-
)
|
385 |
-
);
|
386 |
-
$args_checked2=array(
|
387 |
-
'meta_query' => array(
|
388 |
-
Array(
|
389 |
-
'key' => 'ct_checked',
|
390 |
-
'compare' => 'EXISTS'
|
391 |
-
)
|
392 |
-
)
|
393 |
-
);
|
394 |
-
|
395 |
-
$cnt_checked1=sizeof(get_users($args_checked1));
|
396 |
-
$cnt_checked2=sizeof(get_users($args_checked2));
|
397 |
-
$cnt_checked=$cnt_checked1+$cnt_checked2;
|
398 |
|
399 |
-
printf (__("Total users %s, checked %s, found %s spam users.", 'cleantalk'), $cnt, $cnt_checked, $
|
400 |
die();
|
401 |
}
|
402 |
|
@@ -483,5 +434,5 @@ function ct_ajax_clear_users()
|
|
483 |
global $wpdb;
|
484 |
$wpdb->query("delete from $wpdb->usermeta where meta_key='ct_hash' or meta_key='ct_checked' or meta_key='ct_marked_as_spam';");
|
485 |
die();
|
486 |
-
}
|
487 |
?>
|
1 |
<?php
|
|
|
2 |
add_action('admin_menu', 'ct_add_users_menu');
|
3 |
|
4 |
function ct_add_users_menu()
|
15 |
<div class="wrap">
|
16 |
<h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
|
17 |
<?php
|
18 |
+
/*$args_unchecked = array(
|
19 |
'meta_query' => array(
|
20 |
'relation' => 'AND',
|
21 |
Array(
|
29 |
'compare' => 'NOT EXISTS'
|
30 |
)
|
31 |
)
|
32 |
+
);*/
|
33 |
+
global $wpdb;
|
34 |
+
$r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_checked' or $wpdb->usermeta.meta_key='ct_hash';");
|
35 |
+
$cnt_checked=$r[0]->cnt;
|
36 |
+
$r=$wpdb->get_results("select count(ID) as cnt from $wpdb->users;");
|
37 |
+
$cnt_all=$r[0]->cnt;
|
38 |
+
|
39 |
+
$cnt_unchecked=$cnt_all-$cnt_checked;
|
40 |
+
/*$args_spam = array(
|
41 |
'meta_query' => array(
|
42 |
Array(
|
43 |
'key' => 'ct_marked_as_spam',
|
44 |
'compare' => 'EXISTS'
|
45 |
)
|
46 |
)
|
47 |
+
);*/
|
48 |
+
$r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam';", ARRAY_A);
|
49 |
+
$cnt_spam1=$r[0]['cnt'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
?>
|
|
|
51 |
<div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
|
52 |
<?php _e("Please wait for a while. CleanTalk is checking all users via blacklist database at cleantalk.org. You will have option to delete found spam users after plugin finish.", 'cleantalk'); ?>
|
53 |
</div>
|
59 |
?>
|
60 |
</div>
|
61 |
<h3 id="ct_checking_users_status" style="text-align:center;width:90%;"></h3>
|
62 |
+
<div style="text-align:center;width:100%;display:none;" id="ct_preloader"><img border=0 src="<?php print plugin_dir_url(__FILE__); ?>images/preloader.gif" /></div>
|
63 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
$page=1;
|
65 |
if(isset($_GET['spam_page']))
|
66 |
{
|
79 |
);
|
80 |
|
81 |
$c_spam=get_users($args_spam);
|
82 |
+
if($cnt_spam1>0)
|
83 |
{
|
84 |
?>
|
85 |
<table class="widefat fixed comments" id="ct_check_users_table">
|
154 |
</tr>
|
155 |
<?php
|
156 |
}
|
157 |
+
if($cnt_spam1>30)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
{
|
159 |
?>
|
160 |
<tr class="comment even thread-even depth-1 approved">
|
161 |
<td colspan="4">
|
162 |
<?php
|
163 |
|
164 |
+
$pages=ceil(intval($cnt_spam1)/30);
|
165 |
for($i=1;$i<=$pages;$i++)
|
166 |
{
|
167 |
if($i==$page)
|
189 |
<br /><br />
|
190 |
<div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all users against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam users' to start.", 'cleantalk'); ?>
|
191 |
<?php
|
192 |
+
if($cnt_spam1>0)
|
193 |
{
|
194 |
print "<br />
|
195 |
There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.<br /><br />";
|
270 |
}
|
271 |
else
|
272 |
{
|
273 |
+
$data[]='8.8.8.8';
|
274 |
}
|
275 |
$data[]=$u[$i]->data->user_email;
|
276 |
}
|
311 |
{
|
312 |
$uip='127.0.0.1';
|
313 |
}
|
314 |
+
if($uip=='127.0.0.1')continue;
|
315 |
$uim=$u[$i]->data->user_email;
|
316 |
if(empty($uim))continue;
|
317 |
|
318 |
//print "uip: $uip, uim: $uim\n";
|
319 |
+
if(isset($result->data->$uip) && $result->data->$uip->appears==1 || isset($result->data->$uim) && $result->data->$uim->appears==1)
|
320 |
{
|
321 |
update_user_meta($u[$i]->ID,'ct_marked_as_spam','1',true);
|
322 |
}
|
336 |
function ct_ajax_info_users()
|
337 |
{
|
338 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
339 |
+
global $wpdb;
|
340 |
+
$r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_checked' or $wpdb->usermeta.meta_key='ct_hash';");
|
341 |
+
$cnt_checked=$r[0]->cnt;
|
342 |
+
$r=$wpdb->get_results("select count(ID) as cnt from $wpdb->users;");
|
343 |
+
$cnt=$r[0]->cnt;
|
344 |
+
|
345 |
+
$cnt_unchecked=$cnt_all-$cnt_checked;
|
346 |
+
|
347 |
+
$r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam';", ARRAY_A);
|
348 |
+
$cnt_spam1=$r[0]['cnt'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
|
350 |
+
printf (__("Total users %s, checked %s, found %s spam users.", 'cleantalk'), $cnt, $cnt_checked, $cnt_spam1);
|
351 |
die();
|
352 |
}
|
353 |
|
434 |
global $wpdb;
|
435 |
$wpdb->query("delete from $wpdb->usermeta where meta_key='ct_hash' or meta_key='ct_checked' or meta_key='ct_marked_as_spam';");
|
436 |
die();
|
437 |
+
}
|
438 |
?>
|
inc/cleantalk_nocache.js
CHANGED
@@ -130,4 +130,80 @@ if(ct_nocache_executed==undefined)
|
|
130 |
//alert('set!');
|
131 |
sendRequest(ct_ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
132 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
}
|
130 |
//alert('set!');
|
131 |
sendRequest(ct_ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
132 |
}
|
133 |
+
|
134 |
+
if(ct_info_flag)
|
135 |
+
{
|
136 |
+
|
137 |
+
var cleantalk_user_info={};
|
138 |
+
|
139 |
+
var cleantalk_screen_info={};
|
140 |
+
for(var prop in screen)
|
141 |
+
{
|
142 |
+
if (navigator[prop] instanceof Object || screen[prop]==='') continue
|
143 |
+
cleantalk_screen_info[prop]=screen[prop];
|
144 |
+
}
|
145 |
+
|
146 |
+
cleantalk_user_info.screen=cleantalk_screen_info;
|
147 |
+
|
148 |
+
var cleantalk_plugins=Array();
|
149 |
+
var prev
|
150 |
+
var cnt=0;
|
151 |
+
for(var i=0;i<navigator.plugins.length;i++)
|
152 |
+
{
|
153 |
+
var plugin = navigator.plugins[i];
|
154 |
+
var plugin = plugin.name+" "+(plugin.version || '')
|
155 |
+
if (prev == plugin ) continue;
|
156 |
+
cleantalk_plugins[cnt]=plugin;
|
157 |
+
cnt++;
|
158 |
+
prev = plugin
|
159 |
+
}
|
160 |
+
cleantalk_user_info.plugins=cleantalk_plugins;
|
161 |
+
|
162 |
+
cleantalk_user_info.timezone_offset = -new Date().getTimezoneOffset()/60;
|
163 |
+
cleantalk_user_info.datetime = Math.round((new Date().getTime())/1000);
|
164 |
+
|
165 |
+
cleantalk_user_info.browser_x=document.documentElement.clientWidth;
|
166 |
+
cleantalk_user_info.browser_y=document.documentElement.clientHeight;
|
167 |
+
|
168 |
+
var ua = navigator.userAgent.toLowerCase();
|
169 |
+
var flashInstalled = 0;
|
170 |
+
if (typeof(navigator.plugins)!="undefined"&&typeof(navigator.plugins["Shockwave Flash"])=="object")
|
171 |
+
{
|
172 |
+
flashInstalled = 1;
|
173 |
+
}
|
174 |
+
else if (typeof window.ActiveXObject != "undefined")
|
175 |
+
{
|
176 |
+
try
|
177 |
+
{
|
178 |
+
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))
|
179 |
+
{
|
180 |
+
flashInstalled = 1;
|
181 |
+
}
|
182 |
+
} catch(e) {};
|
183 |
+
};
|
184 |
+
|
185 |
+
cleantalk_user_info.is_flash=flashInstalled;
|
186 |
+
|
187 |
+
isVisitedMain=-1;
|
188 |
+
if(location.href=='http://'+location.hostname+'/' || location.href=='https://'+location.hostname+'/')
|
189 |
+
{
|
190 |
+
isVisitedMain=1;
|
191 |
+
setTimeout(function() { document.cookie = "ct_visited_main = 1; path = /;"}, 500);
|
192 |
+
}
|
193 |
+
|
194 |
+
|
195 |
+
ct_visited_main = ct_getCookie('ct_visited_main');
|
196 |
+
if(ct_visited_main==undefined && isVisitedMain==-1)
|
197 |
+
{
|
198 |
+
isVisitedMain=0;
|
199 |
+
}
|
200 |
+
else
|
201 |
+
{
|
202 |
+
isVisitedMain=1;
|
203 |
+
}
|
204 |
+
|
205 |
+
cleantalk_user_info.is_main=isVisitedMain;
|
206 |
+
|
207 |
+
setTimeout(function() { document.cookie = "ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /;"}, 500);
|
208 |
+
}
|
209 |
}
|
inc/images/preloader.gif
ADDED
Binary file
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
|
2 |
Contributors: znaeff, shagimuratov, vlad-cleantalk
|
3 |
-
Tags: anti-spam, antispam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spam, spammers, spammy, woocommerce, wordpress spam, booking, order, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, akismet, plugin, contact, recaptcha, google captcha, math, security, login, blacklist, cache, prevent, wordpress, User Frontend, bulk delete, bulk remove, cloudflare, widget, review, auth forms, firewall, ddos, cleantalk, mailpoet
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 5.
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -30,7 +30,7 @@ No CAPTCHA, no questions, no counting animals, no puzzles, no math and no spam b
|
|
30 |
Supports native WordPress, JetPack comments and any other comments plugins. Plugin moves spam comments to SPAM folder or set option to silent ban spam comments.
|
31 |
|
32 |
= Spam bots registrations filter =
|
33 |
-
Filers spam bots on registrations forms WordPress, BuddyPress, bbPress, S2Member, WooCommerce and any other registrations plugins.
|
34 |
|
35 |
= Protection against contact forms spam =
|
36 |
Plugin is tested and ready to protect against spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing pages, Gravity forms and any themes/custom contact forms.
|
@@ -96,7 +96,7 @@ We have developed antispam for WordPress that would provide **maximum protection
|
|
96 |
|
97 |
The anti-spam method offered by CleanTalk allows to switch from the methods that trouble the communication (CAPTCHA, question-answer etc.) to a more convenient one.
|
98 |
|
99 |
-
CleanTalk is premium anti-spam service for WordPress, please look at the <a href="http://cleantalk.org/price">pricing</a>. The plugin works with cloud anti spam service CleanTalk. We try to provide anti-spam service at the highest level and we can not afford to offer a free version of our service, as this will immediately affect the quality of providing anti-spam protection. Paying for a year of anti-spam service, you save a lot more and get:
|
100 |
|
101 |
* Up to 99.998% protection against spam bots.
|
102 |
* Time and resources saving.
|
@@ -215,7 +215,7 @@ The plugin has several options to detect spam bots and humans. If you just post
|
|
215 |
The comments will be passed, becuase the plugin detect sender as a human. So, use special email *stop_email@example.com* to test anti-spam or wait a few days to see how the plugin works.
|
216 |
|
217 |
= Is it free or paid? =
|
218 |
-
The plugin is free. But the plugin uses
|
219 |
|
220 |
= Can I use CleanTalk with cache plugins? =
|
221 |
Anti-spam by CleanTalk doesn't use static HTML code into templates, so all anti-spam functions works correctly with any WordPress cache plugins.
|
@@ -264,7 +264,7 @@ Yes, you can. Add in your wp-config.php file, before defining database constants
|
|
264 |
|
265 |
$cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
|
266 |
|
267 |
-
Now
|
268 |
|
269 |
= How to test Spam FireWall? =
|
270 |
Use special IP 10.10.10.10 in URL to test Spam FireWall. For example,
|
@@ -374,10 +374,17 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
374 |
1. CleanTalk works faster than most of the other anti-spam plugins.
|
375 |
|
376 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
= 5.31 2015-11-11 =
|
378 |
* Improved backend performance
|
379 |
* Fixed counter of approved/blocked spam attacks
|
380 |
-
* Fixed Spam
|
381 |
|
382 |
= 5.30 2015-11-05 =
|
383 |
* Improved anti-spam checking
|
@@ -397,7 +404,7 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
397 |
= 5.28 2015-10-16 =
|
398 |
* Fixed errors in anti-spam checking
|
399 |
* Restored options for spam checking registrations and cpmmon contact forms
|
400 |
-
* Improved
|
401 |
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
402 |
|
403 |
= 5.27 2015-10-13 =
|
@@ -872,6 +879,13 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
872 |
* First version
|
873 |
|
874 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
875 |
= 5.31 2015-11-11 =
|
876 |
* Improved backend performance
|
877 |
* Fixed counter of approved/blocked spam attacks
|
1 |
=== Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
|
2 |
Contributors: znaeff, shagimuratov, vlad-cleantalk
|
3 |
+
Tags: anti-spam, antispam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spam, spammers, spammy, woocommerce, wordpress spam, booking, order, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, akismet, plugin, contact, recaptcha, google captcha, math, security, login, blacklist, cache, prevent, wordpress, User Frontend, bulk delete, bulk remove, cloudflare, widget, review, auth forms, firewall, ddos, cleantalk, mailpoet, profile builder, comment spam, registration spam, spam comments, comment moderation
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 4.4
|
6 |
+
Stable tag: 5.32
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
30 |
Supports native WordPress, JetPack comments and any other comments plugins. Plugin moves spam comments to SPAM folder or set option to silent ban spam comments.
|
31 |
|
32 |
= Spam bots registrations filter =
|
33 |
+
Filers spam bots on registrations forms WordPress, BuddyPress, bbPress, S2Member, WooCommerce, Profile builder and any other registrations plugins.
|
34 |
|
35 |
= Protection against contact forms spam =
|
36 |
Plugin is tested and ready to protect against spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing pages, Gravity forms and any themes/custom contact forms.
|
96 |
|
97 |
The anti-spam method offered by CleanTalk allows to switch from the methods that trouble the communication (CAPTCHA, question-answer etc.) to a more convenient one.
|
98 |
|
99 |
+
CleanTalk is premium anti-spam service for WordPress, please look at the <a href="http://cleantalk.org/price">pricing</a>. The plugin works with cloud anti spam service CleanTalk. CleanTalk has free trial. We try to provide anti-spam service at the highest level and we can not afford to offer a free version of our service, as this will immediately affect the quality of providing anti-spam protection. Paying for a year of anti-spam service, you save a lot more and get:
|
100 |
|
101 |
* Up to 99.998% protection against spam bots.
|
102 |
* Time and resources saving.
|
215 |
The comments will be passed, becuase the plugin detect sender as a human. So, use special email *stop_email@example.com* to test anti-spam or wait a few days to see how the plugin works.
|
216 |
|
217 |
= Is it free or paid? =
|
218 |
+
The plugin is free. But the plugin uses CleanTalk cloud service to filter spam bots. You have to register an account and you have 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.
|
219 |
|
220 |
= Can I use CleanTalk with cache plugins? =
|
221 |
Anti-spam by CleanTalk doesn't use static HTML code into templates, so all anti-spam functions works correctly with any WordPress cache plugins.
|
264 |
|
265 |
$cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
|
266 |
|
267 |
+
Now all fields in your submissions with keys named 'key1', 'key2' or 'key3' will be excluded from spam checking.
|
268 |
|
269 |
= How to test Spam FireWall? =
|
270 |
Use special IP 10.10.10.10 in URL to test Spam FireWall. For example,
|
374 |
1. CleanTalk works faster than most of the other anti-spam plugins.
|
375 |
|
376 |
== Changelog ==
|
377 |
+
= 5.32 2015-11-26 =
|
378 |
+
* Added improvements for manual spam detection
|
379 |
+
* Fixed errors in backend
|
380 |
+
* Fixed bulk users antispam checking
|
381 |
+
* Added indicator for bulk spam checking
|
382 |
+
* Added "Get access key automatically" button
|
383 |
+
|
384 |
= 5.31 2015-11-11 =
|
385 |
* Improved backend performance
|
386 |
* Fixed counter of approved/blocked spam attacks
|
387 |
+
* Fixed Spam FireWall logging
|
388 |
|
389 |
= 5.30 2015-11-05 =
|
390 |
* Improved anti-spam checking
|
404 |
= 5.28 2015-10-16 =
|
405 |
* Fixed errors in anti-spam checking
|
406 |
* Restored options for spam checking registrations and cpmmon contact forms
|
407 |
+
* Improved spam protection
|
408 |
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
409 |
|
410 |
= 5.27 2015-10-13 =
|
879 |
* First version
|
880 |
|
881 |
== Upgrade Notice ==
|
882 |
+
= 5.32 2015-11-26 =
|
883 |
+
* Added improvements for manual spam detection
|
884 |
+
* Fixed errors in backend
|
885 |
+
* Fixed bulk users antispam checking
|
886 |
+
* Added indicator for bulk spam checking
|
887 |
+
* Added "Get access key automatically" feature
|
888 |
+
|
889 |
= 5.31 2015-11-11 =
|
890 |
* Improved backend performance
|
891 |
* Fixed counter of approved/blocked spam attacks
|