Version Description
December 19 2016 = * Integrations: MailChimp Premium, Profile Press. * Changes comments flow. * FireWall updater fix. * Users check optimization.
Download this release
Release Info
Developer | Safronik |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.56 |
Comparing to | |
See all releases |
Code changes from version 5.55 to 5.56
- cleantalk.php +16 -7
- inc/cleantalk-admin.php +2 -2
- inc/cleantalk-ajax.php +10 -2
- inc/cleantalk-public.php +139 -60
- inc/cleantalk-users.php +42 -14
- readme.txt +14 -2
cleantalk.php
CHANGED
@@ -3,12 +3,12 @@
|
|
3 |
Plugin Name: Spam Protection 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. Formerly Anti-Spam by CleanTalk.
|
6 |
-
Version: 5.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
-
$cleantalk_plugin_version='5.
|
11 |
-
$ct_agent_version = 'wordpress-
|
12 |
$cleantalk_executed=false;
|
13 |
$ct_sfw_updated = false;
|
14 |
|
@@ -60,6 +60,13 @@ if(!defined('CLEANTALK_PLUGIN_DIR')){
|
|
60 |
|
61 |
$ct_data['db_refreshed'] = 1;
|
62 |
update_option('cleantalk_data', $ct_data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
|
65 |
if(@stripos($_SERVER['REQUEST_URI'],'admin-ajax.php')!==false && sizeof($_POST)>0 && isset($_GET['action']) && $_GET['action']=='ninja_forms_ajax_submit')
|
@@ -148,7 +155,7 @@ if(!defined('CLEANTALK_PLUGIN_DIR')){
|
|
148 |
}
|
149 |
//cron end
|
150 |
}
|
151 |
-
|
152 |
if(isset($ct_options['check_external']) && @intval($ct_options['check_external']) == 1)
|
153 |
$test_external_forms=true;
|
154 |
else
|
@@ -281,6 +288,7 @@ if(!defined('CLEANTALK_PLUGIN_DIR')){
|
|
281 |
|
282 |
// Hourly run hook
|
283 |
add_action('ct_hourly_event_hook', 'ct_do_this_hourly');
|
|
|
284 |
|
285 |
// Comments
|
286 |
add_filter('preprocess_comment', 'ct_preprocess_comment', 1, 1); // param - comment data array
|
@@ -331,7 +339,7 @@ if (!function_exists ( 'ct_activation')) {
|
|
331 |
|
332 |
wp_schedule_event(time(), 'hourly', 'ct_hourly_event_hook' );
|
333 |
//wp_schedule_event(time(), 'hourly', 'ct_send_sfw_log' );
|
334 |
-
wp_schedule_event(time(), 'daily', '
|
335 |
|
336 |
|
337 |
cleantalk_update_sfw();
|
@@ -352,6 +360,7 @@ if (!function_exists ( 'ct_deactivation')) {
|
|
352 |
wp_clear_scheduled_hook( 'ct_hourly_event_hook' );
|
353 |
@wp_clear_scheduled_hook( 'ct_send_sfw_log' );
|
354 |
wp_clear_scheduled_hook( 'cleantalk_update_sfw' );
|
|
|
355 |
}
|
356 |
}
|
357 |
|
@@ -561,7 +570,7 @@ function cleantalk_update_sfw()
|
|
561 |
else
|
562 |
$value=0;
|
563 |
|
564 |
-
if($value==1 && ($ct_sfw_updated === false || !isset($ct_sfw_updated))){
|
565 |
|
566 |
$data = Array( 'auth_key' => $ct_options['apikey'],
|
567 |
'method_name' => '2s_blacklists_db'
|
@@ -585,7 +594,7 @@ function cleantalk_update_sfw()
|
|
585 |
|
586 |
}
|
587 |
$wpdb->query($query);
|
588 |
-
$ct_sfw_updated = true;
|
589 |
}
|
590 |
}
|
591 |
}
|
3 |
Plugin Name: Spam Protection 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. Formerly Anti-Spam by CleanTalk.
|
6 |
+
Version: 5.56
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
+
$cleantalk_plugin_version='5.56';
|
11 |
+
$ct_agent_version = 'wordpress-556';
|
12 |
$cleantalk_executed=false;
|
13 |
$ct_sfw_updated = false;
|
14 |
|
60 |
|
61 |
$ct_data['db_refreshed'] = 1;
|
62 |
update_option('cleantalk_data', $ct_data);
|
63 |
+
}else{
|
64 |
+
if($ct_data['db_refreshed'] == 1){
|
65 |
+
if (!wp_next_scheduled('cleantalk_update_sfw_hook'))
|
66 |
+
wp_schedule_event(time()+1800, 'daily', 'cleantalk_update_sfw_hook' );
|
67 |
+
$ct_data['db_refreshed'] = 2;
|
68 |
+
update_option('cleantalk_data', $ct_data);
|
69 |
+
}
|
70 |
}
|
71 |
|
72 |
if(@stripos($_SERVER['REQUEST_URI'],'admin-ajax.php')!==false && sizeof($_POST)>0 && isset($_GET['action']) && $_GET['action']=='ninja_forms_ajax_submit')
|
155 |
}
|
156 |
//cron end
|
157 |
}
|
158 |
+
|
159 |
if(isset($ct_options['check_external']) && @intval($ct_options['check_external']) == 1)
|
160 |
$test_external_forms=true;
|
161 |
else
|
288 |
|
289 |
// Hourly run hook
|
290 |
add_action('ct_hourly_event_hook', 'ct_do_this_hourly');
|
291 |
+
add_action('cleantalk_update_sfw_hook', 'cleantalk_update_sfw');
|
292 |
|
293 |
// Comments
|
294 |
add_filter('preprocess_comment', 'ct_preprocess_comment', 1, 1); // param - comment data array
|
339 |
|
340 |
wp_schedule_event(time(), 'hourly', 'ct_hourly_event_hook' );
|
341 |
//wp_schedule_event(time(), 'hourly', 'ct_send_sfw_log' );
|
342 |
+
wp_schedule_event(time(), 'daily', 'cleantalk_update_sfw_hook' );
|
343 |
|
344 |
|
345 |
cleantalk_update_sfw();
|
360 |
wp_clear_scheduled_hook( 'ct_hourly_event_hook' );
|
361 |
@wp_clear_scheduled_hook( 'ct_send_sfw_log' );
|
362 |
wp_clear_scheduled_hook( 'cleantalk_update_sfw' );
|
363 |
+
wp_clear_scheduled_hook( 'cleantalk_update_sfw_hook' );
|
364 |
}
|
365 |
}
|
366 |
|
570 |
else
|
571 |
$value=0;
|
572 |
|
573 |
+
if($value==1 && ($ct_sfw_updated === false || !isset($ct_sfw_updated))){
|
574 |
|
575 |
$data = Array( 'auth_key' => $ct_options['apikey'],
|
576 |
'method_name' => '2s_blacklists_db'
|
594 |
|
595 |
}
|
596 |
$wpdb->query($query);
|
597 |
+
$ct_sfw_updated = true;
|
598 |
}
|
599 |
}
|
600 |
}
|
inc/cleantalk-admin.php
CHANGED
@@ -385,8 +385,8 @@ function ct_admin_init()
|
|
385 |
add_settings_field('cleantalk_sfw_counter', " ".__('SpamFireWall counter', 'cleantalk'), 'ct_input_sfw_counter', 'cleantalk', 'cleantalk_settings_anti_spam');
|
386 |
|
387 |
|
388 |
-
add_settings_field('cleantalk_spam_firewall', __('SpamFireWall', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_banner');
|
389 |
add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', 'cleantalk_settings_anti_spam');
|
|
|
390 |
add_settings_field('cleantalk_show_link', __('Tell others about CleanTalk', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
|
391 |
}
|
392 |
}
|
@@ -637,7 +637,7 @@ function ct_add_admin_menu( $wp_admin_bar ) {
|
|
637 |
*/
|
638 |
function ct_section_settings_state() {
|
639 |
global $ct_options, $ct_data;
|
640 |
-
|
641 |
$ct_options = ct_get_options();
|
642 |
$ct_data = ct_get_data();
|
643 |
|
385 |
add_settings_field('cleantalk_sfw_counter', " ".__('SpamFireWall counter', 'cleantalk'), 'ct_input_sfw_counter', 'cleantalk', 'cleantalk_settings_anti_spam');
|
386 |
|
387 |
|
|
|
388 |
add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', 'cleantalk_settings_anti_spam');
|
389 |
+
add_settings_field('cleantalk_spam_firewall', __('SpamFireWall', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_anti_spam');
|
390 |
add_settings_field('cleantalk_show_link', __('Tell others about CleanTalk', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
|
391 |
}
|
392 |
}
|
637 |
*/
|
638 |
function ct_section_settings_state() {
|
639 |
global $ct_options, $ct_data;
|
640 |
+
|
641 |
$ct_options = ct_get_options();
|
642 |
$ct_data = ct_get_data();
|
643 |
|
inc/cleantalk-ajax.php
CHANGED
@@ -12,6 +12,9 @@ $cleantalk_ajax_actions_to_check[] = 'amoforms_submit'; //amoForms
|
|
12 |
|
13 |
//cleantalk_hooked_actions[] - array for POST 'actions' which were direct hooked.
|
14 |
|
|
|
|
|
|
|
15 |
/*hooks for Usernoise Form*/
|
16 |
add_action('un_feedback_form_body', 'ct_add_hidden_fields',1);
|
17 |
add_filter('un_validate_feedback', 'ct_ajax_hook', 1, 2);
|
@@ -286,7 +289,7 @@ function ct_user_register_ajaxlogin($user_id)
|
|
286 |
return $user_id;
|
287 |
}
|
288 |
|
289 |
-
function ct_ajax_hook($message_obj = false)
|
290 |
{
|
291 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
292 |
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data, $current_user;
|
@@ -336,7 +339,7 @@ function ct_ajax_hook($message_obj = false)
|
|
336 |
{
|
337 |
$nickname='';
|
338 |
}
|
339 |
-
|
340 |
//CSCF fix
|
341 |
if(isset($_POST['action']) && $_POST['action']== 'cscf-submitform'){
|
342 |
$ct_post_temp[] = $message_obj['comment_author'];
|
@@ -566,6 +569,11 @@ function ct_ajax_hook($message_obj = false)
|
|
566 |
print json_encode($result);
|
567 |
die();
|
568 |
}
|
|
|
|
|
|
|
|
|
|
|
569 |
else
|
570 |
{
|
571 |
print $ct_result->comment;
|
12 |
|
13 |
//cleantalk_hooked_actions[] - array for POST 'actions' which were direct hooked.
|
14 |
|
15 |
+
/* MailChimp Premium*/
|
16 |
+
add_filter('mc4wp_form_errors', 'ct_ajax_hook', 1, 2);
|
17 |
+
|
18 |
/*hooks for Usernoise Form*/
|
19 |
add_action('un_feedback_form_body', 'ct_add_hidden_fields',1);
|
20 |
add_filter('un_validate_feedback', 'ct_ajax_hook', 1, 2);
|
289 |
return $user_id;
|
290 |
}
|
291 |
|
292 |
+
function ct_ajax_hook($message_obj = false, $additional = false)
|
293 |
{
|
294 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
295 |
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data, $current_user;
|
339 |
{
|
340 |
$nickname='';
|
341 |
}
|
342 |
+
|
343 |
//CSCF fix
|
344 |
if(isset($_POST['action']) && $_POST['action']== 'cscf-submitform'){
|
345 |
$ct_post_temp[] = $message_obj['comment_author'];
|
569 |
print json_encode($result);
|
570 |
die();
|
571 |
}
|
572 |
+
elseif(isset($_POST['_mc4wp_timestamp']) && isset($_POST['_mc4wp_form_id']))
|
573 |
+
{
|
574 |
+
$message_obj[] = 'ct_mc4wp_response';
|
575 |
+
return $message_obj;
|
576 |
+
}
|
577 |
else
|
578 |
{
|
579 |
print $ct_result->comment;
|
inc/cleantalk-public.php
CHANGED
@@ -9,7 +9,7 @@ function ct_init() {
|
|
9 |
|
10 |
$ct_options = ct_get_options();
|
11 |
$ct_data=ct_get_data();
|
12 |
-
|
13 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
14 |
if((isset($_POST['action']) && $_POST['action'] == 'ct_check_internal') &&
|
15 |
(isset($ct_options['check_internal']) && intval($ct_options['check_internal']))
|
@@ -152,6 +152,11 @@ function ct_init() {
|
|
152 |
add_action('messages_message_before_save','ct_bp_private_msg_check', 1);
|
153 |
}
|
154 |
|
|
|
|
|
|
|
|
|
|
|
155 |
// bbPress
|
156 |
if(class_exists('bbPress')){
|
157 |
add_filter('bbp_new_topic_pre_title', 'ct_bbp_get_topic', 1);
|
@@ -197,7 +202,7 @@ function ct_init() {
|
|
197 |
add_filter('gform_get_form_filter', 'ct_gforms_hidden_field', 10, 2);
|
198 |
add_filter('gform_entry_is_spam', 'ct_gforms_spam_test', 1, 3);
|
199 |
}
|
200 |
-
|
201 |
//
|
202 |
//Pirate forms
|
203 |
//
|
@@ -205,7 +210,7 @@ function ct_init() {
|
|
205 |
if(isset($_POST['pirate-forms-contact-name']) && $_POST['pirate-forms-contact-name'] && isset($_POST['pirate-forms-contact-email']) && $_POST['pirate-forms-contact-email'])
|
206 |
ct_pirate_forms_check();
|
207 |
}
|
208 |
-
|
209 |
//
|
210 |
// Load JS code to website footer
|
211 |
//
|
@@ -233,6 +238,17 @@ function ct_init() {
|
|
233 |
}
|
234 |
}
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
/*
|
237 |
* Function to set validate fucntion for CCF form
|
238 |
* Input - Сonsistently each form field
|
@@ -378,7 +394,7 @@ function ct_woocommerce_wishlist_check($args){
|
|
378 |
$ct = $ct_base_call_result['ct'];
|
379 |
$ct_result = $ct_base_call_result['ct_result'];
|
380 |
|
381 |
-
if ($ct_result->
|
382 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
383 |
else
|
384 |
return $args;
|
@@ -470,7 +486,7 @@ function ct_bp_private_msg_check( $bp_message_obj){
|
|
470 |
$ct = $ct_base_call_result['ct'];
|
471 |
$ct_result = $ct_base_call_result['ct_result'];
|
472 |
|
473 |
-
if ($ct_result->
|
474 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
475 |
}
|
476 |
|
@@ -531,7 +547,7 @@ function ct_pirate_forms_check(){
|
|
531 |
$ct = $ct_base_call_result['ct'];
|
532 |
$ct_result = $ct_base_call_result['ct_result'];
|
533 |
|
534 |
-
if ($ct_result->
|
535 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
536 |
}
|
537 |
|
@@ -670,34 +686,62 @@ setTimeout(function(){
|
|
670 |
function ct_add_mouse_tracking($return_string = false){
|
671 |
|
672 |
$js_script = '<script type="text/javascript">
|
673 |
-
function ctSetCookie(c_name, value
|
674 |
-
|
675 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
676 |
setTimeout(function(){
|
677 |
-
ctSetCookie("
|
|
|
678 |
},1000);
|
|
|
679 |
//Stop observing function
|
680 |
function ctMouseStopData(){
|
681 |
-
window.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
682 |
clearInterval(ctMouseReadInterval);
|
683 |
clearInterval(ctMouseWriteDataInterval);
|
684 |
}
|
|
|
685 |
var d = new Date(),
|
686 |
ctTimeMs = new Date().getTime(),
|
687 |
ctMouseEventTimerFlag = true, //Reading interval flag
|
688 |
ctMouseData = "[",
|
689 |
ctMouseDataCounter = 0;
|
|
|
690 |
//Reading interval
|
691 |
var ctMouseReadInterval = setInterval(function(){
|
692 |
ctMouseEventTimerFlag = true;
|
693 |
}, 300);
|
|
|
694 |
//Writting interval
|
695 |
var ctMouseWriteDataInterval = setInterval(function(){
|
696 |
var ctMouseDataToSend = ctMouseData.slice(0,-1).concat("]");
|
697 |
-
ctSetCookie("ct_pointer_data", ctMouseDataToSend
|
698 |
}, 3000);
|
|
|
699 |
//Logging mouse position each 300 ms
|
700 |
-
var
|
701 |
if(ctMouseEventTimerFlag == true){
|
702 |
var mouseDate = new Date();
|
703 |
ctMouseData += "[" + event.pageY + "," + event.pageX + "," + (mouseDate.getTime() - ctTimeMs) + "],";
|
@@ -707,10 +751,22 @@ function ct_add_mouse_tracking($return_string = false){
|
|
707 |
ctMouseStopData();
|
708 |
}
|
709 |
}
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
</script>';
|
715 |
|
716 |
if($return_string)
|
@@ -827,7 +883,7 @@ function ct_frm_validate_entry ($errors, $values) {
|
|
827 |
$ct = $ct_base_call_result['ct'];
|
828 |
$ct_result = $ct_base_call_result['ct_result'];
|
829 |
|
830 |
-
if ($ct_result->
|
831 |
$errors['ct_error'] = '<br /><b>' . $ct_result->comment . '</b><br /><br />';
|
832 |
}
|
833 |
|
@@ -903,7 +959,7 @@ function ct_bbp_new_pre_content ($comment) {
|
|
903 |
$ct = $ct_base_call_result['ct'];
|
904 |
$ct_result = $ct_base_call_result['ct_result'];
|
905 |
|
906 |
-
if ($ct_result->
|
907 |
bbp_add_error('bbp_reply_content', $ct_result->comment);
|
908 |
}
|
909 |
|
@@ -1072,16 +1128,21 @@ function ct_preprocess_comment($comment) {
|
|
1072 |
if($ct_result->stop_queue == 1) // Terminate. Definitely spam.
|
1073 |
wp_die($err_text, 'Blacklisted', array('back_link' => true));
|
1074 |
|
1075 |
-
if($ct_result->spam ==
|
1076 |
wp_die($err_text, 'Blacklisted', array('back_link' => true));
|
1077 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1078 |
if($ct_result->stop_words){ // Contains stop_words. Move to pending folder.
|
1079 |
-
add_filter('pre_comment_approved', 'ct_set_not_approved',
|
1080 |
-
add_action('comment_post', 'ct_mark_red',
|
1081 |
-
}
|
1082 |
-
|
1083 |
-
|
1084 |
-
add_action('comment_post', 'ct_die', 12, 2);
|
1085 |
}
|
1086 |
|
1087 |
if(isset($ct_options['remove_comments_links']) && $ct_options['remove_comments_links'] == '1'){
|
@@ -1264,6 +1325,13 @@ function ct_mark_red($comment_id, $comment_status) {
|
|
1264 |
wp_update_comment($comment);
|
1265 |
}
|
1266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1267 |
/**
|
1268 |
* Tests plugin activation status
|
1269 |
* @return bool
|
@@ -1321,6 +1389,20 @@ function ct_login_message($message) {
|
|
1321 |
return $message;
|
1322 |
}
|
1323 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1324 |
/**
|
1325 |
* Test users registration for multisite enviroment
|
1326 |
* @return array with errors
|
@@ -1466,7 +1548,7 @@ function ct_test_registration($nickname, $email, $ip){
|
|
1466 |
*/
|
1467 |
function ct_registration_errors($errors, $sanitized_user_login = null, $user_email = null) {
|
1468 |
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data;
|
1469 |
-
|
1470 |
$ct_options=ct_get_options();
|
1471 |
$ct_data=ct_get_data();
|
1472 |
|
@@ -1474,11 +1556,11 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1474 |
if (ct_is_user_enable() === false) {
|
1475 |
return $errors;
|
1476 |
}
|
1477 |
-
|
1478 |
if ($ct_options['registrations_test'] == 0) {
|
1479 |
return $errors;
|
1480 |
}
|
1481 |
-
|
1482 |
//
|
1483 |
// The function already executed
|
1484 |
// It happens when used ct_register_post();
|
@@ -1486,7 +1568,7 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1486 |
if ($ct_signup_done && is_object($errors) && count($errors->errors) > 0) {
|
1487 |
return $errors;
|
1488 |
}
|
1489 |
-
|
1490 |
//
|
1491 |
// BuddyPress actions
|
1492 |
//
|
@@ -1527,19 +1609,19 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1527 |
}
|
1528 |
|
1529 |
// Pointer data
|
1530 |
-
|
1531 |
-
|
1532 |
-
else
|
1533 |
-
$pointer_data = 0;
|
1534 |
-
|
1535 |
// Timezone from JS
|
1536 |
-
|
1537 |
-
$js_timezone = $_COOKIE['ct_timezone'];
|
1538 |
-
else
|
1539 |
-
$js_timezone = 0;
|
1540 |
|
|
|
|
|
|
|
|
|
1541 |
$sender_info['mouse_cursor_positions'] = $pointer_data;
|
1542 |
$sender_info['js_timezone'] = $js_timezone;
|
|
|
|
|
1543 |
|
1544 |
$sender_info = json_encode($sender_info);
|
1545 |
if ($sender_info === false) {
|
@@ -1576,7 +1658,7 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1576 |
)
|
1577 |
);
|
1578 |
}
|
1579 |
-
|
1580 |
$ct_signup_done = true;
|
1581 |
|
1582 |
$ct_result = ct_change_plugin_resonse($ct_result, $checkjs);
|
@@ -1585,7 +1667,7 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1585 |
ct_send_error_notice($ct_result->comment);
|
1586 |
return $errors;
|
1587 |
}
|
1588 |
-
|
1589 |
ct_init_session();
|
1590 |
|
1591 |
if ($ct_result->allow == 0) {
|
@@ -1710,14 +1792,14 @@ function ct_contact_form_is_spam($form) {
|
|
1710 |
$ct = $ct_base_call_result['ct'];
|
1711 |
$ct_result = $ct_base_call_result['ct_result'];
|
1712 |
|
1713 |
-
if ($ct_result->
|
1714 |
global $ct_comment;
|
1715 |
$ct_comment = $ct_result->comment;
|
1716 |
ct_die(null, null);
|
1717 |
exit;
|
1718 |
}
|
1719 |
|
1720 |
-
return (bool)
|
1721 |
}
|
1722 |
|
1723 |
function ct_contact_form_is_spam_jetpack($is_spam,$form) {
|
@@ -1771,14 +1853,14 @@ function ct_contact_form_is_spam_jetpack($is_spam,$form) {
|
|
1771 |
$ct = $ct_base_call_result['ct'];
|
1772 |
$ct_result = $ct_base_call_result['ct_result'];
|
1773 |
|
1774 |
-
if ($ct_result->
|
1775 |
global $ct_comment;
|
1776 |
$ct_comment = $ct_result->comment;
|
1777 |
ct_die(null, null);
|
1778 |
exit;
|
1779 |
}
|
1780 |
|
1781 |
-
return (bool)
|
1782 |
}
|
1783 |
|
1784 |
|
@@ -1882,15 +1964,15 @@ function ct_wpcf7_spam($param) {
|
|
1882 |
$ct = $ct_base_call_result['ct'];
|
1883 |
$ct_result = $ct_base_call_result['ct_result'];
|
1884 |
|
1885 |
-
if ($ct_result->
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
}
|
1895 |
|
1896 |
return $param;
|
@@ -1981,7 +2063,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
|
|
1981 |
|
1982 |
$cleantalk_executed = true;
|
1983 |
|
1984 |
-
if ($ct_result->
|
1985 |
global $ct_comment;
|
1986 |
$ct_comment = $ct_result->comment;
|
1987 |
ct_die(null, null);
|
@@ -2058,7 +2140,7 @@ function ct_check_wplp(){
|
|
2058 |
$ct = $ct_base_call_result['ct'];
|
2059 |
$ct_result = $ct_base_call_result['ct_result'];
|
2060 |
|
2061 |
-
if ($ct_result->
|
2062 |
$cleantalk_comment = $ct_result->comment;
|
2063 |
} else {
|
2064 |
$cleantalk_comment = 'OK';
|
@@ -2260,7 +2342,7 @@ function ct_s2member_registration_test() {
|
|
2260 |
*/
|
2261 |
function ct_contact_form_validate () {
|
2262 |
global $pagenow,$cleantalk_executed, $cleantalk_url_exclusions,$ct_options, $ct_data, $ct_checkjs_frm;
|
2263 |
-
|
2264 |
$ct_options = ct_get_options();
|
2265 |
$ct_data = ct_get_data();
|
2266 |
|
@@ -2364,8 +2446,6 @@ function ct_contact_form_validate () {
|
|
2364 |
cleantalk_debug("CtContactForm", "false");
|
2365 |
}
|
2366 |
|
2367 |
-
|
2368 |
-
|
2369 |
// Skip submission if no data found
|
2370 |
if ($sender_email===''|| !$contact_form) {
|
2371 |
return false;
|
@@ -2398,7 +2478,7 @@ function ct_contact_form_validate () {
|
|
2398 |
{
|
2399 |
$_POST['TellAFriend_Link']=$tmp;
|
2400 |
}
|
2401 |
-
|
2402 |
$ct = $ct_base_call_result['ct'];
|
2403 |
$ct_result = $ct_base_call_result['ct_result'];
|
2404 |
if ($ct_result->allow == 0) {
|
@@ -2458,7 +2538,6 @@ function ct_contact_form_validate () {
|
|
2458 |
}elseif(isset($_POST['action']) && $_POST['action'] == 'cf_process_ajax_submit'){
|
2459 |
echo "<h3>Antispam by CleanTalk: <u>".$ct_result->comment."</u></h3>";
|
2460 |
die();
|
2461 |
-
|
2462 |
}else
|
2463 |
ct_die(null, null);
|
2464 |
|
9 |
|
10 |
$ct_options = ct_get_options();
|
11 |
$ct_data=ct_get_data();
|
12 |
+
|
13 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
14 |
if((isset($_POST['action']) && $_POST['action'] == 'ct_check_internal') &&
|
15 |
(isset($ct_options['check_internal']) && intval($ct_options['check_internal']))
|
152 |
add_action('messages_message_before_save','ct_bp_private_msg_check', 1);
|
153 |
}
|
154 |
|
155 |
+
if(defined('PROFILEPRESS_SYSTEM_FILE_PATH')){
|
156 |
+
add_filter('pp_registration_validation', 'ct_registration_errors_ppress', 11, 2);
|
157 |
+
}
|
158 |
+
|
159 |
+
|
160 |
// bbPress
|
161 |
if(class_exists('bbPress')){
|
162 |
add_filter('bbp_new_topic_pre_title', 'ct_bbp_get_topic', 1);
|
202 |
add_filter('gform_get_form_filter', 'ct_gforms_hidden_field', 10, 2);
|
203 |
add_filter('gform_entry_is_spam', 'ct_gforms_spam_test', 1, 3);
|
204 |
}
|
205 |
+
|
206 |
//
|
207 |
//Pirate forms
|
208 |
//
|
210 |
if(isset($_POST['pirate-forms-contact-name']) && $_POST['pirate-forms-contact-name'] && isset($_POST['pirate-forms-contact-email']) && $_POST['pirate-forms-contact-email'])
|
211 |
ct_pirate_forms_check();
|
212 |
}
|
213 |
+
|
214 |
//
|
215 |
// Load JS code to website footer
|
216 |
//
|
238 |
}
|
239 |
}
|
240 |
|
241 |
+
// MailChimp Premium for Wordpress
|
242 |
+
function ct_add_mc4wp_error_message($messages){
|
243 |
+
|
244 |
+
$messages['ct_mc4wp_response'] = array(
|
245 |
+
'type' => 'error',
|
246 |
+
'text' => 'Your message looks like spam.'
|
247 |
+
);
|
248 |
+
return $messages;
|
249 |
+
}
|
250 |
+
add_filter( 'mc4wp_form_messages', 'ct_add_mc4wp_error_message' );
|
251 |
+
|
252 |
/*
|
253 |
* Function to set validate fucntion for CCF form
|
254 |
* Input - Сonsistently each form field
|
394 |
$ct = $ct_base_call_result['ct'];
|
395 |
$ct_result = $ct_base_call_result['ct_result'];
|
396 |
|
397 |
+
if ($ct_result->allow == 0)
|
398 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
399 |
else
|
400 |
return $args;
|
486 |
$ct = $ct_base_call_result['ct'];
|
487 |
$ct_result = $ct_base_call_result['ct_result'];
|
488 |
|
489 |
+
if ($ct_result->allow == 0)
|
490 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
491 |
}
|
492 |
|
547 |
$ct = $ct_base_call_result['ct'];
|
548 |
$ct_result = $ct_base_call_result['ct_result'];
|
549 |
|
550 |
+
if ($ct_result->allow == 0)
|
551 |
wp_die("<h1>Spam Protection by CleanTalk</h1><h2>".$ct_result->comment."</h2>", '', array('response' => 403, "back_link" => true, "text_direction" => 'ltr'));
|
552 |
}
|
553 |
|
686 |
function ct_add_mouse_tracking($return_string = false){
|
687 |
|
688 |
$js_script = '<script type="text/javascript">
|
689 |
+
function ctSetCookie(c_name, value) {
|
690 |
+
document.cookie = c_name + "=" + escape(value) + "; path=/";
|
691 |
}
|
692 |
+
|
693 |
+
ctSetCookie("ct_ps_timestamp", Math.floor(new Date().getTime()/1000));
|
694 |
+
ctSetCookie("ct_fkp_timestamp", "0");
|
695 |
+
ctSetCookie("ct_pointer_data", "0");
|
696 |
+
ctSetCookie("ct_timezone", "0");
|
697 |
+
|
698 |
setTimeout(function(){
|
699 |
+
ctSetCookie("%s", "%s");
|
700 |
+
ctSetCookie("ct_timezone", d.getTimezoneOffset()/60);
|
701 |
},1000);
|
702 |
+
|
703 |
//Stop observing function
|
704 |
function ctMouseStopData(){
|
705 |
+
if(typeof window.addEventListener == "function")
|
706 |
+
window.removeEventListener("mousemove", ctFunctionMouseMove);
|
707 |
+
else
|
708 |
+
window.detachEvent("onmousemove", ctFunctionMouseMove);
|
709 |
+
clearInterval(ctMouseReadInterval);
|
710 |
+
clearInterval(ctMouseWriteDataInterval);
|
711 |
+
}
|
712 |
+
|
713 |
+
//Stop key listening function
|
714 |
+
function ctKeyStopStopListening(){
|
715 |
+
if(typeof window.addEventListener == "function"){
|
716 |
+
window.removeEventListener("mousedown", ctFunctionFirstKey);
|
717 |
+
window.removeEventListener("keydown", ctFunctionFirstKey);
|
718 |
+
}else{
|
719 |
+
window.detachEvent("mousedown", ctFunctionFirstKey);
|
720 |
+
window.detachEvent("keydown", ctFunctionFirstKey);
|
721 |
+
}
|
722 |
clearInterval(ctMouseReadInterval);
|
723 |
clearInterval(ctMouseWriteDataInterval);
|
724 |
}
|
725 |
+
|
726 |
var d = new Date(),
|
727 |
ctTimeMs = new Date().getTime(),
|
728 |
ctMouseEventTimerFlag = true, //Reading interval flag
|
729 |
ctMouseData = "[",
|
730 |
ctMouseDataCounter = 0;
|
731 |
+
|
732 |
//Reading interval
|
733 |
var ctMouseReadInterval = setInterval(function(){
|
734 |
ctMouseEventTimerFlag = true;
|
735 |
}, 300);
|
736 |
+
|
737 |
//Writting interval
|
738 |
var ctMouseWriteDataInterval = setInterval(function(){
|
739 |
var ctMouseDataToSend = ctMouseData.slice(0,-1).concat("]");
|
740 |
+
ctSetCookie("ct_pointer_data", ctMouseDataToSend);
|
741 |
}, 3000);
|
742 |
+
|
743 |
//Logging mouse position each 300 ms
|
744 |
+
var ctFunctionMouseMove = function output(event){
|
745 |
if(ctMouseEventTimerFlag == true){
|
746 |
var mouseDate = new Date();
|
747 |
ctMouseData += "[" + event.pageY + "," + event.pageX + "," + (mouseDate.getTime() - ctTimeMs) + "],";
|
751 |
ctMouseStopData();
|
752 |
}
|
753 |
}
|
754 |
+
//Writing first key press timestamp
|
755 |
+
var ctFunctionFirstKey = function output(event){
|
756 |
+
var KeyTimestamp = Math.floor(new Date().getTime()/1000);
|
757 |
+
ctSetCookie("ct_fkp_timestamp", KeyTimestamp);
|
758 |
+
ctKeyStopStopListening();
|
759 |
+
}
|
760 |
+
|
761 |
+
if(typeof window.addEventListener == "function"){
|
762 |
+
window.addEventListener("mousemove", ctFunctionMouseMove);
|
763 |
+
window.addEventListener("mousedown", ctFunctionFirstKey);
|
764 |
+
window.addEventListener("keydown", ctFunctionFirstKey);
|
765 |
+
}else{
|
766 |
+
window.attachEvent("onmousemove", ctFunctionMouseMove);
|
767 |
+
window.attachEvent("mousedown", ctFunctionFirstKey);
|
768 |
+
window.attachEvent("keydown", ctFunctionFirstKey);
|
769 |
+
}
|
770 |
</script>';
|
771 |
|
772 |
if($return_string)
|
883 |
$ct = $ct_base_call_result['ct'];
|
884 |
$ct_result = $ct_base_call_result['ct_result'];
|
885 |
|
886 |
+
if ($ct_result->allow == 0) {
|
887 |
$errors['ct_error'] = '<br /><b>' . $ct_result->comment . '</b><br /><br />';
|
888 |
}
|
889 |
|
959 |
$ct = $ct_base_call_result['ct'];
|
960 |
$ct_result = $ct_base_call_result['ct_result'];
|
961 |
|
962 |
+
if ($ct_result->allow == 0) {
|
963 |
bbp_add_error('bbp_reply_content', $ct_result->comment);
|
964 |
}
|
965 |
|
1128 |
if($ct_result->stop_queue == 1) // Terminate. Definitely spam.
|
1129 |
wp_die($err_text, 'Blacklisted', array('back_link' => true));
|
1130 |
|
1131 |
+
if($ct_result->spam == 3) // Don't move to spam folder. Delete.
|
1132 |
wp_die($err_text, 'Blacklisted', array('back_link' => true));
|
1133 |
|
1134 |
+
if($ct_result->spam == 2)
|
1135 |
+
add_action('comment_post', 'ct_wp_trash_comment', 997, 2);
|
1136 |
+
|
1137 |
+
if($ct_result->spam == 1)
|
1138 |
+
add_filter('pre_comment_approved', 'ct_set_comment_spam', 997, 2);
|
1139 |
+
|
1140 |
if($ct_result->stop_words){ // Contains stop_words. Move to pending folder.
|
1141 |
+
add_filter('pre_comment_approved', 'ct_set_not_approved', 998, 2);
|
1142 |
+
add_action('comment_post', 'ct_mark_red', 998, 2);
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
add_action('comment_post', 'ct_die', 999, 2);
|
|
|
1146 |
}
|
1147 |
|
1148 |
if(isset($ct_options['remove_comments_links']) && $ct_options['remove_comments_links'] == '1'){
|
1325 |
wp_update_comment($comment);
|
1326 |
}
|
1327 |
|
1328 |
+
//
|
1329 |
+
//Send post to trash
|
1330 |
+
//
|
1331 |
+
function ct_wp_trash_comment($comment_id, $comment_status){
|
1332 |
+
wp_trash_comment($comment_id);
|
1333 |
+
}
|
1334 |
+
|
1335 |
/**
|
1336 |
* Tests plugin activation status
|
1337 |
* @return bool
|
1389 |
return $message;
|
1390 |
}
|
1391 |
|
1392 |
+
/**
|
1393 |
+
* Test users registration for pPress
|
1394 |
+
* @return array with errors
|
1395 |
+
*/
|
1396 |
+
function ct_registration_errors_ppress($reg_errors, $form_id) {
|
1397 |
+
|
1398 |
+
$email = $_POST['reg_email'];
|
1399 |
+
$login = $_POST['reg_username'];
|
1400 |
+
|
1401 |
+
$reg_errors = ct_registration_errors($reg_errors, $login, $email);
|
1402 |
+
|
1403 |
+
return $reg_errors;
|
1404 |
+
}
|
1405 |
+
|
1406 |
/**
|
1407 |
* Test users registration for multisite enviroment
|
1408 |
* @return array with errors
|
1548 |
*/
|
1549 |
function ct_registration_errors($errors, $sanitized_user_login = null, $user_email = null) {
|
1550 |
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data;
|
1551 |
+
|
1552 |
$ct_options=ct_get_options();
|
1553 |
$ct_data=ct_get_data();
|
1554 |
|
1556 |
if (ct_is_user_enable() === false) {
|
1557 |
return $errors;
|
1558 |
}
|
1559 |
+
|
1560 |
if ($ct_options['registrations_test'] == 0) {
|
1561 |
return $errors;
|
1562 |
}
|
1563 |
+
|
1564 |
//
|
1565 |
// The function already executed
|
1566 |
// It happens when used ct_register_post();
|
1568 |
if ($ct_signup_done && is_object($errors) && count($errors->errors) > 0) {
|
1569 |
return $errors;
|
1570 |
}
|
1571 |
+
|
1572 |
//
|
1573 |
// BuddyPress actions
|
1574 |
//
|
1609 |
}
|
1610 |
|
1611 |
// Pointer data
|
1612 |
+
$pointer_data = isset($_COOKIE['ct_pointer_data']) ? json_decode($_COOKIE['ct_pointer_data']) : 0;
|
1613 |
+
|
|
|
|
|
|
|
1614 |
// Timezone from JS
|
1615 |
+
$js_timezone = isset($_COOKIE['ct_timezone']) ? $_COOKIE['ct_timezone'] : 0;
|
|
|
|
|
|
|
1616 |
|
1617 |
+
//First key down timestamp
|
1618 |
+
$first_key_press_timestamp = isset($_COOKIE['ct_fkp_timestamp']) ? $_COOKIE['ct_fkp_timestamp'] : 0;
|
1619 |
+
$page_set_timestamp = (isset($_COOKIE['ct_ps_timestamp']) ? $_COOKIE['ct_ps_timestamp'] : 0);
|
1620 |
+
|
1621 |
$sender_info['mouse_cursor_positions'] = $pointer_data;
|
1622 |
$sender_info['js_timezone'] = $js_timezone;
|
1623 |
+
$sender_info['key_press_timestamp'] = $first_key_press_timestamp;
|
1624 |
+
$sender_info['page_set_timestamp'] = $page_set_timestamp;
|
1625 |
|
1626 |
$sender_info = json_encode($sender_info);
|
1627 |
if ($sender_info === false) {
|
1658 |
)
|
1659 |
);
|
1660 |
}
|
1661 |
+
|
1662 |
$ct_signup_done = true;
|
1663 |
|
1664 |
$ct_result = ct_change_plugin_resonse($ct_result, $checkjs);
|
1667 |
ct_send_error_notice($ct_result->comment);
|
1668 |
return $errors;
|
1669 |
}
|
1670 |
+
|
1671 |
ct_init_session();
|
1672 |
|
1673 |
if ($ct_result->allow == 0) {
|
1792 |
$ct = $ct_base_call_result['ct'];
|
1793 |
$ct_result = $ct_base_call_result['ct_result'];
|
1794 |
|
1795 |
+
if ($ct_result->allow == 0) {
|
1796 |
global $ct_comment;
|
1797 |
$ct_comment = $ct_result->comment;
|
1798 |
ct_die(null, null);
|
1799 |
exit;
|
1800 |
}
|
1801 |
|
1802 |
+
return (bool) !$ct_result->allow;
|
1803 |
}
|
1804 |
|
1805 |
function ct_contact_form_is_spam_jetpack($is_spam,$form) {
|
1853 |
$ct = $ct_base_call_result['ct'];
|
1854 |
$ct_result = $ct_base_call_result['ct_result'];
|
1855 |
|
1856 |
+
if ($ct_result->allow == 0) {
|
1857 |
global $ct_comment;
|
1858 |
$ct_comment = $ct_result->comment;
|
1859 |
ct_die(null, null);
|
1860 |
exit;
|
1861 |
}
|
1862 |
|
1863 |
+
return (bool) !$ct_result->allow;
|
1864 |
}
|
1865 |
|
1866 |
|
1964 |
$ct = $ct_base_call_result['ct'];
|
1965 |
$ct_result = $ct_base_call_result['ct_result'];
|
1966 |
|
1967 |
+
if ($ct_result->allow == 0) {
|
1968 |
+
|
1969 |
+
if (WPCF7_VERSION >= '3.0.0')
|
1970 |
+
$param = true;
|
1971 |
+
else
|
1972 |
+
$param = false;
|
1973 |
+
|
1974 |
+
$ct_cf7_comment = $ct_result->comment;
|
1975 |
+
add_filter('wpcf7_display_message', 'ct_wpcf7_display_message', 10, 2);
|
1976 |
}
|
1977 |
|
1978 |
return $param;
|
2063 |
|
2064 |
$cleantalk_executed = true;
|
2065 |
|
2066 |
+
if ($ct_result->allow == 0) {
|
2067 |
global $ct_comment;
|
2068 |
$ct_comment = $ct_result->comment;
|
2069 |
ct_die(null, null);
|
2140 |
$ct = $ct_base_call_result['ct'];
|
2141 |
$ct_result = $ct_base_call_result['ct_result'];
|
2142 |
|
2143 |
+
if ($ct_result->allow == 0) {
|
2144 |
$cleantalk_comment = $ct_result->comment;
|
2145 |
} else {
|
2146 |
$cleantalk_comment = 'OK';
|
2342 |
*/
|
2343 |
function ct_contact_form_validate () {
|
2344 |
global $pagenow,$cleantalk_executed, $cleantalk_url_exclusions,$ct_options, $ct_data, $ct_checkjs_frm;
|
2345 |
+
|
2346 |
$ct_options = ct_get_options();
|
2347 |
$ct_data = ct_get_data();
|
2348 |
|
2446 |
cleantalk_debug("CtContactForm", "false");
|
2447 |
}
|
2448 |
|
|
|
|
|
2449 |
// Skip submission if no data found
|
2450 |
if ($sender_email===''|| !$contact_form) {
|
2451 |
return false;
|
2478 |
{
|
2479 |
$_POST['TellAFriend_Link']=$tmp;
|
2480 |
}
|
2481 |
+
|
2482 |
$ct = $ct_base_call_result['ct'];
|
2483 |
$ct_result = $ct_base_call_result['ct_result'];
|
2484 |
if ($ct_result->allow == 0) {
|
2538 |
}elseif(isset($_POST['action']) && $_POST['action'] == 'cf_process_ajax_submit'){
|
2539 |
echo "<h3>Antispam by CleanTalk: <u>".$ct_result->comment."</u></h3>";
|
2540 |
die();
|
|
|
2541 |
}else
|
2542 |
ct_die(null, null);
|
2543 |
|
inc/cleantalk-users.php
CHANGED
@@ -17,12 +17,20 @@ function ct_show_users_page()
|
|
17 |
<h2><?php echo $ct_plugin_name; ?></h2><br />
|
18 |
<?php
|
19 |
global $wpdb;
|
20 |
-
$r=$wpdb->get_results("
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
$cnt_unchecked=$cnt_all-$cnt_checked;
|
26 |
/*$args_spam = array(
|
27 |
'meta_query' => array(
|
28 |
Array(
|
@@ -246,18 +254,31 @@ function ct_ajax_check_users()
|
|
246 |
'compare' => 'NOT EXISTS'
|
247 |
),
|
248 |
),
|
|
|
|
|
249 |
'number' => 100
|
250 |
);
|
251 |
|
252 |
-
$u=get_users($args_unchecked);
|
253 |
-
|
254 |
-
if(sizeof($u)>0)
|
255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
$data=Array();
|
257 |
for($i=0;$i<sizeof($u);$i++)
|
258 |
{
|
259 |
$user_meta=get_user_meta($u[$i]->ID, 'session_tokens', true);
|
260 |
-
|
261 |
if(is_array($user_meta))
|
262 |
{
|
263 |
$user_meta=array_values($user_meta);
|
@@ -361,11 +382,19 @@ function ct_ajax_info_users($direct_call = false)
|
|
361 |
}
|
362 |
|
363 |
global $wpdb;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
$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';");
|
365 |
$cnt_checked=$r[0]->cnt;
|
366 |
-
$r=$wpdb->get_results("select count(ID) as cnt from $wpdb->users;");
|
367 |
-
$cnt=$r[0]->cnt;
|
368 |
|
|
|
369 |
$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);
|
370 |
$cnt_spam1=$r[0]['cnt'];
|
371 |
|
@@ -376,9 +405,8 @@ function ct_ajax_info_users($direct_call = false)
|
|
376 |
}
|
377 |
print "<p>$backup_notice</p>";
|
378 |
|
379 |
-
if (!$direct_call)
|
380 |
die();
|
381 |
-
};
|
382 |
|
383 |
return null;
|
384 |
}
|
17 |
<h2><?php echo $ct_plugin_name; ?></h2><br />
|
18 |
<?php
|
19 |
global $wpdb;
|
20 |
+
$r=$wpdb->get_results("
|
21 |
+
SELECT
|
22 |
+
COUNT(all_users.ID) - COUNT(meta_users.user_id) AS cnt_unchecked
|
23 |
+
FROM $wpdb->users all_users
|
24 |
+
LEFT JOIN $wpdb->usermeta meta_users
|
25 |
+
ON all_users.ID = meta_users.user_id
|
26 |
+
WHERE meta_users.meta_key='ct_checked'
|
27 |
+
OR meta_users.meta_key='ct_hash';
|
28 |
+
");
|
29 |
+
|
30 |
+
$cnt_unchecked=$r[0]->cnt_unchecked;
|
31 |
+
|
32 |
+
echo(" cnt_unchecked $cnt_unchecked<br>");
|
33 |
|
|
|
34 |
/*$args_spam = array(
|
35 |
'meta_query' => array(
|
36 |
Array(
|
254 |
'compare' => 'NOT EXISTS'
|
255 |
),
|
256 |
),
|
257 |
+
'orderby' => 'registered',
|
258 |
+
'order' => 'ASC',
|
259 |
'number' => 100
|
260 |
);
|
261 |
|
262 |
+
$u = get_users($args_unchecked);
|
263 |
+
|
264 |
+
if(sizeof($u)>0){
|
265 |
+
|
266 |
+
foreach($u as $user_index => $user){
|
267 |
+
|
268 |
+
if(!isset($curr_date))
|
269 |
+
$curr_date = (substr($user->data->user_registered, 0, 9) ? substr($user->data->user_registered, 0, 9) : '');
|
270 |
+
|
271 |
+
if(substr($user->data->user_registered, 0, 9) != $curr_date)
|
272 |
+
unset($u[$user_index]);
|
273 |
+
|
274 |
+
}
|
275 |
+
unset($user_index, $user);
|
276 |
+
|
277 |
$data=Array();
|
278 |
for($i=0;$i<sizeof($u);$i++)
|
279 |
{
|
280 |
$user_meta=get_user_meta($u[$i]->ID, 'session_tokens', true);
|
281 |
+
|
282 |
if(is_array($user_meta))
|
283 |
{
|
284 |
$user_meta=array_values($user_meta);
|
382 |
}
|
383 |
|
384 |
global $wpdb;
|
385 |
+
// All users
|
386 |
+
$r=$wpdb->get_results("
|
387 |
+
SELECT
|
388 |
+
COUNT(ID) AS cnt
|
389 |
+
FROM $wpdb->users
|
390 |
+
");
|
391 |
+
$cnt = $r[0]->cnt;
|
392 |
+
|
393 |
+
// Checked
|
394 |
$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';");
|
395 |
$cnt_checked=$r[0]->cnt;
|
|
|
|
|
396 |
|
397 |
+
//Spam
|
398 |
$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);
|
399 |
$cnt_spam1=$r[0]['cnt'];
|
400 |
|
405 |
}
|
406 |
print "<p>$backup_notice</p>";
|
407 |
|
408 |
+
if (!$direct_call)
|
409 |
die();
|
|
|
410 |
|
411 |
return null;
|
412 |
}
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: znaeff, shagimuratov, serge00, sartemd174
|
3 |
Tags: spam, anti-spam, antispam, anti spam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spammers, spammy, woocommerce, wordpress spam, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, plugin, contact, recaptcha, google captcha, google recaptcha, blacklist, prevent spam comments, wordpress, User Frontend, bulk delete, bulk remove, widget, review, firewall, cleantalk, mailpoet, profile builder, comment spam, registration spam, spam comments, comment moderation, spam bots, block spam, signup spam, spam blocker, spam filter, user registration spam,pingback,trackback, anti-spam plugin, varnish, amp, spam free, userpro,honeypot,puzzle,quiz,survey,poll,security, amo forms, caldera forms, visual form builder, contact form clean and simple
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 4.7
|
6 |
-
Stable tag: 5.
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -484,6 +484,12 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
484 |
1. The Dashboard with a map of most spam active countries per your account.
|
485 |
|
486 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
= 5.55 December 23 2016 =
|
488 |
* Integrations: Caldera Forms, Visual Form Builder.
|
489 |
* Fix for different 'cookies' header names.
|
@@ -1218,6 +1224,12 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
1218 |
|
1219 |
== Upgrade Notice ==
|
1220 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
1221 |
= 5.55 December 23 2016 =
|
1222 |
* Integrations: Caldera Forms, Visual Form Builder.
|
1223 |
* Fix for different 'cookies' header names.
|
2 |
Contributors: znaeff, shagimuratov, serge00, sartemd174
|
3 |
Tags: spam, anti-spam, antispam, anti spam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spammers, spammy, woocommerce, wordpress spam, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, plugin, contact, recaptcha, google captcha, google recaptcha, blacklist, prevent spam comments, wordpress, User Frontend, bulk delete, bulk remove, widget, review, firewall, cleantalk, mailpoet, profile builder, comment spam, registration spam, spam comments, comment moderation, spam bots, block spam, signup spam, spam blocker, spam filter, user registration spam,pingback,trackback, anti-spam plugin, varnish, amp, spam free, userpro,honeypot,puzzle,quiz,survey,poll,security, amo forms, caldera forms, visual form builder, contact form clean and simple
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 4.7.1
|
6 |
+
Stable tag: 5.56
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
484 |
1. The Dashboard with a map of most spam active countries per your account.
|
485 |
|
486 |
== Changelog ==
|
487 |
+
= 5.56 December 19 2016 =
|
488 |
+
* Integrations: MailChimp Premium, Profile Press.
|
489 |
+
* Changes comments flow.
|
490 |
+
* FireWall updater fix.
|
491 |
+
* Users check optimization.
|
492 |
+
|
493 |
= 5.55 December 23 2016 =
|
494 |
* Integrations: Caldera Forms, Visual Form Builder.
|
495 |
* Fix for different 'cookies' header names.
|
1224 |
|
1225 |
== Upgrade Notice ==
|
1226 |
== Changelog ==
|
1227 |
+
= 5.56 December 19 2016 =
|
1228 |
+
* Integrations: MailChimp Premium, Profile Press.
|
1229 |
+
* Changes comments flow.
|
1230 |
+
* FireWall updater fix.
|
1231 |
+
* Users check optimization.
|
1232 |
+
|
1233 |
= 5.55 December 23 2016 =
|
1234 |
* Integrations: Caldera Forms, Visual Form Builder.
|
1235 |
* Fix for different 'cookies' header names.
|