Spam protection, AntiSpam, FireWall by CleanTalk - Version 5.54

Version Description

December 12 2016 = * Integrations: AmoForms, Contact Form Clean and Simple. * Comments check logic refreshed. * Registration JS error fix. * Users check fix. * Fix for translation system. * Minor fixes.

Download this release

Release Info

Developer shagimuratov
Plugin Icon 128x128 Spam protection, AntiSpam, FireWall by CleanTalk
Version 5.54
Comparing to
See all releases

Code changes from version 5.53.1 to 5.54

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.53.1
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
- $cleantalk_plugin_version='5.53.1';
11
- $ct_agent_version = 'wordpress-5531';
12
  $cleantalk_executed=false;
13
  $ct_sfw_updated = false;
14
 
@@ -551,29 +551,26 @@ add_action( 'right_now_content_table_end', 'my_add_counts_to_dashboard' );
551
  function cleantalk_update_sfw()
552
  {
553
  global $wpdb, $ct_sfw_updated;
554
-
555
  if(!function_exists('sendRawRequest'))
556
- {
557
  require_once('inc/cleantalk.class.php');
558
- }
559
  global $ct_options, $ct_data;
560
  if(isset($ct_options['spam_firewall']))
561
- {
562
  $value = @intval($ct_options['spam_firewall']);
563
- }
564
  else
565
- {
566
  $value=0;
567
- }
568
-
569
- if($value==1 && $ct_sfw_updated === false)
570
- {
571
  $data = Array( 'auth_key' => $ct_options['apikey'],
572
  'method_name' => '2s_blacklists_db'
573
  );
574
-
575
  $result=sendRawRequest('https://api.cleantalk.org', $data);
 
576
  $result=json_decode($result, true);
 
577
  if(isset($result['data']))
578
  {
579
  $wpdb->query("TRUNCATE TABLE `".$wpdb->base_prefix."cleantalk_sfw`;");
@@ -582,13 +579,10 @@ function cleantalk_update_sfw()
582
  for($i=0;$i<sizeof($result);$i++)
583
  {
584
  if($i==sizeof($result)-1)
585
- {
586
  $query.="(".$result[$i][0].",".$result[$i][1].");";
587
- }
588
  else
589
- {
590
  $query.="(".$result[$i][0].",".$result[$i][1]."), ";
591
- }
592
  }
593
  $wpdb->query($query);
594
  $ct_sfw_updated = true;
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.54
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
+ $cleantalk_plugin_version='5.54';
11
+ $ct_agent_version = 'wordpress-554';
12
  $cleantalk_executed=false;
13
  $ct_sfw_updated = false;
14
 
551
  function cleantalk_update_sfw()
552
  {
553
  global $wpdb, $ct_sfw_updated;
554
+
555
  if(!function_exists('sendRawRequest'))
 
556
  require_once('inc/cleantalk.class.php');
557
+
558
  global $ct_options, $ct_data;
559
  if(isset($ct_options['spam_firewall']))
 
560
  $value = @intval($ct_options['spam_firewall']);
 
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'
568
  );
569
+
570
  $result=sendRawRequest('https://api.cleantalk.org', $data);
571
+
572
  $result=json_decode($result, true);
573
+
574
  if(isset($result['data']))
575
  {
576
  $wpdb->query("TRUNCATE TABLE `".$wpdb->base_prefix."cleantalk_sfw`;");
579
  for($i=0;$i<sizeof($result);$i++)
580
  {
581
  if($i==sizeof($result)-1)
 
582
  $query.="(".$result[$i][0].",".$result[$i][1].");";
 
583
  else
 
584
  $query.="(".$result[$i][0].",".$result[$i][1]."), ";
585
+
586
  }
587
  $wpdb->query($query);
588
  $ct_sfw_updated = true;
i18n/cleantalk-ru_RU.po DELETED
@@ -1,832 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Spam Protection by CleanTalk\n"
4
- "POT-Creation-Date: 2016-11-28 11:54+0500\n"
5
- "PO-Revision-Date: 2016-11-28 11:59+0500\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.6\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "X-Poedit-WPHeader: cleantalk.php\n"
15
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
16
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
17
- "X-Poedit-SourceCharset: UTF-8\n"
18
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
- "X-Poedit-SearchPath-0: .\n"
22
- "X-Poedit-SearchPathExcluded-0: *.js\n"
23
-
24
- #: cleantalk.php:546
25
- msgid "WordPress spam"
26
- msgstr "WordPress спам"
27
-
28
- #: cleantalk.php:546
29
- msgid "blocked by"
30
- msgstr "заблокировано"
31
-
32
- #: inc/cleantalk-admin.php:27
33
- #, php-format
34
- msgid "has blocked %s spam"
35
- msgstr "%s спама заблокировано"
36
-
37
- #: inc/cleantalk-admin.php:78
38
- msgid "Failed from timeout. Going to check comments again."
39
- msgstr "Ошибка по таймауту. Попробовать еще раз?"
40
-
41
- #: inc/cleantalk-admin.php:79
42
- msgid "Added 500 comments"
43
- msgstr "500 пользователей добавлено"
44
-
45
- #: inc/cleantalk-admin.php:80
46
- msgid "Delete all spam comments?"
47
- msgstr "Удалить ВСЕ найденные спам-комментарии?"
48
-
49
- #: inc/cleantalk-admin.php:81
50
- msgid "Delete checked comments?"
51
- msgstr "Удалить отмеченые спам-комментарии?"
52
-
53
- #: inc/cleantalk-admin.php:84
54
- msgid "Find spam-comments"
55
- msgstr "Найти спам-комментарии"
56
-
57
- #: inc/cleantalk-admin.php:85
58
- msgid "Show spam-comments"
59
- msgstr "Показать найденые спам-комментарии"
60
-
61
- #: inc/cleantalk-admin.php:97
62
- msgid "Failed from timeout. Going to check users again."
63
- msgstr "Ошибка по таймауту. Попробовать еще раз?"
64
-
65
- #: inc/cleantalk-admin.php:98
66
- msgid "Failed from timeout. Going to run a new attempt to delete spam users."
67
- msgstr "Ошибка по таймауту. Попробовать еще раз?"
68
-
69
- #: inc/cleantalk-admin.php:99
70
- msgid "Inserted"
71
- msgstr "Добавлено"
72
-
73
- #: inc/cleantalk-admin.php:100
74
- msgid "users."
75
- msgstr "пользователей."
76
-
77
- #: inc/cleantalk-admin.php:101
78
- msgid "Delete all spam users?"
79
- msgstr "Удалить ВСЕХ найденых спам-пользователей?"
80
-
81
- #: inc/cleantalk-admin.php:102
82
- msgid "Delete checked users?"
83
- msgstr "Удалить отмеченых спам-пользователей?"
84
-
85
- #: inc/cleantalk-admin.php:105
86
- msgid "Find spam-users"
87
- msgstr "Найти спам-пользователей"
88
-
89
- #: inc/cleantalk-admin.php:106
90
- msgid "Show spam-users"
91
- msgstr "Показать спам-пользователей"
92
-
93
- #: inc/cleantalk-admin.php:127 inc/cleantalk-admin.php:131
94
- msgid "CleanTalk settings"
95
- msgstr "Настройки CleanTalk"
96
-
97
- #: inc/cleantalk-admin.php:229
98
- #, php-format
99
- msgid "Unable to connect to %s."
100
- msgstr "Не удалось подключиться к %s"
101
-
102
- #: inc/cleantalk-admin.php:343
103
- msgid "Protection is active"
104
- msgstr "Защита включена"
105
-
106
- #: inc/cleantalk-admin.php:345
107
- msgid "Advanced settings"
108
- msgstr "Продвинутые настройки"
109
-
110
- #: inc/cleantalk-admin.php:349
111
- msgid "Access key"
112
- msgstr "Ключ доступа"
113
-
114
- #: inc/cleantalk-admin.php:357 inc/cleantalk-admin.php:683
115
- msgid "Registration forms"
116
- msgstr "Регистрации пользователей"
117
-
118
- #: inc/cleantalk-admin.php:358
119
- msgid "Comments form"
120
- msgstr "Комментарии в блоге"
121
-
122
- #: inc/cleantalk-admin.php:359 inc/cleantalk-admin.php:685
123
- msgid "Contact forms"
124
- msgstr "Контактные формы"
125
-
126
- #: inc/cleantalk-admin.php:360 inc/cleantalk-admin.php:686
127
- msgid "Custom contact forms"
128
- msgstr "Произвольные контактные формы"
129
-
130
- #: inc/cleantalk-admin.php:361 inc/cleantalk-admin.php:688
131
- msgid "WooCommerce checkout form"
132
- msgstr "Форма заказа WooCommerce"
133
-
134
- #: inc/cleantalk-admin.php:362
135
- msgid "Protect external forms"
136
- msgstr "Защита внешних форм"
137
-
138
- #: inc/cleantalk-admin.php:363
139
- msgid "Protect internal forms"
140
- msgstr "Защита внутренних форм"
141
-
142
- #: inc/cleantalk-admin.php:367
143
- msgid "buddyPress private messages"
144
- msgstr "Личные сообщения buddyPress "
145
-
146
- #: inc/cleantalk-admin.php:368
147
- msgid "Don't check trusted user's comments"
148
- msgstr "Не проверять доверенных пользователей"
149
-
150
- #: inc/cleantalk-admin.php:369
151
- msgid "Automatically delete spam comments"
152
- msgstr "Автоматически удалять спам-комментарии"
153
-
154
- #: inc/cleantalk-admin.php:370
155
- msgid "Remove links from approved comments"
156
- msgstr "Удалять ссылки из одобреных комментариев"
157
-
158
- #: inc/cleantalk-admin.php:374
159
- msgid "Protect logged in Users"
160
- msgstr "Проверять залогиненых пользователей"
161
-
162
- #: inc/cleantalk-admin.php:375
163
- msgid "Use AJAX for JavaScript check"
164
- msgstr "Использовать AJAX для проверки JavaScript"
165
-
166
- #: inc/cleantalk-admin.php:376
167
- msgid "Check all post data"
168
- msgstr "Проверять все POST-данные"
169
-
170
- #: inc/cleantalk-admin.php:377
171
- msgid "Set cookies"
172
- msgstr "Устанавливать куки"
173
-
174
- #: inc/cleantalk-admin.php:378
175
- msgid "Use SSL"
176
- msgstr "Использовать SSL"
177
-
178
- #: inc/cleantalk-admin.php:382
179
- msgid "Show statistics in admin bar"
180
- msgstr "Показывать статистику в админбаре"
181
-
182
- #: inc/cleantalk-admin.php:383
183
- msgid "Show All-time counter"
184
- msgstr "Счетчик за все время"
185
-
186
- #: inc/cleantalk-admin.php:384
187
- msgid "Show 24 hours counter"
188
- msgstr "24-х часовой счетчик"
189
-
190
- #: inc/cleantalk-admin.php:385
191
- msgid "SpamFireWall counter"
192
- msgstr "Счетчик SpamFireWall"
193
-
194
- #: inc/cleantalk-admin.php:388 inc/cleantalk-admin.php:687
195
- #: inc/cleantalk-admin.php:1241
196
- msgid "SpamFireWall"
197
- msgstr "SpamFireWall"
198
-
199
- #: inc/cleantalk-admin.php:389 inc/cleantalk-admin.php:1051
200
- msgid "Collect details about browsers"
201
- msgstr "Собирать данные браузера"
202
-
203
- #: inc/cleantalk-admin.php:390 inc/cleantalk-admin.php:1215
204
- msgid "Tell others about CleanTalk"
205
- msgstr "Рассказать про CleanTalk"
206
-
207
- #: inc/cleantalk-admin.php:467 inc/cleantalk-admin.php:482
208
- #: inc/cleantalk-admin.php:497 inc/cleantalk-admin.php:797
209
- #: inc/cleantalk-admin.php:830 inc/cleantalk-admin.php:846
210
- #: inc/cleantalk-admin.php:862 inc/cleantalk-admin.php:878
211
- #: inc/cleantalk-admin.php:894 inc/cleantalk-admin.php:910
212
- #: inc/cleantalk-admin.php:929 inc/cleantalk-admin.php:954
213
- #: inc/cleantalk-admin.php:979 inc/cleantalk-admin.php:999
214
- #: inc/cleantalk-admin.php:1029 inc/cleantalk-admin.php:1086
215
- #: inc/cleantalk-admin.php:1106 inc/cleantalk-admin.php:1126
216
- #: inc/cleantalk-admin.php:1146 inc/cleantalk-admin.php:1166
217
- #: inc/cleantalk-admin.php:1187
218
- msgid "Yes"
219
- msgstr "Да"
220
-
221
- #: inc/cleantalk-admin.php:469 inc/cleantalk-admin.php:484
222
- #: inc/cleantalk-admin.php:499 inc/cleantalk-admin.php:799
223
- #: inc/cleantalk-admin.php:832 inc/cleantalk-admin.php:848
224
- #: inc/cleantalk-admin.php:864 inc/cleantalk-admin.php:880
225
- #: inc/cleantalk-admin.php:896 inc/cleantalk-admin.php:912
226
- #: inc/cleantalk-admin.php:931 inc/cleantalk-admin.php:956
227
- #: inc/cleantalk-admin.php:981 inc/cleantalk-admin.php:1001
228
- #: inc/cleantalk-admin.php:1031 inc/cleantalk-admin.php:1088
229
- #: inc/cleantalk-admin.php:1108 inc/cleantalk-admin.php:1128
230
- #: inc/cleantalk-admin.php:1148 inc/cleantalk-admin.php:1168
231
- #: inc/cleantalk-admin.php:1189
232
- msgid "No"
233
- msgstr "Нет"
234
-
235
- #: inc/cleantalk-admin.php:470 inc/cleantalk-admin.php:500
236
- msgid ""
237
- "Display all-time requests counter in the admin bar. Counter displays number "
238
- "of requests since plugin installation."
239
- msgstr ""
240
- "Отображать счетчик запросов за все время в админ-баре. Счетчик показывает "
241
- "записи с момента установки."
242
-
243
- #: inc/cleantalk-admin.php:485
244
- msgid ""
245
- "Display daily requests counter in the admin bar. Counter displays number of "
246
- "requests of the past 24 hours."
247
- msgstr ""
248
- "Отображать 24-х часовой счетчик запросов в админ-баре. Отображает запросы за "
249
- "последние 24 часа."
250
-
251
- #: inc/cleantalk-admin.php:551
252
- msgid "Since"
253
- msgstr "От"
254
-
255
- #: inc/cleantalk-admin.php:557
256
- msgid ""
257
- "All / Allowed / Blocked submissions. The number of submissions is being "
258
- "counted since CleanTalk plugin installation."
259
- msgstr "Все / Разрешенные / Запрещенные запросы с момента установки CleanTalk."
260
-
261
- #: inc/cleantalk-admin.php:557
262
- msgid "All"
263
- msgstr "Все"
264
-
265
- #: inc/cleantalk-admin.php:565
266
- msgid ""
267
- "Allowed / Blocked submissions. The number of submissions for past 24 hours. "
268
- msgstr "Разрешенные / Запрещенные запросы за последние 24 часа."
269
-
270
- #: inc/cleantalk-admin.php:565
271
- msgid "Day"
272
- msgstr "За день"
273
-
274
- #: inc/cleantalk-admin.php:571
275
- msgid ""
276
- "All / Blocked events. Access attempts regitred by SpamFireWall counted since "
277
- "the last plugin activation."
278
- msgstr ""
279
- "Все / Запрещенные попытки просмотра сайта. Отображет попытки с момента "
280
- "последней активации плагина."
281
-
282
- #: inc/cleantalk-admin.php:576
283
- msgid ""
284
- "Allowed / Blocked submissions. The number of submissions is being counted "
285
- "since "
286
- msgstr "Разрешенные / Запрещенные попытки."
287
-
288
- #: inc/cleantalk-admin.php:583
289
- msgid "dashboard"
290
- msgstr "панель управления"
291
-
292
- #: inc/cleantalk-admin.php:592 inc/cleantalk-admin.php:598
293
- #: inc/cleantalk-admin.php:1599 inc/cleantalk-admin.php:1603
294
- #: inc/cleantalk-admin.php:1624 inc/cleantalk-admin.php:1628
295
- msgid "Settings"
296
- msgstr "Настройки"
297
-
298
- #: inc/cleantalk-admin.php:608 inc/cleantalk-admin.php:780
299
- msgid "Check comments for spam"
300
- msgstr "Проверка комментариев"
301
-
302
- #: inc/cleantalk-admin.php:618 inc/cleantalk-admin.php:781
303
- msgid "Check users for spam"
304
- msgstr "Проверить пользователей на спам"
305
-
306
- #: inc/cleantalk-admin.php:627
307
- msgid "Reset counter"
308
- msgstr "Сбросить счетчики"
309
-
310
- #: inc/cleantalk-admin.php:684
311
- msgid "Comments forms"
312
- msgstr "Формы комментариев"
313
-
314
- #: inc/cleantalk-admin.php:696
315
- msgid ""
316
- "Testing is failed, check settings. Tech support <a target=_blank "
317
- "href='mailto:support@cleantalk.org'>support@cleantalk.org</a>"
318
- msgstr ""
319
- "Ошибка при тестировании работы плагина! Обратитесь в поддержку <a "
320
- "target=_blank href='mailto:support@cleantalk.org'>support@cleantalk.org</a>"
321
-
322
- #: inc/cleantalk-admin.php:734
323
- #, php-format
324
- msgid "has blocked <b>%s</b> spam."
325
- msgstr "<b>%s</b> спама заблокировано"
326
-
327
- #: inc/cleantalk-admin.php:743
328
- msgid "Click here to get anti-spam statistics"
329
- msgstr "Щелкните, чтобы получить статистику"
330
-
331
- #: inc/cleantalk-admin.php:751
332
- msgid "Enter the key"
333
- msgstr "Введите ключ"
334
-
335
- #: inc/cleantalk-admin.php:765
336
- msgid "Get access key manually"
337
- msgstr "Получить ключ вручную"
338
-
339
- #: inc/cleantalk-admin.php:766
340
- msgid "or"
341
- msgstr "или"
342
-
343
- #: inc/cleantalk-admin.php:767
344
- msgid "Get access key automatically"
345
- msgstr "Получить ключ автоматически"
346
-
347
- #: inc/cleantalk-admin.php:771
348
- #, php-format
349
- msgid "Admin e-mail (%s) will be used for registration"
350
- msgstr "При регистрации будет использован email администратора (%s)"
351
-
352
- #: inc/cleantalk-admin.php:772
353
- msgid "License agreement"
354
- msgstr "Лицензионное соглашение"
355
-
356
- #: inc/cleantalk-admin.php:777
357
- msgid "Show the access key"
358
- msgstr "Показать ключ доступа"
359
-
360
- #: inc/cleantalk-admin.php:800
361
- msgid "WordPress, JetPack, WooCommerce."
362
- msgstr "WordPress, JetPack, WooCommerce."
363
-
364
- #: inc/cleantalk-admin.php:805
365
- msgid "Forms to protect"
366
- msgstr "Защищаемые формы"
367
-
368
- #: inc/cleantalk-admin.php:809
369
- msgid "Comments and messages"
370
- msgstr "Комментарии и сообщения"
371
-
372
- #: inc/cleantalk-admin.php:813
373
- msgid "Data processing"
374
- msgstr "Обработка данных"
375
-
376
- #: inc/cleantalk-admin.php:817
377
- msgid "Admin bar"
378
- msgstr "Админ-бар"
379
-
380
- #: inc/cleantalk-admin.php:833
381
- msgid "Remove links from approved comments. Replace it with \"[Link deleted]\""
382
- msgstr "Удалять ссылки из одобренных сообщений"
383
-
384
- #: inc/cleantalk-admin.php:849
385
- msgid "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
386
- msgstr "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
387
-
388
- #: inc/cleantalk-admin.php:865
389
- msgid ""
390
- "Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, "
391
- "WordPress Landing Pages, Gravity Forms."
392
- msgstr ""
393
- "Contact Form 7, Formidable Forms, Jetpack, Fast Secure Contact Form, "
394
- "WordPress Landing Pages, Gravity Forms."
395
-
396
- #: inc/cleantalk-admin.php:881
397
- msgid "Anti spam test for any WordPress themes or contacts forms."
398
- msgstr "Защита от спама любой контактной формы или темы."
399
-
400
- #: inc/cleantalk-admin.php:897
401
- msgid "Anti spam test for WooCommerce checkout form."
402
- msgstr "Спам тест для формы заказа WooCommerce"
403
-
404
- #: inc/cleantalk-admin.php:913
405
- msgid "Check buddyPress private messages."
406
- msgstr "Проверять личные сообщения buddyPress "
407
-
408
- #: inc/cleantalk-admin.php:932
409
- #, php-format
410
- msgid "Delete spam comments older than %d days."
411
- msgstr "Удалять комментарии старше %d дней."
412
-
413
- #: inc/cleantalk-admin.php:957
414
- msgid ""
415
- "Show/hide CleanTalk icon in top level menu in WordPress backend. The number "
416
- "of submissions is being counted for past 24 hours."
417
- msgstr ""
418
- "Показывать иконку и счетчики CleanTalk в админ-баре. Счетчик будет "
419
- "показывать проверки с момента сброса."
420
-
421
- #: inc/cleantalk-admin.php:982
422
- msgid ""
423
- "Check all POST submissions from website visitors. Enable this option if you "
424
- "have spam misses on website or you don`t have records about missed spam here:"
425
- msgstr ""
426
- "Проверять все POST запросы веб сайта. Включите эту опцию, если испытываете "
427
- "проблемы с пропуском спама или вы не видите запрещенных запросов здесь:"
428
-
429
- #: inc/cleantalk-admin.php:982
430
- msgid "CleanTalk dashboard"
431
- msgstr "панель управления CleanTalk"
432
-
433
- #: inc/cleantalk-admin.php:982
434
- msgid "СAUTION! Option can catch POST requests in WordPress backend"
435
- msgstr ""
436
- "ВНИМАНИЕ! Опция может перехватывать все POST запросы в панели управления "
437
- "Wordpress. Отключите, если возникают проблемы/ошибки."
438
-
439
- #: inc/cleantalk-admin.php:1002
440
- msgid ""
441
- "Options helps protect WordPress against spam with any caching plugins. Turn "
442
- "this option on to avoid issues with caching plugins."
443
- msgstr "Данная настройка помогает избежать конфликтов с кеширующими плагинами."
444
-
445
- #: inc/cleantalk-admin.php:1002
446
- msgid "Attention! Incompatible with AMP plugins!"
447
- msgstr "Внимание! Не совместимо с AMP (Mobile Accelerated Pages) плагинами."
448
-
449
- #: inc/cleantalk-admin.php:1032
450
- msgid "Dont't check comments for users with above"
451
- msgstr "Не проверять пользователей у которых больше "
452
-
453
- #: inc/cleantalk-admin.php:1032
454
- msgid "comments."
455
- msgstr "комментариев."
456
-
457
- #: inc/cleantalk-admin.php:1052
458
- msgid ""
459
- "Checking this box you allow plugin store information about screen size and "
460
- "browser plugins of website visitors. The option in a beta state."
461
- msgstr ""
462
- "Включая эту опцию, Вы разрешаете плагину хранить информацию о размере экрана "
463
- "и плагинах браузера посетителей. Бета опция."
464
-
465
- #: inc/cleantalk-admin.php:1109
466
- msgid ""
467
- "Turn this option on to protect forms on your WordPress that send data to "
468
- "third-part servers (like MailChimp)."
469
- msgstr ""
470
- "Включите эту опцию, что бы защитить формы, которые отсылают данные на "
471
- "сторонние ресурсы, например MailChimp."
472
-
473
- #: inc/cleantalk-admin.php:1129
474
- msgid ""
475
- "This option will enable protection for custom (hand-made) AJAX forms with "
476
- "PHP scripts handlers on your WordPress."
477
- msgstr "Эта опция обеспечит защиту созданных вручную форм, использующих AJAX."
478
-
479
- #: inc/cleantalk-admin.php:1149
480
- msgid ""
481
- "Turn this option off to deny plugin generates any cookies on website front-"
482
- "end. This option is helpful if you use Varnish. But most of contact forms "
483
- "will not be protected by CleanTalk if the option is turned off!"
484
- msgstr ""
485
- "Эта опция запретит плагину генерировать Cookie в публичной части сайта. "
486
- "Может быть полезно, если вы используете плагин Varnish. Большинство форм "
487
- "буду НЕ защищены если включена эта настройка!"
488
-
489
- #: inc/cleantalk-admin.php:1169
490
- msgid ""
491
- "Turn this option on to use encrypted (SSL) connection with CleanTalk servers."
492
- msgstr ""
493
- "Включите, что бы использовать защищенное SSL подключение к серверам "
494
- "CleanTalk."
495
-
496
- #: inc/cleantalk-admin.php:1190
497
- msgid ""
498
- "Turn this option on to check for spam any submissions (comments, contact "
499
- "forms and etc.) from registered Users."
500
- msgstr "Включите, чтобы проверять зарегистрированных пользователей."
501
-
502
- #: inc/cleantalk-admin.php:1216
503
- msgid ""
504
- "Checking this box places a small link under the comment form that lets "
505
- "others know what anti-spam tool protects your site."
506
- msgstr ""
507
- "Включение этой настройки добавит маленькую ссылку под форму комментариев, "
508
- "которая позволит пользователям узнать о том, какой инструмент вы используете "
509
- "для защиты."
510
-
511
- #: inc/cleantalk-admin.php:1242
512
- msgid ""
513
- "This option allows to filter spam bots before they access website. Also "
514
- "reduces CPU usage on hosting server and accelerates pages load time."
515
- msgstr ""
516
- "Эта опция позволяет фильтровать спам-ботов прежде, чем они войдут на сайт. "
517
- "Также уменьшает загрузку процессора на хостинге и ускоряет время загрузки "
518
- "страниц."
519
-
520
- #: inc/cleantalk-admin.php:1244
521
- msgid "Learn more"
522
- msgstr "Узнать больше"
523
-
524
- #: inc/cleantalk-admin.php:1360
525
- msgid "Save Changes"
526
- msgstr "Сохранить изменения"
527
-
528
- #: inc/cleantalk-admin.php:1376
529
- msgid "Plugin Homepage at"
530
- msgstr "Домашняя страница плагина на"
531
-
532
- #: inc/cleantalk-admin.php:1377
533
- msgid "Tech support CleanTalk:"
534
- msgstr "Техническая поддержка:"
535
-
536
- #: inc/cleantalk-admin.php:1377
537
- msgid "CleanTalk tech forum"
538
- msgstr "Технический форум CleanTalk"
539
-
540
- #: inc/cleantalk-admin.php:1377
541
- msgid "Use s@cleantalk.org to test plugin in any WordPress form."
542
- msgstr ""
543
- "Используйте s@cleantalk.org чтобы проверить плагин в любой форме в WordPress."
544
-
545
- #: inc/cleantalk-admin.php:1415
546
- #, php-format
547
- msgid "Unable to get Access key automatically: %s"
548
- msgstr "Невозможно получить ключ автоматически: %s"
549
-
550
- #: inc/cleantalk-admin.php:1416
551
- msgid "Get the Access key"
552
- msgstr "Получить ключ доступа"
553
-
554
- #: inc/cleantalk-admin.php:1421
555
- #, php-format
556
- msgid "Please enter Access Key in %s settings to enable anti spam protection!"
557
- msgstr ""
558
- "Пожалуйста укажите Ключ доступа в настройках %s для активации защиты от "
559
- "спама!"
560
-
561
- #: inc/cleantalk-admin.php:1435
562
- #, php-format
563
- msgid "%s trial period ends, please upgrade to %s!"
564
- msgstr ""
565
- "%s заканчивается ознакомительный срок пользования антиспам плагином "
566
- "CleanTalk, пожалуйста продлите подключение %s."
567
-
568
- #: inc/cleantalk-admin.php:1458
569
- msgid "RENEW ANTI-SPAM"
570
- msgstr "ПРОДЛИТЬ АНТИСПАМ"
571
-
572
- #: inc/cleantalk-admin.php:1459
573
- #, php-format
574
- msgid "Please renew your anti-spam license for %s."
575
- msgstr "Пожалуйста продлите свою антиспам-лицензию на %s."
576
-
577
- #: inc/cleantalk-admin.php:1459
578
- msgid "next year"
579
- msgstr "следующий год"
580
-
581
- #: inc/cleantalk-admin.php:1466
582
- msgid ""
583
- "Wrong <a href=\"options-general.php?page=cleantalk\"><b style=\"color: "
584
- "#49C73B;\">Clean</b><b style=\"color: #349ebf;\">Talk</b> access key</"
585
- "a>! Please check it or ask <a target=\"_blank\" href=\"https://cleantalk.org/"
586
- "forum/\">support</a>."
587
- msgstr ""
588
- "Не верный <a href=\"options-general.php?page=cleantalk\">ключ доступа <b "
589
- "style=\"color: #49C73B;\">Clean</b><b style=\"color: #349ebf;\">Talk</b></"
590
- "a>! Пожалуйста, проверьте ключ или обратитесь в техническую поддержку: <a "
591
- "target=\"_blank\" href=\"https://cleantalk.org/forum/\">support</a>."
592
-
593
- #: inc/cleantalk-admin.php:1606
594
- msgid "FAQ"
595
- msgstr "FAQ"
596
-
597
- #: inc/cleantalk-admin.php:1607
598
- msgid "Support"
599
- msgstr "Поддержка"
600
-
601
- #: inc/cleantalk-comments.php:9 inc/cleantalk-comments.php:239
602
- #: inc/cleantalk-users.php:8 inc/cleantalk-users.php:187
603
- msgid "Check for spam"
604
- msgstr "Проверить на спам"
605
-
606
- #: inc/cleantalk-comments.php:65
607
- msgid "Author"
608
- msgstr "Автор"
609
-
610
- #: inc/cleantalk-comments.php:66
611
- msgid "Comment"
612
- msgstr "Комментарий"
613
-
614
- #: inc/cleantalk-comments.php:67
615
- msgid "In Response To"
616
- msgstr "В ответ на"
617
-
618
- #: inc/cleantalk-comments.php:97
619
- #, php-format
620
- msgid "Submitted on <a href=\"%1$s\">%2$s at %3$s</a>"
621
- msgstr "Отправлено <a href=\"%1$s\">%2$s в %3$s</a>"
622
-
623
- #: inc/cleantalk-comments.php:99
624
- msgid "Y/m/d"
625
- msgstr "d.m.Y"
626
-
627
- #: inc/cleantalk-comments.php:109 inc/cleantalk-users.php:124
628
- msgid "Approve"
629
- msgstr "Одобрить"
630
-
631
- #: inc/cleantalk-comments.php:111 inc/cleantalk-users.php:126
632
- msgid "Delete"
633
- msgstr "Удалить"
634
-
635
- #: inc/cleantalk-comments.php:126
636
- msgid "View Post"
637
- msgstr "Показать пост"
638
-
639
- #: inc/cleantalk-comments.php:172
640
- msgid "Delete all comments from the list"
641
- msgstr "Удалить все сообщения в списке"
642
-
643
- #: inc/cleantalk-comments.php:173 inc/cleantalk-users.php:176
644
- msgid "Delete selected"
645
- msgstr "Удалить отмеченные"
646
-
647
- #: inc/cleantalk-comments.php:216 inc/cleantalk-users.php:200
648
- msgid ""
649
- "There is some differencies between blacklists database and our API "
650
- "mechanisms. Blacklists shows all history of spam activity, but our API (that "
651
- "used in spam checking) used another parameters, too: last day of activity, "
652
- "number of spam attacks during last days etc. This mechanisms help us to "
653
- "reduce number of false positivitie. So, there is nothing strange, if some "
654
- "emails/IPs will be not found by this checking."
655
- msgstr ""
656
- "Есть некоторые отличия между проверкой через базу данных черных списков и "
657
- "через механизм API. В черных списках отображается вся история о спам-"
658
- "активности, но наш API используетс другие механизмы: последний день "
659
- "активности, количество спам-атак в течение последних дней и т. д. Эти "
660
- "механизмы помогают нам сократить количество ложных обнаружений. Поэтому, нет "
661
- "ничего странного, если некоторые письма/IP не будут обнаружены при этой "
662
- "проверке."
663
-
664
- #: inc/cleantalk-comments.php:224
665
- msgid ""
666
- "Please wait! CleanTalk is checking all approved and pending comments via "
667
- "blacklist database at cleantalk.org. You will have option to delete found "
668
- "spam comments after plugin finish."
669
- msgstr ""
670
- "Пожалуйста, подождите! CleanTalk проверяет комментарии по черным спискам на "
671
- "cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
672
- "работы."
673
-
674
- #: inc/cleantalk-comments.php:227
675
- msgid ""
676
- "Please wait for a while. CleanTalk is deleting spam comments. Comments left: "
677
- msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-комментарии. Осталось:"
678
-
679
- #: inc/cleantalk-comments.php:242
680
- msgid ""
681
- "The plugin will check all comments against blacklists database and show you "
682
- "senders that have spam activity on other websites."
683
- msgstr ""
684
- "Пожалуйста, подождите. CleanTalk проверяет комментарии по черным спискам на "
685
- "cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
686
- "работы."
687
-
688
- #: inc/cleantalk-comments.php:247
689
- msgid "Insert comments"
690
- msgstr "Добавить комментарии"
691
-
692
- #: inc/cleantalk-comments.php:412
693
- #, php-format
694
- msgid "Total comments %s, checked %s, found %s spam comments."
695
- msgstr ""
696
- "Всего комментариев: %s, проверено %s, найдено комментариев со спамом: %s."
697
-
698
- #: inc/cleantalk-comments.php:415
699
- msgid "Please do backup of WordPress database before delete any comments!"
700
- msgstr ""
701
- "Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
702
- "комментариев."
703
-
704
- #: inc/cleantalk-public.php:1054 inc/cleantalk-public.php:1111
705
- #: inc/cleantalk-public.php:1129
706
- msgid "Spam protection"
707
- msgstr "Защита от спама"
708
-
709
- #: inc/cleantalk-public.php:1326
710
- #, php-format
711
- msgid "Registration is approved by %s."
712
- msgstr "Регистрация одобрена %s."
713
-
714
- #: inc/cleantalk-public.php:2014
715
- msgid "Comment approved. Anti-spam by CleanTalk."
716
- msgstr "Комментарий одобрен. Антиспам от CleanTalk."
717
-
718
- #: inc/cleantalk-public.php:2638
719
- msgid "Attention, please!"
720
- msgstr "Внимание!"
721
-
722
- #: inc/cleantalk-public.php:2639
723
- #, php-format
724
- msgid "\"%s\" plugin error on your site %s:"
725
- msgstr "\"%s\". Ошибка плагина на вашем сайте %s:"
726
-
727
- #: inc/cleantalk-public.php:2641
728
- #, php-format
729
- msgid "[%s] %s error!"
730
- msgstr "[%s] %s ошибка!"
731
-
732
- #: inc/cleantalk-users.php:38
733
- msgid "Please wait for a while. CleanTalk is deleting spam users. Users left: "
734
- msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-пользователей. Осталось:"
735
-
736
- #: inc/cleantalk-users.php:49
737
- msgid ""
738
- "Please wait for a while. CleanTalk is checking all users via blacklist "
739
- "database at cleantalk.org. You will have option to delete found spam users "
740
- "after plugin finish."
741
- msgstr ""
742
- "Пожалуйста, подождите. ClenTalk проверяет всех пользователей по чёрным "
743
- "спискам на cleantalk.org. У вас появится возможность удалить обнаруженных "
744
- "спам-пользователей как только плагин закончит."
745
-
746
- #: inc/cleantalk-users.php:79
747
- msgid "Username"
748
- msgstr "Имя пользователя"
749
-
750
- #: inc/cleantalk-users.php:80
751
- msgid "Name"
752
- msgstr "Имя"
753
-
754
- #: inc/cleantalk-users.php:82
755
- msgid "Role"
756
- msgstr "Роль"
757
-
758
- #: inc/cleantalk-users.php:83
759
- msgid "Posts"
760
- msgstr "Посты"
761
-
762
- #: inc/cleantalk-users.php:175
763
- msgid "Delete all users from list"
764
- msgstr "Удалить всех пользователей в списке"
765
-
766
- #: inc/cleantalk-users.php:179
767
- msgid "Insert accounts"
768
- msgstr "Добавить аккаунты"
769
-
770
- #: inc/cleantalk-users.php:190
771
- msgid ""
772
- "The plugin will check all users against blacklists database and show you "
773
- "senders that have spam activity on other websites. Just click 'Find spam "
774
- "users' to start."
775
- msgstr ""
776
- "CleanTalk проверит всех пользователей по базе данных черных списков и "
777
- "покажет вам отправителей со спам-активностью на других сайтах. Просто "
778
- "нажмите кнопку 'Найти спам-пользователей', чтобы начать."
779
-
780
- #: inc/cleantalk-users.php:208
781
- msgid "Stop deletion"
782
- msgstr "Остановить удаление"
783
-
784
- #: inc/cleantalk-users.php:365
785
- #, fuzzy, php-format
786
- msgid "Total users %s, checked %s, found %s spam users"
787
- msgstr "Всего пользователей: %s, проверено: %s, найдено %s спам-пользователей."
788
-
789
- #: inc/cleantalk-users.php:368
790
- msgid "Please do backup of WordPress database before delete any accounts!"
791
- msgstr ""
792
- "Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
793
- "аккаунтов."
794
-
795
- #: inc/cleantalk-widget.php:13
796
- msgid "CleanTalk Widget"
797
- msgstr "Виджет CleanTalk"
798
-
799
- #: inc/cleantalk-widget.php:16
800
- msgid "CleanTalk widget"
801
- msgstr "виджет CleanTalk"
802
-
803
- #: inc/cleantalk-widget.php:61
804
- msgid "Spam blocked"
805
- msgstr "Спам заблокирован"
806
-
807
- #: inc/cleantalk-widget.php:66
808
- msgid "Title:"
809
- msgstr "Заголовок:"
810
-
811
- #. Plugin Name of the plugin/theme
812
- msgid "Spam Protection by CleanTalk"
813
- msgstr "Спам защита CleanTalk"
814
-
815
- #. Plugin URI of the plugin/theme
816
- #. Author URI of the plugin/theme
817
- msgid "http://cleantalk.org"
818
- msgstr "http://cleantalk.org"
819
-
820
- #. Description of the plugin/theme
821
- msgid ""
822
- "Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment "
823
- "spam, no registration spam, no contact spam, protects any WordPress forms. "
824
- "Formerly Anti-Spam by CleanTalk."
825
- msgstr ""
826
- "Максимальный эффект, все в одном плагине, без Капчи, премиальный анти-спам "
827
- "плагин. Нет спама в комментариях, регистрациях, контактных формах. Защита "
828
- "любой формы Wordpress."
829
-
830
- #. Author of the plugin/theme
831
- msgid "СleanTalk <welcome@cleantalk.org>"
832
- msgstr "СleanTalk <welcome@cleantalk.org>"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/cleantalk-admin.php CHANGED
@@ -21,7 +21,7 @@ function cleantalk_custom_glance_items( )
21
  }
22
  if($blocked>0){
23
  $blocked = number_format($blocked, 0, ',', ' ');
24
- print "<div style='height:24px;width:100%;display:table-cell; vertical-align:middle;'><img src='" . plugin_dir_url(__FILE__) . "images/logo_color.png' style='margin-right:1em;vertical-align:middle;'/><span><a href='https://cleantalk.org/my/?user_token=".@$ct_data['user_token']."&utm_source=wp-backend&utm_medium=dashboard_widget' target='_blank'>CleanTalk</a> ";
25
  printf(
26
  /* translators: %s: Number of spam messages */
27
  __( 'has blocked %s spam', 'cleantalk' ),
@@ -580,7 +580,7 @@ function ct_add_admin_menu( $wp_admin_bar ) {
580
  // add a child item to our parent item
581
  $args = array(
582
  'id' => 'ct_dashboard_link',
583
- 'title' => '<a href="https://cleantalk.org/my/?user_token='.@$ct_data['user_token'].'&utm_source=wp-backend&utm_medium=admin-bar" target="_blank">CleanTalk '.__('dashboard', 'cleantalk').'</a>',
584
  'parent' => 'ct_parent_node'
585
  );
586
  $wp_admin_bar->add_node( $args );
@@ -740,7 +740,7 @@ function ct_input_apikey() {
740
  {
741
  echo "<script>var cleantalk_blocked_message=\"\";\n";
742
  }
743
- echo "var cleantalk_statistics_link=\"<a class='cleantalk_manual_link' target='__blank' href='https://cleantalk.org/my?user_token=".@$ct_data['user_token']."'>".__('Click here to get anti-spam statistics', 'cleantalk')."</a>\";
744
  </script>";
745
 
746
  $value = $ct_options['apikey'];
@@ -979,7 +979,7 @@ function ct_input_general_postdata_test() {
979
  echo "<input type='radio' id='cleantalk_general_postdata_test1' name='cleantalk_settings[general_postdata_test]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_general_postdata_test1'> " . __('Yes') . "</label>";
980
  echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
981
  echo "<input type='radio' id='cleantalk_general_postdata_test0' name='cleantalk_settings[general_postdata_test]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_general_postdata_test0'> " . __('No') . "</label>";
982
- @admin_addDescriptionsFields(sprintf(__('Check all POST submissions from website visitors. Enable this option if you have spam misses on website or you don`t have records about missed spam here:', 'cleantalk') . '&nbsp;' . '<a href="https://cleantalk.org/my/?user_token='.@$ct_data['user_token'].'&utm_source=wp-backend&utm_medium=admin-bar" target="_blank">' . __('CleanTalk dashboard', 'cleantalk') . '</a>.<br />' . __('СAUTION! Option can catch POST requests in WordPress backend', 'cleantalk'), $ct_options['general_postdata_test']));
983
  }
984
 
985
  function ct_input_use_ajax() {
@@ -1432,7 +1432,7 @@ function cleantalk_admin_notice_message(){
1432
  }
1433
 
1434
  if ($show_notice && $show_ct_notice_trial ==1 && $value==1 && (is_network_admin() || is_admin()) && $ct_data['moderate_ip'] == 0) {
1435
- echo '<div class="error"><h3>' . sprintf(__("%s trial period ends, please upgrade to %s!", 'cleantalk'), "<a href=\"options-general.php?page=cleantalk\">$ct_plugin_name</a>", "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20trial$user_token\" target=\"_blank\"><b>premium version</b></a>") . '</h3></div>';
1436
  $show_notice = false;
1437
  }
1438
 
@@ -1455,8 +1455,8 @@ function cleantalk_admin_notice_message(){
1455
  }
1456
 
1457
  if ($show_notice && $show_ct_notice_renew == 1 && $value==1 && (is_network_admin() || is_admin()) && $ct_data['moderate_ip'] != 1) {
1458
- $button_html = "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20renew$user_token\" target=\"_blank\">" . '<input type="button" class="button button-primary" value="' . __('RENEW ANTI-SPAM', 'cleantalk') . '" />' . "</a>";
1459
- echo '<div class="updated"><h3>' . sprintf(__("Please renew your anti-spam license for %s.", 'cleantalk'), "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20renew$user_token\" target=\"_blank\"><b>" . __('next year', 'cleantalk') ."</b></a>") . '<br /><br />' . $button_html . '</h3></div>';
1460
  $show_notice = false;
1461
  }
1462
 
21
  }
22
  if($blocked>0){
23
  $blocked = number_format($blocked, 0, ',', ' ');
24
+ print "<div style='height:24px;width:100%;display:table-cell; vertical-align:middle;'><img src='" . plugin_dir_url(__FILE__) . "images/logo_color.png' style='margin-right:1em;vertical-align:middle;'/><span><a href='https://cleantalk.org/my/?user_token=".@$ct_data['user_token']."&utm_source=wp-backend&utm_medium=dashboard_widget&cp_mode=antispam' target='_blank'>CleanTalk</a> ";
25
  printf(
26
  /* translators: %s: Number of spam messages */
27
  __( 'has blocked %s spam', 'cleantalk' ),
580
  // add a child item to our parent item
581
  $args = array(
582
  'id' => 'ct_dashboard_link',
583
+ 'title' => '<a href="https://cleantalk.org/my/?user_token='.@$ct_data['user_token'].'&utm_source=wp-backend&utm_medium=admin-bar&cp_mode=antispam " target="_blank">CleanTalk '.__('dashboard', 'cleantalk').'</a>',
584
  'parent' => 'ct_parent_node'
585
  );
586
  $wp_admin_bar->add_node( $args );
740
  {
741
  echo "<script>var cleantalk_blocked_message=\"\";\n";
742
  }
743
+ echo "var cleantalk_statistics_link=\"<a class='cleantalk_manual_link' target='__blank' href='https://cleantalk.org/my?user_token=".@$ct_data['user_token']."&cp_mode=antispam'>".__('Click here to get anti-spam statistics', 'cleantalk')."</a>\";
744
  </script>";
745
 
746
  $value = $ct_options['apikey'];
979
  echo "<input type='radio' id='cleantalk_general_postdata_test1' name='cleantalk_settings[general_postdata_test]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_general_postdata_test1'> " . __('Yes') . "</label>";
980
  echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
981
  echo "<input type='radio' id='cleantalk_general_postdata_test0' name='cleantalk_settings[general_postdata_test]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_general_postdata_test0'> " . __('No') . "</label>";
982
+ @admin_addDescriptionsFields(sprintf(__('Check all POST submissions from website visitors. Enable this option if you have spam misses on website or you don`t have records about missed spam here:', 'cleantalk') . '&nbsp;' . '<a href="https://cleantalk.org/my/?user_token='.@$ct_data['user_token'].'&utm_source=wp-backend&utm_medium=admin-bar&cp_mode=antispam" target="_blank">' . __('CleanTalk dashboard', 'cleantalk') . '</a>.<br />' . __('СAUTION! Option can catch POST requests in WordPress backend', 'cleantalk'), $ct_options['general_postdata_test']));
983
  }
984
 
985
  function ct_input_use_ajax() {
1432
  }
1433
 
1434
  if ($show_notice && $show_ct_notice_trial ==1 && $value==1 && (is_network_admin() || is_admin()) && $ct_data['moderate_ip'] == 0) {
1435
+ echo '<div class="error"><h3>' . sprintf(__("%s trial period ends, please upgrade to %s!", 'cleantalk'), "<a href=\"options-general.php?page=cleantalk\">$ct_plugin_name</a>", "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20trial$user_token&cp_mode=antispam\" target=\"_blank\"><b>premium version</b></a>") . '</h3></div>';
1436
  $show_notice = false;
1437
  }
1438
 
1455
  }
1456
 
1457
  if ($show_notice && $show_ct_notice_renew == 1 && $value==1 && (is_network_admin() || is_admin()) && $ct_data['moderate_ip'] != 1) {
1458
+ $button_html = "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20renew$user_token&cp_mode=antispam\" target=\"_blank\">" . '<input type="button" class="button button-primary" value="' . __('RENEW ANTI-SPAM', 'cleantalk') . '" />' . "</a>";
1459
+ echo '<div class="updated"><h3>' . sprintf(__("Please renew your anti-spam license for %s.", 'cleantalk'), "<a href=\"http://cleantalk.org/my/bill/recharge?utm_source=wp-backend&utm_medium=cpc&utm_campaign=WP%20backend%20renew$user_token&cp_mode=antispam\" target=\"_blank\"><b>" . __('next year', 'cleantalk') ."</b></a>") . '<br /><br />' . $button_html . '</h3></div>';
1460
  $show_notice = false;
1461
  }
1462
 
inc/cleantalk-ajax.php CHANGED
@@ -8,6 +8,7 @@ AJAX functions
8
  //$cleantalk_ajax_actions_to_check - array for POST 'actions' we should check.
9
 
10
  $cleantalk_ajax_actions_to_check[] = 'qcf_validate_form'; //Quick Contact Form
 
11
 
12
  //cleantalk_hooked_actions[] - array for POST 'actions' which were direct hooked.
13
 
@@ -286,7 +287,7 @@ function ct_user_register_ajaxlogin($user_id)
286
  }
287
 
288
  function ct_ajax_hook($message_obj = false)
289
- {
290
  require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
291
  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;
292
 
@@ -337,13 +338,12 @@ function ct_ajax_hook($message_obj = false)
337
  }
338
 
339
  //CSCF fix
340
- if(isset($_POST['action'], $_POST['cscf']) && $_POST['action']== 'cscf-submitform'){
341
  $ct_post_temp[] = $message_obj['comment_author'];
342
  $ct_post_temp[] = $message_obj['comment_author_email'];
343
  $ct_post_temp[] = $message_obj['comment_content'];
344
  }
345
-
346
-
347
  //??? fix
348
  if(isset($_POST['action'], $_POST['target']) && ($_POST['action']=='request_appointment'||$_POST['action']=='send_message')){
349
  $ct_post_temp=$_POST;
@@ -355,7 +355,7 @@ function ct_ajax_hook($message_obj = false)
355
  $ct_post_temp = $_POST;
356
  $ct_post_temp['shortcode'] = '';
357
  }
358
-
359
  if(isset($ct_post_temp))
360
  $ct_temp_msg_data = ct_get_fields_any($ct_post_temp);
361
  else
@@ -447,13 +447,17 @@ function ct_ajax_hook($message_obj = false)
447
  print json_encode($result);
448
  die();
449
  }
450
- else if(isset($_POST['action']) && !isset($_POST['cscf']) && $_POST['action']== 'cscf-submitform')
451
  {
452
  $message_obj['akismet_result'] = 'true';
 
 
 
 
 
 
 
453
  return $message_obj;
454
- //$result=Array('sent'=>true,'valid'=>false,'errorlist'=>Array('name'=>$ct_result->comment));
455
- //print json_encode($result);
456
- //die();
457
  }
458
  else if(isset($_POST['action']) && $_POST['action']=='woocommerce_checkout')
459
  {
@@ -520,9 +524,9 @@ function ct_ajax_hook($message_obj = false)
520
  else if(isset($_POST['action']) && $_POST['action']=='qem_validate_form'){
521
  $errors[] = 'registration_forbidden';
522
  $result = Array(
523
- success => 'false',
524
- errors => $errors,
525
- title => $ct_result->comment
526
  );
527
  print json_encode($result);
528
  die();
@@ -531,15 +535,15 @@ function ct_ajax_hook($message_obj = false)
531
  elseif(isset($_POST['action']) && $_POST['action'] == 'qcf_validate_form')
532
  {
533
  $result = Array(
534
- blurb => "<h1>".$ct_result->comment."</h1>",
535
- display => "Oops, got a few problems here",
536
- errors => array(
537
  0 => array(
538
  error => 'error',
539
  name => 'name'
540
  ),
541
  ),
542
- success => 'false',
543
  );
544
  print json_encode($result);
545
  die();
@@ -548,6 +552,19 @@ function ct_ajax_hook($message_obj = false)
548
  elseif(isset($_POST['title'], $_POST['email'], $_POST['type'], $_POST['ct_checkjs']))
549
  {
550
  return array($ct_result->comment);
 
 
 
 
 
 
 
 
 
 
 
 
 
551
  }
552
  else
553
  {
8
  //$cleantalk_ajax_actions_to_check - array for POST 'actions' we should check.
9
 
10
  $cleantalk_ajax_actions_to_check[] = 'qcf_validate_form'; //Quick Contact Form
11
+ $cleantalk_ajax_actions_to_check[] = 'amoforms_submit'; //amoForms
12
 
13
  //cleantalk_hooked_actions[] - array for POST 'actions' which were direct hooked.
14
 
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;
293
 
338
  }
339
 
340
  //CSCF fix
341
+ if(isset($_POST['action']) && $_POST['action']== 'cscf-submitform'){
342
  $ct_post_temp[] = $message_obj['comment_author'];
343
  $ct_post_temp[] = $message_obj['comment_author_email'];
344
  $ct_post_temp[] = $message_obj['comment_content'];
345
  }
346
+
 
347
  //??? fix
348
  if(isset($_POST['action'], $_POST['target']) && ($_POST['action']=='request_appointment'||$_POST['action']=='send_message')){
349
  $ct_post_temp=$_POST;
355
  $ct_post_temp = $_POST;
356
  $ct_post_temp['shortcode'] = '';
357
  }
358
+
359
  if(isset($ct_post_temp))
360
  $ct_temp_msg_data = ct_get_fields_any($ct_post_temp);
361
  else
447
  print json_encode($result);
448
  die();
449
  }
450
+ else if(isset($_POST['action']) && $_POST['action']== 'cscf-submitform')
451
  {
452
  $message_obj['akismet_result'] = 'true';
453
+ $result = array(
454
+ 'sent' => false,
455
+ 'valid' => 1,
456
+ 'errorlist' => array('confirm-email'=>$ct_result->comment)
457
+ );
458
+ $result = json_encode($result);
459
+ echo $result;
460
  return $message_obj;
 
 
 
461
  }
462
  else if(isset($_POST['action']) && $_POST['action']=='woocommerce_checkout')
463
  {
524
  else if(isset($_POST['action']) && $_POST['action']=='qem_validate_form'){
525
  $errors[] = 'registration_forbidden';
526
  $result = Array(
527
+ 'success' => 'false',
528
+ 'errors' => $errors,
529
+ 'title' => $ct_result->comment
530
  );
531
  print json_encode($result);
532
  die();
535
  elseif(isset($_POST['action']) && $_POST['action'] == 'qcf_validate_form')
536
  {
537
  $result = Array(
538
+ 'blurb' => "<h1>".$ct_result->comment."</h1>",
539
+ 'display' => "Oops, got a few problems here",
540
+ 'errors' => array(
541
  0 => array(
542
  error => 'error',
543
  name => 'name'
544
  ),
545
  ),
546
+ 'success' => 'false',
547
  );
548
  print json_encode($result);
549
  die();
552
  elseif(isset($_POST['title'], $_POST['email'], $_POST['type'], $_POST['ct_checkjs']))
553
  {
554
  return array($ct_result->comment);
555
+ die();
556
+ }
557
+ // amoForms
558
+ elseif(isset($_POST['action']) && $_POST['action'] == 'amoforms_submit')
559
+ {
560
+ $result = Array(
561
+ 'result' => true,
562
+ 'type' => "html",
563
+ 'value' => "<h1 style='font-size: 25px; color: red;'>".$ct_result->comment."</h1>",
564
+ 'fast' => false
565
+ );
566
+ print json_encode($result);
567
+ die();
568
  }
569
  else
570
  {
inc/cleantalk-comments-editscreen.js CHANGED
@@ -1,4 +1,4 @@
1
  jQuery(document).ready(function(){
2
- jQuery('#post-query-submit').after('<a href="edit-comments.php?page=ct_check_spam" class="button" style="margin: 1px 0 0 0; display: inline-block;">'+ctCommentsScreen.spambutton_text+'</a>' +
3
- ' <a href="edit-comments.php?page=ct_check_spam&ct_worked=1" class="button" style="margin: 1px 0 0 0; display: inline-block;">'+ctCommentsScreen.spambutton_text_show+'</a>&nbsp;');
4
  });
1
  jQuery(document).ready(function(){
2
+ jQuery('#post-query-submit').after('<a href="edit-comments.php?page=ct_check_spam" class="button" style="margin:1px 0 0 0; display: inline-block;">'+ctCommentsScreen.spambutton_text+'</a>' +
3
+ ' <a href="edit-comments.php?page=ct_check_spam&ct_worked=1" class="button" style="margin:1px 0 0 0; display: inline-block;">'+ctCommentsScreen.spambutton_text_show+'</a>&nbsp;');
4
  });
inc/cleantalk-comments.php CHANGED
@@ -168,7 +168,7 @@ function ct_show_checkspam_page()
168
  ?>
169
  </tbody>
170
  </table>
171
- <div id="ct_tools_buttons">
172
  <button class="button" id="ct_delete_all"><?php _e('Delete all comments from the list', 'cleantalk'); ?></button>
173
  <button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button><br /><br />
174
  </div>
168
  ?>
169
  </tbody>
170
  </table>
171
+ <div id="ct_tools_buttons" style="margin-top: 10px;">
172
  <button class="button" id="ct_delete_all"><?php _e('Delete all comments from the list', 'cleantalk'); ?></button>
173
  <button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button><br /><br />
174
  </div>
inc/cleantalk-common.php CHANGED
@@ -705,12 +705,9 @@ function ct_get_fields_any($arr, $message=array(), $email=null, $nickname=null,
705
  );
706
  $obfuscate_params = array( //Fields to replace with ****
707
  'password',
708
- 'password0',
709
- 'password1',
710
- 'password2',
711
  'pass',
712
  'pwd',
713
- 'user_pass'
714
  );
715
  $skip_fields_params = array( //Array for known service fields
716
  //Common
@@ -747,13 +744,15 @@ function ct_get_fields_any($arr, $message=array(), $email=null, $nickname=null,
747
  if($value==='' || in_array($key, $skip_fields_params, true)){
748
  continue;
749
  }
750
- // Obfuscate private data
751
- if (in_array($key, $obfuscate_params, true)){
752
- $value = ct_obfuscate_param($value);
753
- $message[$key] = $value;
754
- continue;
755
- }
756
 
 
 
 
 
 
 
 
 
757
  // Removes shortcodes to do better spam filtration on server side.
758
  $value = strip_shortcodes($value);
759
 
705
  );
706
  $obfuscate_params = array( //Fields to replace with ****
707
  'password',
 
 
 
708
  'pass',
709
  'pwd',
710
+ 'pswd'
711
  );
712
  $skip_fields_params = array( //Array for known service fields
713
  //Common
744
  if($value==='' || in_array($key, $skip_fields_params, true)){
745
  continue;
746
  }
 
 
 
 
 
 
747
 
748
+ foreach($obfuscate_params as $needle){
749
+ if (strpos($key, $needle) !== false){
750
+ $value = ct_obfuscate_param($value);
751
+ $message[$key] = $value;
752
+ continue;
753
+ }
754
+ }unset($needle);
755
+
756
  // Removes shortcodes to do better spam filtration on server side.
757
  $value = strip_shortcodes($value);
758
 
inc/cleantalk-public.php CHANGED
@@ -627,7 +627,7 @@ function ct_add_hidden_fields($random_key = false, $field_name = 'ct_checkjs', $
627
  $html = '
628
  <script type="text/javascript">
629
  function ctSetCookie(c_name, value, def_value) {
630
- document.cookie = c_name + "=" + escape(value.replace(/^def_value$/, value)) + "; path=/";
631
  }
632
  ctSetCookie("%s", "%s", "%s");
633
  </script>
@@ -929,36 +929,27 @@ function ct_preprocess_comment($comment) {
929
  return $comment;
930
 
931
  if(defined('CLEANTALK_CHECK_COMMENTS_NUMBER'))
932
- {
933
  $comments_check_number = CLEANTALK_CHECK_COMMENTS_NUMBER;
934
- }
935
  else
936
- {
937
  $comments_check_number = 3;
938
- }
939
 
940
  $is_max_comments = false;
941
  if(isset($ct_options['check_comments_number']))
942
- {
943
  $value = @intval($ct_options['check_comments_number']);
944
- }
945
  else
946
- {
947
  $value=1;
948
- }
949
 
950
- if($value == 1)
951
- {
952
  $args=Array('author_email' => $comment['comment_author_email'],
953
  'status' => 'approve',
954
  'count' => false,
955
  'number' => $comments_check_number
956
  );
957
  $cnt = sizeof(get_comments( $args ));
 
958
  if($cnt >= $comments_check_number)
959
- {
960
  $is_max_comments = true;
961
- }
962
  }
963
 
964
  if (($comment['comment_type']!='trackback') && (ct_is_user_enable() === false || $ct_options['comments_test'] == 0 || $ct_comment_done || (isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) || $is_max_comments || strpos($_SERVER['REQUEST_URI'],'/wp-admin/')!==false)) {
@@ -1052,54 +1043,51 @@ function ct_preprocess_comment($comment) {
1052
  ));
1053
  $ct = $ct_base_call_result['ct'];
1054
  $ct_result = $ct_base_call_result['ct_result'];
 
 
 
 
 
 
 
 
1055
 
1056
- if ($ct_result->stop_queue == 1) {
1057
- $err_text = '<center><b style="color: #49C73B;">Clean</b><b style="color: #349ebf;">Talk.</b> ' . __('Spam protection', 'cleantalk') . "</center><br><br>\n" . $ct_result->comment;
1058
- $err_text .= '<script>setTimeout("history.back()", 5000);</script>';
1059
- wp_die($err_text, 'Blacklisted', array('back_link' => true));
1060
-
1061
- return $comment;
1062
- }
1063
-
1064
- ct_hash($ct_result->id);
1065
- if ($ct_result->spam == 1) {
1066
- add_filter('pre_comment_approved', 'ct_set_comment_spam');
1067
-
1068
- global $ct_comment;
1069
- $ct_comment = $ct_result->comment;
1070
- add_action('comment_post', 'ct_die', 12, 2);
1071
- add_action('comment_post', 'ct_set_meta', 10, 2);
1072
-
1073
- return $comment;
1074
- }
1075
-
1076
- if (isset($comment['comment_author_email'])) {
1077
- $approved_comments = get_comments(array('status' => 'approve', 'count' => true, 'author_email' => $comment['comment_author_email']));
1078
-
1079
- // Change comment flow only for new authors
1080
- if ((int) $approved_comments == 0 || $ct_result->stop_words !== null) {
1081
 
1082
- if ($ct_result->allow == 1 && get_option('comment_moderation') !== '1') {
1083
- add_filter('pre_comment_approved', 'ct_set_approved', 99, 2);
1084
- }
1085
- if ($ct_result->allow == 0) {
1086
- if (isset($ct_result->stop_words)) {
1087
- global $ct_stop_words;
1088
- $ct_stop_words = $ct_result->stop_words;
1089
- add_action('comment_post', 'ct_mark_red', 11, 2);
1090
- }
1091
-
1092
- add_filter('pre_comment_approved', 'ct_set_not_approved');
1093
- }
1094
 
1095
- add_action('comment_post', 'ct_set_meta', 10, 2);
1096
- }
1097
- }
1098
-
1099
  if(isset($ct_options['remove_comments_links']) && $ct_options['remove_comments_links'] == '1'){
1100
  $comment = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '[Link deleted]', $comment);
1101
  }
1102
-
1103
  return $comment;
1104
  }
1105
 
@@ -1220,7 +1208,7 @@ function ct_set_not_approved() {
1220
  function ct_set_approved($approved, $comment) {
1221
  if ($approved == 'spam'){
1222
  return $approved;
1223
- }else {
1224
  return 1;
1225
  }
1226
  }
@@ -1244,14 +1232,14 @@ function ct_set_meta($comment_id, $comment_status) {
1244
  if (!empty($hash1)) {
1245
  update_comment_meta($comment_id, 'ct_hash', $hash1);
1246
  if (function_exists('base64_encode') && isset($comment_status) && $comment_status != 'spam') {
1247
- $post_url = ct_post_url($comment_id, $comment_post_id);
1248
- $post_url = base64_encode($post_url);
1249
- if ($post_url === false)
1250
- return false;
1251
- // 01 - URL to approved comment
1252
- $feedback_request = $hash1 . ':' . '01' . ':' . $post_url . ';';
1253
- ct_send_feedback($feedback_request);
1254
- }
1255
  }
1256
  return true;
1257
  }
627
  $html = '
628
  <script type="text/javascript">
629
  function ctSetCookie(c_name, value, def_value) {
630
+ document.cookie = c_name + "=" + escape(value) + "; path=/";
631
  }
632
  ctSetCookie("%s", "%s", "%s");
633
  </script>
929
  return $comment;
930
 
931
  if(defined('CLEANTALK_CHECK_COMMENTS_NUMBER'))
 
932
  $comments_check_number = CLEANTALK_CHECK_COMMENTS_NUMBER;
 
933
  else
 
934
  $comments_check_number = 3;
 
935
 
936
  $is_max_comments = false;
937
  if(isset($ct_options['check_comments_number']))
 
938
  $value = @intval($ct_options['check_comments_number']);
 
939
  else
 
940
  $value=1;
 
941
 
942
+ if($value == 1){
 
943
  $args=Array('author_email' => $comment['comment_author_email'],
944
  'status' => 'approve',
945
  'count' => false,
946
  'number' => $comments_check_number
947
  );
948
  $cnt = sizeof(get_comments( $args ));
949
+
950
  if($cnt >= $comments_check_number)
 
951
  $is_max_comments = true;
952
+
953
  }
954
 
955
  if (($comment['comment_type']!='trackback') && (ct_is_user_enable() === false || $ct_options['comments_test'] == 0 || $ct_comment_done || (isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) || $is_max_comments || strpos($_SERVER['REQUEST_URI'],'/wp-admin/')!==false)) {
1043
  ));
1044
  $ct = $ct_base_call_result['ct'];
1045
  $ct_result = $ct_base_call_result['ct_result'];
1046
+
1047
+ ct_hash($ct_result->id);
1048
+
1049
+ //Don't check trusted users
1050
+ if (isset($comment['comment_author_email'])){
1051
+ $approved_comments = get_comments(array('status' => 'approve', 'count' => true, 'author_email' => $comment['comment_author_email']));
1052
+ $new_user = $approved_comments == 0 ? true : false;
1053
+ }
1054
 
1055
+ // Change comment flow only for new authors
1056
+ if ($new_user || $ct_result->stop_words !== null || $ct_result->spam == 1)
1057
+ add_action('comment_post', 'ct_set_meta', 10, 2);
1058
+
1059
+ if($ct_result->allow){ // Pass if allowed
1060
+ if(get_option('comment_moderation') === '1') // Wordpress moderation flag
1061
+ add_filter('pre_comment_approved', 'ct_set_not_approved', 999, 2);
1062
+ else
1063
+ add_filter('pre_comment_approved', 'ct_set_approved', 999, 2);
1064
+ }else{
1065
+
1066
+ global $ct_comment, $ct_stop_words;
1067
+ $ct_comment = $ct_result->comment;
1068
+ $ct_stop_words = $ct_result->stop_words;
1069
+ $err_text = '<center><b style="color: #49C73B;">Clean</b><b style="color: #349ebf;">Talk.</b> ' . __('Spam protection', 'cleantalk') . "</center><br><br>\n" . $ct_result->comment;
1070
+ $err_text .= '<script>setTimeout("history.back()", 5000);</script>';
1071
+
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 == 0) // Don't move to spam folder. Delete.
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', 999, 2);
1080
+ add_action('comment_post', 'ct_mark_red', 11, 2);
1081
+ }else // stop_words == null, spam == 1, stop_queue == 0, To spam folder.
1082
+ add_filter('pre_comment_approved', 'ct_set_comment_spam', 999, 2);
 
 
 
 
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'){
1088
  $comment = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '[Link deleted]', $comment);
1089
  }
1090
+
1091
  return $comment;
1092
  }
1093
 
1208
  function ct_set_approved($approved, $comment) {
1209
  if ($approved == 'spam'){
1210
  return $approved;
1211
+ } else {
1212
  return 1;
1213
  }
1214
  }
1232
  if (!empty($hash1)) {
1233
  update_comment_meta($comment_id, 'ct_hash', $hash1);
1234
  if (function_exists('base64_encode') && isset($comment_status) && $comment_status != 'spam') {
1235
+ $post_url = ct_post_url($comment_id, $comment_post_id);
1236
+ $post_url = base64_encode($post_url);
1237
+ if ($post_url === false)
1238
+ return false;
1239
+ // 01 - URL to approved comment
1240
+ $feedback_request = $hash1 . ':' . '01' . ':' . $post_url . ';';
1241
+ ct_send_feedback($feedback_request);
1242
+ }
1243
  }
1244
  return true;
1245
  }
inc/cleantalk-users-checkspam.js CHANGED
@@ -83,10 +83,10 @@ function ct_send_users()
83
  }
84
  },
85
  error: function(jqXHR, textStatus, errorThrown) {
86
- if(textStatus === 'timeout') {
87
- alert(ctUsersCheck.ct_timeout);
88
- ct_send_users();
89
- }
90
  },
91
  timeout: 15000
92
  });
@@ -105,7 +105,13 @@ function ct_show_users_info()
105
  data: data,
106
  success: function(msg){
107
  jQuery('#ct_checking_users_status').html(msg);
108
- setTimeout(ct_show_users_info, 1000);
 
 
 
 
 
 
109
  },
110
  timeout: 5000
111
  });
@@ -150,12 +156,12 @@ function ct_delete_all_users()
150
  }
151
  },
