Version Description
2015-09-01 = * Fixed BuddyPress profile search false positivities of anti-spam protection. * Some interface fixes of bulk users & comments spam checking
Download this release
Release Info
Developer | shagimuratov |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.23 |
Comparing to | |
See all releases |
Code changes from version 5.22 to 5.23
- cleantalk-admin.php +1 -1
- cleantalk-comments-checkspam.js +59 -0
- cleantalk-comments.php +67 -63
- cleantalk-common.php +3 -3
- cleantalk-public.php +2 -1
- cleantalk-users-checkspam.js +62 -0
- cleantalk-users.php +18 -14
- cleantalk.php +3 -3
- readme.txt +18 -3
cleantalk-admin.php
CHANGED
@@ -275,7 +275,7 @@ else
|
|
275 |
add_settings_section('cleantalk_settings_main', __($ct_plugin_name, 'cleantalk'), 'ct_section_settings_main', 'cleantalk');
|
276 |
add_settings_section('cleantalk_settings_state', "<hr>".__('Protection is active for:', 'cleantalk'), 'ct_section_settings_state', 'cleantalk');
|
277 |
//add_settings_section('cleantalk_settings_autodel', "<hr>", 'ct_section_settings_autodel', 'cleantalk');
|
278 |
-
add_settings_section('cleantalk_settings_anti_spam', "<hr>Check existing comments and users <br /><br />$buttons_html<hr>".__('Advanced settings', 'cleantalk'), 'ct_section_settings_anti_spam', 'cleantalk');
|
279 |
add_settings_field('cleantalk_apikey', __('Access key', 'cleantalk'), 'ct_input_apikey', 'cleantalk', 'cleantalk_settings_main');
|
280 |
add_settings_field('cleantalk_remove_old_spam', __('Automatically delete spam comments', 'cleantalk'), 'ct_input_remove_old_spam', 'cleantalk', 'cleantalk_settings_anti_spam');
|
281 |
|
275 |
add_settings_section('cleantalk_settings_main', __($ct_plugin_name, 'cleantalk'), 'ct_section_settings_main', 'cleantalk');
|
276 |
add_settings_section('cleantalk_settings_state', "<hr>".__('Protection is active for:', 'cleantalk'), 'ct_section_settings_state', 'cleantalk');
|
277 |
//add_settings_section('cleantalk_settings_autodel', "<hr>", 'ct_section_settings_autodel', 'cleantalk');
|
278 |
+
add_settings_section('cleantalk_settings_anti_spam', "<hr>Check existing comments and users <br /><br />$buttons_html<hr></h3><h3>".__('Advanced settings', 'cleantalk'), 'ct_section_settings_anti_spam', 'cleantalk');
|
279 |
add_settings_field('cleantalk_apikey', __('Access key', 'cleantalk'), 'ct_input_apikey', 'cleantalk', 'cleantalk_settings_main');
|
280 |
add_settings_field('cleantalk_remove_old_spam', __('Automatically delete spam comments', 'cleantalk'), 'ct_input_remove_old_spam', 'cleantalk', 'cleantalk_settings_anti_spam');
|
281 |
|
cleantalk-comments-checkspam.js
CHANGED
@@ -10,6 +10,29 @@ String.prototype.format = String.prototype.f = function ()
|
|
10 |
return args[n];
|
11 |
});
|
12 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
function ct_clear_comments()
|
15 |
{
|
@@ -157,6 +180,9 @@ jQuery("#ct_check_spam_button").click(function(){
|
|
157 |
});
|
158 |
jQuery("#ct_check_spam_button").click(function(){
|
159 |
jQuery('#ct_checking_status').html('');
|
|
|
|
|
|
|
160 |
working=true;
|
161 |
ct_show_info();
|
162 |
});
|
@@ -172,6 +198,39 @@ jQuery("#ct_delete_all").click(function(){
|
|
172 |
jQuery("#ct_delete_checked").click(function(){
|
173 |
ct_delete_checked();
|
174 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
jQuery(document).ready(function(){
|
177 |
working=true;
|
10 |
return args[n];
|
11 |
});
|
12 |
};
|
13 |
+
var close_animate=true;
|
14 |
+
function animate_comment(to,id)
|
15 |
+
{
|
16 |
+
if(close_animate)
|
17 |
+
{
|
18 |
+
if(to==0.3)
|
19 |
+
{
|
20 |
+
jQuery('#comment-'+id).fadeTo(200,to,function(){
|
21 |
+
animate_comment(1,id)
|
22 |
+
});
|
23 |
+
}
|
24 |
+
else
|
25 |
+
{
|
26 |
+
jQuery('#comment-'+id).fadeTo(200,to,function(){
|
27 |
+
animate_comment(0.3,id)
|
28 |
+
});
|
29 |
+
}
|
30 |
+
}
|
31 |
+
else
|
32 |
+
{
|
33 |
+
close_animate=true;
|
34 |
+
}
|
35 |
+
}
|
36 |
|
37 |
function ct_clear_comments()
|
38 |
{
|
180 |
});
|
181 |
jQuery("#ct_check_spam_button").click(function(){
|
182 |
jQuery('#ct_checking_status').html('');
|
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 |
});
|
198 |
jQuery("#ct_delete_checked").click(function(){
|
199 |
ct_delete_checked();
|
200 |
});
|
201 |
+
jQuery(".cleantalk_comment").mouseover(function(){
|
202 |
+
id = jQuery(this).attr("data-id");
|
203 |
+
jQuery("#cleantalk_delete_"+id).show();
|
204 |
+
});
|
205 |
+
jQuery(".cleantalk_comment").mouseout(function(){
|
206 |
+
id = jQuery(this).attr("data-id");
|
207 |
+
jQuery("#cleantalk_delete_"+id).hide();
|
208 |
+
});
|
209 |
+
jQuery(".cleantalk_delete_button").click(function(){
|
210 |
+
id = jQuery(this).attr("data-id");
|
211 |
+
ids=Array();
|
212 |
+
ids[0]=id;
|
213 |
+
var data = {
|
214 |
+
'action': 'ajax_delete_checked',
|
215 |
+
'security': ajax_nonce,
|
216 |
+
'ids':ids
|
217 |
+
};
|
218 |
+
jQuery.ajax({
|
219 |
+
type: "POST",
|
220 |
+
url: ajaxurl,
|
221 |
+
data: data,
|
222 |
+
success: function(msg){
|
223 |
+
close_animate=false;
|
224 |
+
jQuery("#comment-"+id).hide();
|
225 |
+
jQuery("#comment-"+id).remove();
|
226 |
+
close_animate=true;
|
227 |
+
}
|
228 |
+
});
|
229 |
+
});
|
230 |
+
jQuery(".cleantalk_delete_button").click(function(){
|
231 |
+
id = jQuery(this).attr("data-id");
|
232 |
+
animate_comment(0.3, id);
|
233 |
+
});
|
234 |
|
235 |
jQuery(document).ready(function(){
|
236 |
working=true;
|
cleantalk-comments.php
CHANGED
@@ -15,64 +15,7 @@ function ct_show_checkspam_page()
|
|
15 |
?>
|
16 |
<div class="wrap">
|
17 |
<h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
|
18 |
-
<?php
|
19 |
-
$args_unchecked = array(
|
20 |
-
'meta_query' => array(
|
21 |
-
'relation' => 'AND',
|
22 |
-
Array(
|
23 |
-
'key' => 'ct_checked',
|
24 |
-
'value' => '1',
|
25 |
-
'compare' => 'NOT EXISTS'
|
26 |
-
),
|
27 |
-
Array(
|
28 |
-
'key' => 'ct_hash',
|
29 |
-
'value' => '1',
|
30 |
-
'compare' => 'NOT EXISTS'
|
31 |
-
)
|
32 |
-
),
|
33 |
-
'count'=>true
|
34 |
-
);
|
35 |
-
$cnt_unchecked=get_comments($args_unchecked);
|
36 |
|
37 |
-
$args_spam = array(
|
38 |
-
'meta_query' => array(
|
39 |
-
Array(
|
40 |
-
'key' => 'ct_marked_as_spam',
|
41 |
-
'compare' => 'EXISTS'
|
42 |
-
)
|
43 |
-
),
|
44 |
-
'count'=>true
|
45 |
-
);
|
46 |
-
$cnt_spam=get_comments($args_spam);
|
47 |
-
//if($cnt_unchecked>0)
|
48 |
-
{
|
49 |
-
?>
|
50 |
-
<button class="button" id="ct_check_spam_button"><?php _e("Find spam comments", 'cleantalk'); ?></button><br /><br />
|
51 |
-
<div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all not spam comments against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam comments' to start.", 'cleantalk'); ?>
|
52 |
-
<?php
|
53 |
-
if($cnt_spam>0)
|
54 |
-
{
|
55 |
-
print "<br />
|
56 |
-
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.";
|
57 |
-
}
|
58 |
-
?></div>
|
59 |
-
<?php
|
60 |
-
}
|
61 |
-
?>
|
62 |
-
<?php
|
63 |
-
if($_SERVER['REMOTE_ADDR']=='127.0.0.1')print '<button class="button" id="ct_insert_comments">Insert comments</button><br />';
|
64 |
-
?>
|
65 |
-
|
66 |
-
<div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
|
67 |
-
<?php _e("Please wait for a while. CleanTalk is checking all approved and pending comments via blacklist database at cleantalk.org. You will have option to delete found spam comments after plugin finish.", 'cleantalk'); ?>
|
68 |
-
</div>
|
69 |
-
<div id="ct_deleting_message" style="display:none;">
|
70 |
-
<?php _e("Please wait for a while. CleanTalk is deleting spam comments. Comments left: ", 'cleantalk'); ?> <span id="cleantalk_comments_left"></span>
|
71 |
-
</div>
|
72 |
-
<div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
|
73 |
-
<?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk');
|
74 |
-
?>
|
75 |
-
</div>
|
76 |
<h3 id="ct_checking_status" style="text-align:center;width:90%;"></h3>
|
77 |
<?php
|
78 |
$args_spam = array(
|
@@ -112,7 +55,7 @@ function ct_show_checkspam_page()
|
|
112 |
<thead>
|
113 |
<th scope="col" id="cb" class="manage-column column-cb check-column">
|
114 |
<label class="screen-reader-text" for="cb-select-all-1">Select All</label>
|
115 |
-
<input id="cb-select-all-1" type="checkbox"/>
|
116 |
</th>
|
117 |
<th scope="col" id="author" class="manage-column column-slug"><?php print _e('Author');?></th>
|
118 |
<th scope="col" id="comment" class="manage-column column-comment"><?php print _x( 'Comment', 'column name' );;?></th>
|
@@ -123,7 +66,7 @@ function ct_show_checkspam_page()
|
|
123 |
for($i=0;$i<sizeof($c_spam);$i++)
|
124 |
{
|
125 |
?>
|
126 |
-
<tr id="comment-<?php print $c_spam[$i]->comment_ID; ?>" class="comment even thread-even depth-1 approved">
|
127 |
<th scope="row" class="check-column">
|
128 |
<label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->comment_ID; ?>">Select comment</label>
|
129 |
<input id="cb-select-<?php print $c_spam[$i]->comment_ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
|
@@ -152,10 +95,13 @@ function ct_show_checkspam_page()
|
|
152 |
<p>
|
153 |
<?php print $c_spam[$i]->comment_content; ?>
|
154 |
</p>
|
|
|
|
|
|
|
155 |
</td>
|
156 |
<td class="response column-response">
|
157 |
-
<div
|
158 |
-
<span
|
159 |
<a href="http://ct_wp/wp-admin/post.php?post=<?php print $c_spam[$i]->comment_post_ID; ?>&action=edit"><?php print get_the_title($c_spam[$i]->comment_post_ID); ?></a>
|
160 |
<br/>
|
161 |
<a href="http://ct_wp/wp-admin/edit-comments.php?p=<?php print $c_spam[$i]->comment_post_ID; ?>" class="post-com-count">
|
@@ -210,11 +156,69 @@ function ct_show_checkspam_page()
|
|
210 |
?>
|
211 |
</tbody>
|
212 |
</table>
|
213 |
-
<button class="button" id="ct_delete_all"><?php _e('Delete all
|
214 |
-
<button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button
|
215 |
<?php
|
216 |
}
|
217 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
</div>
|
219 |
<br /><a href="options-general.php?page=cleantalk">«<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
|
220 |
<?php
|
15 |
?>
|
16 |
<div class="wrap">
|
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(
|
55 |
<thead>
|
56 |
<th scope="col" id="cb" class="manage-column column-cb check-column">
|
57 |
<label class="screen-reader-text" for="cb-select-all-1">Select All</label>
|
58 |
+
<input id="cb-select-all-1" type="checkbox" style="margin-top:0;"/>
|
59 |
</th>
|
60 |
<th scope="col" id="author" class="manage-column column-slug"><?php print _e('Author');?></th>
|
61 |
<th scope="col" id="comment" class="manage-column column-comment"><?php print _x( 'Comment', 'column name' );;?></th>
|
66 |
for($i=0;$i<sizeof($c_spam);$i++)
|
67 |
{
|
68 |
?>
|
69 |
+
<tr id="comment-<?php print $c_spam[$i]->comment_ID; ?>" class="comment even thread-even depth-1 approved cleantalk_comment" data-id="<?php print $c_spam[$i]->comment_ID; ?>">
|
70 |
<th scope="row" class="check-column">
|
71 |
<label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->comment_ID; ?>">Select comment</label>
|
72 |
<input id="cb-select-<?php print $c_spam[$i]->comment_ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
|
95 |
<p>
|
96 |
<?php print $c_spam[$i]->comment_content; ?>
|
97 |
</p>
|
98 |
+
<div style="height:16px;">
|
99 |
+
<a href="#" class="cleantalk_delete_button" id="cleantalk_delete_<?php print $c_spam[$i]->comment_ID; ?>" data-id="<?php print $c_spam[$i]->comment_ID; ?>" style="color:#a00;display:none;" onclick="return false;">Delete</a>
|
100 |
+
</div>
|
101 |
</td>
|
102 |
<td class="response column-response">
|
103 |
+
<div>
|
104 |
+
<span>
|
105 |
<a href="http://ct_wp/wp-admin/post.php?post=<?php print $c_spam[$i]->comment_post_ID; ?>&action=edit"><?php print get_the_title($c_spam[$i]->comment_post_ID); ?></a>
|
106 |
<br/>
|
107 |
<a href="http://ct_wp/wp-admin/edit-comments.php?p=<?php print $c_spam[$i]->comment_post_ID; ?>" class="post-com-count">
|
156 |
?>
|
157 |
</tbody>
|
158 |
</table>
|
159 |
+
<button class="button" id="ct_delete_all"><?php _e('Delete all comments from the list'); ?></button>
|
160 |
+
<button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button><br /><br />
|
161 |
<?php
|
162 |
}
|
163 |
?>
|
164 |
+
<?php
|
165 |
+
$args_unchecked = array(
|
166 |
+
'meta_query' => array(
|
167 |
+
'relation' => 'AND',
|
168 |
+
Array(
|
169 |
+
'key' => 'ct_checked',
|
170 |
+
'value' => '1',
|
171 |
+
'compare' => 'NOT EXISTS'
|
172 |
+
),
|
173 |
+
Array(
|
174 |
+
'key' => 'ct_hash',
|
175 |
+
'value' => '1',
|
176 |
+
'compare' => 'NOT EXISTS'
|
177 |
+
)
|
178 |
+
),
|
179 |
+
'count'=>true
|
180 |
+
);
|
181 |
+
$cnt_unchecked=get_comments($args_unchecked);
|
182 |
+
|
183 |
+
$args_spam = array(
|
184 |
+
'meta_query' => array(
|
185 |
+
Array(
|
186 |
+
'key' => 'ct_marked_as_spam',
|
187 |
+
'compare' => 'EXISTS'
|
188 |
+
)
|
189 |
+
),
|
190 |
+
'count'=>true
|
191 |
+
);
|
192 |
+
$cnt_spam=get_comments($args_spam);
|
193 |
+
//if($cnt_unchecked>0)
|
194 |
+
{
|
195 |
+
?>
|
196 |
+
<div id="ct_info_message"><?php _e("Anti-spam by CleanTalk checks all not spam comments against blacklists database and show you senders that have spam activity on other websites.", 'cleantalk'); ?>
|
197 |
+
<?php
|
198 |
+
if($cnt_spam>0)
|
199 |
+
{
|
200 |
+
print "<br />
|
201 |
+
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.";
|
202 |
+
}
|
203 |
+
?></div>
|
204 |
+
<?php
|
205 |
+
}
|
206 |
+
?>
|
207 |
+
<?php
|
208 |
+
if($_SERVER['REMOTE_ADDR']=='127.0.0.1')print '<button class="button" id="ct_insert_comments">Insert comments</button><br />';
|
209 |
+
?>
|
210 |
+
|
211 |
+
<div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
|
212 |
+
<?php _e("Please wait for a while. CleanTalk is checking all approved and pending comments via blacklist database at cleantalk.org. You will have option to delete found spam comments after plugin finish.", 'cleantalk'); ?>
|
213 |
+
</div>
|
214 |
+
<div id="ct_deleting_message" style="display:none;">
|
215 |
+
<?php _e("Please wait for a while. CleanTalk is deleting spam comments. Comments left: ", 'cleantalk'); ?> <span id="cleantalk_comments_left"></span>
|
216 |
+
</div>
|
217 |
+
<div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
|
218 |
+
<?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk');
|
219 |
+
?>
|
220 |
+
</div><br />
|
221 |
+
<button class="button" id="ct_check_spam_button"><?php _e("Check for spam again", 'cleantalk'); ?></button><br /><br />
|
222 |
</div>
|
223 |
<br /><a href="options-general.php?page=cleantalk">«<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
|
224 |
<?php
|
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';
|
@@ -647,7 +647,7 @@ $ct_check_post_result=false;
|
|
647 |
function ct_check_array_keys_loop($key)
|
648 |
{
|
649 |
global $ct_check_post_result;
|
650 |
-
$strict=Array('pass','login','pwd');
|
651 |
for($i=0;$i<sizeof($strict);$i++)
|
652 |
{
|
653 |
if(stripos($key,$strict[$i])!==false)
|
@@ -694,4 +694,4 @@ function check_url_exclusions()
|
|
694 |
}
|
695 |
return $result;
|
696 |
}
|
697 |
-
?>
|
1 |
<?php
|
2 |
|
3 |
+
$ct_agent_version = 'wordpress-523';
|
4 |
$ct_plugin_name = 'Anti-spam by CleanTalk';
|
5 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
6 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
647 |
function ct_check_array_keys_loop($key)
|
648 |
{
|
649 |
global $ct_check_post_result;
|
650 |
+
$strict=Array('pass','login','pwd','members_search_submit');
|
651 |
for($i=0;$i<sizeof($strict);$i++)
|
652 |
{
|
653 |
if(stripos($key,$strict[$i])!==false)
|
694 |
}
|
695 |
return $result;
|
696 |
}
|
697 |
+
?>
|
cleantalk-public.php
CHANGED
@@ -1664,7 +1664,8 @@ function ct_contact_form_validate () {
|
|
1664 |
strpos($_SERVER['REQUEST_URI'],'wp-login.php')!==false||
|
1665 |
strpos($_SERVER['REQUEST_URI'],'wp-comments-post.php')!==false ||
|
1666 |
@strpos($_SERVER['HTTP_REFERER'],'/wp-admin/')!==false ||
|
1667 |
-
check_url_exclusions()
|
|
|
1668 |
) {
|
1669 |
return null;
|
1670 |
}
|
1664 |
strpos($_SERVER['REQUEST_URI'],'wp-login.php')!==false||
|
1665 |
strpos($_SERVER['REQUEST_URI'],'wp-comments-post.php')!==false ||
|
1666 |
@strpos($_SERVER['HTTP_REFERER'],'/wp-admin/')!==false ||
|
1667 |
+
check_url_exclusions() ||
|
1668 |
+
ct_check_array_keys($_POST)
|
1669 |
) {
|
1670 |
return null;
|
1671 |
}
|
cleantalk-users-checkspam.js
CHANGED
@@ -11,6 +11,30 @@ String.prototype.format = String.prototype.f = function ()
|
|
11 |
});
|
12 |
};
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
function ct_clear_users()
|
15 |
{
|
16 |
var data = {
|
@@ -149,6 +173,33 @@ function ct_delete_checked_users()
|
|
149 |
});
|
150 |
return false;
|
151 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
jQuery("#ct_check_users_button").click(function(){
|
153 |
jQuery('#ct_working_message').show();
|
154 |
jQuery('#ct_check_users_button').hide();
|
@@ -158,6 +209,9 @@ jQuery("#ct_check_users_button").click(function(){
|
|
158 |
});
|
159 |
jQuery("#ct_check_users_button").click(function(){
|
160 |
jQuery('#ct_checking_users_status').html('');
|
|
|
|
|
|
|
161 |
working=true;
|
162 |
ct_show_users_info();
|
163 |
});
|
@@ -173,6 +227,14 @@ jQuery("#ct_delete_all_users").click(function(){
|
|
173 |
jQuery("#ct_delete_checked_users").click(function(){
|
174 |
ct_delete_checked_users();
|
175 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
|
177 |
jQuery(document).ready(function(){
|
178 |
working=true;
|
11 |
});
|
12 |
};
|
13 |
|
14 |
+
var close_animate=true;
|
15 |
+
function animate_comment(to,id)
|
16 |
+
{
|
17 |
+
if(close_animate)
|
18 |
+
{
|
19 |
+
if(to==0.3)
|
20 |
+
{
|
21 |
+
jQuery('#comment-'+id).fadeTo(200,to,function(){
|
22 |
+
animate_comment(1,id)
|
23 |
+
});
|
24 |
+
}
|
25 |
+
else
|
26 |
+
{
|
27 |
+
jQuery('#comment-'+id).fadeTo(200,to,function(){
|
28 |
+
animate_comment(0.3,id)
|
29 |
+
});
|
30 |
+
}
|
31 |
+
}
|
32 |
+
else
|
33 |
+
{
|
34 |
+
close_animate=true;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
function ct_clear_users()
|
39 |
{
|
40 |
var data = {
|
173 |
});
|
174 |
return false;
|
175 |
}
|
176 |
+
|
177 |
+
jQuery(".cleantalk_delete_user_button").click(function(){
|
178 |
+
id = jQuery(this).attr("data-id");
|
179 |
+
ids=Array();
|
180 |
+
ids[0]=id;
|
181 |
+
var data = {
|
182 |
+
'action': 'ajax_delete_checked_users',
|
183 |
+
'security': ajax_nonce,
|
184 |
+
'ids':ids
|
185 |
+
};
|
186 |
+
jQuery.ajax({
|
187 |
+
type: "POST",
|
188 |
+
url: ajaxurl,
|
189 |
+
data: data,
|
190 |
+
success: function(msg){
|
191 |
+
close_animate=false;
|
192 |
+
jQuery("#comment-"+id).hide();
|
193 |
+
jQuery("#comment-"+id).remove();
|
194 |
+
close_animate=true;
|
195 |
+
}
|
196 |
+
});
|
197 |
+
});
|
198 |
+
jQuery(".cleantalk_delete_user_button").click(function(){
|
199 |
+
id = jQuery(this).attr("data-id");
|
200 |
+
animate_comment(0.3, id);
|
201 |
+
});
|
202 |
+
|
203 |
jQuery("#ct_check_users_button").click(function(){
|
204 |
jQuery('#ct_working_message').show();
|
205 |
jQuery('#ct_check_users_button').hide();
|
209 |
});
|
210 |
jQuery("#ct_check_users_button").click(function(){
|
211 |
jQuery('#ct_checking_users_status').html('');
|
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 |
});
|
227 |
jQuery("#ct_delete_checked_users").click(function(){
|
228 |
ct_delete_checked_users();
|
229 |
});
|
230 |
+
jQuery(".cleantalk_user").mouseover(function(){
|
231 |
+
id = jQuery(this).attr("data-id");
|
232 |
+
jQuery("#cleantalk_delete_user_"+id).show();
|
233 |
+
});
|
234 |
+
jQuery(".cleantalk_user").mouseout(function(){
|
235 |
+
id = jQuery(this).attr("data-id");
|
236 |
+
jQuery("#cleantalk_delete_user_"+id).hide();
|
237 |
+
});
|
238 |
|
239 |
jQuery(document).ready(function(){
|
240 |
working=true;
|
cleantalk-users.php
CHANGED
@@ -44,15 +44,6 @@ function ct_show_users_page()
|
|
44 |
//if($cnt_unchecked>0)
|
45 |
{
|
46 |
?>
|
47 |
-
<button class="button" id="ct_check_users_button"><?php _e("Find spam users", 'cleantalk'); ?></button><br /><br />
|
48 |
-
<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'); ?>
|
49 |
-
<?php
|
50 |
-
if($cnt_spam>0)
|
51 |
-
{
|
52 |
-
print "<br />
|
53 |
-
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.";
|
54 |
-
}
|
55 |
-
?>
|
56 |
</div>
|
57 |
<?php
|
58 |
}
|
@@ -122,7 +113,7 @@ function ct_show_users_page()
|
|
122 |
for($i=0;$i<sizeof($c_spam);$i++)
|
123 |
{
|
124 |
?>
|
125 |
-
<tr id="comment-<?php print $c_spam[$i]->ID; ?>" class="comment even thread-even depth-1 approved">
|
126 |
<th scope="row" class="check-column">
|
127 |
<label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->ID; ?>">Select user</label>
|
128 |
<input id="cb-select-<?php print $c_spam[$i]->ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
|
@@ -155,6 +146,9 @@ function ct_show_users_page()
|
|
155 |
<td class="comment column-comment">
|
156 |
<div class="submitted-on">
|
157 |
<?php print $c_spam[$i]->data->display_name; ?>
|
|
|
|
|
|
|
158 |
</div>
|
159 |
</td>
|
160 |
<td class="comment column-comment">
|
@@ -182,10 +176,9 @@ function ct_show_users_page()
|
|
182 |
'compare' => 'NUMERIC'
|
183 |
)
|
184 |
|
185 |
-
)
|
186 |
-
'count'=>true
|
187 |
);
|
188 |
-
$cnt_spam=
|
189 |
if($cnt_spam>30)
|
190 |
{
|
191 |
?>
|
@@ -213,11 +206,22 @@ function ct_show_users_page()
|
|
213 |
?>
|
214 |
</tbody>
|
215 |
</table>
|
216 |
-
<button class="button" id="ct_delete_all_users"><?php _e('Delete all
|
217 |
<button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
|
218 |
<?php
|
219 |
}
|
220 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
</div>
|
222 |
<br /><a href="options-general.php?page=cleantalk">«<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
|
223 |
<?php
|
44 |
//if($cnt_unchecked>0)
|
45 |
{
|
46 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
</div>
|
48 |
<?php
|
49 |
}
|
113 |
for($i=0;$i<sizeof($c_spam);$i++)
|
114 |
{
|
115 |
?>
|
116 |
+
<tr id="comment-<?php print $c_spam[$i]->ID; ?>" class="comment even thread-even depth-1 approved cleantalk_user" data-id="<?php print $c_spam[$i]->ID; ?>">
|
117 |
<th scope="row" class="check-column">
|
118 |
<label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->ID; ?>">Select user</label>
|
119 |
<input id="cb-select-<?php print $c_spam[$i]->ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
|
146 |
<td class="comment column-comment">
|
147 |
<div class="submitted-on">
|
148 |
<?php print $c_spam[$i]->data->display_name; ?>
|
149 |
+
<div style="height:16px;">
|
150 |
+
<a href="#" class="cleantalk_delete_user_button" id="cleantalk_delete_user_<?php print $c_spam[$i]->ID; ?>" data-id="<?php print $c_spam[$i]->ID; ?>" style="color:#a00;display:none;" onclick="return false;">Delete</a>
|
151 |
+
</div>
|
152 |
</div>
|
153 |
</td>
|
154 |
<td class="comment column-comment">
|
176 |
'compare' => 'NUMERIC'
|
177 |
)
|
178 |
|
179 |
+
)
|
|
|
180 |
);
|
181 |
+
$cnt_spam=sizeof(get_users($args_spam));
|
182 |
if($cnt_spam>30)
|
183 |
{
|
184 |
?>
|
206 |
?>
|
207 |
</tbody>
|
208 |
</table>
|
209 |
+
<button class="button" id="ct_delete_all_users"><?php _e('Delete all users from list'); ?></button>
|
210 |
<button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
|
211 |
<?php
|
212 |
}
|
213 |
?>
|
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($cnt_spam>0)
|
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 />";
|
221 |
+
}
|
222 |
+
?>
|
223 |
+
<button class="button" id="ct_check_users_button"><?php _e("Check for spam again", 'cleantalk'); ?></button><br /><br />
|
224 |
+
|
225 |
</div>
|
226 |
<br /><a href="options-general.php?page=cleantalk">«<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
|
227 |
<?php
|
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'))
|
@@ -298,4 +298,4 @@ if(isset($_GET['ait-action'])&&$_GET['ait-action']=='register')
|
|
298 |
$_POST['redirect_to']=$tmp;
|
299 |
}
|
300 |
|
301 |
-
?>
|
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.23
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
+
$cleantalk_plugin_version='5.23';
|
11 |
$cleantalk_executed=false;
|
12 |
|
13 |
if(defined('CLEANTALK_AJAX_USE_BUFFER'))
|
298 |
$_POST['redirect_to']=$tmp;
|
299 |
}
|
300 |
|
301 |
+
?>
|
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
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.3
|
6 |
-
Stable tag: 5.
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -212,12 +212,19 @@ or
|
|
212 |
define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
|
213 |
|
214 |
= Can i add exclusions for some pages of my site? =
|
215 |
-
Yes, you can.
|
216 |
|
217 |
$cleantalk_url_exclusions = Array('url1', 'url2', 'url3');
|
218 |
|
219 |
Now, all pages containg strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will be not applied in registrations and comment checking - they are always protected from spam.
|
220 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
== Other notes ==
|
222 |
|
223 |
= Troubleshooting Guide =
|
@@ -304,6 +311,10 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
304 |
1. Setup Android/iOS app to have push notices when new legitiamte comments/registrations or contactcs appears on the website.
|
305 |
|
306 |
== Changelog ==
|
|
|
|
|
|
|
|
|
307 |
= 5.22 2015-08-26 =
|
308 |
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
309 |
|
@@ -744,6 +755,10 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
744 |
* First version
|
745 |
|
746 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
747 |
= 5.22 2015-08-26 =
|
748 |
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
749 |
|
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, cleantalk
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.3
|
6 |
+
Stable tag: 5.23
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
212 |
define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
|
213 |
|
214 |
= Can i add exclusions for some pages of my site? =
|
215 |
+
Yes, you can. Add in you config.php file, before defining database constants, this string:
|
216 |
|
217 |
$cleantalk_url_exclusions = Array('url1', 'url2', 'url3');
|
218 |
|
219 |
Now, all pages containg strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will be not applied in registrations and comment checking - they are always protected from spam.
|
220 |
|
221 |
+
= Can i exclude personal data from sending to CleanTalk servers? =
|
222 |
+
Yes, you can. Add in you config.php file, before defining database constants, this string:
|
223 |
+
|
224 |
+
$cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
|
225 |
+
|
226 |
+
Now, all fields in your submissions with keys named 'key1', 'key2' or 'key3' will be excluded from spam checking.
|
227 |
+
|
228 |
== Other notes ==
|
229 |
|
230 |
= Troubleshooting Guide =
|
311 |
1. Setup Android/iOS app to have push notices when new legitiamte comments/registrations or contactcs appears on the website.
|
312 |
|
313 |
== Changelog ==
|
314 |
+
= 5.23 2015-09-01 =
|
315 |
+
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
316 |
+
* Some interface fixes of bulk users & comments spam checking
|
317 |
+
|
318 |
= 5.22 2015-08-26 =
|
319 |
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
320 |
|
755 |
* First version
|
756 |
|
757 |
== Upgrade Notice ==
|
758 |
+
= 5.23 2015-09-01 =
|
759 |
+
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
760 |
+
* Some interface fixes of bulk users & comments spam checking
|
761 |
+
|
762 |
= 5.22 2015-08-26 =
|
763 |
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
764 |
|