Version Description
2013-11-27 = * New: Added protection against spam bots for BuddyPress registrations. * New: Added protection against spam bots for Contact form 7. * New: Added Spanish (es_ES) translation.
Download this release
Release Info
Developer | shagimuratov |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 2.25 |
Comparing to | |
See all releases |
Code changes from version 2.23 to 2.25
- cleantalk.class.php +1 -4
- cleantalk.php +182 -15
- i18n/cleantalk-es_ES.mo +0 -0
- readme.txt +28 -12
- screenshot-5.png +0 -0
cleantalk.class.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* @author Сleantalk team (welcome@cleantalk.ru)
|
9 |
* @copyright (C) 2013 СleanTalk team (http://cleantalk.org)
|
10 |
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
11 |
-
* @see
|
12 |
*
|
13 |
*/
|
14 |
|
@@ -508,9 +508,6 @@ class Cleantalk {
|
|
508 |
break;
|
509 |
|
510 |
case 'check_newuser':
|
511 |
-
if (empty($request->sender_email)) {
|
512 |
-
$error_params[] = 'sender_email';
|
513 |
-
}
|
514 |
break;
|
515 |
|
516 |
case 'send_feedback':
|
8 |
* @author Сleantalk team (welcome@cleantalk.ru)
|
9 |
* @copyright (C) 2013 СleanTalk team (http://cleantalk.org)
|
10 |
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
11 |
+
* @see https://github.com/CleanTalk/php-antispam
|
12 |
*
|
13 |
*/
|
14 |
|
508 |
break;
|
509 |
|
510 |
case 'check_newuser':
|
|
|
|
|
|
|
511 |
break;
|
512 |
|
513 |
case 'send_feedback':
|
cleantalk.php
CHANGED
@@ -3,25 +3,40 @@
|
|
3 |
Plugin Name: Anti-spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org/wordpress
|
5 |
Description: Invisible antispam for comments, registrations and feedbacks. The plugin doesn't use CAPTCHA, Q&A, math or quiz to stop spam bots.
|
6 |
-
Version: 2.
|
7 |
Author: СleanTalk <welcome@cleantalk.ru>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
|
11 |
-
$ct_agent_version = 'wordpress-
|
12 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
13 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
14 |
$ct_session_request_id_label = 'request_id';
|
15 |
|
|
|
|
|
|
|
|
|
16 |
add_action('comment_form', 'ct_add_hidden_fields');
|
17 |
add_filter('preprocess_comment', 'ct_check'); // param - comment data array
|
|
|
|
|
18 |
add_action('frm_validate_entry', 'ct_frm_validate_entry', 20, 2);
|
19 |
add_action('frm_entries_footer_scripts', 'ct_frm_entries_footer_scripts', 20, 2);
|
20 |
|
|
|
21 |
add_action('register_form','ct_register_form');
|
22 |
add_filter('registration_errors', 'ct_registration_errors', 10, 3);
|
23 |
add_action('user_register', 'ct_user_register');
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
if (is_admin()) {
|
26 |
add_action('admin_init', 'ct_admin_init', 1);
|
27 |
add_action('admin_menu', 'ct_admin_add_page');
|
@@ -61,6 +76,7 @@ function ct_def_options() {
|
|
61 |
'registrations_test' => '1',
|
62 |
'comments_test' => '1',
|
63 |
'formidable_test' => '1',
|
|
|
64 |
'remove_old_spam' => '0',
|
65 |
'spam_store_days' => '31' // Days before delete comments from folder Spam
|
66 |
);
|
@@ -189,7 +205,7 @@ function ct_init_session() {
|
|
189 |
* Public action 'comment_form' - Adds hidden filed to define avaialbility of client's JavaScript
|
190 |
* @param int $post_id Post ID, not used
|
191 |
*/
|
192 |
-
function ct_add_hidden_fields($post_id = 0, $field_name = 'ct_checkjs') {
|
193 |
$ct_checkjs_def = 0;
|
194 |
$ct_checkjs_key = ct_get_checkjs_value();
|
195 |
|
@@ -200,15 +216,20 @@ function ct_add_hidden_fields($post_id = 0, $field_name = 'ct_checkjs') {
|
|
200 |
|
201 |
ct_init_session();
|
202 |
$_SESSION['formtime'] = time();
|
203 |
-
|
204 |
-
|
205 |
-
<input type="hidden" id="<?php echo $field_name; ?>" name="<?php echo $field_name; ?>" value="0">
|
206 |
<script type="text/javascript">
|
207 |
// <![CDATA[
|
208 |
-
document.getElementById("
|
209 |
// ]]>
|
210 |
</script>
|
211 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
}
|
213 |
|
214 |
/**
|
@@ -764,7 +785,7 @@ function admin_notice_message(){
|
|
764 |
* Add descriptions for field
|
765 |
*/
|
766 |
function admin_addDescriptionsFields($descr = '') {
|
767 |
-
echo "<
|
768 |
}
|
769 |
|
770 |
/**
|
@@ -851,9 +872,22 @@ function ct_register_form() {
|
|
851 |
* Test users registration
|
852 |
* @return array with errors
|
853 |
*/
|
854 |
-
function ct_registration_errors($errors, $sanitized_user_login, $user_email) {
|
855 |
-
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label;
|
856 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
857 |
$options = ct_get_options();
|
858 |
if ($options['registrations_test'] == 0) {
|
859 |
return $errors;
|
@@ -910,7 +944,11 @@ function ct_registration_errors($errors, $sanitized_user_login, $user_email) {
|
|
910 |
|
911 |
if ($ct_result->allow == 0) {
|
912 |
$wordpress_domain = preg_replace("/^https?:\/\//", "", site_url());
|
913 |
-
|
|
|
|
|
|
|
|
|
914 |
} else {
|
915 |
if ($ct_result->id !== null) {
|
916 |
ct_init_session();
|
@@ -945,6 +983,125 @@ function ct_delete_user($user_id) {
|
|
945 |
}
|
946 |
}
|
947 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
948 |
|
949 |
/**
|
950 |
* Admin action 'admin_enqueue_scripts' - Enqueue admin script of reloading admin page after needed AJAX events
|
@@ -979,6 +1136,7 @@ function ct_admin_init() {
|
|
979 |
add_settings_field('cleantalk_registrations_test', __('Registration form', 'cleantalk'), 'ct_input_registrations_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
980 |
add_settings_field('cleantalk_comments_test', __('Comments form', 'cleantalk'), 'ct_input_comments_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
981 |
add_settings_field('cleantalk_formidable_test', __('Formidable Forms', 'cleantalk'), 'ct_input_formidable_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
|
|
982 |
}
|
983 |
|
984 |
/**
|
@@ -1069,8 +1227,19 @@ function ct_input_registrations_test() {
|
|
1069 |
echo "<input type='radio' id='cleantalk_registrations_test1' name='cleantalk_settings[registrations_test]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_registrations_test1'> " . __('Yes') . "</label>";
|
1070 |
echo ' ';
|
1071 |
echo "<input type='radio' id='cleantalk_registrations_test0' name='cleantalk_settings[registrations_test]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_registrations_test0'> " . __('No') . "</label>";
|
|
|
1072 |
}
|
1073 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1074 |
|
1075 |
/**
|
1076 |
* Admin callback function - Plugin parameters validator
|
@@ -1091,8 +1260,6 @@ function ct_settings_page() {
|
|
1091 |
<?php settings_fields('cleantalk_settings'); ?>
|
1092 |
<?php do_settings_sections('cleantalk'); ?>
|
1093 |
<br>
|
1094 |
-
<br>
|
1095 |
-
<br>
|
1096 |
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
|
1097 |
</form>
|
1098 |
</div>
|
3 |
Plugin Name: Anti-spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org/wordpress
|
5 |
Description: Invisible antispam for comments, registrations and feedbacks. The plugin doesn't use CAPTCHA, Q&A, math or quiz to stop spam bots.
|
6 |
+
Version: 2.25
|
7 |
Author: СleanTalk <welcome@cleantalk.ru>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
|
11 |
+
$ct_agent_version = 'wordpress-225';
|
12 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
13 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
14 |
$ct_session_request_id_label = 'request_id';
|
15 |
|
16 |
+
$ct_checkjs_cf7 = 'ct_checkjs_cf7';
|
17 |
+
$ct_cf7_comment = 'This is a spam!';
|
18 |
+
|
19 |
+
// Comments
|
20 |
add_action('comment_form', 'ct_add_hidden_fields');
|
21 |
add_filter('preprocess_comment', 'ct_check'); // param - comment data array
|
22 |
+
|
23 |
+
// Formidable
|
24 |
add_action('frm_validate_entry', 'ct_frm_validate_entry', 20, 2);
|
25 |
add_action('frm_entries_footer_scripts', 'ct_frm_entries_footer_scripts', 20, 2);
|
26 |
|
27 |
+
// Registrations
|
28 |
add_action('register_form','ct_register_form');
|
29 |
add_filter('registration_errors', 'ct_registration_errors', 10, 3);
|
30 |
add_action('user_register', 'ct_user_register');
|
31 |
|
32 |
+
// BuddyPress
|
33 |
+
add_action('bp_before_registration_submit_buttons','ct_register_form');
|
34 |
+
add_filter('bp_signup_validate', 'ct_registration_errors');
|
35 |
+
|
36 |
+
// Contact Form7
|
37 |
+
add_filter('wpcf7_form_elements', 'ct_wpcf7_form_elements');
|
38 |
+
add_filter('wpcf7_spam', 'ct_wpcf7_spam');
|
39 |
+
|
40 |
if (is_admin()) {
|
41 |
add_action('admin_init', 'ct_admin_init', 1);
|
42 |
add_action('admin_menu', 'ct_admin_add_page');
|
76 |
'registrations_test' => '1',
|
77 |
'comments_test' => '1',
|
78 |
'formidable_test' => '1',
|
79 |
+
'cf7_test' => '1',
|
80 |
'remove_old_spam' => '0',
|
81 |
'spam_store_days' => '31' // Days before delete comments from folder Spam
|
82 |
);
|
205 |
* Public action 'comment_form' - Adds hidden filed to define avaialbility of client's JavaScript
|
206 |
* @param int $post_id Post ID, not used
|
207 |
*/
|
208 |
+
function ct_add_hidden_fields($post_id = 0, $field_name = 'ct_checkjs', $return_string = false) {
|
209 |
$ct_checkjs_def = 0;
|
210 |
$ct_checkjs_key = ct_get_checkjs_value();
|
211 |
|
216 |
|
217 |
ct_init_session();
|
218 |
$_SESSION['formtime'] = time();
|
219 |
+
$html = '
|
220 |
+
<input type="hidden" id="%s" name="%s" value="0">
|
|
|
221 |
<script type="text/javascript">
|
222 |
// <![CDATA[
|
223 |
+
document.getElementById("%s").value = document.getElementById("%s").value.replace("%s", "%s");
|
224 |
// ]]>
|
225 |
</script>
|
226 |
+
';
|
227 |
+
$html = sprintf($html, $field_name, $field_name, $field_name, $field_name, $ct_checkjs_def, $ct_checkjs_key);
|
228 |
+
if ($return_string === true) {
|
229 |
+
return $html;
|
230 |
+
} else {
|
231 |
+
echo $html;
|
232 |
+
}
|
233 |
}
|
234 |
|
235 |
/**
|
785 |
* Add descriptions for field
|
786 |
*/
|
787 |
function admin_addDescriptionsFields($descr = '') {
|
788 |
+
echo "<div style='color: #666 !important'>$descr</div>";
|
789 |
}
|
790 |
|
791 |
/**
|
872 |
* Test users registration
|
873 |
* @return array with errors
|
874 |
*/
|
875 |
+
function ct_registration_errors($errors, $sanitized_user_login = null, $user_email = null) {
|
876 |
+
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $bp;
|
877 |
+
|
878 |
+
//
|
879 |
+
// BuddyPress actions
|
880 |
+
//
|
881 |
+
$buddypress = false;
|
882 |
+
if ($sanitized_user_login === null && isset($_POST['signup_username'])) {
|
883 |
+
$sanitized_user_login = $_POST['signup_username'];
|
884 |
+
$buddypress = true;
|
885 |
+
}
|
886 |
+
if ($user_email === null && isset($_POST['signup_email'])) {
|
887 |
+
$user_email = $_POST['signup_email'];
|
888 |
+
$buddypress = true;
|
889 |
+
}
|
890 |
+
|
891 |
$options = ct_get_options();
|
892 |
if ($options['registrations_test'] == 0) {
|
893 |
return $errors;
|
944 |
|
945 |
if ($ct_result->allow == 0) {
|
946 |
$wordpress_domain = preg_replace("/^https?:\/\//", "", site_url());
|
947 |
+
if ($buddypress === true) {
|
948 |
+
$bp->signup->errors['signup_username'] = $ct_result->comment;
|
949 |
+
} else {
|
950 |
+
$errors->add('ct_error', __($ct_result->comment, $wordpress_domain));
|
951 |
+
}
|
952 |
} else {
|
953 |
if ($ct_result->id !== null) {
|
954 |
ct_init_session();
|
983 |
}
|
984 |
}
|
985 |
|
986 |
+
/**
|
987 |
+
* Inserts anti-spam hidden to CF7
|
988 |
+
*/
|
989 |
+
function ct_wpcf7_form_elements($html) {
|
990 |
+
global $ct_checkjs_cf7;
|
991 |
+
global $wpdb, $current_user, $ct_checkjs_cf7;
|
992 |
+
|
993 |
+
$options = ct_get_options();
|
994 |
+
if (ct_is_user_enable() === false || $options['cf7_test'] == 0) {
|
995 |
+
return $html;
|
996 |
+
}
|
997 |
+
|
998 |
+
$html .= ct_add_hidden_fields(0, $ct_checkjs_cf7, true);
|
999 |
+
|
1000 |
+
return $html;
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
/**
|
1004 |
+
* Test CF7 message for spam
|
1005 |
+
*/
|
1006 |
+
function ct_wpcf7_spam($spam) {
|
1007 |
+
global $wpdb, $current_user, $ct_agent_version, $ct_checkjs_cf7, $ct_cf7_comment;
|
1008 |
+
|
1009 |
+
if ($spam === true)
|
1010 |
+
return $spam;
|
1011 |
+
|
1012 |
+
$options = ct_get_options();
|
1013 |
+
if (ct_is_user_enable() === false || $options['cf7_test'] == 0) {
|
1014 |
+
return $spam;
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
$checkjs = js_test($ct_checkjs_cf7);
|
1018 |
+
|
1019 |
+
require_once('cleantalk.class.php');
|
1020 |
+
|
1021 |
+
$example = null;
|
1022 |
+
$blog_lang = substr(get_locale(), 0, 2);
|
1023 |
+
$user_info = array(
|
1024 |
+
'cms_lang' => $blog_lang,
|
1025 |
+
'REFFERRER' => @$_SERVER['HTTP_REFERER'],
|
1026 |
+
'USER_AGENT' => @$_SERVER['HTTP_USER_AGENT'],
|
1027 |
+
);
|
1028 |
+
$user_info = json_encode($user_info);
|
1029 |
+
if ($user_info === false)
|
1030 |
+
$user_info = '';
|
1031 |
+
|
1032 |
+
$post_info['comment_type'] = 'feedback';
|
1033 |
+
$post_info = json_encode($post_info);
|
1034 |
+
if ($post_info === false)
|
1035 |
+
$post_info = '';
|
1036 |
+
|
1037 |
+
$sender_email = null;
|
1038 |
+
$sender_nickname = null;
|
1039 |
+
$message = '';
|
1040 |
+
foreach ($_POST as $k => $v) {
|
1041 |
+
if ($sender_email === null && preg_match("/^\S+@\S+\.\S+$/", $v)) {
|
1042 |
+
$sender_email = $v;
|
1043 |
+
}
|
1044 |
+
if ($message === '' && preg_match("/-message$/", $k)) {
|
1045 |
+
$message = $v;
|
1046 |
+
}
|
1047 |
+
if ($sender_nickname === null && preg_match("/-name$/", $k)) {
|
1048 |
+
$sender_nickname = $v;
|
1049 |
+
}
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
$config = get_option('cleantalk_server');
|
1053 |
+
|
1054 |
+
$ct = new Cleantalk();
|
1055 |
+
$ct->work_url = $config['ct_work_url'];
|
1056 |
+
$ct->server_url = $options['server'];
|
1057 |
+
$ct->server_ttl = $config['ct_server_ttl'];
|
1058 |
+
$ct->server_changed = $config['ct_server_changed'];
|
1059 |
+
|
1060 |
+
$ct_request = new CleantalkRequest();
|
1061 |
+
|
1062 |
+
$ct_request->auth_key = $options['apikey'];
|
1063 |
+
$ct_request->message = $message;
|
1064 |
+
$ct_request->example = $example;
|
1065 |
+
$ct_request->sender_email = $sender_email;
|
1066 |
+
$ct_request->sender_nickname = $sender_nickname;
|
1067 |
+
$ct_request->sender_ip = $ct->ct_session_ip($_SERVER['REMOTE_ADDR']);
|
1068 |
+
$ct_request->agent = $ct_agent_version;
|
1069 |
+
$ct_request->sender_info = $user_info;
|
1070 |
+
$ct_request->js_on = $checkjs;
|
1071 |
+
$ct_request->post_info = $post_info;
|
1072 |
+
|
1073 |
+
$ct_result = $ct->isAllowMessage($ct_request);
|
1074 |
+
if ($ct->server_change) {
|
1075 |
+
update_option(
|
1076 |
+
'cleantalk_server', array(
|
1077 |
+
'ct_work_url' => $ct->work_url,
|
1078 |
+
'ct_server_ttl' => $ct->server_ttl,
|
1079 |
+
'ct_server_changed' => time()
|
1080 |
+
)
|
1081 |
+
);
|
1082 |
+
}
|
1083 |
+
if ($ct_result->spam == 1) {
|
1084 |
+
$spam = true;
|
1085 |
+
$ct_cf7_comment = $ct_result->comment;
|
1086 |
+
add_filter('wpcf7_display_message', 'ct_wpcf7_display_message', 10, 2);
|
1087 |
+
}
|
1088 |
+
|
1089 |
+
return $spam;
|
1090 |
+
}
|
1091 |
+
/**
|
1092 |
+
* Changes CF7 status message
|
1093 |
+
* @param string $hook URL of hooked page
|
1094 |
+
*/
|
1095 |
+
|
1096 |
+
function ct_wpcf7_display_message($message, $status) {
|
1097 |
+
global $ct_cf7_comment;
|
1098 |
+
|
1099 |
+
if ($status == 'spam') {
|
1100 |
+
$message = $ct_cf7_comment;
|
1101 |
+
}
|
1102 |
+
|
1103 |
+
return $message;
|
1104 |
+
}
|
1105 |
|
1106 |
/**
|
1107 |
* Admin action 'admin_enqueue_scripts' - Enqueue admin script of reloading admin page after needed AJAX events
|
1136 |
add_settings_field('cleantalk_registrations_test', __('Registration form', 'cleantalk'), 'ct_input_registrations_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
1137 |
add_settings_field('cleantalk_comments_test', __('Comments form', 'cleantalk'), 'ct_input_comments_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
1138 |
add_settings_field('cleantalk_formidable_test', __('Formidable Forms', 'cleantalk'), 'ct_input_formidable_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
1139 |
+
add_settings_field('cleantalk_cf7_test', __('Contact form 7', 'cleantalk'), 'ct_input_cf7_test', 'cleantalk', 'cleantalk_settings_anti_spam');
|
1140 |
}
|
1141 |
|
1142 |
/**
|
1227 |
echo "<input type='radio' id='cleantalk_registrations_test1' name='cleantalk_settings[registrations_test]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_registrations_test1'> " . __('Yes') . "</label>";
|
1228 |
echo ' ';
|
1229 |
echo "<input type='radio' id='cleantalk_registrations_test0' name='cleantalk_settings[registrations_test]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_registrations_test0'> " . __('No') . "</label>";
|
1230 |
+
admin_addDescriptionsFields(__('WordPress, BuddyPress', 'cleantalk'));
|
1231 |
}
|
1232 |
|
1233 |
+
/**
|
1234 |
+
* Admin callback function - Displays inputs of 'cf7_test' plugin parameter
|
1235 |
+
*/
|
1236 |
+
function ct_input_cf7_test() {
|
1237 |
+
$options = ct_get_options();
|
1238 |
+
$value = $options['cf7_test'];
|
1239 |
+
echo "<input type='radio' id='cleantalk_cf7_test1' name='cleantalk_settings[cf7_test]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_cf7_test1'> " . __('Yes') . "</label>";
|
1240 |
+
echo ' ';
|
1241 |
+
echo "<input type='radio' id='cleantalk_cf7_test0' name='cleantalk_settings[cf7_test]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_cf7_test0'> " . __('No') . "</label>";
|
1242 |
+
}
|
1243 |
|
1244 |
/**
|
1245 |
* Admin callback function - Plugin parameters validator
|
1260 |
<?php settings_fields('cleantalk_settings'); ?>
|
1261 |
<?php do_settings_sections('cleantalk'); ?>
|
1262 |
<br>
|
|
|
|
|
1263 |
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
|
1264 |
</form>
|
1265 |
</div>
|
i18n/cleantalk-es_ES.mo
ADDED
Binary file
|
readme.txt
CHANGED
@@ -1,38 +1,44 @@
|
|
1 |
=== Anti-spam by CleanTalk ===
|
2 |
Contributors: znaeff, shagimuratov
|
3 |
-
Tags:
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 3.7.1
|
6 |
-
Stable tag: 2.
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
-
|
11 |
|
12 |
== Description ==
|
13 |
-
|
14 |
1. Stops spam bots in the comments.
|
15 |
1. Stops spam bots in the registration.
|
16 |
-
1. Stops spam bots
|
17 |
1. Invisible spam protection for visitors.
|
18 |
1. Anti-spam without CAPTCHA, math, puzzles or Q&A.
|
19 |
|
20 |
Plugin filters spam bots in the comments, spam moves to trash. The plugin is not visible for visitors and administrators of a blog. The plugin doesn't use CAPTCHA, Q&A, puzzles or math to stop spammers. It's simple and clever antispam for your blog.
|
21 |
|
22 |
-
Also
|
23 |
|
24 |
-
The plugin is a client application for anti-spam cloud service <a href="http://cleantalk.org" target="_blank">cleantalk.org</a>. CleanTalk.org daily prevents from spam 5000 blogs, blocks up to
|
25 |
|
26 |
The plugin is WordPress MultiUser (WPMU or WordPress network) compatible. Each blog in multisite environment has individual anitspam options for spam bots protection.
|
27 |
|
28 |
= Functions =
|
29 |
* Antispam protection for comments form.
|
30 |
-
* Antispam protection for registration form.
|
|
|
31 |
* Antispam protection for <a href="http://wordpress.org/plugins/formidable/" target="_blank">Formiadble forms</a>.
|
|
|
32 |
|
33 |
= Requirements =
|
34 |
WordPress 3.0 at least. PHP 4, 5 with CURL or file_get_contents() function and enabled 'allow_url_fopen' setting. <a href="http://cleantalk.org/register?platform=wordpress">Sign up</a> to get an Access key.
|
35 |
|
|
|
|
|
|
|
|
|
|
|
36 |
== Installation ==
|
37 |
|
38 |
1. Download, install and activate the plugin.
|
@@ -79,14 +85,19 @@ Plugin by default pass not spam pingbacks/trackbacks (sender host clear at <a hr
|
|
79 |
Use other antispam plugins not necessarily, because CleanTalk stops 99.99% of spam comments. But if necessary, the plugin can work together with Akismet, Captcha and etc.
|
80 |
|
81 |
== Screenshots ==
|
82 |
-
|
83 |
-
1. The comment from spammer (sender blacklisted by IP/Email, comment text not relevant for the post) prohibited to place in the queue WordPress
|
84 |
1. Not spam, not relevant to article comment has moved to approval.
|
85 |
-
1. Antispam stoppped spam bot at the registration form
|
86 |
-
1. Spam bot stopped at Formidable
|
|
|
87 |
|
88 |
== Changelog ==
|
89 |
|
|
|
|
|
|
|
|
|
|
|
90 |
= 2.23 2013-11-20 =
|
91 |
* New: Added automatic training blacklists on spam bot account deletion.
|
92 |
* New: Added URL to project homepage at plugin options.
|
@@ -214,6 +225,11 @@ Use other antispam plugins not necessarily, because CleanTalk stops 99.99% of sp
|
|
214 |
* First version
|
215 |
|
216 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
217 |
= 2.23 2013-11-20 =
|
218 |
* New: Added automatic training blacklists on spam bot account deletion.
|
219 |
* New: Added URL to project homepage at plugin options.
|
1 |
=== Anti-spam by CleanTalk ===
|
2 |
Contributors: znaeff, shagimuratov
|
3 |
+
Tags: antispam, anti-spam, spam, captcha, comment, comments, wpmu, network, multisite, forms, registration, login, contact form, buddypress, admin, user, users, post, posts, wordpress, javascript, plugin
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 3.7.1
|
6 |
+
Stable tag: 2.25
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
+
Cloud antispam for comments, registrations and contacts.
|
11 |
|
12 |
== Description ==
|
|
|
13 |
1. Stops spam bots in the comments.
|
14 |
1. Stops spam bots in the registration.
|
15 |
+
1. Stops spam bots in the contact forms.
|
16 |
1. Invisible spam protection for visitors.
|
17 |
1. Anti-spam without CAPTCHA, math, puzzles or Q&A.
|
18 |
|
19 |
Plugin filters spam bots in the comments, spam moves to trash. The plugin is not visible for visitors and administrators of a blog. The plugin doesn't use CAPTCHA, Q&A, puzzles or math to stop spammers. It's simple and clever antispam for your blog.
|
20 |
|
21 |
+
Also first comment from a new author plugin compares with post and previous comments. If the relevance of the comment is good enough it gets approval at the blog without manual approval.
|
22 |
|
23 |
+
The plugin is a client application for anti-spam cloud service <a href="http://cleantalk.org" target="_blank">cleantalk.org</a>. CleanTalk.org daily prevents from spam 5000 blogs, blocks up to 500 000 spam bots attacks and approves up to 4000 not spam comments.
|
24 |
|
25 |
The plugin is WordPress MultiUser (WPMU or WordPress network) compatible. Each blog in multisite environment has individual anitspam options for spam bots protection.
|
26 |
|
27 |
= Functions =
|
28 |
* Antispam protection for comments form.
|
29 |
+
* Antispam protection for standard WordPress registration form.
|
30 |
+
* Antispam protection for <a href="http://wordpress.org/plugins/buddypress/" target="_blank">BuddyPress</a> registration form.
|
31 |
* Antispam protection for <a href="http://wordpress.org/plugins/formidable/" target="_blank">Formiadble forms</a>.
|
32 |
+
* Antispam protection for <a href="http://wordpress.org/plugins/contact-form-7/" target="_blank">Contact form 7</a>.
|
33 |
|
34 |
= Requirements =
|
35 |
WordPress 3.0 at least. PHP 4, 5 with CURL or file_get_contents() function and enabled 'allow_url_fopen' setting. <a href="http://cleantalk.org/register?platform=wordpress">Sign up</a> to get an Access key.
|
36 |
|
37 |
+
= Translations =
|
38 |
+
* English
|
39 |
+
* Russian (ru_RU)
|
40 |
+
* Spain (es_ES) - thanks to Andrew Kurtis and <a href="http://www.webhostinghub.com/index-c.html?utm_expid=31925339-46.KEGZK8A6Q3yfZW0EUfEw5Q.1">WebHostingHub</a>
|
41 |
+
|
42 |
== Installation ==
|
43 |
|
44 |
1. Download, install and activate the plugin.
|
85 |
Use other antispam plugins not necessarily, because CleanTalk stops 99.99% of spam comments. But if necessary, the plugin can work together with Akismet, Captcha and etc.
|
86 |
|
87 |
== Screenshots ==
|
88 |
+
1. The comment from spammer (sender blacklisted by IP/Email, comment text not relevant for the post) prohibited to place in the queue WordPress.
|
|
|
89 |
1. Not spam, not relevant to article comment has moved to approval.
|
90 |
+
1. Antispam stoppped spam bot at the registration form.
|
91 |
+
1. Spam bot stopped at Formidable contact form.
|
92 |
+
1. Spam bot stopped at Contact form 7.
|
93 |
|
94 |
== Changelog ==
|
95 |
|
96 |
+
= 2.25 2013-11-27 =
|
97 |
+
* New: Added protection against spam bots for BuddyPress registrations.
|
98 |
+
* New: Added protection against spam bots for Contact form 7.
|
99 |
+
* New: Added Spanish (es_ES) translation.
|
100 |
+
|
101 |
= 2.23 2013-11-20 =
|
102 |
* New: Added automatic training blacklists on spam bot account deletion.
|
103 |
* New: Added URL to project homepage at plugin options.
|
225 |
* First version
|
226 |
|
227 |
== Upgrade Notice ==
|
228 |
+
= 2.25 2013-11-27 =
|
229 |
+
* New: Added protection against spam bots for BuddyPress registrations.
|
230 |
+
* New: Added protection against spam bots for Contact form 7.
|
231 |
+
* New: Added Spanish (es_ES) translation.
|
232 |
+
|
233 |
= 2.23 2013-11-20 =
|
234 |
* New: Added automatic training blacklists on spam bot account deletion.
|
235 |
* New: Added URL to project homepage at plugin options.
|
screenshot-5.png
ADDED
Binary file
|