152
  error: function(jqXHR, textStatus, errorThrown) {
153
- if(textStatus === 'timeout') {
154
- alert(ctUsersCheck.ct_timeout_delete);
155
- ct_delete_all_users();
156
- }
157
  },
158
- timeout: 160000
159
  });
160
  }
161
  function ct_delete_checked_users()
@@ -182,7 +188,14 @@ function ct_delete_checked_users()
182
  success: function(msg){
183
  location.href='users.php?page=ct_check_users&ct_worked=1';
184
  //alert(msg);
185
- }
 
 
 
 
 
 
 
186
  });
187
  return false;
188
  }
@@ -208,9 +221,10 @@ jQuery(document).ready(function(){
208
  jQuery("#comment-"+id).remove();
209
  close_animate=true;
210
  },
211
- timeout: 180000
212
  });
213
  });
 
214
  jQuery(".cleantalk_delete_user_button").click(function(){
215
  id = jQuery(this).attr("data-id");
216
  animate_comment(0.3, id);
@@ -223,6 +237,7 @@ jQuery(document).ready(function(){
223
  working=true;
224
  ct_clear_users();
225
  });
 
226
  jQuery("#ct_check_users_button").click(function(){
227
 
228
  // jQuery('#ct_checking_users_status').html('');
@@ -233,6 +248,7 @@ jQuery(document).ready(function(){
233
  working=true;
234
  ct_show_users_info();
235
  });
 
236
  jQuery("#ct_insert_users").click(function(){
237
  ct_insert_users();
238
  });
83
  }
84
  },
85
  error: function(jqXHR, textStatus, errorThrown) {
86
+ jQuery('#ct_error_message').show();
87
+ jQuery('#cleantalk_ajax_error').html(textStatus);
88
+ jQuery('#cleantalk_js_func').html('Check users');
89
+ setTimeout(ct_send_users(), 3000);
90
  },
91
  timeout: 15000
92
  });
