Version Description
February 21 2018 = * Improved spam filtration quality. * Improved compatibility. * Public widget: Styles and referral link added. * Dashboard widget: revised and fixed. * Minor fixes.
Download this release
Release Info
Developer | Safronik |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.89 |
Comparing to | |
See all releases |
Code changes from version 5.88 to 5.89
- cleantalk.php +7 -7
- inc/cleantalk-admin.php +54 -80
- inc/cleantalk-ajax.php +5 -5
- inc/cleantalk-common.php +2 -2
- inc/cleantalk-public.php +34 -34
- inc/cleantalk-widget.php +65 -36
- js/apbct-public.js +16 -11
- lib/CleantalkHelper.php +17 -20
- readme.txt +32 -7
cleantalk.php
CHANGED
@@ -3,17 +3,17 @@
|
|
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.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
|
11 |
-
$cleantalk_plugin_version='5.
|
12 |
-
$ct_agent_version = 'wordpress-
|
13 |
$cleantalk_executed = false;
|
14 |
|
15 |
-
define('APBCT_VERSION', '5.
|
16 |
-
define('APBCT_AGENT', 'wordpress-
|
17 |
|
18 |
define('CLEANTALK_REMOTE_CALL_SLEEP', 10); // Minimum time between remote call
|
19 |
|
@@ -557,12 +557,12 @@ function apbct_update(){
|
|
557 |
}
|
558 |
|
559 |
function cleantalk_get_brief_data(){
|
|
|
560 |
$ct_options = ct_get_options();
|
561 |
$ct_data = ct_get_data();
|
562 |
|
563 |
-
$
|
564 |
|
565 |
-
$ct_data['brief_data'] = $result;
|
566 |
update_option('cleantalk_data', $ct_data);
|
567 |
|
568 |
return;
|
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.89
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
|
11 |
+
$cleantalk_plugin_version='5.89';
|
12 |
+
$ct_agent_version = 'wordpress-589';
|
13 |
$cleantalk_executed = false;
|
14 |
|
15 |
+
define('APBCT_VERSION', '5.89');
|
16 |
+
define('APBCT_AGENT', 'wordpress-589');
|
17 |
|
18 |
define('CLEANTALK_REMOTE_CALL_SLEEP', 10); // Minimum time between remote call
|
19 |
|
557 |
}
|
558 |
|
559 |
function cleantalk_get_brief_data(){
|
560 |
+
|
561 |
$ct_options = ct_get_options();
|
562 |
$ct_data = ct_get_data();
|
563 |
|
564 |
+
$ct_data['brief_data'] = CleantalkHelper::getAntispamReportBreif($ct_options['apikey']);
|
565 |
|
|
|
566 |
update_option('cleantalk_data', $ct_data);
|
567 |
|
568 |
return;
|
inc/cleantalk-admin.php
CHANGED
@@ -29,43 +29,27 @@ function ct_dashboard_statistics_widget() {
|
|
29 |
|
30 |
// Outputs statistics widget content
|
31 |
function ct_dashboard_statistics_widget_output( $post, $callback_args ) {
|
|
|
32 |
global $ct_data, $ct_options, $current_user;
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
36 |
$brief_data = CleantalkHelper::getAntispamReportBreif($ct_options['apikey']);
|
37 |
-
|
38 |
$ct_data['brief_data'] = $brief_data;
|
39 |
update_option('cleantalk_data', $ct_data);
|
40 |
-
}else{
|
41 |
-
$brief_data = $ct_data['brief_data'];
|
42 |
-
}
|
43 |
-
|
44 |
-
if(ct_valid_key()){
|
45 |
-
$ct_error = is_string($brief_data) ? true : false;
|
46 |
-
$key_is_good = is_string($brief_data) && $brief_data == 'Unknown access key.' ? false : true;
|
47 |
-
}else{
|
48 |
-
$ct_error = true;
|
49 |
-
$key_is_good = false;
|
50 |
-
$brief_data = 'Unknown access key.';
|
51 |
-
}
|
52 |
-
|
53 |
-
if($ct_error){
|
54 |
-
$tmp = array();
|
55 |
-
for($i=0; $i<7; $i++)
|
56 |
-
$tmp[date("Y-m-d", time()-86400*7+86400*$i)] = 0;
|
57 |
-
$spam_stat = $tmp;
|
58 |
-
}else{
|
59 |
-
$spam_stat = $brief_data['spam_stat'];
|
60 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
echo "<div id='ct_widget_wrapper'>";
|
63 |
-
// Parsing brief data 'spam_stat' {"yyyy-mm-dd": spam_count, "yyyy-mm-dd": spam_count} to [["yyyy-mm-dd", "spam_count"], ["yyyy-mm-dd", "spam_count"]]
|
64 |
-
$to_chart = array();
|
65 |
-
foreach($spam_stat as $key => $value)
|
66 |
-
$to_chart[] = array($key, $value);
|
67 |
-
unset($key, $value);
|
68 |
-
$to_chart = json_encode($to_chart);
|
69 |
?>
|
70 |
<form id='ct_refresh_form' method='POST' action='#ct_widget'>
|
71 |
<input type='hidden' name='ct_brief_refresh' value='1'>
|
@@ -79,8 +63,33 @@ function ct_dashboard_statistics_widget_output( $post, $callback_args ) {
|
|
79 |
</div>
|
80 |
<h4 class='ct_widget_block_header'><?php _e('Top 5 spam IPs blocked', 'cleantalk'); ?></h4>
|
81 |
<hr class='ct_widget_hr'>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
<?php
|
83 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
?>
|
85 |
<div class='ct_widget_block'>
|
86 |
<table cellspacing="0">
|
@@ -89,62 +98,27 @@ function ct_dashboard_statistics_widget_output( $post, $callback_args ) {
|
|
89 |
<th><?php _e('Country', 'cleantalk'); ?></th>
|
90 |
<th><?php _e('Block Count', 'cleantalk'); ?></th>
|
91 |
</tr>
|
92 |
-
<?php
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
</tr>
|
105 |
-
<?php
|
106 |
-
}
|
107 |
-
?>
|
108 |
</table>
|
109 |
-
<?php
|
110 |
-
if(!empty($ct_data['user_token'])){
|
111 |
-
?>
|
112 |
<a target='_blank' href='https://cleantalk.org/my?user_token=<?php echo $ct_data['user_token']; ?>&cp_mode=antispam'>
|
113 |
<input class='ct_widget_button' id='ct_widget_button_view_all' type='button' value='View all'>
|
114 |
</a>
|
115 |
-
<?php
|
116 |
-
}
|
117 |
-
?>
|
118 |
</div>
|
119 |
|
120 |
<?php
|
121 |
-
}else{
|
122 |
-
$plugin_settings_link = (is_network_admin() ? "settings.php" : "options-general.php" )."?page=cleantalk";
|
123 |
-
|
124 |
-
if(!$key_is_good){
|
125 |
-
?> <div class='ct_widget_block'>
|
126 |
-
<form action='<? echo $plugin_settings_link; ?>' method='POST'>
|
127 |
-
<h2 class='ct_widget_activate_header'><?php _e('Get Access key to activate Anti-Spam protection!', 'cleantalk'); ?></h2>
|
128 |
-
<input class='ct_widget_button ct_widget_activate_button' type='submit' name='get_apikey_auto' value='ACTIVATE'>
|
129 |
-
</form>
|
130 |
-
</div>
|
131 |
-
<?php
|
132 |
-
}else{
|
133 |
-
?>
|
134 |
-
<div class='ct_widget_block'>
|
135 |
-
<h2 class='ct_widget_activate_header'><?php _e('Something went wrong! Server response is: "', 'cleantalk'); ?><u><? echo $brief_data ?></u>".</h2>
|
136 |
-
<?php
|
137 |
-
if(!empty($ct_data['user_token'])){
|
138 |
-
?>
|
139 |
-
<h2 class='ct_widget_activate_header'><?php _e('Please, visit your dashboard.', 'cleantalk'); ?></h2>
|
140 |
-
<a target='_blank' href='https://cleantalk.org/my?user_token=<?php echo $ct_data['user_token']; ?>&cp_mode=antispam'>
|
141 |
-
<input class='ct_widget_button ct_widget_activate_button ct_widget_resolve_button' type='button' value='VISIT CONTROL PANEL'>
|
142 |
-
</a>
|
143 |
-
<?php
|
144 |
-
}
|
145 |
-
?>
|
146 |
-
</div>
|
147 |
-
<?php }
|
148 |
}
|
149 |
// Notice at the bottom
|
150 |
if(isset($current_user) && in_array('administrator', $current_user->roles)){
|
29 |
|
30 |
// Outputs statistics widget content
|
31 |
function ct_dashboard_statistics_widget_output( $post, $callback_args ) {
|
32 |
+
|
33 |
global $ct_data, $ct_options, $current_user;
|
34 |
+
|
35 |
+
$ct_options = ct_get_options();
|
36 |
+
$ct_data = ct_get_data();
|
37 |
+
|
38 |
+
$brief_data = $ct_data['brief_data'];
|
39 |
+
|
40 |
+
if(!empty($_POST['ct_brief_refresh'])){
|
41 |
$brief_data = CleantalkHelper::getAntispamReportBreif($ct_options['apikey']);
|
|
|
42 |
$ct_data['brief_data'] = $brief_data;
|
43 |
update_option('cleantalk_data', $ct_data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
+
// Parsing brief data 'spam_stat' {"yyyy-mm-dd": spam_count, "yyyy-mm-dd": spam_count} to [["yyyy-mm-dd", "spam_count"], ["yyyy-mm-dd", "spam_count"]]
|
46 |
+
$to_chart = array();
|
47 |
+
foreach( $brief_data['spam_stat'] as $key => $value ){
|
48 |
+
$to_chart[] = array( $key, $value );
|
49 |
+
} unset( $key, $value );
|
50 |
+
$to_chart = json_encode( $to_chart );
|
51 |
|
52 |
echo "<div id='ct_widget_wrapper'>";
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
?>
|
54 |
<form id='ct_refresh_form' method='POST' action='#ct_widget'>
|
55 |
<input type='hidden' name='ct_brief_refresh' value='1'>
|
63 |
</div>
|
64 |
<h4 class='ct_widget_block_header'><?php _e('Top 5 spam IPs blocked', 'cleantalk'); ?></h4>
|
65 |
<hr class='ct_widget_hr'>
|
66 |
+
<?php
|
67 |
+
if(!ct_valid_key() || (isset($brief_data['error_no']) && $brief_data['error_no'] == 6)){
|
68 |
+
$plugin_settings_link = (is_network_admin() ? "settings.php" : "options-general.php" )."?page=cleantalk";
|
69 |
+
?> <div class='ct_widget_block'>
|
70 |
+
<form action='<? echo $plugin_settings_link; ?>' method='POST'>
|
71 |
+
<h2 class='ct_widget_activate_header'><?php _e('Get Access key to activate Anti-Spam protection!', 'cleantalk'); ?></h2>
|
72 |
+
<input class='ct_widget_button ct_widget_activate_button' type='submit' name='get_apikey_auto' value='ACTIVATE' />
|
73 |
+
</form>
|
74 |
+
</div>
|
75 |
<?php
|
76 |
+
}elseif(!empty($brief_data['error'])){
|
77 |
+
echo '<div class="ct_widget_block">'
|
78 |
+
.'<h2 class="ct_widget_activate_header">'
|
79 |
+
.sprintf(__('Something went wrong! Error: "%s".', 'cleantalk'), "<u>{$brief_data['error_string']}</u>")
|
80 |
+
.'</h2>';
|
81 |
+
if(!empty($ct_data['user_token'])){
|
82 |
+
echo '<h2 class="ct_widget_activate_header">'
|
83 |
+
.__('Please, visit your dashboard.', 'cleantalk')
|
84 |
+
.'</h2>'
|
85 |
+
.'<a target="_blank" href="https://cleantalk.org/my?user_token='.$ct_data['user_token'].'&cp_mode=antispam">'
|
86 |
+
.'<input class="ct_widget_button ct_widget_activate_button ct_widget_resolve_button" type="button" value="VISIT CONTROL PANEL">'
|
87 |
+
.'</a>';
|
88 |
+
}
|
89 |
+
echo '</div>';
|
90 |
+
}
|
91 |
+
|
92 |
+
if(ct_valid_key() && empty($brief_data['error'])){
|
93 |
?>
|
94 |
<div class='ct_widget_block'>
|
95 |
<table cellspacing="0">
|
98 |
<th><?php _e('Country', 'cleantalk'); ?></th>
|
99 |
<th><?php _e('Block Count', 'cleantalk'); ?></th>
|
100 |
</tr>
|
101 |
+
<?php foreach($brief_data['top5_spam_ip'] as $val){ ?>
|
102 |
+
<tr>
|
103 |
+
<td><?php echo $val[0]; ?></td>
|
104 |
+
<td><?php echo $val[1] ? "<img src='https://cleantalk.org/images/flags/".strtolower($val[1]).".png'>" : ''; ?> <?php
|
105 |
+
echo $val[1]
|
106 |
+
? (function_exists('locale_get_display_region')
|
107 |
+
? locale_get_display_region('sl-Latn-'.$val[1].'-nedis', substr(get_locale(), 0, 2))
|
108 |
+
: $val[1])
|
109 |
+
: 'Unknown'; ?></td>
|
110 |
+
<td style='text-align: center;'><?php echo $val[2]; ?></td>
|
111 |
+
</tr>
|
112 |
+
<?php } ?>
|
|
|
|
|
|
|
|
|
113 |
</table>
|
114 |
+
<?php if(!empty($ct_data['user_token'])){ ?>
|
|
|
|
|
115 |
<a target='_blank' href='https://cleantalk.org/my?user_token=<?php echo $ct_data['user_token']; ?>&cp_mode=antispam'>
|
116 |
<input class='ct_widget_button' id='ct_widget_button_view_all' type='button' value='View all'>
|
117 |
</a>
|
118 |
+
<?php } ?>
|
|
|
|
|
119 |
</div>
|
120 |
|
121 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
123 |
// Notice at the bottom
|
124 |
if(isset($current_user) && in_array('administrator', $current_user->roles)){
|
inc/cleantalk-ajax.php
CHANGED
@@ -148,10 +148,10 @@ function ct_validate_email_ajaxlogin($email=null, $is_ajax=true){
|
|
148 |
|
149 |
if(class_exists('AjaxLogin')&&isset($_POST['action'])&&$_POST['action']=='validate_email'){
|
150 |
|
151 |
-
$checkjs =
|
152 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
153 |
if ($checkjs === null){
|
154 |
-
$checkjs =
|
155 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
156 |
}
|
157 |
|
@@ -199,10 +199,10 @@ function ct_user_register_ajaxlogin($user_id)
|
|
199 |
if(class_exists('AjaxLogin')&&isset($_POST['action'])&&$_POST['action']=='register_submit')
|
200 |
{
|
201 |
|
202 |
-
$checkjs =
|
203 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
204 |
if ($checkjs === null){
|
205 |
-
$checkjs =
|
206 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
207 |
}
|
208 |
|
@@ -283,7 +283,7 @@ function ct_ajax_hook($message_obj = false, $additional = false)
|
|
283 |
'the_champ_user_auth', // Super Socializer
|
284 |
);
|
285 |
|
286 |
-
$checkjs =
|
287 |
if ($checkjs && // Spammers usually fail the JS test
|
288 |
(isset($_POST['action']) && in_array($_POST['action'], $skip_post))
|
289 |
) {
|
148 |
|
149 |
if(class_exists('AjaxLogin')&&isset($_POST['action'])&&$_POST['action']=='validate_email'){
|
150 |
|
151 |
+
$checkjs = apbct_js_test('ct_checkjs', $_POST, true);
|
152 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
153 |
if ($checkjs === null){
|
154 |
+
$checkjs = apbct_js_test('ct_checkjs', $_COOKIE, true);
|
155 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
156 |
}
|
157 |
|
199 |
if(class_exists('AjaxLogin')&&isset($_POST['action'])&&$_POST['action']=='register_submit')
|
200 |
{
|
201 |
|
202 |
+
$checkjs = apbct_js_test('ct_checkjs', $_POST, true);
|
203 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
204 |
if ($checkjs === null){
|
205 |
+
$checkjs = apbct_js_test('ct_checkjs', $_COOKIE, true);
|
206 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
207 |
}
|
208 |
|
283 |
'the_champ_user_auth', // Super Socializer
|
284 |
);
|
285 |
|
286 |
+
$checkjs = apbct_js_test('ct_checkjs', $_COOKIE, true);
|
287 |
if ($checkjs && // Spammers usually fail the JS test
|
288 |
(isset($_POST['action']) && in_array($_POST['action'], $skip_post))
|
289 |
) {
|
inc/cleantalk-common.php
CHANGED
@@ -142,7 +142,7 @@ function apbct_base_call($params = array(), $reg_flag = false){
|
|
142 |
$ct_request->sender_email = !empty($params['sender_email']) ? $params['sender_email'] : null;
|
143 |
$ct_request->sender_nickname = !empty($params['sender_nickname']) ? $params['sender_nickname'] : null;
|
144 |
$ct_request->post_info = isset($params['post_info']) ? json_encode($params['post_info']) : null;
|
145 |
-
$ct_request->js_on = isset($params['checkjs']) ? $params['checkjs'] :
|
146 |
$ct_request->agent = APBCT_AGENT;
|
147 |
$ct_request->sender_info = json_encode($sender_info);
|
148 |
$ct_request->submit_time = apbct_get_submit_time();
|
@@ -241,7 +241,7 @@ function apbct_get_sender_info() {
|
|
241 |
'key_press_timestamp' => !empty($_COOKIE['ct_fkp_timestamp']) ? $_COOKIE['ct_fkp_timestamp'] : null,
|
242 |
'page_set_timestamp' => !empty($_COOKIE['ct_ps_timestamp']) ? $_COOKIE['ct_ps_timestamp'] : null,
|
243 |
'form_visible_inputs' => !empty($_COOKIE['apbct_visible_fields_count']) ? $_COOKIE['apbct_visible_fields_count'] : null,
|
244 |
-
'apbct_visible_fields' => !empty($_COOKIE['apbct_visible_fields']) ?
|
245 |
// Debug stuff
|
246 |
'amp_detected' => $amp_detected,
|
247 |
);
|
142 |
$ct_request->sender_email = !empty($params['sender_email']) ? $params['sender_email'] : null;
|
143 |
$ct_request->sender_nickname = !empty($params['sender_nickname']) ? $params['sender_nickname'] : null;
|
144 |
$ct_request->post_info = isset($params['post_info']) ? json_encode($params['post_info']) : null;
|
145 |
+
$ct_request->js_on = isset($params['checkjs']) ? $params['checkjs'] : apbct_js_test('ct_checkjs', $_COOKIE, true);
|
146 |
$ct_request->agent = APBCT_AGENT;
|
147 |
$ct_request->sender_info = json_encode($sender_info);
|
148 |
$ct_request->submit_time = apbct_get_submit_time();
|
241 |
'key_press_timestamp' => !empty($_COOKIE['ct_fkp_timestamp']) ? $_COOKIE['ct_fkp_timestamp'] : null,
|
242 |
'page_set_timestamp' => !empty($_COOKIE['ct_ps_timestamp']) ? $_COOKIE['ct_ps_timestamp'] : null,
|
243 |
'form_visible_inputs' => !empty($_COOKIE['apbct_visible_fields_count']) ? $_COOKIE['apbct_visible_fields_count'] : null,
|
244 |
+
'apbct_visible_fields' => !empty($_COOKIE['apbct_visible_fields']) ? $_COOKIE['apbct_visible_fields'] : null,
|
245 |
// Debug stuff
|
246 |
'amp_detected' => $amp_detected,
|
247 |
);
|
inc/cleantalk-public.php
CHANGED
@@ -320,9 +320,9 @@ function ct_validate_ccf_submission($value, $field_id, $required){
|
|
320 |
$post_info['comment_type'] = 'feedback_custom_contact_forms';
|
321 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
322 |
|
323 |
-
$checkjs = !
|
324 |
-
?
|
325 |
-
:
|
326 |
|
327 |
//Making a call
|
328 |
$base_call_result = apbct_base_call(
|
@@ -368,9 +368,9 @@ function ct_woocommerce_wishlist_check($args){
|
|
368 |
$post_info['comment_type'] = 'feedback';
|
369 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
370 |
|
371 |
-
$checkjs = !
|
372 |
-
?
|
373 |
-
:
|
374 |
|
375 |
//Making a call
|
376 |
$base_call_result = apbct_base_call(
|
@@ -452,9 +452,9 @@ function ct_bp_private_msg_check( $bp_message_obj){
|
|
452 |
$post_info['comment_type'] = 'buddypress_comment';
|
453 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
454 |
|
455 |
-
$checkjs = !
|
456 |
-
?
|
457 |
-
:
|
458 |
|
459 |
//Making a call
|
460 |
|
@@ -509,7 +509,7 @@ function ct_pirate_forms_check(){
|
|
509 |
'sender_email' => $sender_email,
|
510 |
'sender_nickname' => $sender_nickname,
|
511 |
'post_info' => $post_info,
|
512 |
-
'checkjs' =>
|
513 |
'sender_info' => array('sender_url' => null),
|
514 |
)
|
515 |
);
|
@@ -694,9 +694,9 @@ function ct_frm_validate_entry ($errors, $values) {
|
|
694 |
} unset($value);
|
695 |
$message = array_flip($message);
|
696 |
|
697 |
-
$checkjs = !
|
698 |
-
?
|
699 |
-
:
|
700 |
|
701 |
$base_call_result = apbct_base_call(
|
702 |
array(
|
@@ -749,9 +749,9 @@ function ct_bbp_new_pre_content ($comment) {
|
|
749 |
in_array("administrator", $current_user->roles))
|
750 |
return $comment;
|
751 |
|
752 |
-
$checkjs = !
|
753 |
-
?
|
754 |
-
:
|
755 |
|
756 |
$post_info['comment_type'] = 'bbpress_comment';
|
757 |
$post_info['post_url'] = bbp_get_topic_permalink();
|
@@ -856,9 +856,9 @@ function ct_preprocess_comment($comment) {
|
|
856 |
// Comment type
|
857 |
$post_info['comment_type'] = empty($post_info['comment_type']) ? 'general_comment' : $post_info['comment_type'];
|
858 |
|
859 |
-
$checkjs = !
|
860 |
-
?
|
861 |
-
:
|
862 |
|
863 |
|
864 |
$example = null;
|
@@ -986,7 +986,7 @@ function ct_die_extended($comment_body) {
|
|
986 |
* Validates JavaScript anti-spam test
|
987 |
*
|
988 |
*/
|
989 |
-
function
|
990 |
global $ct_options, $ct_data;
|
991 |
|
992 |
$ct_options = ct_get_options();
|
@@ -1255,7 +1255,7 @@ function ct_test_message($nickname, $email, $ip, $text){
|
|
1255 |
'sender_email' => $email,
|
1256 |
'sender_nickname' => $nickname,
|
1257 |
'post_info' => array('comment_type' => 'feedback_plugin_check'),
|
1258 |
-
'checkjs' =>
|
1259 |
)
|
1260 |
);
|
1261 |
|
@@ -1277,11 +1277,11 @@ function ct_test_registration($nickname, $email, $ip){
|
|
1277 |
|
1278 |
$ct_options = ct_get_options();
|
1279 |
|
1280 |
-
$checkjs =
|
1281 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
1282 |
// This hack can be helpfull when plugin uses with untested themes&signups plugins.
|
1283 |
if (!$checkjs) {
|
1284 |
-
$checkjs =
|
1285 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
1286 |
}
|
1287 |
|
@@ -1363,11 +1363,11 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1363 |
return $errors;
|
1364 |
}
|
1365 |
|
1366 |
-
$checkjs =
|
1367 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
1368 |
// This hack can be helpfull when plugin uses with untested themes&signups plugins.
|
1369 |
if ($checkjs == 0) {
|
1370 |
-
$checkjs =
|
1371 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
1372 |
}
|
1373 |
|
@@ -1521,7 +1521,7 @@ function ct_contact_form_is_spam($form) {
|
|
1521 |
'sender_nickname' => $sender_nickname,
|
1522 |
'post_info' => array('comment_type' => 'feedback'),
|
1523 |
'sender_info' => array('sender_url' => @$form['comment_author_url']),
|
1524 |
-
'checkjs' =>
|
1525 |
)
|
1526 |
);
|
1527 |
$ct_result = $base_call_result['ct_result'];
|
@@ -1631,9 +1631,9 @@ function ct_wpcf7_spam($param) {
|
|
1631 |
return $param;
|
1632 |
}
|
1633 |
|
1634 |
-
$checkjs = !
|
1635 |
-
?
|
1636 |
-
:
|
1637 |
|
1638 |
$ct_temp_msg_data = ct_get_fields_any($_POST);
|
1639 |
|
@@ -1731,7 +1731,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
|
|
1731 |
'sender_email' => $sender_email,
|
1732 |
'sender_nickname' => $sender_nickname,
|
1733 |
'post_info' => array('comment_type' => 'feedback'),
|
1734 |
-
'checkjs' =>
|
1735 |
)
|
1736 |
);
|
1737 |
|
@@ -1831,7 +1831,7 @@ function ct_check_wplp(){
|
|
1831 |
}
|
1832 |
|
1833 |
/**
|
1834 |
-
* Places a hidding field to Gravity.
|
1835 |
* @return string
|
1836 |
*/
|
1837 |
function ct_gforms_hidden_field ( $form_string, $form ) {
|
@@ -1899,9 +1899,9 @@ function ct_gforms_spam_test ($is_spam, $form, $entry) {
|
|
1899 |
$message['subject'] = $subject;
|
1900 |
}
|
1901 |
|
1902 |
-
$checkjs =
|
1903 |
-
?
|
1904 |
-
:
|
1905 |
|
1906 |
$base_call_result = apbct_base_call(
|
1907 |
array(
|
320 |
$post_info['comment_type'] = 'feedback_custom_contact_forms';
|
321 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
322 |
|
323 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
324 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
325 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
326 |
|
327 |
//Making a call
|
328 |
$base_call_result = apbct_base_call(
|
368 |
$post_info['comment_type'] = 'feedback';
|
369 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
370 |
|
371 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
372 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
373 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
374 |
|
375 |
//Making a call
|
376 |
$base_call_result = apbct_base_call(
|
452 |
$post_info['comment_type'] = 'buddypress_comment';
|
453 |
$post_info['post_url'] = $_SERVER['HTTP_REFERER'];
|
454 |
|
455 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
456 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
457 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
458 |
|
459 |
//Making a call
|
460 |
|
509 |
'sender_email' => $sender_email,
|
510 |
'sender_nickname' => $sender_nickname,
|
511 |
'post_info' => $post_info,
|
512 |
+
'checkjs' => apbct_js_test('ct_checkjs', $_COOKIE, true),
|
513 |
'sender_info' => array('sender_url' => null),
|
514 |
)
|
515 |
);
|
694 |
} unset($value);
|
695 |
$message = array_flip($message);
|
696 |
|
697 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
698 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
699 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
700 |
|
701 |
$base_call_result = apbct_base_call(
|
702 |
array(
|
749 |
in_array("administrator", $current_user->roles))
|
750 |
return $comment;
|
751 |
|
752 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
753 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
754 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
755 |
|
756 |
$post_info['comment_type'] = 'bbpress_comment';
|
757 |
$post_info['post_url'] = bbp_get_topic_permalink();
|
856 |
// Comment type
|
857 |
$post_info['comment_type'] = empty($post_info['comment_type']) ? 'general_comment' : $post_info['comment_type'];
|
858 |
|
859 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
860 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
861 |
+
: apbct_js_test('ct_checkjs', $_POST, true);
|
862 |
|
863 |
|
864 |
$example = null;
|
986 |
* Validates JavaScript anti-spam test
|
987 |
*
|
988 |
*/
|
989 |
+
function apbct_js_test($field_name = 'ct_checkjs', $data = null, $random_key = false) {
|
990 |
global $ct_options, $ct_data;
|
991 |
|
992 |
$ct_options = ct_get_options();
|
1255 |
'sender_email' => $email,
|
1256 |
'sender_nickname' => $nickname,
|
1257 |
'post_info' => array('comment_type' => 'feedback_plugin_check'),
|
1258 |
+
'checkjs' => apbct_js_test('ct_checkjs', $_COOKIE, true),
|
1259 |
)
|
1260 |
);
|
1261 |
|
1277 |
|
1278 |
$ct_options = ct_get_options();
|
1279 |
|
1280 |
+
$checkjs = apbct_js_test($ct_checkjs_register_form, $_POST, true);
|
1281 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
1282 |
// This hack can be helpfull when plugin uses with untested themes&signups plugins.
|
1283 |
if (!$checkjs) {
|
1284 |
+
$checkjs = apbct_js_test('ct_checkjs', $_COOKIE, true);
|
1285 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
1286 |
}
|
1287 |
|
1363 |
return $errors;
|
1364 |
}
|
1365 |
|
1366 |
+
$checkjs = apbct_js_test($ct_checkjs_register_form, $_POST, true);
|
1367 |
$sender_info['post_checkjs_passed'] = $checkjs;
|
1368 |
// This hack can be helpfull when plugin uses with untested themes&signups plugins.
|
1369 |
if ($checkjs == 0) {
|
1370 |
+
$checkjs = apbct_js_test('ct_checkjs', $_COOKIE, true);
|
1371 |
$sender_info['cookie_checkjs_passed'] = $checkjs;
|
1372 |
}
|
1373 |
|
1521 |
'sender_nickname' => $sender_nickname,
|
1522 |
'post_info' => array('comment_type' => 'feedback'),
|
1523 |
'sender_info' => array('sender_url' => @$form['comment_author_url']),
|
1524 |
+
'checkjs' => apbct_js_test($js_field_name, $_POST, true),
|
1525 |
)
|
1526 |
);
|
1527 |
$ct_result = $base_call_result['ct_result'];
|
1631 |
return $param;
|
1632 |
}
|
1633 |
|
1634 |
+
$checkjs = !apbct_js_test('ct_checkjs', $_COOKIE, true)
|
1635 |
+
? apbct_js_test('ct_checkjs', $_COOKIE, true)
|
1636 |
+
: apbct_js_test($ct_checkjs_cf7, $_POST, true);
|
1637 |
|
1638 |
$ct_temp_msg_data = ct_get_fields_any($_POST);
|
1639 |
|
1731 |
'sender_email' => $sender_email,
|
1732 |
'sender_nickname' => $sender_nickname,
|
1733 |
'post_info' => array('comment_type' => 'feedback'),
|
1734 |
+
'checkjs' => apbct_js_test('ct_checkjs', $_POST, true),
|
1735 |
)
|
1736 |
);
|
1737 |
|
1831 |
}
|
1832 |
|
1833 |
/**
|
1834 |
+
* Places a hidding field to Gravity forms.
|
1835 |
* @return string
|
1836 |
*/
|
1837 |
function ct_gforms_hidden_field ( $form_string, $form ) {
|
1899 |
$message['subject'] = $subject;
|
1900 |
}
|
1901 |
|
1902 |
+
$checkjs = apbct_js_test('ct_checkjs', $_POST, true)
|
1903 |
+
? apbct_js_test('ct_checkjs', $_POST, true)
|
1904 |
+
: apbct_js_test('ct_checkjs', $_COOKIE, true);
|
1905 |
|
1906 |
$base_call_result = apbct_base_call(
|
1907 |
array(
|
inc/cleantalk-widget.php
CHANGED
@@ -2,7 +2,6 @@
|
|
2 |
|
3 |
class cleantalk_widget extends WP_Widget
|
4 |
{
|
5 |
-
|
6 |
function __construct()
|
7 |
{
|
8 |
parent::__construct(
|
@@ -21,52 +20,80 @@ class cleantalk_widget extends WP_Widget
|
|
21 |
// This is where the action happens
|
22 |
public function widget( $args, $instance )
|
23 |
{
|
|
|
|
|
|
|
|
|
24 |
$title = apply_filters( 'widget_title', $instance['title'] );
|
25 |
-
// before and after widget arguments are defined by themes
|
26 |
echo $args['before_widget'];
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
$
|
33 |
-
if(!isset($ct_data['admin_blocked']))
|
34 |
-
{
|
35 |
-
$blocked=0;
|
36 |
-
}
|
37 |
-
else
|
38 |
-
{
|
39 |
-
$blocked=$ct_data['admin_blocked'];
|
40 |
-
}
|
41 |
$blocked = number_format($blocked, 0, ',', ' ');
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
// This is where you run the code and display the output
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
49 |
echo $args['after_widget'];
|
50 |
}
|
51 |
|
52 |
// Widget Backend
|
53 |
public function form( $instance )
|
54 |
{
|
55 |
-
if ( isset( $instance[ 'title' ] ) )
|
56 |
-
{
|
57 |
-
$title = $instance[ 'title' ];
|
58 |
-
}
|
59 |
-
else
|
60 |
-
{
|
61 |
-
$title = __( 'Spam blocked', 'cleantalk' );
|
62 |
-
}
|
63 |
// Widget admin form
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
|
72 |
// Updating widget replacing old instances with new
|
@@ -74,6 +101,8 @@ class cleantalk_widget extends WP_Widget
|
|
74 |
{
|
75 |
$instance = array();
|
76 |
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
|
|
|
|
|
77 |
return $instance;
|
78 |
}
|
79 |
} // Class cleantalk_widget ends here
|
2 |
|
3 |
class cleantalk_widget extends WP_Widget
|
4 |
{
|
|
|
5 |
function __construct()
|
6 |
{
|
7 |
parent::__construct(
|
20 |
// This is where the action happens
|
21 |
public function widget( $args, $instance )
|
22 |
{
|
23 |
+
global $ct_data;
|
24 |
+
|
25 |
+
$ct_data = ct_get_data();
|
26 |
+
|
27 |
$title = apply_filters( 'widget_title', $instance['title'] );
|
|
|
28 |
echo $args['before_widget'];
|
29 |
+
|
30 |
+
// Showing title
|
31 |
+
if ( ! empty( $title ) ){ echo $args['before_title'] . $title . $args['after_title']; }
|
32 |
+
|
33 |
+
// Parsing incoming params
|
34 |
+
$blocked = isset( $ct_data['admin_blocked'] ) ? $ct_data['admin_blocked'] : 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
$blocked = number_format($blocked, 0, ',', ' ');
|
36 |
+
|
37 |
+
$a_style = 'cursor: pointer; display: block; padding: 5px 0 5px; text-align: center; text-decoration: none; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; font-weight: normal; height: 100%; width: 100%; ';
|
38 |
+
$strong_style = 'display: block; font-size: 15px; line-height: 16px; padding: 0 13px; white-space: nowrap; ';
|
39 |
+
|
40 |
+
switch($instance['style']){
|
41 |
+
case 'cleantalk':
|
42 |
+
$a_style .= 'background: #3090C7; background-image: -moz-linear-gradient(0% 100% 90deg,#2060a7,#3090C7); background-image: -webkit-gradient(linear,0% 0,0% 100%,from(#3090C7),to(#2060A7)); border: 1px solid #33eeee; color: #AFCA63;';
|
43 |
+
$strong_style .= 'color: #FFF;';
|
44 |
+
break;
|
45 |
+
case 'light':
|
46 |
+
$a_style .= 'background: #fafafa; background-image: -moz-linear-gradient(0% 100% 90deg,#ddd,#fff); background-image: -webkit-gradient(linear,0% 0,0% 100%,from(#fff),to(#ddd)); border: 1px solid #ddd; color: #000;';
|
47 |
+
$strong_style .= 'color: #000;';
|
48 |
+
break;
|
49 |
+
case 'ex_light':
|
50 |
+
$a_style .= 'background: #fff; border: 1px solid #ddd; color: #777;';
|
51 |
+
$strong_style .= 'color: #555;';
|
52 |
+
break;
|
53 |
+
case 'dark':
|
54 |
+
$a_style .= 'background: #333; background-image: -moz-linear-gradient(0% 100% 90deg,#555,#000); background-image: -webkit-gradient(linear,0% 0,0% 100%,from(#000),to(#555)); border: 1px solid #999; color: #fff;';
|
55 |
+
$strong_style .= 'color: #FFF;';
|
56 |
+
break;
|
57 |
+
}
|
58 |
+
|
59 |
// This is where you run the code and display the output
|
60 |
+
echo '<div style="width:auto;">'
|
61 |
+
.'<a href="http://cleantalk.org'.(!empty($instance['refid']) ? '?pid='.$instance['refid'] : '').'" target="_blank" title="CleanTalk\'s main page" style="'.$a_style.'">'
|
62 |
+
.'<strong style="'.$strong_style.'"><b>'.$blocked.'</b> spam</strong> blocked by <strong>CleanTalk</strong>'
|
63 |
+
.'</a>'
|
64 |
+
.'</div>';
|
65 |
+
|
66 |
echo $args['after_widget'];
|
67 |
}
|
68 |
|
69 |
// Widget Backend
|
70 |
public function form( $instance )
|
71 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
// Widget admin form
|
73 |
+
|
74 |
+
$title = isset( $instance[ 'title' ] ) ? $instance[ 'title' ] : $title = __( 'Spam blocked', 'cleantalk' );
|
75 |
+
$style = isset( $instance[ 'style' ] ) ? $instance[ 'style' ] : $style = 'ct_style';
|
76 |
+
$refid = isset( $instance[ 'refid' ] ) ? $instance[ 'refid' ] : $refid = '';
|
77 |
+
// Title field
|
78 |
+
echo '<p>'
|
79 |
+
.'<label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Title:' ) . '</label>'
|
80 |
+
.'<input class="widefat" id="'.$this->get_field_id( 'title' ).'" name="'.$this->get_field_name( 'title' ).'" type="text" value="'.esc_attr( $title ).'" />'
|
81 |
+
.'</p>';
|
82 |
+
// Style
|
83 |
+
echo '<p>'
|
84 |
+
.'<label for="' . $this->get_field_id( 'style' ) . '">' . __( 'Style:' ) . '</label>'
|
85 |
+
.'<select id="'.$this->get_field_id( 'style' ).'" class="widefat" name="'.$this->get_field_name( 'style' ).'">'
|
86 |
+
.'<option '.($style == 'cleantalk' ? selected : '').' value="cleantalk">CleanTalk\'s Style</option>'
|
87 |
+
.'<option '.($style == 'light' ? selected : '').' value="light">Light</option>'
|
88 |
+
.'<option '.($style == 'ex_light' ? selected : '').' value="ex_light">Extremely Light</option>'
|
89 |
+
.'<option '.($style == 'dark' ? selected : '').' value="dark">Dark</option>'
|
90 |
+
.'</select>'
|
91 |
+
.'</p>';
|
92 |
+
// Ref ID
|
93 |
+
echo '<p>'
|
94 |
+
.'<label for="' . $this->get_field_id( 'refid' ) . '">' . __( 'Referal link ID:' ) . '</label>'
|
95 |
+
.'<input class="widefat" id="'.$this->get_field_id( 'refid' ).'" name="'.$this->get_field_name( 'refid' ).'" type="text" value="'.$refid.'" />'
|
96 |
+
.'</p>';
|
97 |
}
|
98 |
|
99 |
// Updating widget replacing old instances with new
|
101 |
{
|
102 |
$instance = array();
|
103 |
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
|
104 |
+
$instance['style'] = ( ! empty( $new_instance['style'] ) ) ? strip_tags( $new_instance['style'] ) : '';
|
105 |
+
$instance['refid'] = ( ! empty( $new_instance['refid'] ) ) ? strip_tags( $new_instance['refid'] ) : '';
|
106 |
return $instance;
|
107 |
}
|
108 |
} // Class cleantalk_widget ends here
|
js/apbct-public.js
CHANGED
@@ -83,13 +83,15 @@ apbct_attach_event_handler(window, "keydown", ctFunctionFirstKey);
|
|
83 |
function apbct_ready(){
|
84 |
ctSetCookieSec("apbct_visible_fields", 0);
|
85 |
ctSetCookieSec("apbct_visible_fields_count", 0);
|
86 |
-
setTimeout(function(){
|
87 |
-
for(var i=0; i < document.forms.length; i++){
|
88 |
var form = document.forms[i];
|
89 |
-
form.
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
93 |
if( getComputedStyle(elem).display == "none" ||
|
94 |
getComputedStyle(elem).visibility == "hidden" ||
|
95 |
getComputedStyle(elem).width == "0" ||
|
@@ -98,13 +100,16 @@ function apbct_ready(){
|
|
98 |
elem.getAttribute("type") == "hidden" ||
|
99 |
elem.getAttribute("type") == "submit"
|
100 |
){
|
101 |
-
|
102 |
}else{
|
103 |
-
|
104 |
}
|
105 |
-
}
|
106 |
-
ctSetCookieSec("apbct_visible_fields",
|
107 |
-
ctSetCookieSec("apbct_visible_fields_count",
|
|
|
|
|
|
|
108 |
}
|
109 |
}
|
110 |
}, 1000);
|
83 |
function apbct_ready(){
|
84 |
ctSetCookieSec("apbct_visible_fields", 0);
|
85 |
ctSetCookieSec("apbct_visible_fields_count", 0);
|
86 |
+
setTimeout(function(){
|
87 |
+
for(var i = 0; i < document.forms.length; i++){
|
88 |
var form = document.forms[i];
|
89 |
+
form.onsubmit_prev = form.onsubmit;
|
90 |
+
form.onsubmit = function(event){
|
91 |
+
this.visible_fields = '';
|
92 |
+
this.visible_fields_count = this.elements.length;
|
93 |
+
for(var j = 0; j < this.elements.length; j++){
|
94 |
+
var elem = this.elements[j];
|
95 |
if( getComputedStyle(elem).display == "none" ||
|
96 |
getComputedStyle(elem).visibility == "hidden" ||
|
97 |
getComputedStyle(elem).width == "0" ||
|
100 |
elem.getAttribute("type") == "hidden" ||
|
101 |
elem.getAttribute("type") == "submit"
|
102 |
){
|
103 |
+
this.visible_fields_count--;
|
104 |
}else{
|
105 |
+
this.visible_fields += (this.visible_fields == "" ? "" : " ") + elem.getAttribute("name");
|
106 |
}
|
107 |
+
}
|
108 |
+
ctSetCookieSec("apbct_visible_fields", this.visible_fields);
|
109 |
+
ctSetCookieSec("apbct_visible_fields_count", this.visible_fields_count);
|
110 |
+
if(this.onsubmit_prev instanceof Function){
|
111 |
+
this.onsubmit_prev.call(this, event);
|
112 |
+
}
|
113 |
}
|
114 |
}
|
115 |
}, 1000);
|
lib/CleantalkHelper.php
CHANGED
@@ -308,29 +308,26 @@ class CleantalkHelper
|
|
308 |
* @param integer report days
|
309 |
* @return type
|
310 |
*/
|
311 |
-
static public function getAntispamReportBreif($
|
312 |
{
|
313 |
|
314 |
-
$
|
315 |
-
|
316 |
-
'method_name' => 'get_antispam_report_breif'
|
|
|
317 |
);
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
$
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
$tmp[date("Y-m-d", time()-86400*7+86400*$i)] = 0;
|
331 |
-
$result['data']['spam_stat'] = array_merge($tmp, $result['data']['spam_stat']);
|
332 |
-
return $result['data'];
|
333 |
-
}
|
334 |
}
|
335 |
|
336 |
static public function sendRawRequest($url,$data,$isJSON=false,$timeout=3)
|
308 |
* @param integer report days
|
309 |
* @return type
|
310 |
*/
|
311 |
+
static public function getAntispamReportBreif($api_key, $do_check = true)
|
312 |
{
|
313 |
|
314 |
+
$request = array(
|
315 |
+
'agent' => APBCT_AGENT,
|
316 |
+
'method_name' => 'get_antispam_report_breif',
|
317 |
+
'auth_key' => $api_key,
|
318 |
);
|
319 |
+
|
320 |
+
$result = self::sendRawRequest(self::URL, $request);
|
321 |
+
$result = $do_check ? self::checkRequestResult($result, 'get_antispam_report_breif') : $result;
|
322 |
+
|
323 |
+
$tmp = array();
|
324 |
+
for( $i = 0; $i < 7; $i++ )
|
325 |
+
$tmp[ date( 'Y-m-d', time() - 86400 * 7 + 86400 * $i ) ] = 0;
|
326 |
+
|
327 |
+
$result['spam_stat'] = array_merge( $tmp, isset($result['spam_stat']) ? $result['spam_stat'] : array() );
|
328 |
+
$result['top5_spam_ip'] = isset($result['top5_spam_ip']) ? $result['top5_spam_ip'] : array();
|
329 |
+
|
330 |
+
return $result;
|
|
|
|
|
|
|
|
|
331 |
}
|
332 |
|
333 |
static public function sendRawRequest($url,$data,$isJSON=false,$timeout=3)
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: znaeff, shagimuratov, sartemd174
|
|
3 |
Tags: spam, antispam, protection, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.9.3
|
6 |
-
Stable tag: 5.
|
7 |
License: GPLv2
|
8 |
|
9 |
Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce spam. Forget spam.
|
@@ -200,6 +200,14 @@ CleanTalk has an advanced option "SpamFireWall". This option allows you to block
|
|
200 |
|
201 |
"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".
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
= Translations =
|
204 |
* Danish (da_DK)
|
205 |
* French (fr_FR) - thanks to Gilles Santacreu <a href="http://net-ik.net">http://net-ik.net</a>
|
@@ -496,14 +504,24 @@ We develop plugin to do it as optimized as possible, CleanTalk doesn't downgrade
|
|
496 |
|
497 |
== Screenshots ==
|
498 |
1. AntiSpam settings are easy to use.
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
|
|
|
|
|
|
505 |
|
506 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
507 |
= 5.88 February 12 2018 =
|
508 |
* Integration: ConvertPro.
|
509 |
* Improvement: Search for visitor's names in request.
|
@@ -1517,6 +1535,13 @@ We develop plugin to do it as optimized as possible, CleanTalk doesn't downgrade
|
|
1517 |
* First version
|
1518 |
|
1519 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1520 |
= 5.88 February 12 2018 =
|
1521 |
* Integration: ConvertPro.
|
1522 |
* Improvement: Search for visitor's names in request.
|
3 |
Tags: spam, antispam, protection, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.9.3
|
6 |
+
Stable tag: 5.89
|
7 |
License: GPLv2
|
8 |
|
9 |
Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce spam. Forget spam.
|
200 |
|
201 |
"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".
|
202 |
|
203 |
+
= Auto-Update CleanTalk Anti-Spam =
|
204 |
+
|
205 |
+
CleanTalk Dashboard(<a href="https://cleantalk.org/my?cp_mode=antispam">https://cleantalk.org/my?cp_mode=antispam</a>) 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.
|
206 |
+
|
207 |
+
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.
|
208 |
+
|
209 |
+
Auto-updating system will work from CleanTalk Anti-Spam version 5.88
|
210 |
+
|
211 |
= Translations =
|
212 |
* Danish (da_DK)
|
213 |
* French (fr_FR) - thanks to Gilles Santacreu <a href="http://net-ik.net">http://net-ik.net</a>
|
504 |
|
505 |
== Screenshots ==
|
506 |
1. AntiSpam settings are easy to use.
|
507 |
+
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.
|
508 |
+
3. Use AntiSpam analytics tool for each website in service Dashboard to have information about spam/legitimate stats.
|
509 |
+
4. Use AntiSpam log to control anti-spam plugin.
|
510 |
+
5. CleanTalk works faster than most of other anti-spam plugins.
|
511 |
+
6. The Dashboard with a map of most spam active countries per your account.
|
512 |
+
7. The plugin deletes/removes the existing spam comments and users accounts.
|
513 |
+
8. CleanTalk's dashboard update link.
|
514 |
+
9. Auto upadte confimation.
|
515 |
+
10. Website's options.
|
516 |
|
517 |
== Changelog ==
|
518 |
+
= 5.89 February 21 2018 =
|
519 |
+
* Improved spam filtration quality.
|
520 |
+
* Improved compatibility.
|
521 |
+
* Public widget: Styles and referral link added.
|
522 |
+
* Dashboard widget: revised and fixed.
|
523 |
+
* Minor fixes.
|
524 |
+
|
525 |
= 5.88 February 12 2018 =
|
526 |
* Integration: ConvertPro.
|
527 |
* Improvement: Search for visitor's names in request.
|
1535 |
* First version
|
1536 |
|
1537 |
== Upgrade Notice ==
|
1538 |
+
= 5.89 February 21 2018 =
|
1539 |
+
* Improved spam filtration quality.
|
1540 |
+
* Improved compatibility.
|
1541 |
+
* Public widget: Styles and referral link added.
|
1542 |
+
* Dashboard widget: revised and fixed.
|
1543 |
+
* Minor fixes.
|
1544 |
+
|
1545 |
= 5.88 February 12 2018 =
|
1546 |
* Integration: ConvertPro.
|
1547 |
* Improvement: Search for visitor's names in request.
|