105
  data: data,
106
  success: function(msg){
107
  jQuery('#ct_checking_users_status').html(msg);
108
+ setTimeout(ct_show_users_info, 3000);
109
+ },
110
+ error: function (jqXHR, textStatus, errorThrown){
111
+ jQuery('#ct_error_message').show();
112
+ jQuery('#cleantalk_ajax_error').html(textStatus);
113
+ jQuery('#cleantalk_js_func').html('Show users');
114
+ setTimeout(ct_show_users_info(), 3000);
115
  },
116
  timeout: 5000
117
  });
156
  }
157
  },
158
  error: function(jqXHR, textStatus, errorThrown) {
159
+ jQuery('#ct_error_message').show();
160
+ jQuery('#cleantalk_ajax_error').html(textStatus);
161
+ jQuery('#cleantalk_js_func').html('All users deleteion');
162
+ setTimeout(ct_delete_all_users(), 3000);
163
  },
164
+ timeout: 25000
165
  });
166
  }
167
  function ct_delete_checked_users()
188
  success: function(msg){
189
  location.href='users.php?page=ct_check_users&ct_worked=1';
190
  //alert(msg);
191
+ },
192
+ error: function(jqXHR, textStatus, errorThrown) {
193
+ jQuery('#ct_error_message').show();
194
+ jQuery('#cleantalk_ajax_error').html(textStatus);
195
+ jQuery('#cleantalk_js_func').html('All users deleteion');
196
+ setTimeout(ct_delete_checked_users(), 3000);
197
+ },
198
+ timeout: 15000
199
  });
200
  return false;
201
  }
221
  jQuery("#comment-"+id).remove();
222
  close_animate=true;
223
  },
224
+ timeout: 15000
225
  });
226
  });
227
+
228
  jQuery(".cleantalk_delete_user_button").click(function(){
229
  id = jQuery(this).attr("data-id");
230
  animate_comment(0.3, id);
237
  working=true;
238
  ct_clear_users();
239
  });
240
+
241
  jQuery("#ct_check_users_button").click(function(){
242
 
243
  // jQuery('#ct_checking_users_status').html('');
248
  working=true;
249
  ct_show_users_info();
250
  });
251
+
252
  jQuery("#ct_insert_users").click(function(){
253
  ct_insert_users();
254
  });
inc/cleantalk-users-editscreen.js CHANGED
@@ -1,4 +1,4 @@
1
  jQuery(document).ready(function(){
2
- jQuery('#changeit').after(' <a href="users.php?page=ct_check_users" class="button" style="margin: 1px 0 0 0; display: inline-block;">'+ctUsersScreen.spambutton_users_text+'</a>' +
3
- ' <a href="users.php?page=ct_check_users&ct_worked=1" class="button" style="margin: 1px 0 0 0; display: inline-block;">'+ctUsersScreen.spambutton_users_text_show+'</a>');
4
  });
1
  jQuery(document).ready(function(){
2
+ jQuery('#changeit').after(' <a href="users.php?page=ct_check_users" class="button" style="margin:1px 0 0 0; display: inline-block;">'+ctUsersScreen.spambutton_users_text+'</a>' +
3
+ ' <a href="users.php?page=ct_check_users&ct_worked=1" class="button" style="margin:1px 0 0 0; display: inline-block;">'+ctUsersScreen.spambutton_users_text_show+'</a>');
4
  });
inc/cleantalk-users.php CHANGED
@@ -33,15 +33,21 @@ function ct_show_users_page()
33
  );*/
34
  $r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam';", ARRAY_A);
35
  $cnt_spam1=$r[0]['cnt'];
36
- ?>
 
 
 
 
 
 
 
37
  <div id="ct_deleting_message" style="display:none">
38
  <?php _e("Please wait for a while. CleanTalk is deleting spam users. Users left: ", 'cleantalk'); ?> <span id="cleantalk_users_left">
39
  <?php echo $cnt_spam1;?>
40
  </span>
41
  </div>
42
  <div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
43
- <?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk');
44
- ?>
45
  </div>
46
  <h3 id="ct_checking_users_status" style="text-align:center;width:90%;"><?php ct_ajax_info_users(true);?></h3>
47
  <div style="text-align:center;width:100%;display:none;" id="ct_preloader"><img border=0 src="<?php print plugin_dir_url(__FILE__); ?>images/preloader.gif" /></div>
@@ -171,7 +177,7 @@ $cnt_spam1=$r[0]['cnt'];
171
  ?>
172
  </tbody>
173
  </table>
174
- <div id="ct_tools_buttons">
175
  <button class="button" id="ct_delete_all_users"><?php _e('Delete all users from list', 'cleantalk'); ?></button>
176
  <button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
177
  <?php
@@ -360,8 +366,8 @@ function ct_ajax_info_users($direct_call = false)
360
  $cnt=$r[0]->cnt;
361
 
362
  $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);
363
- $cnt_spam1=$r[0]['cnt'];
364
-
365
  printf (__("Total users %s, checked %s, found %s spam users", 'cleantalk'), $cnt, $cnt_checked, $cnt_spam1);
366
  $backup_notice = '&nbsp;';
367
  if ($cnt_spam1 > 0) {
@@ -423,20 +429,17 @@ function ct_ajax_delete_all_users()
423
  {
424
  global $wpdb;
425
 
426
- $r=$wpdb->get_results("select distinct $wpdb->users.ID 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);
427
- $cnt_all = 0;
428
- if ($r) {
429
- $cnt_all = count($r);
430
- }
431
 
432
- $r=$wpdb->get_results("select distinct $wpdb->users.ID from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam' limit 50;", ARRAY_A);
433
  if ($r) {
434
  for($i = 0; $i < count($r); $i++) {
435
  wp_delete_user($r[$i]['ID']);
436
  usleep(5000);
437
  }
438
  }
439
- print $cnt_all;
440
  die();
441
  }
442
 
33
  );*/
34
  $r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam';", ARRAY_A);
35
  $cnt_spam1=$r[0]['cnt'];
36
+ ?>
37
+
38
+ <div id="ct_error_message" style="display:none">
39
+ <h3 style="text-align: center;width:90%;">
40
+ <?php _e("Ajax error. Process will be automatically restarted in 3 seconds. Status: ", 'cleantalk'); ?><span id="cleantalk_ajax_error"></span> (<span id="cleantalk_js_func"></span>)
41
+ </h3>
42
+ <h4 style="text-align:center;width:90%;">Please, check for JavaScript errors in your dashboard and and repair it.</h4>
43
+ </div>
44
  <div id="ct_deleting_message" style="display:none">
45
  <?php _e("Please wait for a while. CleanTalk is deleting spam users. Users left: ", 'cleantalk'); ?> <span id="cleantalk_users_left">
46
  <?php echo $cnt_spam1;?>
47
  </span>
48
  </div>
49
  <div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
50
+ <?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk'); ?>
 
51
  </div>
52
  <h3 id="ct_checking_users_status" style="text-align:center;width:90%;"><?php ct_ajax_info_users(true);?></h3>
53
  <div style="text-align:center;width:100%;display:none;" id="ct_preloader"><img border=0 src="<?php print plugin_dir_url(__FILE__); ?>images/preloader.gif" /></div>
177
  ?>
178
  </tbody>
179
  </table>
180
+ <div id="ct_tools_buttons" style="margin-top: 10px;">
181
  <button class="button" id="ct_delete_all_users"><?php _e('Delete all users from list', 'cleantalk'); ?></button>
182
  <button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
183
  <?php
366
  $cnt=$r[0]->cnt;
367
 
368
  $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);
369
+ $cnt_spam1=$r[0]['cnt'];
370
+
371
  printf (__("Total users %s, checked %s, found %s spam users", 'cleantalk'), $cnt, $cnt_checked, $cnt_spam1);
372
  $backup_notice = '&nbsp;';
373
  if ($cnt_spam1 > 0) {
429
  {
430
  global $wpdb;
431
 
432
+ $r = $wpdb->get_results("select count(*) from $wpdb->usermeta where meta_key='ct_marked_as_spam';");
433
+ $cnt_all = $r ? count($r) : 0;
 
 
 
434
 
435
+ $r=$wpdb->get_results("select distinct $wpdb->users.ID from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_marked_as_spam' limit 10;", ARRAY_A);
436
  if ($r) {
437
  for($i = 0; $i < count($r); $i++) {
438
  wp_delete_user($r[$i]['ID']);
439
  usleep(5000);
440
  }
441
  }
442
+ print $count_all;
443
  die();
444
  }
445
 
inc/cleantalk.class.php CHANGED
@@ -637,7 +637,7 @@ class Cleantalk {
637
  if ($this->ssl_on && !preg_match("/^https:/", $url)) {
638
  $url = preg_replace("/^(http)/i", "$1s", $url);
639
  }
640
-
641
  $result = false;
642
  $curl_error = null;
643
  if(function_exists('curl_init')) {
@@ -689,7 +689,7 @@ class Cleantalk {
689
  $result = @file_get_contents($url, false, $context);
690
  }
691
  }
692
-
693
  if (!$result || !cleantalk_is_JSON($result)) {
694
  $response = null;
695
  $response['errno'] = 1;
@@ -814,9 +814,9 @@ class Cleantalk {
814
  }
815
  }
816
  }
817
-
818
  $response = new CleantalkResponse(null, $result);
819
-
820
  if (!empty($this->data_codepage) && $this->data_codepage !== 'UTF-8') {
821
  if (!empty($response->comment))
822
  $response->comment = $this->stringFromUTF8($response->comment, $this->data_codepage);
@@ -825,7 +825,7 @@ class Cleantalk {
825
  if (!empty($response->sms_error_text))
826
  $response->sms_error_text = $this->stringFromUTF8($response->sms_error_text, $this->data_codepage);
827
  }
828
-
829
  return $response;
830
  }
831
 
637
  if ($this->ssl_on && !preg_match("/^https:/", $url)) {
638
  $url = preg_replace("/^(http)/i", "$1s", $url);
639
  }
640
+
641
  $result = false;
642
  $curl_error = null;
643
  if(function_exists('curl_init')) {
689
  $result = @file_get_contents($url, false, $context);
690
  }
691
  }
692
+
693
  if (!$result || !cleantalk_is_JSON($result)) {
694
  $response = null;
695
  $response['errno'] = 1;
814
  }
815
  }
816
  }
817
+
818
  $response = new CleantalkResponse(null, $result);
819
+
820
  if (!empty($this->data_codepage) && $this->data_codepage !== 'UTF-8') {
821
  if (!empty($response->comment))
822
  $response->comment = $this->stringFromUTF8($response->comment, $this->data_codepage);
825
  if (!empty($response->sms_error_text))
826
  $response->sms_error_text = $this->stringFromUTF8($response->sms_error_text, $this->data_codepage);
827
  }
828
+
829
  return $response;
830
  }
831
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ 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
4
  Requires at least: 3.0
5
  Tested up to: 4.7
6
- Stable tag: 5.53.1
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -34,6 +34,9 @@ No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bo
34
  >I know you have heard of a number of anti-spam plugins. But you must know, the cloud-based ones are the best regarding detection rate. They compare all the content in forms with their own algorithm to find out the legibility.
35
  >*<a href="https://www.techwibe.com/cleantalk-wordpress-plugin-review/" target="_blank">www.techwibe.com</a>*
36
 
 
 
 
37
  = Anti-Spam protection for comments =
38
  Supports native WordPress, JetPack comments and any other comment plugins. The plugin moves spam comments to SPAM folder or you can set the option to ban spam comments silently. You can also enable the option in the plugin settings to auto-delete comments from SPAM folder.
39
 
@@ -188,9 +191,6 @@ CleanTalk has an advanced option “SpamFireWall”. This option allows you to b
188
 
189
  “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”.
190
 
191
- = Free trial then $8 per year =
192
- CleanTalk is a free plugin which work with the premium Cloud Anti-Spam service cleantalk.org. This plugin as a service https://en.wikipedia.org/wiki/Software_as_a_service.
193
-
194
  = We recommend =
195
  * Audience engagement plugin <a href="http://wordpress.org/plugins/feedweb/">Feedweb</a>
196
  * <a href="https://wordpress.org/plugins/security-malware-firewall/">Security & Firewall plugin by CleanTalk</a>
@@ -484,6 +484,14 @@ 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.53.1 December 9 2016 =
488
  * Minor layout fixes.
489
 
@@ -1205,6 +1213,14 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
1205
 
1206
  == Upgrade Notice ==
1207
  == Changelog ==
 
 
 
 
 
 
 
 
1208
  = 5.53.1 December 9 2016 =
1209
  * Minor layout fixes.
1210
 
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
4
  Requires at least: 3.0
5
  Tested up to: 4.7
6
+ Stable tag: 5.54
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
34
  >I know you have heard of a number of anti-spam plugins. But you must know, the cloud-based ones are the best regarding detection rate. They compare all the content in forms with their own algorithm to find out the legibility.
35
  >*<a href="https://www.techwibe.com/cleantalk-wordpress-plugin-review/" target="_blank">www.techwibe.com</a>*
36
 
37
+ = Free trial then $8 per year =
38
+ CleanTalk is a free plugin which work with the premium Cloud Anti-Spam service cleantalk.org. This plugin as a service https://en.wikipedia.org/wiki/Software_as_a_service.
39
+
40
  = Anti-Spam protection for comments =
41
  Supports native WordPress, JetPack comments and any other comment plugins. The plugin moves spam comments to SPAM folder or you can set the option to ban spam comments silently. You can also enable the option in the plugin settings to auto-delete comments from SPAM folder.
42
 
191
 
192
  “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”.
193
 
 
 
 
194
  = We recommend =
195
  * Audience engagement plugin <a href="http://wordpress.org/plugins/feedweb/">Feedweb</a>
196
  * <a href="https://wordpress.org/plugins/security-malware-firewall/">Security & Firewall plugin by CleanTalk</a>
484
  1. The Dashboard with a map of most spam active countries per your account.
485
 
486
  == Changelog ==
487
+ = 5.54 December 12 2016 =
488
+ * Integrations: AmoForms, Contact Form Clean and Simple.
489
+ * Comments check logic refreshed.
490
+ * Registration JS error fix.
491
+ * Users check fix.
492
+ * Fix for translation system.
493
+ * Minor fixes.
494
+
495
  = 5.53.1 December 9 2016 =
496
  * Minor layout fixes.
497
 
1213
 
1214
  == Upgrade Notice ==
1215
  == Changelog ==
1216
+ = 5.54 December 12 2016 =
1217
+ * Integrations: AmoForms, Contact Form Clean and Simple.
1218
+ * Comments check logic refreshed.
1219
+ * Registration JS error fix.
1220
+ * Users check fix.
1221
+ * Fix for translation system.
1222
+ * Minor fixes.
1223
+
1224
  = 5.53.1 December 9 2016 =
1225
  * Minor layout fixes.
1226