Version Description
Mar 17 2021 = * New: Settings Templates functionality implemented. * New: SFW. Anti-flood protection uses UA lists for filtration. * Fix: Forms. Getting check_js delay removed. * Fix: Forms. Rotation check_js fixed. * Fix: Integration. Newspaper-theme login form protection skipped. * Fix: Integration. Newspaper-theme reset password form protection skipped. * Fix: Forms. Gravity Forms paypal addon processing skipped. * Fix: Exclusion for wpDiscuz - Online Users Addon. * Fix: Remote Calls. Wrapper http_request_rc_to_host() don't get an array * Fix: JS. Modal window fixed. * Fix: JS. Show AJAX result fixed. * Fix: Skip. Save abandoned cart checking skip. * Fix: Skip. SUMODISCOUNT discout request skip. * Fix: Skip. WP eMember login form skip. * Fix: SFW. Do not cache constants added. * Fix: SFW. AC/AF logging fixed.
Release Info
Developer | Safronik |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.154 |
Comparing to | |
See all releases |
Code changes from version 5.153.7 to 5.154
- changelog.txt +2802 -2802
- cleantalk.php +85 -78
- css/cleantalk-admin-settings-page.min.css +1 -1
- inc/cleantalk-admin.php +29 -20
- inc/cleantalk-ajax.php +3 -3
- inc/cleantalk-common.php +16 -13
- inc/cleantalk-pluggable.php +83 -0
- inc/cleantalk-public.php +84 -86
- inc/cleantalk-settings.php +210 -171
- inc/cleantalk-updater.php +159 -18
- js/apbct-public.min.js +1 -1
- js/apbct-public.min.js.map +1 -1
- js/cleantalk-admin-settings-page.min.js +1 -1
- js/cleantalk-admin-settings-page.min.js.map +1 -1
- js/cleantalk-modal.min.js +1 -1
- js/cleantalk-modal.min.js.map +1 -1
- lib/Cleantalk/Antispam/DisableComments.php +5 -5
- lib/Cleantalk/ApbctWP/API.php +1 -1
- lib/Cleantalk/ApbctWP/CleantalkSettingsTemplates.php +228 -0
- lib/Cleantalk/ApbctWP/DB.php +5 -0
- lib/Cleantalk/ApbctWP/Firewall/AntiCrawler.php +2 -3
- lib/Cleantalk/ApbctWP/Firewall/AntiFlood.php +31 -3
- lib/Cleantalk/ApbctWP/Firewall/SFW.php +40 -3
- lib/Cleantalk/ApbctWP/Helper.php +1 -1
- lib/Cleantalk/ApbctWP/State.php +69 -67
- lib/Cleantalk/Common/API.php +79 -0
- lib/Cleantalk/Common/Firewall.php +3 -1
- lib/Cleantalk/Common/Firewall/FirewallModule.php +16 -0
- lib/Cleantalk/Common/Schema.php +1 -1
- lib/autoloader.php +23 -23
- lib/cleantalk-php-patch.php +90 -90
- readme.txt +21 -3
@@ -1,2802 +1,2802 @@
|
|
1 |
-
== Changelog ==
|
2 |
-
|
3 |
-
= 5.132.3 December 19 2019 =
|
4 |
-
* Fix: The disable comments functionality.
|
5 |
-
|
6 |
-
= 5.132.2 December 17 2019 =
|
7 |
-
* Fix: The disable comments functionality.
|
8 |
-
|
9 |
-
= 5.132.1 December 17 2019 =
|
10 |
-
* Fix: Fatal PHP error.
|
11 |
-
|
12 |
-
= 5.132 December 17 2019 =
|
13 |
-
* Fix: PHP 7.4 compability
|
14 |
-
* New: Settings and description for "disable comments" functionality.
|
15 |
-
* Mod: WooCommerce settings moved to separate block.
|
16 |
-
* Minor fixes.
|
17 |
-
* Spam protection improved.
|
18 |
-
|
19 |
-
= 5.131 December 6 2019 =
|
20 |
-
* Fix: WooCommerce registration.
|
21 |
-
* Fix: Auto update on Wordperss Multisite.
|
22 |
-
* Fix: URLs exceptions validation.
|
23 |
-
* New: Secuirty improved.
|
24 |
-
* Spam protection is improved.
|
25 |
-
* Minor fixes ond improvments.
|
26 |
-
|
27 |
-
= 5.130.1 November 20 2019 =
|
28 |
-
* Fix: Plugin autoupdate issues.
|
29 |
-
* FIx: Woocommerce checking.
|
30 |
-
* Fix: Correct IP detection.
|
31 |
-
* Fix: CSV export not working after update.
|
32 |
-
* Fix: QuickForms duplicates issues.
|
33 |
-
|
34 |
-
= 5.130 November 14 2019 =
|
35 |
-
* Fix: JetPack contact form JS check.
|
36 |
-
* FIx: Iphorm AJAX form.
|
37 |
-
* Fix: Paid Memberships Pro fix.
|
38 |
-
* Fix: Divi theme contact form fix.
|
39 |
-
* Integration: Paid Memberships Pro.
|
40 |
-
* Integration: Elementor Pro page builder forms.
|
41 |
-
* Improved: Compatibility with different server.
|
42 |
-
|
43 |
-
= 5.129.1 November 5 2019 =
|
44 |
-
* Fix: WooCommerce order detecting.
|
45 |
-
|
46 |
-
= 5.129 October 30 2019 =
|
47 |
-
* Upd: Localize updated.
|
48 |
-
* Fix: Direct $_SERVER access replaced.
|
49 |
-
* Integration: The 7 theme contact form.
|
50 |
-
* Fix: Minor improvements and bug fixes.
|
51 |
-
* Mod: Putting site in maintenance mode during plugin update.
|
52 |
-
|
53 |
-
= 5.128.1 October 23 2019 =
|
54 |
-
* Fix: Fatal error when using buffer output.
|
55 |
-
* Fix: Translate domain for errors.
|
56 |
-
* Code: Fix spelling in function name.
|
57 |
-
* Fix: JS disabled error.
|
58 |
-
* Upd: Comment edit screen updated.
|
59 |
-
* Fix: Cleantalk\Arr::search() fixed.
|
60 |
-
|
61 |
-
= 5.128 October 17 2019 =
|
62 |
-
* Mod: Users check - functionality updated.
|
63 |
-
* Fix: Users check - dates format updated.
|
64 |
-
* Mod: Comments check - functionality updated.
|
65 |
-
* Fix: Comments check - dates format updated.
|
66 |
-
* Fix: Fields exclusion fixed.
|
67 |
-
* Fix: Notice fixed.
|
68 |
-
* Fix: Cleantalk/Antispam/API.
|
69 |
-
* Fix: Minor improvements and bug fixes.
|
70 |
-
|
71 |
-
= 5.127.4 October 13 2019 =
|
72 |
-
* Mod: Automatically decrease amount of checked users by one request if an error occurs.
|
73 |
-
* Fix: Security issue.
|
74 |
-
* Fix: Static JS key.
|
75 |
-
|
76 |
-
= 5.127.3 October 8 2019 =
|
77 |
-
* Fix: Errors during registration.
|
78 |
-
|
79 |
-
= 5.127.2 October 8 2019 =
|
80 |
-
* Integration: SeedProd Coming Soon Page Pro.
|
81 |
-
* Fix: WooCommerce double reuqests.
|
82 |
-
* Fix: Static JS key.
|
83 |
-
|
84 |
-
= 5.127.1 October 7 2019 =
|
85 |
-
* Fix: WPMS settings logic.
|
86 |
-
* Using default database storage engine for tables.
|
87 |
-
|
88 |
-
= 5.127 September 30 2019 =
|
89 |
-
* Fix: Delete redirect notice on external forms
|
90 |
-
* Fix: Storing spam for 15 days.
|
91 |
-
* Fix: correct DiVi display message.
|
92 |
-
* Integration: Ultimate Members.
|
93 |
-
* Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
|
94 |
-
* Mod: Moving White Label option to main site settings.
|
95 |
-
* New: Use static JS key if cache plugin detected.
|
96 |
-
* New: Settings for URLs, fields, roles exclusions.
|
97 |
-
* New: Regular Expressions support in URLs, fields exclusions.
|
98 |
-
* New: Send validation errors on standard registration form.
|
99 |
-
* Updater: Move exclusions from global variable to settings.
|
100 |
-
* Deprecated: IP exclusions.
|
101 |
-
|
102 |
-
= 5.126 September 9 2019 =
|
103 |
-
* Spam protection improved!
|
104 |
-
* Integration: Option wheel.
|
105 |
-
* Mod: Improved Email detection.
|
106 |
-
* Mod: Improved IP detection.
|
107 |
-
* Fix: Too large database table with alternative sessions.
|
108 |
-
* Fix: Exception for WooCommerce AJAX.
|
109 |
-
* Fix: API key validation.
|
110 |
-
* Minor fixes.
|
111 |
-
|
112 |
-
= 5.125 August 26 2019 =
|
113 |
-
* Fix: PHP Notices.
|
114 |
-
* Fix: Auto update.
|
115 |
-
* Fix: Displaying protection status for IP license.
|
116 |
-
* Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
|
117 |
-
* Fix: API key validating.
|
118 |
-
* New: Complete deactivation setting.
|
119 |
-
|
120 |
-
= 5.124.1 August 8 2019 =
|
121 |
-
* Fix: Error on PHP 5.3.
|
122 |
-
|
123 |
-
= 5.124 August 8 2019 =
|
124 |
-
* Spam protection improved.
|
125 |
-
* Fix: SpamFireWall local database counter on Multisite.
|
126 |
-
* Fix: Caldera Forms integration.
|
127 |
-
* Fix: Settings "Use AJAX for JS check" description.
|
128 |
-
* Fix: Formidable integration.
|
129 |
-
* New: External forms check now independed from JavaScript.
|
130 |
-
* New: Setting Protect external - capture buffer.
|
131 |
-
* New: QuForm integration.
|
132 |
-
|
133 |
-
= 5.123 July 25 2019 =
|
134 |
-
* Fix: Plenty of minor fixes.
|
135 |
-
* Fix: wpDiscuz integration.
|
136 |
-
* Fix: Integration with bbPress.
|
137 |
-
* Fix: New comment email notification.
|
138 |
-
* New: Follow-Up Emails integration.
|
139 |
-
* Fix: Woocommerce integration.
|
140 |
-
* Fix: Spelling.
|
141 |
-
|
142 |
-
= 5.122 July 10 2019 =
|
143 |
-
* Spam Protection improved.
|
144 |
-
* Fix: Error while checking account status.
|
145 |
-
* Fix: Conflict with Elementor Pro.
|
146 |
-
* Fix: Integration with Ninja Forms.
|
147 |
-
* Fix: Integration with Formidable.
|
148 |
-
* New: Detecting mobile devices.
|
149 |
-
* New: Integration for Easy Forms for Mailchimp.
|
150 |
-
|
151 |
-
= 5.121 June 26 2019 =
|
152 |
-
* Fix: Translation typos.
|
153 |
-
* Fix: Woocommerce integration.
|
154 |
-
* Fix: Catching admin in AJAX queries.
|
155 |
-
* Mod: Session table (cleantalk_sessions) issue.
|
156 |
-
* Mod: Spam protection improved.
|
157 |
-
* Integration: Wilcity theme custom registration validation enabled
|
158 |
-
* New: Option "Use static JS key".
|
159 |
-
|
160 |
-
= 5.120.2 June 17 2019 =
|
161 |
-
* Fix: WPForms integration.
|
162 |
-
* Fix: Translation and spelling.
|
163 |
-
* Fix: Minor PHP error
|
164 |
-
|
165 |
-
= 5.120.1 June 6 2019 =
|
166 |
-
* Mod: Description for Search form protection.
|
167 |
-
* Fix: CSS and JS attachment.
|
168 |
-
* Fix: Undefined index error.
|
169 |
-
|
170 |
-
= 5.120 June 5 2019 =
|
171 |
-
* Fix: bbPress false positives.
|
172 |
-
* Fix: SpamFireWall check condition.
|
173 |
-
* Fix: SpamFireWall block page.
|
174 |
-
* Fix: Catch admin action via search form test.
|
175 |
-
* Fix: Catch admin action (AJAX).
|
176 |
-
* Mod: Using minified version of JS and CSS.
|
177 |
-
* Mod: Date format in statistics.
|
178 |
-
|
179 |
-
= 5.119.1 May 30 2019 =
|
180 |
-
* Fix: Helper class error.
|
181 |
-
|
182 |
-
= 5.119 May 30 2019 =
|
183 |
-
* Fix: No more second request after registration.
|
184 |
-
* Fix: Activation hook.
|
185 |
-
* Fix: Alternative sessions. Clear table.
|
186 |
-
* Fix: Stop capchuring AJAX requests in admin area.
|
187 |
-
* Fix: Spelling.
|
188 |
-
* Fix: Registration cookies set.
|
189 |
-
* Mod: SFW exdtended die page when testing.
|
190 |
-
* Mod: User-agent modified.
|
191 |
-
* New: Test search queries for spam.
|
192 |
-
* New: Gathering and output statistics.
|
193 |
-
|
194 |
-
= 5.118.4 May 13 2019 =
|
195 |
-
* Fix: SFW cookie. Set correct domain for subdomains.
|
196 |
-
* Fix: SFW update.
|
197 |
-
* Fix: IP detection.
|
198 |
-
* Fix: Triggering AJAX check in backend.
|
199 |
-
* Fix: Zero submit time on few forms.
|
200 |
-
|
201 |
-
= 5.118.3 April 29 2019 =
|
202 |
-
* Fix: Spam statistics in dashboard widget.
|
203 |
-
* Fix: IP detection.
|
204 |
-
* Fix: Double check AJAX integrated forms like Ninja Forms.
|
205 |
-
* Fix: Use url exclusions for AJAX forms.
|
206 |
-
|
207 |
-
= 5.118.2 April 25 2019 =
|
208 |
-
* Mod: Spam filtration quality improved.
|
209 |
-
* Mod: Store SFW cookie for 30 days.
|
210 |
-
* Mod: Server IP added to connection report.
|
211 |
-
* Fix: spam_stat is not defined.
|
212 |
-
|
213 |
-
= 5.118.1 April 19 2019 =
|
214 |
-
* Fix: Fatal error.
|
215 |
-
* Mod: Spam protection improved on registrations.
|
216 |
-
|
217 |
-
= 5.118 April 19 2019 =
|
218 |
-
* Fix: Cookies on registration page.
|
219 |
-
* Fix: Update fix.
|
220 |
-
* Fix: Wordpress built-in API.
|
221 |
-
* Fix: WooCommerce checkout form.
|
222 |
-
* Fix: UpdraftPlus. Saving settings.
|
223 |
-
* Fix: Convert Pro saving settings.
|
224 |
-
* Fix: UTF-8 Converting.
|
225 |
-
* Fix: GDPR notice.
|
226 |
-
* Fix: cleantalk_sessions table size reduced.
|
227 |
-
* Mod: Localization.
|
228 |
-
* Mod: Performance improved.
|
229 |
-
* Mod: SpamFierWall improvments.
|
230 |
-
* Mod: IP detection improved.
|
231 |
-
* Mod: JavaScript check rewised.
|
232 |
-
* New: Setting "Use alternative mechanism for cookies".
|
233 |
-
|
234 |
-
= 5.117.1 April 5 2019 =
|
235 |
-
* Fix: GDPR notice.
|
236 |
-
* Fix: noCacheJS localization.
|
237 |
-
* Fix: Fatal error when updating.
|
238 |
-
|
239 |
-
= 5.117 March 27 2019 =
|
240 |
-
* New: Update logic runs on all pages.
|
241 |
-
* New: Integration for Ajax Contact Forms plugin.
|
242 |
-
* New: Notification for users groups about new comments.
|
243 |
-
* New: SFW die page. Show browser and page creation time.
|
244 |
-
* Fix: Huge bug in Cleantalk.php connected with servers changing.
|
245 |
-
* Fix: Check AJAX requests for logged in users.
|
246 |
-
* Fix: Deleting debug in JS.
|
247 |
-
* Fix: Validating settings before saving.
|
248 |
-
|
249 |
-
= 5.116.3 March 14 2019 =
|
250 |
-
* Fix: "Headers already sent" error.
|
251 |
-
* Fix: Images paths.
|
252 |
-
* Fix: IP detection.
|
253 |
-
* Fix: Skip lost password form check
|
254 |
-
* Fix: Skip mobile requests (push settings)
|
255 |
-
* Fix: PHP notice when detecting BuddyPress template.
|
256 |
-
|
257 |
-
= 5.116.2 March 7 2019 =
|
258 |
-
* Fix: Creating tables in MariaDB.
|
259 |
-
|
260 |
-
= 5.116.1 March 6 2019 =
|
261 |
-
* Fix: Creating tables in DB.
|
262 |
-
* Fix: PHP Warning in spam statistics widget.
|
263 |
-
|
264 |
-
= 5.116 March 6 2019 =
|
265 |
-
* Spam filtration quality improved.
|
266 |
-
* New: Storing visited URLs.
|
267 |
-
* New: Check before validation Contact Form 7, Comments, Jetpack comments.
|
268 |
-
* New: Get validation result for Contact Form 7, Comments, Jetpack comments.
|
269 |
-
* Fix: ES add subscriber.
|
270 |
-
* Fix: IP detection.
|
271 |
-
|
272 |
-
= 5.115.2 February 27 2019 =
|
273 |
-
* Fix: False positives spam detection in WP Forms and Contact Form 7.
|
274 |
-
|
275 |
-
= 5.115.1 February 16 2019 =
|
276 |
-
* Fix: SpamFireWall's false positives.
|
277 |
-
|
278 |
-
= 5.115 February 14 2019 =
|
279 |
-
* Fix: Http_only flag for backend cookies.
|
280 |
-
* Fix: Spam filtration improved.
|
281 |
-
* New: IP detection improved.
|
282 |
-
* Fix: SpamFirewall update speeded up.
|
283 |
-
* New: False positives with caching solutions decreased.
|
284 |
-
* New: Opportunity to use Wordpress HTTP API to connect with Cloud.
|
285 |
-
|
286 |
-
= 5.114 January 31 2019 =
|
287 |
-
* New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
|
288 |
-
* Fix: Formidable: Adding small JS check when adding JS_key.
|
289 |
-
* Mod: layout of settings page.
|
290 |
-
* Mod: Banner logic altered.
|
291 |
-
|
292 |
-
= 5.113.2 January 18 2019 =
|
293 |
-
* Fix: "Settings" link returns to plugin page.
|
294 |
-
|
295 |
-
= 5.113.1 January 17 2019 =
|
296 |
-
* Fix: Conflict with CityTours theme.
|
297 |
-
* Fix: Error for Wordpress lower 4.7.
|
298 |
-
* Add: Spam protection: "Validate email for existence".
|
299 |
-
|
300 |
-
= 5.113 January 16 2019 =
|
301 |
-
* Fix: Fast and Simple Contact Form.
|
302 |
-
* Fix: Settings layout.
|
303 |
-
* Fix: Error with WooCommerce Quickview.
|
304 |
-
* Fix: Bitrix24 contact form.
|
305 |
-
* Fix: Request time decreased.
|
306 |
-
* Fix: Requesting account status when activating for IP licenses.
|
307 |
-
* Add: Precise AJAX request detection.
|
308 |
-
* Spam protection improved.
|
309 |
-
|
310 |
-
= 5.112 December 21 2018 =
|
311 |
-
* Fix: Woocommerce AJAX checkout form.
|
312 |
-
* Fix: Profile Builder Pro.
|
313 |
-
* Fix: DB structure improvements for WPMS.
|
314 |
-
* Spam filtering quality improved.
|
315 |
-
* Minor fixes.
|
316 |
-
|
317 |
-
= 5.111 December 13 2018 =
|
318 |
-
* Fix: Double request in JetPack contact form.
|
319 |
-
* Fix: Email notification about spam registration.
|
320 |
-
* Fix: Links button for feedback comments.
|
321 |
-
* Fix: Mail notification about plugin error.
|
322 |
-
* Fix: Key field output.
|
323 |
-
* Minor fixes.
|
324 |
-
|
325 |
-
= 5.110 November 29 2018 =
|
326 |
-
* Integration: BuddyPress ActivityWall spam protection.
|
327 |
-
* Add: GDPR setting for shortcode.
|
328 |
-
* Add: Support different BuddyPress templates on activity wall.
|
329 |
-
* Fix: Admin/moderator checking for validate post data.
|
330 |
-
|
331 |
-
= 5.109 November 15 2018 =
|
332 |
-
* Fix: Added URL and IP exclusions to Contact Form 7.
|
333 |
-
* Fix: js error when responseText is not exists
|
334 |
-
* Fix: Sitename when getting key automatically under WPMS.
|
335 |
-
* Mod: SpamFireWall is now fully compatible with WPMS.
|
336 |
-
* Mod: Setting 'Tell others about CleanTalk' was deleted.
|
337 |
-
* Mod: Protection from spam improved.
|
338 |
-
|
339 |
-
= 5.108.1 November 8 2018 =
|
340 |
-
* Fix: Errors with integration class.
|
341 |
-
|
342 |
-
= 5.108 November 7 2018 =
|
343 |
-
* Fix: White label mode.
|
344 |
-
* Fix: SpamFireWall now can be disabled.
|
345 |
-
* Fix: Layout.
|
346 |
-
* Integration: WPForms.
|
347 |
-
* Add: Message about block for all no integrated AJAX forms.
|
348 |
-
* Add: Displaying account name near api key.
|
349 |
-
|
350 |
-
= 5.107 October 29 2018 =
|
351 |
-
* Fix: Ninja Forms integration.
|
352 |
-
* Fix: Cookie usage.
|
353 |
-
* Add: Capturing AJAX responses from non integrated forms.
|
354 |
-
* Spam protection improved.
|
355 |
-
* Minor fixes.
|
356 |
-
|
357 |
-
= 5.106 October 11 2018 =
|
358 |
-
* Spam filtration improved.
|
359 |
-
* New: White Label mode.
|
360 |
-
* Modification: Warning message about test on SpamFireWall die page.
|
361 |
-
* Integration: WP Maintenance Mode.
|
362 |
-
* Fix: S2Member.
|
363 |
-
* Fix: JavaScript attachments reconsidered.
|
364 |
-
* Fix: Admin banners layout.
|
365 |
-
* Fix: Minor layout fixes.
|
366 |
-
|
367 |
-
= 5.105 September 26 2018 =
|
368 |
-
* Integration: Now bloking spam for QAEngine questions.
|
369 |
-
* Fix: Async http__request call.
|
370 |
-
* Fix: Unnecessary get_antispam_report_breif method call.
|
371 |
-
* Layout: Hide "Do you like Cleantlak?" when key is not ok.
|
372 |
-
* Layout: Minor fixes.
|
373 |
-
|
374 |
-
= 5.104 September 18 2018 =
|
375 |
-
* Fix: Error when saving settings.
|
376 |
-
* Fix: Trying update anti spam plugin for the first installation.
|
377 |
-
* Fix: Update system.
|
378 |
-
* Fix: Errors output.
|
379 |
-
* Fix: Plugin's settings under WPMS.
|
380 |
-
* Fix: SpamFireWall update.
|
381 |
-
* Fix: The server change system repaired.
|
382 |
-
* Mod: Cron saving tasks improved.
|
383 |
-
|
384 |
-
= 5.103.1 September 14 2018 =
|
385 |
-
* Fix: Error when saving settings.
|
386 |
-
* Fix: Error when getting key automatically.
|
387 |
-
|
388 |
-
= 5.103 September 13 2018 =
|
389 |
-
* Fix: Gravity Forms response message.
|
390 |
-
* Fix: SpamFireWall redirect to 404 page.
|
391 |
-
* Major anti-spam plugin improvement.
|
392 |
-
* Recombined setting page.
|
393 |
-
* Added error notification.
|
394 |
-
* Mod: S2 Members integration.
|
395 |
-
* Mod: Improved remote calls.
|
396 |
-
|
397 |
-
= 5.102 August 29 2018 =
|
398 |
-
* Fix: Users and comments check.
|
399 |
-
* Fix: Update from 5.70 or previous versions.
|
400 |
-
* Fix: GDPR public JS-script.
|
401 |
-
* Fix: Dashboard widget JS scripts attachment.
|
402 |
-
* Fix: WooCommerce "Place order" action.
|
403 |
-
* Mod: Notification logic altered.
|
404 |
-
* Mod: Users check table now has 'Signed up' column.
|
405 |
-
* Minor fixes.
|
406 |
-
|
407 |
-
= 5.101 August 10 2018 =
|
408 |
-
* Fix: Set cookie only for non-dashboard pages.
|
409 |
-
* Fix: Dashboard widget JS error.
|
410 |
-
* Fix: JavaScript error for some environment.
|
411 |
-
* Mod: Antispam protection accelerated for some pages.
|
412 |
-
|
413 |
-
= 5.100 July 30 2018 =
|
414 |
-
* Fix: JavaScript dependencies.
|
415 |
-
|
416 |
-
= 5.99.1 July 17 2018 =
|
417 |
-
* IP detection fixed and improved.
|
418 |
-
|
419 |
-
= 5.99 July 10 2018 =
|
420 |
-
* Fix: WooCommerce false positives.
|
421 |
-
* Fix: SpamFireWall IP detection.
|
422 |
-
* Minor fixes.
|
423 |
-
|
424 |
-
= 5.98 June 27 2018 =
|
425 |
-
* Fix: WooCommerce: Theme exclusion.
|
426 |
-
* Fix: Public GDPR JS code.
|
427 |
-
* Minor fixes.
|
428 |
-
|
429 |
-
= 5.97 June 7 2018 =
|
430 |
-
* Fix: Update system.
|
431 |
-
* Fix: Feedback from public page (admin only).
|
432 |
-
* Fix: Users and comment check: API error.
|
433 |
-
* Fix: Too many negative reports. (Too big ct_data option)
|
434 |
-
* Fix: SpamFireWall: Infinite redirection on the blocking page.
|
435 |
-
* Minor fixes.
|
436 |
-
|
437 |
-
= 5.96 May 22 2018 =
|
438 |
-
* Fix: Update system.
|
439 |
-
* Mod: Reset all counters button in admin bar.
|
440 |
-
* Mod: GDPR compliance.
|
441 |
-
* Minor fixes.
|
442 |
-
|
443 |
-
= 5.95.1 May 3 2018 =
|
444 |
-
* Fix: "Get key automatically" button display logic.
|
445 |
-
* Fix: PHP notices.
|
446 |
-
|
447 |
-
= 5.95 May 2 2018 =
|
448 |
-
* Spam filtration improved.
|
449 |
-
* Fix: Public widget layout.
|
450 |
-
* Fix: Connection reports output.
|
451 |
-
* Minor fixes.
|
452 |
-
|
453 |
-
= 5.94 April 23 2018 =
|
454 |
-
* Mod: Async load option for JS.
|
455 |
-
* Mod: JS scripts loading is conditional.
|
456 |
-
* Fix: IP detection.
|
457 |
-
* Fix: IP detection.
|
458 |
-
* Fix: Javascript error.
|
459 |
-
|
460 |
-
= 5.93.1 April 9 2018 =
|
461 |
-
* Fix: Fatal error on PHP 5.5 or lower.
|
462 |
-
|
463 |
-
= 5.93 April 9 2018 =
|
464 |
-
* Fix: Spam FireWall IP detection.
|
465 |
-
* Fix: Contact Form 7. False positives.
|
466 |
-
* Mod: Autoupdate function improved.
|
467 |
-
* Minor fixes.
|
468 |
-
|
469 |
-
= 5.92.2 March 23 2018 =
|
470 |
-
* Fix: Error if cURL extension is disabled.
|
471 |
-
|
472 |
-
= 5.92.1 March 23 2018 =
|
473 |
-
* Fix: Spelling
|
474 |
-
* Fix: Fatal error if cURL extension is disabled.
|
475 |
-
|
476 |
-
= 5.92 March 22 2018 =
|
477 |
-
* IP detection improved.
|
478 |
-
* Fix: SSL connection.
|
479 |
-
* Fix: False positives spam detection in Contact Form 7.
|
480 |
-
* Minor fixes.
|
481 |
-
|
482 |
-
= 5.91 March 15 2018 =
|
483 |
-
* Fix: Errors for PHP compiled without XML support.
|
484 |
-
* Fix: Spelling and translation.
|
485 |
-
* Stability increased.
|
486 |
-
* Minor fixes.
|
487 |
-
|
488 |
-
= 5.90 March 7 2018 =
|
489 |
-
* Improvement: Better IP recognition in Spam FireWall.
|
490 |
-
* Fix: Gravity Froms blocking message.
|
491 |
-
* Security improvments.
|
492 |
-
* Minor fixes.
|
493 |
-
|
494 |
-
= 5.89 February 21 2018 =
|
495 |
-
* Improved spam filtration quality.
|
496 |
-
* Improved compatibility.
|
497 |
-
* Public widget: Styles and referral link added.
|
498 |
-
* Dashboard widget: revised and fixed.
|
499 |
-
* Minor fixes.
|
500 |
-
|
501 |
-
= 5.88 February 12 2018 =
|
502 |
-
* Integration: ConvertPro.
|
503 |
-
* Improvement: Search for visitor's names in request.
|
504 |
-
* Fix: Contact Form 7 message recognition.
|
505 |
-
* Preparation for the remote plugin update.
|
506 |
-
* Minor fixes.
|
507 |
-
|
508 |
-
= 5.87 February 2 2018 =
|
509 |
-
* Filtration quality improved.
|
510 |
-
* Fix: WP Foto Vote downloading images.
|
511 |
-
* Fix: Fatal error for unsupported PHP 5.2.
|
512 |
-
* Fix: Formidable Forms improved spam filtration.
|
513 |
-
|
514 |
-
= 5.86 January 25 2018 =
|
515 |
-
* Fix: High CPU load with wp-ajax.php.
|
516 |
-
* Fix: Mailpoet: Newsletter.
|
517 |
-
* Fix: Gravity: Forms standardization for input fields.
|
518 |
-
* Fix: ajax hook checks data for contact form.
|
519 |
-
* Fix: UTF8 character in requests.
|
520 |
-
|
521 |
-
= 5.85 January 11 2018 =
|
522 |
-
* Fix: Fast Secure contact form spam block message.
|
523 |
-
* Fix: IP license status.
|
524 |
-
* Layout: Dashboard widget description altered.
|
525 |
-
|
526 |
-
= 5.84 December 26 2017 =
|
527 |
-
* Integration: PeepSo contact form
|
528 |
-
* Repared: Feedback from comments page.
|
529 |
-
* Fix: mb_* functions used only if exists.
|
530 |
-
* Fix: Gravity forms: Multi-page form logic repared.
|
531 |
-
* Fix: Gravity forms: AJAX form logic repared.
|
532 |
-
* Minor fixes.
|
533 |
-
|
534 |
-
= 5.83.2 December 19 2017 =
|
535 |
-
* Fix: Error in base class.
|
536 |
-
|
537 |
-
= 5.83.1 December 19 2017 =
|
538 |
-
* Fix: CDN IP detection.
|
539 |
-
|
540 |
-
= 5.83 December 19 2017 =
|
541 |
-
* Improving: Stability and compatibility.
|
542 |
-
* Improving: Spam protection.
|
543 |
-
* Fix: Comments logic filtration.
|
544 |
-
* Fix: Admin bar counter.
|
545 |
-
* Minor errors fixes.
|
546 |
-
|
547 |
-
= 5.82.1 December 7 2017 =
|
548 |
-
* Fixed minor error with attaching JS and CSS files.
|
549 |
-
|
550 |
-
= 5.82 December 4 2017 =
|
551 |
-
* Plugin doesn't use PHP sessions anymore.
|
552 |
-
* Bug fixes.
|
553 |
-
* Improved update logic.
|
554 |
-
|
555 |
-
= 5.81 November 22 2017 =
|
556 |
-
* Fixed error with "Show/Hide key" button.
|
557 |
-
* Slightly improved spam protection for all forms.
|
558 |
-
* Small errors fixes.
|
559 |
-
|
560 |
-
= 5.80 November 3 2017 =
|
561 |
-
* Spam protection improved.
|
562 |
-
* Improved filtration quality for WooCommerce checkout.
|
563 |
-
* Minor fixes for Spam FireWall.
|
564 |
-
|
565 |
-
= 5.79 October 26 2017 =
|
566 |
-
* Spam protection improved.
|
567 |
-
* Fixed issue with existing spam comments check.
|
568 |
-
* Added posibility to exclude IP from check.
|
569 |
-
* Minor fixes.
|
570 |
-
|
571 |
-
= 5.78 October 16 2017 =
|
572 |
-
* Improved compatibility with themes. Changed core functions prefix.
|
573 |
-
* Fixed issue with WooCommerce checkout.
|
574 |
-
* Spam protection improved.
|
575 |
-
* Minor fixes.
|
576 |
-
|
577 |
-
= 5.77 October 2 2017 =
|
578 |
-
* Connection report's system.
|
579 |
-
* Integration for CouponXXL Theme.
|
580 |
-
* Fixed issue with mb_* functions.
|
581 |
-
* Banners logic updated.
|
582 |
-
|
583 |
-
= 5.76 September 20 2017 =
|
584 |
-
* Fixed issue with Spam FireWall and caching plugins.
|
585 |
-
* Banners logic updated.
|
586 |
-
|
587 |
-
= 5.75 September 15 2017 =
|
588 |
-
* Pause feature for users/comments spam check.
|
589 |
-
* Improved protection from spam.
|
590 |
-
* Small fixes.
|
591 |
-
|
592 |
-
= 5.74.2 September 2 2017 =
|
593 |
-
* Fix for users spam check for PHP 5.3 and lower.
|
594 |
-
|
595 |
-
= 5.74.1 September 2 2017 =
|
596 |
-
* Fix for the update system and cloud communication.
|
597 |
-
* Added possibility to check users and comments for spam with a specific date range.
|
598 |
-
|
599 |
-
= 5.74 August 31 2017 =
|
600 |
-
* Users and comments spam check: Two check types (fast and accurate).
|
601 |
-
* Fix for WooCommerce checkout test.
|
602 |
-
* Minor fixes.
|
603 |
-
|
604 |
-
= 5.73 August 11 2017 =
|
605 |
-
* Fix for spam check for already existed users and comments.
|
606 |
-
* Spam FireWall updated.
|
607 |
-
* Layout fix for BT Comments.
|
608 |
-
* Minor fixes.
|
609 |
-
|
610 |
-
= 5.72 July 27 2017 =
|
611 |
-
* Improved spam check for existed users and comments.
|
612 |
-
* Minor fixes.
|
613 |
-
|
614 |
-
= 5.71 July 20 2017 =
|
615 |
-
* Improved spam protection for external forms.
|
616 |
-
* Optimization.
|
617 |
-
* Minor fixes.
|
618 |
-
|
619 |
-
= 5.70.2 July 17 2017 =
|
620 |
-
* Fix for Spam FireWall for Multisite.
|
621 |
-
|
622 |
-
= 5.70.1 July 17 2017 =
|
623 |
-
* Fix for Spam FireWall.
|
624 |
-
* Spam detection improved.
|
625 |
-
|
626 |
-
= 5.70 July 13 2017 =
|
627 |
-
* New updater logic.
|
628 |
-
* Self cron system.
|
629 |
-
* Improved AMP compatibility.
|
630 |
-
* Optimization.
|
631 |
-
* Fixed users and comments spam check.
|
632 |
-
* Fixed layout for Comment's feedback from public page.
|
633 |
-
* Updated Spam FireWall.
|
634 |
-
* SFW: Spam FireWall counter now work in real-time.
|
635 |
-
* SFW: Improved compatibility with different Data Bases.
|
636 |
-
|
637 |
-
= 5.69 July 3 2017 =
|
638 |
-
* Reviewer - integration.
|
639 |
-
* Optimization for Users and Comments check for big databases.
|
640 |
-
* Errors fixes.
|
641 |
-
* Improved protection from spam.
|
642 |
-
|
643 |
-
= 5.68 June 22 2017 =
|
644 |
-
* Contact Form for WordPress - Ultimate Form Builder Lite - integration.
|
645 |
-
* Contact Bank - Contact Forms Builder - integration.
|
646 |
-
* Smart Forms - integration.
|
647 |
-
* cformsII - integration.
|
648 |
-
* Contact Form by Web-Settler - integration.
|
649 |
-
* Error fixes.
|
650 |
-
|
651 |
-
= 5.67.3 June 9 2017 =
|
652 |
-
* Fixed JS attachment error.
|
653 |
-
|
654 |
-
= 5.67.2 June 5 2017 =
|
655 |
-
* Fixed error with IP determination.
|
656 |
-
|
657 |
-
= 5.67.1 June 4 2017 =
|
658 |
-
* Fixed JS error in 5.67 version.
|
659 |
-
* Integrations: Enfold theme, Convertplug.
|
660 |
-
* Links to check for Emails/IP for spam.
|
661 |
-
* Control comments and feedback about them from public post's page.
|
662 |
-
* Improved connection stability with cloud service.
|
663 |
-
* Spam protection improved.
|
664 |
-
* Other small fixes.
|
665 |
-
|
666 |
-
= 5.67 June 1 2017 =
|
667 |
-
* Integrations: Enfold theme, Convertplug.
|
668 |
-
* Links to check for Emails/IP for spam.
|
669 |
-
* Control comments and feedback about them from public post's page.
|
670 |
-
* Improved connection stability with cloud service.
|
671 |
-
* Spam protection improved.
|
672 |
-
* Other small fixes.
|
673 |
-
|
674 |
-
= 5.66 May 23 2017 =
|
675 |
-
* Spam protection improved.
|
676 |
-
* Major fixes for users and comments spam check.
|
677 |
-
* Added feedback from Wordpress comments list.
|
678 |
-
* Fix for "internal forms check" option.
|
679 |
-
* Fixed issue with caching Spam FireWall die page.
|
680 |
-
* Other small fixes.
|
681 |
-
|
682 |
-
= 5.65 May 16 2017 =
|
683 |
-
* Fix for PayPal redirecton.
|
684 |
-
* Fixed issue with empty query for bulk comments test.
|
685 |
-
* Added protection for Enfold contact form.
|
686 |
-
* Ninja forms integration.
|
687 |
-
|
688 |
-
= 5.64 April 26 2017 =
|
689 |
-
* Integration for Facebook registrations.
|
690 |
-
* Small fixes for WPMS.
|
691 |
-
* Fix for Activecampaign service.
|
692 |
-
* Fix for check spam users.
|
693 |
-
* Fixed rare notice Notice: Undefined index: REQUEST_URI
|
694 |
-
|
695 |
-
= 5.63 April 20 2017 =
|
696 |
-
* Fix for the dashboard spam stat widget.
|
697 |
-
* Added translation posibility for all text.
|
698 |
-
|
699 |
-
= 5.62 April 17 2017 =
|
700 |
-
* Fix for the dashboard spam statistics widget.
|
701 |
-
* Fix for users spam check.
|
702 |
-
* Small appearance changes.
|
703 |
-
|
704 |
-
= 5.61 April 6 2017 =
|
705 |
-
* Improved filtration.
|
706 |
-
* Additional logic for the form recognizing.
|
707 |
-
* Integration: Divi Theme Contact Form.
|
708 |
-
* Fix: Gravity Forms multipages forms.
|
709 |
-
* Stat Widget: Minor fixes.
|
710 |
-
* Added possibility to download results of the users check in CSV format.
|
711 |
-
* Alteration for settings page (footer).
|
712 |
-
|
713 |
-
= 5.60.1 March 29 2017 =
|
714 |
-
* Fixed error function 'locale_get_display_region' no exists.
|
715 |
-
|
716 |
-
= 5.60 March 29 2017 =
|
717 |
-
* Added main dashboard widget with spam sctivity stats.
|
718 |
-
* Mailster - integration.
|
719 |
-
* Base class updated.
|
720 |
-
|
721 |
-
= 5.59 March 24 2017 =
|
722 |
-
* Users/comments check fix.
|
723 |
-
* Plugin's name changed to Anti-Spam by CleanTalk.
|
724 |
-
* Trial banner is dismissable. Disapear for 24h or till logout.
|
725 |
-
* Settings modified (Auto testing failed warning).
|
726 |
-
* Mailing(inactive key) interval increased to 6 hours.
|
727 |
-
|
728 |
-
= 5.58.6 March 16 2017 =
|
729 |
-
* Fix for Ninja forms (protection updated).
|
730 |
-
* Fix for QA Theme.
|
731 |
-
* Fix for RSVP form.
|
732 |
-
* Setting changes (Spam FireWall).
|
733 |
-
* Improved debug section.
|
734 |
-
* Improved gathering data function.
|
735 |
-
* Minor fixes.
|
736 |
-
|
737 |
-
= 5.58.5 March 6 2017 =
|
738 |
-
* Minor backend fix.
|
739 |
-
|
740 |
-
= 5.58.4 March 6 2017 =
|
741 |
-
* Users check fix (redirect after the check).
|
742 |
-
* Fixed PHP Notice "HTTP_REFERER" is unset.
|
743 |
-
* Updated Notice logic.
|
744 |
-
|
745 |
-
= 5.58.3 February 28 2017 =
|
746 |
-
* Bitrix24 Contact form integration.
|
747 |
-
* Users/comments check fix.
|
748 |
-
* Spam sorting updated.
|
749 |
-
* Banner showing logic.
|
750 |
-
|
751 |
-
= 5.58.2 February 17 2017 =
|
752 |
-
* Cron fix for daily report.
|
753 |
-
|
754 |
-
= 5.58.1 February 16 2017 =
|
755 |
-
* Minor fixes.
|
756 |
-
|
757 |
-
= 5.58 February 15 2017 =
|
758 |
-
* Work without access key
|
759 |
-
* Bitrix24 contact integration
|
760 |
-
* Issues fixes
|
761 |
-
|
762 |
-
= 5.57.1 February 8 2017 =
|
763 |
-
* Fix for notice logic.
|
764 |
-
|
765 |
-
= 5.57 February 8 2017 =
|
766 |
-
* Setting page changes.
|
767 |
-
* Bug fixes for WooCommerce.
|
768 |
-
* Spam FireWall filters only GET requests.
|
769 |
-
* Optimization.
|
770 |
-
* Minor and major fixes.
|
771 |
-
|
772 |
-
= 5.56.1 January 25 2017 =
|
773 |
-
* Minor fixes
|
774 |
-
|
775 |
-
= 5.56 January 19 2017 =
|
776 |
-
* Integrations: MailChimp Premium, Profile Press.
|
777 |
-
* Changes comments flow.
|
778 |
-
* FireWall updater fix.
|
779 |
-
* Users check optimization.
|
780 |
-
|
781 |
-
= 5.55 December 23 2016 =
|
782 |
-
* Integrations: Caldera Forms, Visual Form Builder.
|
783 |
-
* Fix for different 'cookies' header names.
|
784 |
-
* Fixed user deletion.
|
785 |
-
|
786 |
-
= 5.54 December 12 2016 =
|
787 |
-
* Integrations: AmoForms, Contact Form Clean and Simple.
|
788 |
-
* Comments check logic refreshed.
|
789 |
-
* Registration JS error fix.
|
790 |
-
* Users check fix.
|
791 |
-
* Fix for translation system.
|
792 |
-
* Minor fixes.
|
793 |
-
|
794 |
-
= 5.53.1 December 9 2016 =
|
795 |
-
* Minor layout fixes.
|
796 |
-
|
797 |
-
= 5.53 November 28 2016 =
|
798 |
-
* Addition warning before deleting users.
|
799 |
-
* Spam FireWall is enabled by default.
|
800 |
-
* Usernoise modal feedback / contact form : integration.
|
801 |
-
* Translations.
|
802 |
-
* Optimization.
|
803 |
-
* Fixes.
|
804 |
-
|
805 |
-
= 5.52.1 November 14 2016 =
|
806 |
-
* Users and comments check: Using new API method.
|
807 |
-
* Quick Contact From: Integration via "Custom Contact Forms" setting.
|
808 |
-
* JavaScript filtration improved.
|
809 |
-
* Translation changes.
|
810 |
-
* Optimized JavaScript code.
|
811 |
-
|
812 |
-
= 5.51 November 2 2016 =
|
813 |
-
* Added protection for internal forms
|
814 |
-
* Immediate spam check for comments and users from WP dashboard
|
815 |
-
* Optimized code
|
816 |
-
|
817 |
-
= 5.50.1 October 24 2016 =
|
818 |
-
* Improved filtration in contact forms.
|
819 |
-
* Spam FireWall: Fixed issue with SFW logs
|
820 |
-
* Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
|
821 |
-
|
822 |
-
= 5.50 October 20 2016 =
|
823 |
-
* Custom contact forms: integration.
|
824 |
-
* Pirate Forms: integration.
|
825 |
-
* PHP 7 compatibility: Deleted third-party JSON library and dependences.
|
826 |
-
* PHP 7 compatibility: Fixed end of lines.
|
827 |
-
* YOAST Seo: Fixed PHP warnings.
|
828 |
-
* Spam FireWall: Minor fix for Spam FireWall counter.
|
829 |
-
* Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
|
830 |
-
* Improved filtration in contact forms.
|
831 |
-
|
832 |
-
= 5.49.2 October 5 2016 =
|
833 |
-
* Second Fix for database error. Stable version.
|
834 |
-
|
835 |
-
= 5.49.1 October 5 2016 =
|
836 |
-
* Fixed database error.
|
837 |
-
|
838 |
-
= 5.49 October 3 2016 =
|
839 |
-
* Spam FireWall feature: Class upgraded.
|
840 |
-
* New feature: Delete links from approved comments.
|
841 |
-
* Settings: Grouped.
|
842 |
-
* Settings: Altered description fixed spelling mistakes.
|
843 |
-
* Settings: Added indicator for Spam FireWall.
|
844 |
-
* Admin bar: Added Spam FireWall counter
|
845 |
-
* Clean and Simple Contact Form: Direct integration.
|
846 |
-
* WooCommerce: Don't check password recovery form.
|
847 |
-
* WooCommerce Wishlists: Issue with check for Google bots.
|
848 |
-
* JetPack: contact form fix.
|
849 |
-
* Fixed and created the defaults for all CleanTalk options.
|
850 |
-
* Fixed spelling mistakes.
|
851 |
-
|
852 |
-
= 5.48 September 15 2016 =
|
853 |
-
* buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
|
854 |
-
* buddyPress: Added option in settings for private messages check.
|
855 |
-
* WooCommerce Wishlist: Added check for wishlists.
|
856 |
-
* Fixed issue with "check all post data" option.
|
857 |
-
* Improved filtering for Gravity Forms
|
858 |
-
* Mobile Assistant Connector fix
|
859 |
-
* Minor fixes.
|
860 |
-
|
861 |
-
= 5.47 September 5 2016 =
|
862 |
-
* WooCommerce: direct integration for checkout form.
|
863 |
-
* WooCommerce Sensei: login form fix.
|
864 |
-
* bbPress: Added the check for topics and comments with stop_words
|
865 |
-
* bbPress: Skip check for admin in comments and topics
|
866 |
-
* UserPro: fixes. Request without field "shortcode"
|
867 |
-
* Contact Form 7: Bug fix.
|
868 |
-
* Spam FireWall: Optimized logs rotation.
|
869 |
-
* Updated inner functions (compatibility fix for PHP 5.4+)
|
870 |
-
* Fixed output of counters (without spamfirewall stats)
|
871 |
-
* Fixed spelling in settings
|
872 |
-
* Added "Delete from the list" button in comments spam check page
|
873 |
-
* Minor fixes.
|
874 |
-
|
875 |
-
= 5.46 August 17 2016 =
|
876 |
-
* Fixed issue with admin bar links in WP Multi Network mode.
|
877 |
-
* Added "All time counter" and "Daily counter" into admin bar.
|
878 |
-
* Added settings to disable counters in admin bar.
|
879 |
-
* New style for "Get access key manually" button.
|
880 |
-
|
881 |
-
= 5.45.2 August 4 2016 =
|
882 |
-
* Added Anti-Spam protection for Quick Event Manager.
|
883 |
-
* Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more than 30 days ago.
|
884 |
-
* Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
|
885 |
-
* Minor fix function to get the API key.
|
886 |
-
|
887 |
-
= 5.45.1 July 26 2016 =
|
888 |
-
* Fixed issue with missed spam messages, subscriptions.
|
889 |
-
* Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more than 30 days ago.
|
890 |
-
|
891 |
-
= 5.45 July 21 2016 =
|
892 |
-
* Optimized bulk spam comments deletion.
|
893 |
-
* Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
|
894 |
-
* Added links to bulk spam comments&users removal tool.
|
895 |
-
|
896 |
-
= 5.44.1 July 13 2016 =
|
897 |
-
* Optimized options getting code.
|
898 |
-
* Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
|
899 |
-
|
900 |
-
= 5.43.2 June 30 2016 =
|
901 |
-
* Optimized anti-spam code for AJAX based contact forms.
|
902 |
-
* Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
|
903 |
-
|
904 |
-
= 5.43.1 June 23 2016 =
|
905 |
-
* Added agent version in requests to test a connection between the website and servers.
|
906 |
-
* Fixed issue with PHP notices in cleantalk-admin.php.
|
907 |
-
|
908 |
-
= 5.43 June 22 2016 =
|
909 |
-
* Added spam protection for registrations via 'Login with AJAX' plug-in.
|
910 |
-
* Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
|
911 |
-
* Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
|
912 |
-
* Fixed issue with spam protection for nested forms by Formidable plug-in.
|
913 |
-
|
914 |
-
= 5.42 2016-06-15 =
|
915 |
-
* Added anti-spam protection for UserPro.
|
916 |
-
* Improved protection for Formidable forms + Varnish.
|
917 |
-
* Improved bulk search for spam accounts.
|
918 |
-
* Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
|
919 |
-
* Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
|
920 |
-
* Minor fixes in plugin backend.
|
921 |
-
|
922 |
-
= 5.41 2016-05-31 =
|
923 |
-
* Added HTTP response in plugin response if an network issue was happend.
|
924 |
-
* Optimized JavaScript anti-spam test for Formidable forms.
|
925 |
-
* Re-stored the option to auto redirect to plugn settings after plugin activation.
|
926 |
-
* Updated Spanish, Russian translations.
|
927 |
-
* Fixed issue with nasted fields in Formidable forms.
|
928 |
-
|
929 |
-
= 5.40.3 2016-05-26 =
|
930 |
-
* Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
|
931 |
-
* Added JSON encoding for AJAX forms.
|
932 |
-
* Obfuscated private data for Custom contact forms option.
|
933 |
-
* Optimized bulk users check for spam over blacklists database.
|
934 |
-
* Fixed issue with lost connection to servers and JavaScript anti-spam test.
|
935 |
-
* Fixed issue with WordFence and collect_details.
|
936 |
-
|
937 |
-
= 5.40.2 2016-05-11 =
|
938 |
-
* Improved account status check logic.
|
939 |
-
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
940 |
-
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
941 |
-
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
942 |
-
|
943 |
-
= 5.40.1 2016-04-28 =
|
944 |
-
* Fixed issue with Super Socializer.
|
945 |
-
* Fixed issue with spam filtration for logged in users and Formidable forms.
|
946 |
-
* Added logging of all submitted fields for FastSecure contact form.
|
947 |
-
|
948 |
-
= 5.40 2016-04-19 =
|
949 |
-
* Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
|
950 |
-
* Minor fix in plugin settings.
|
951 |
-
* Fixed pagination for bulk users spam test.
|
952 |
-
* Fixed issue with unknown _SESSION.
|
953 |
-
* Fixed issue with double Spam FireWall database upload.
|
954 |
-
|
955 |
-
= 5.39.1 2016-04-04 =
|
956 |
-
* Improved AJAX based anti-spam test with HTTPS backends.
|
957 |
-
* Added fix to avoid issue with empty ct_info_flag on JavaScript side.
|
958 |
-
* Added logic to exclude caching for Spam FireWall.
|
959 |
-
* Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
|
960 |
-
|
961 |
-
= 5.38.1 2016-03-24 =
|
962 |
-
* Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
|
963 |
-
* Removed Spam FireWall protection on /feed page.
|
964 |
-
* Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
|
965 |
-
* Added reject notice for spam submissions on Gravity forms with AJAX calls.
|
966 |
-
|
967 |
-
= 5.37.3 2016-03-10 =
|
968 |
-
* Fixed bug with broken MailPoet previews.
|
969 |
-
* Fixed bug with broken Geo My WP pop-up windows.
|
970 |
-
* Fixed issue with mb_convert_encoding() function.
|
971 |
-
* Removed double JavaScript code in front-end.
|
972 |
-
* Removed unused variables in anti spam logic.
|
973 |
-
* Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms.
|
974 |
-
* Added anti-spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
|
975 |
-
|
976 |
-
= 5.36.1 2016-02-05 =
|
977 |
-
* Fixed bug, when users receive error after logging in
|
978 |
-
* Improve anti-spam filters for contact forms.
|
979 |
-
|
980 |
-
= 5.36 2016-02-04 =
|
981 |
-
* Improved JavaScript anti spam protection
|
982 |
-
* Improvements for avoiding blocking requests from payment systems
|
983 |
-
|
984 |
-
= 5.35 2016-01-14 =
|
985 |
-
* Added support for IP licensing
|
986 |
-
* Some anti-spam protection improvements
|
987 |
-
* Small backend interface fixes
|
988 |
-
|
989 |
-
= 5.34.1 2015-12-17 =
|
990 |
-
* Fixed trackback antispam protection: improved checking mechanism
|
991 |
-
* Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
|
992 |
-
|
993 |
-
= 5.34 2015-12-10 =
|
994 |
-
* Improved spam checking mechanism
|
995 |
-
* Added "Collect browser details" option for better antispam protection
|
996 |
-
* Fixed custom contact forms checking for AJAX requests
|
997 |
-
* Minor translations fixes
|
998 |
-
|
999 |
-
= 5.33.1 2015-12-04 =
|
1000 |
-
* Fixed issue with BBPress: restored old user permission checking mechanism
|
1001 |
-
* Fixed anti-spam comments checking: sometimes get_comments returned wrong comments number
|
1002 |
-
* Fixed bulk checking: made numeric indexes in users and comments arrays
|
1003 |
-
* Fixed trackback and pingback checking: removed exception for checking
|
1004 |
-
|
1005 |
-
= 5.33 2015-12-01 =
|
1006 |
-
* Backend interface fixes
|
1007 |
-
* Improved Spam FireWall efficiency
|
1008 |
-
* Improved performance of anti spam checking
|
1009 |
-
|
1010 |
-
= 5.32 2015-11-26 =
|
1011 |
-
* Added improvements for manual spam detection
|
1012 |
-
* Fixed errors in backend
|
1013 |
-
* Fixed bulk users anti spam checking
|
1014 |
-
* Added indicator for bulk spam checking
|
1015 |
-
* Added "Get access key automatically" button
|
1016 |
-
|
1017 |
-
= 5.31 2015-11-11 =
|
1018 |
-
* Improved backend performance
|
1019 |
-
* Fixed counter of approved/blocked spam attacks
|
1020 |
-
* Fixed Spam FireWall logging
|
1021 |
-
|
1022 |
-
= 5.30 2015-11-05 =
|
1023 |
-
* Improved anti-spam checking
|
1024 |
-
* Optimized performance
|
1025 |
-
* Fixed blocking email preview in MailPoet
|
1026 |
-
* Interface fixes
|
1027 |
-
* WPMU interface fixes
|
1028 |
-
|
1029 |
-
= 5.29 2015-10-27 =
|
1030 |
-
* Optimized performance
|
1031 |
-
* Fixed bugs in custom contact forms spam checking
|
1032 |
-
|
1033 |
-
= 5.28.7 2015-10-23 =
|
1034 |
-
* Optimized PHP sessions creation algorithm. This fix should increase plugin perfomance on hostings without retenion of PHP sessions files.
|
1035 |
-
* Removed autoredirection to plugin settings after plugin activation.
|
1036 |
-
|
1037 |
-
= 5.28 2015-10-16 =
|
1038 |
-
* Fixed errors in anti-spam checking
|
1039 |
-
* Restored options for spam checking registrations and cpmmon contact forms
|
1040 |
-
* Improved spam protection
|
1041 |
-
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
1042 |
-
|
1043 |
-
= 5.27 2015-10-13 =
|
1044 |
-
* Improvements in SpamFireWall feature
|
1045 |
-
* Code optimization
|
1046 |
-
* Backend interface fixes
|
1047 |
-
|
1048 |
-
= 5.26 2015-10-05 =
|
1049 |
-
* Added WordPress Language Pack support
|
1050 |
-
* Removed spam checking for some autorisation plugins
|
1051 |
-
* New experimental feature: SpamFireWall
|
1052 |
-
|
1053 |
-
= 5.25.2 2015-09-28 =
|
1054 |
-
* Fixed backend bug
|
1055 |
-
|
1056 |
-
= 5.25.1 2015-09-28 =
|
1057 |
-
* Added widget with anti-spam stats
|
1058 |
-
* Added information about blocked spam attacks in admin dashboard and CleanTalk settings
|
1059 |
-
* Added ability not to check comments for users with 3 or above allowed comments
|
1060 |
-
* Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
|
1061 |
-
* Some backend interface settings
|
1062 |
-
|
1063 |
-
= 5.24.1 2015-09-16 =
|
1064 |
-
* Fixed some errors in frontend
|
1065 |
-
* Fixed access key saving
|
1066 |
-
|
1067 |
-
= 5.24 2015-09-14 =
|
1068 |
-
* Backend interface fixes
|
1069 |
-
* Improvement for AJAX JavaScript spam checking
|
1070 |
-
|
1071 |
-
= 5.23 2015-09-01 =
|
1072 |
-
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
1073 |
-
* Some interface fixes of bulk users & comments spam checking
|
1074 |
-
|
1075 |
-
= 5.22 2015-08-26 =
|
1076 |
-
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
1077 |
-
|
1078 |
-
= 5.21 2015-08-21 =
|
1079 |
-
* Fixed bug with skipping spam submissions
|
1080 |
-
* Fixed bug with receiving old user_token for viewing anti-spam stats
|
1081 |
-
* Small backend fixes
|
1082 |
-
|
1083 |
-
= 5.20 2015-08-15 =
|
1084 |
-
* Fixed anti-spam stats in admin bar - now stats updates every hour
|
1085 |
-
* Fixed issue with skipping spam submissions
|
1086 |
-
* Added some PHP-constants for advanced users - CLEANTALK_AJAX_USE_BUFFER and CLEANTALK_AJAX_USE_FOOTER_HEADER can be defined to true or false in wp-config.php to control method, which will be used for injection of AJAX script.
|
1087 |
-
|
1088 |
-
= 5.19 2015-08-11 =
|
1089 |
-
* New feature: anti-spam checking for registered users
|
1090 |
-
* Fixed issue with AJAX JavaScript anti-spam test.
|
1091 |
-
* Fixed issue with SEO Yoast xml sitemaps and JavaScript anti-spam test.
|
1092 |
-
|
1093 |
-
= 5.18 2015-08-04 =
|
1094 |
-
* Fixed issue with user_token
|
1095 |
-
* Added anti-spam API, see our FAQ
|
1096 |
-
|
1097 |
-
= 5.17 2015-07-23 =
|
1098 |
-
* Fixed infinite redirection after activation
|
1099 |
-
* Minor backend fixes
|
1100 |
-
|
1101 |
-
= 5.16 2015-07-22 =
|
1102 |
-
* Fixed external services checking
|
1103 |
-
* Fixed mass comments deletion
|
1104 |
-
* Fixed AJAX anti-spam protection
|
1105 |
-
|
1106 |
-
= 5.15 2015-07-16 =
|
1107 |
-
* New feature: anti-spam protection for forms, that uses external services
|
1108 |
-
|
1109 |
-
= 5.14 2015-07-03 =
|
1110 |
-
* Added anti-spam protection for some themes and plugins
|
1111 |
-
* Some backend fixes
|
1112 |
-
|
1113 |
-
= 5.13 2015-06-12 =
|
1114 |
-
* Closing notification for anti-spam renew
|
1115 |
-
* Fixed bulk anti spam comment checking
|
1116 |
-
|
1117 |
-
= 5.12 2015-06-01 =
|
1118 |
-
* Added option for checking all post data for spam
|
1119 |
-
* Some JavaScript protection improvements
|
1120 |
-
* Added option for old JavaScript check (without AJAX)
|
1121 |
-
|
1122 |
-
= 5.10 2015-05-25 =
|
1123 |
-
* Fixed Javascript error on some forms
|
1124 |
-
|
1125 |
-
= 5.9 2015-05-21 =
|
1126 |
-
* Fixed Javascript error on CF7 and JetPack
|
1127 |
-
* Some backend and frontent fixes
|
1128 |
-
|
1129 |
-
= 5.8 2015-05-18 =
|
1130 |
-
* Minor fixes
|
1131 |
-
|
1132 |
-
= 5.7 2015-05-18 =
|
1133 |
-
* Fixed French translation
|
1134 |
-
* Fixed protection algorithm
|
1135 |
-
|
1136 |
-
= 5.6 2015-05-11 =
|
1137 |
-
* Fixed translation
|
1138 |
-
* Fixed bulk comments anti-spam checking
|
1139 |
-
* Added option for disabling anti spam stats in adminbar
|
1140 |
-
* Some security fixes
|
1141 |
-
|
1142 |
-
= 5.5 2015-04-29 =
|
1143 |
-
* Fixed security issue
|
1144 |
-
* Some interface fixes
|
1145 |
-
|
1146 |
-
= 5.4 2015-04-27 =
|
1147 |
-
* Some interface and functionality changes in plugin settings page
|
1148 |
-
* Added counter for anti-spam stats in admin bar
|
1149 |
-
|
1150 |
-
= 5.3 2015-04-13 =
|
1151 |
-
* Added anti-spam protection for Divi theme contact forms
|
1152 |
-
* Added anti-spam protection for MyMail contact forms
|
1153 |
-
* Added anti-spam protection for MailPoet Newsletters
|
1154 |
-
* Some interface and functionality changes in backend
|
1155 |
-
|
1156 |
-
= 5.2 2015-04-01 =
|
1157 |
-
* Added link for anti-spam stats
|
1158 |
-
* Added WP User Frontend Pro registration form protection
|
1159 |
-
|
1160 |
-
= 5.1 2015-03-24 =
|
1161 |
-
* Fixed site crash after installing 5.0 on some websites
|
1162 |
-
|
1163 |
-
= 5.0 2015-03-24 =
|
1164 |
-
* Added bulk comments checking for spam via CleanTalk blacklists
|
1165 |
-
* Added anti-spam form protection for 'Ajax Login & Register'
|
1166 |
-
* Fixed JetPack form protection
|
1167 |
-
|
1168 |
-
= 4.24 2015-03-20 =
|
1169 |
-
* Added immediate spam protection activation.
|
1170 |
-
|
1171 |
-
= 4.22 2015-03-17 =
|
1172 |
-
* Added button for automatic spam protection key getting.
|
1173 |
-
|
1174 |
-
= 4.21 2015-03-11 =
|
1175 |
-
* Added license renew notification.
|
1176 |
-
|
1177 |
-
= 4.20 2015-03-03 =
|
1178 |
-
* Added German, Italian, Polish, Portuguese translations.
|
1179 |
-
* Minor code fixes.
|
1180 |
-
|
1181 |
-
= 4.19 2015-02-24 =
|
1182 |
-
* Increased keys lifetime for JS spam test.
|
1183 |
-
|
1184 |
-
= 4.18 2015-02-17 =
|
1185 |
-
* Fixed bug with comments approvement - moved ct_unmark_red() to cleantalk-admin.php
|
1186 |
-
* Added PayPal 'payment_status' in skip list.
|
1187 |
-
* Added Akismet 'spam' status processing.
|
1188 |
-
|
1189 |
-
= 4.17 2015-02-12 =
|
1190 |
-
* New base class.
|
1191 |
-
* Divided code to 3 separate files - common, public and admin.
|
1192 |
-
|
1193 |
-
= 4.16 2015-02-05 =
|
1194 |
-
* New base class.
|
1195 |
-
* Fixed JetPack spam filters logics.
|
1196 |
-
* Optimized Formidable, bbPress, BuddyPress spam filters.
|
1197 |
-
|
1198 |
-
= 4.15 2015-01-29 =
|
1199 |
-
* Support spam test for Contact Form 7 versions before 3.0.0.
|
1200 |
-
* Fixed global JS-vars for JS spam test.
|
1201 |
-
* Fixed online notice cookie logics.
|
1202 |
-
* Optimized spam filters for FSCF, WooCommerce, JetPack.
|
1203 |
-
* Optimized option getting.
|
1204 |
-
|
1205 |
-
= 4.14 2015-01-19 =
|
1206 |
-
* Removed deprecated option from comment approvement code.
|
1207 |
-
* New API key URL.
|
1208 |
-
* Trimmed API key in admin panel.
|
1209 |
-
* Added current options to array sended to CleanTalk servers.
|
1210 |
-
= 4.13 2014-12-29 =
|
1211 |
-
* Fixed bug with autimatically aprovement not spam comments. Now this option disabled and do not override local WordPress policy.
|
1212 |
-
|
1213 |
-
= 4.12 2014-12-29 =
|
1214 |
-
* Fixed bug with 'Wrong Access key...' notice in WordPress dashboard.
|
1215 |
-
* Fixed filtration bug in WordPress dashboard login form.
|
1216 |
-
|
1217 |
-
= 4.11 2014-12-22 =
|
1218 |
-
* Improved anti-spam protection for custom contact/registration/subscribe forms.
|
1219 |
-
* Improved anti-spam protection for comments.
|
1220 |
-
* Accelerated plugin speed for comments, regirstrations and contacts.
|
1221 |
-
* Added translation to French.
|
1222 |
-
|
1223 |
-
= 4.10 2014-12-10 =
|
1224 |
-
* Improved anti-spam protection for custom contact/registration/subscribe forms.
|
1225 |
-
* Option 'Custom contact forms' enabled by default for new setups.
|
1226 |
-
* Removed settings "Publish relevant comments", "Use encrypted (SSL) connection".
|
1227 |
-
* Added translation to Danish (thank you for Mikkel at KreativJul.dk).
|
1228 |
-
|
1229 |
-
= 4.9 2014-11-24 =
|
1230 |
-
* Fixed spam test for Contact Form 7.
|
1231 |
-
|
1232 |
-
= 4.8 2014-11-19 =
|
1233 |
-
* Improved anti-spam protection for BuddyPress registrations and custom contact forms.
|
1234 |
-
|
1235 |
-
= 4.7 2014-11-16 =
|
1236 |
-
* Fixed JavaScript spam test for FastSecure contact form.
|
1237 |
-
|
1238 |
-
= 4.6 2014-11-11 =
|
1239 |
-
* Improved anti-spam protection on BuddyPress registrations.
|
1240 |
-
* Improved anti-spam protection on contact forms.
|
1241 |
-
* Removed plugin sign from pending, spam comments. To get details about a comment please use Dashboard at cleantalk.org.
|
1242 |
-
* Improved Access key validation function.
|
1243 |
-
* Added protection for bbPress comments via stop list. Stop list function is a list to reject comments by prefiled words. To fill the list please use Dashboard at cleantalk.org.
|
1244 |
-
|
1245 |
-
= 4.5 2014-11-04 =
|
1246 |
-
* Fixed CF7 JavaScript bug.
|
1247 |
-
* Fixed rejects in bbPress guests comments.
|
1248 |
-
|
1249 |
-
= 4.4 2014-10-29 =
|
1250 |
-
* Improved anti-spam JS test for CF7.
|
1251 |
-
* Fixed 'noscript' text in FaceBook Like preview in Valenti theme.
|
1252 |
-
|
1253 |
-
= 4.2 2014-10-20 =
|
1254 |
-
* Fixed double checks issue for BuddyPress registrations.
|
1255 |
-
* Increased timeout limits to find the work server.
|
1256 |
-
|
1257 |
-
= 4.1 2014-10-13 =
|
1258 |
-
* Optimized code for manual moderation feedback sending.
|
1259 |
-
* Optimized anti-spam algorithms for comments, contacts and signups.
|
1260 |
-
|
1261 |
-
= 4.0 2014-10-06 =
|
1262 |
-
* Improved anti-spam protection for custom contact forms.
|
1263 |
-
* Improved anti-spam protection for registration forms.
|
1264 |
-
|
1265 |
-
= 3.9 2014-10-01 =
|
1266 |
-
* Did exception to do not break to create new user in WordPress backend.
|
1267 |
-
|
1268 |
-
= 3.8 2014-09-19 =
|
1269 |
-
* Fixed json_encode() + malformed characters.
|
1270 |
-
* Fixed JavaScript issue with wpautop().
|
1271 |
-
|
1272 |
-
= 3.6 2014-09-15 =
|
1273 |
-
* Fixed preg_match() issue for Formidable forms and Custom contact forms.
|
1274 |
-
* Improved anti-spam protection for Custom contact forms.
|
1275 |
-
|
1276 |
-
= 3.4 2014-09-04 =
|
1277 |
-
* We've added anti-spam for themes contact forms and any untested contact forms plugins. To use this test enable option "Custom contact forms" in plugin settings.
|
1278 |
-
* We've added auto rotation for spam comments. Now the plugin removes comments in SPAM folder older then 15 days. This option is enabled by default.
|
1279 |
-
|
1280 |
-
= 3.2 2014-08-27 =
|
1281 |
-
* Fixed submit_time() logic for failed submits (comments/registrations). Now form fill time resets after every failed submit.
|
1282 |
-
|
1283 |
-
= 3.1 2014-08-19 =
|
1284 |
-
* Added anti-spam test over senders Cookies.
|
1285 |
-
* Improved form fill anti-spam test.
|
1286 |
-
* Improved speed selection of the nearest server to website.
|
1287 |
-
* Improved anti-spam speed for comments.
|
1288 |
-
* Relevance anti-spam test disabled by default. To enable test should be used option 'relevance_test'.
|
1289 |
-
|
1290 |
-
= 2.58 2014-08-06 =
|
1291 |
-
* Added anti-spam protection for signups posted via WooCommerce order form.
|
1292 |
-
* Improved anti-spam protection for Contact Form 7.
|
1293 |
-
* Improved anti-spam protection for registrations. Now the plugin looking for JavaScript anti spam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
|
1294 |
-
* Updated PHP API. Now the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
|
1295 |
-
|
1296 |
-
= 2.57 2014-07-29 =
|
1297 |
-
* Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
|
1298 |
-
* Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
|
1299 |
-
* Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
|
1300 |
-
|
1301 |
-
= 2.56 2014-07-21 =
|
1302 |
-
* Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
|
1303 |
-
|
1304 |
-
= 2.55 2014-07-11 =
|
1305 |
-
* Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it!' on every page.
|
1306 |
-
|
1307 |
-
= 2.54 2014-07-11 =
|
1308 |
-
* Fixed signup anti-spam protection logic for BuddyPress registrations.
|
1309 |
-
* Fixed anti-spam protection for JetPack contact form.
|
1310 |
-
* Changed account status check logic.
|
1311 |
-
|
1312 |
-
= 2.53 2014-06-27 =
|
1313 |
-
* Fixed anit-spam protection bug for signups.
|
1314 |
-
* Changed anti-spam functions (comments and signups) priority.
|
1315 |
-
|
1316 |
-
= 2.52 2014-06-25 =
|
1317 |
-
* Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
|
1318 |
-
|
1319 |
-
= 2.51 2014-06-23 =
|
1320 |
-
* Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
|
1321 |
-
* Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
|
1322 |
-
* Fixed minor bug with loading backend functions.
|
1323 |
-
|
1324 |
-
= 2.49 2014-06-10 =
|
1325 |
-
* Added spam protection for S2Member Auth.net forms.
|
1326 |
-
* Added spam protection for multisite signup form.
|
1327 |
-
* Optimized account status check function.
|
1328 |
-
|
1329 |
-
= 2.46 2014-05-19 =
|
1330 |
-
* Added: HTML notice about the need to enable JavaScript.
|
1331 |
-
* Fixed: Fixed pingbacks anti-spam test.
|
1332 |
-
|
1333 |
-
= 2.44 2014-05-12 =
|
1334 |
-
* Added: Anti-spam protection for S2Member framework.
|
1335 |
-
* Improved: JavaScript anti-spam test.
|
1336 |
-
* Improved: Plugin load time for backend and frontend.
|
1337 |
-
* Fixed: PHP warning mb_convert_encoding()
|
1338 |
-
|
1339 |
-
= 2.42 2014-04-29 =
|
1340 |
-
* Fixed: JavaScript anti-spam test for comments.
|
1341 |
-
|
1342 |
-
= 2.40 2014-04-25 =
|
1343 |
-
* New: Fast Secure Contact form support.
|
1344 |
-
* New: WordPress Landing Pages support
|
1345 |
-
|
1346 |
-
= 2.38 2014-03-27 =
|
1347 |
-
* Fixed: Registraion form submit time spam test.
|
1348 |
-
|
1349 |
-
= 2.36 2014-03-12 =
|
1350 |
-
* Reversed to patches from old revisions.
|
1351 |
-
|
1352 |
-
= 2.35 2014-03-12 =
|
1353 |
-
* New: Notifications about disabled account
|
1354 |
-
* New: Improved JavaScript spam test.
|
1355 |
-
* Fixed: Code optimization
|
1356 |
-
* Fixed: JavaScript test for signups.
|
1357 |
-
|
1358 |
-
= 2.33 2014-02-12 =
|
1359 |
-
* Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
|
1360 |
-
|
1361 |
-
= 2.32 2014-02-04 =
|
1362 |
-
* New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
|
1363 |
-
* New: At WordPress console added banner for notices.
|
1364 |
-
* Changed: Screenshots updated.
|
1365 |
-
|
1366 |
-
= 2.31 2014-01-24 =
|
1367 |
-
* New: Added spam protection for JetPack comments
|
1368 |
-
* Fixed: cURL connection issue "Expect: 100-continue"
|
1369 |
-
|
1370 |
-
= 2.30 2014-01-13 =
|
1371 |
-
* Changed: Improved servers connection logic.
|
1372 |
-
* Fixed: Antispam test for Fomidable forms.
|
1373 |
-
|
1374 |
-
= 2.28 2013-12-19 =
|
1375 |
-
* New: Added protection against spam bots for WooCommerce review form.
|
1376 |
-
* Fixed: JavaScript anti-spam logic for WooCommerce review form.
|
1377 |
-
|
1378 |
-
= 2.27 2013-12-06 =
|
1379 |
-
* New: Added protection against spam bots for JetPack Contact form.
|
1380 |
-
* Fixed: JavaScript anti-spam logic for registrations and Contact form 7.
|
1381 |
-
|
1382 |
-
= 2.25 2013-11-27 =
|
1383 |
-
* New: Added protection against spam bots for BuddyPress registrations.
|
1384 |
-
* New: Added protection against spam bots for Contact form 7.
|
1385 |
-
* New: Added Spanish (es_ES) translation.
|
1386 |
-
|
1387 |
-
= 2.23 2013-11-20 =
|
1388 |
-
* New: Added automatic training blacklists on spam bot account deletion.
|
1389 |
-
* New: Added URL to project homepage at plugin options.
|
1390 |
-
* Changed: Improved anti-spam logic.
|
1391 |
-
|
1392 |
-
= 2.21 2013-11-13 =
|
1393 |
-
* Changed: WordPress blacklists settings get priority over plugin's anti-spam settings
|
1394 |
-
* Changed: Disabled management approval comments for regular commentators of the blog. Automatically approved for publication only the comments of the new blog authors.
|
1395 |
-
* Changed: Removed form submit time test. Imporved JavaScript spam test.
|
1396 |
-
* Changed: PHP code optimizations
|
1397 |
-
|
1398 |
-
= 2.19 2013-11-08 =
|
1399 |
-
* New: Antispam protection from spam bots at the registration form
|
1400 |
-
* Changed: Russian localization for admin panel
|
1401 |
-
* Changed: PHP code optimizations
|
1402 |
-
|
1403 |
-
= 2.5.18 2013-11-01 =
|
1404 |
-
* Fixed: Bug with selection of the last comments for post
|
1405 |
-
* New: Antispam protection for Formidable feedback forms
|
1406 |
-
* New: Automatic deletion of outdated spam comments
|
1407 |
-
* New: On/Off option for comments spam filtration
|
1408 |
-
* Tested with WordPress 3.7.1
|
1409 |
-
|
1410 |
-
= 2.4.15 2013-09-26 =
|
1411 |
-
* Fixed: Bug with mass comments deletion
|
1412 |
-
* Changed: Russian localization for admin panel
|
1413 |
-
* Tested with mulitsite setup (WordPress network or WPMU)
|
1414 |
-
|
1415 |
-
= 2.4.14 2013-08-29 =
|
1416 |
-
* Changed: Removed feedback requests to the servers for banned (spam) comments.
|
1417 |
-
|
1418 |
-
= 2.4.13 2013-08-19 =
|
1419 |
-
* Changed: Switched HTTP requests from file_get_contents() to CURL. Added file_get_contens() as backup connection to the servers.
|
1420 |
-
* Changed: Removed feedback requests for comments moved to trash.
|
1421 |
-
* Fixed: "Fail connect to servers..." error on hostings with disabled 'allow_url_fopen' PHP option.
|
1422 |
-
|
1423 |
-
= 2.4.12 2013-08-12 =
|
1424 |
-
* Removed RPC::XML library from plugin.
|
1425 |
-
* Switched plugin to HTTP+JSON connection with servers.
|
1426 |
-
* Fixed bug with comments anti-spam tests with non UTF8 codepage.
|
1427 |
-
|
1428 |
-
= 2.4.11 2013-08-02 =
|
1429 |
-
* Removed spam tests for self-made pingbacks
|
1430 |
-
* Tested up to WP 3.6
|
1431 |
-
|
1432 |
-
= 2.4.10 2013-07-24 =
|
1433 |
-
* Fixed warning in PHP 5.4
|
1434 |
-
* Fixed bug with disabling comments test for Administrators, Authors and Editors
|
1435 |
-
* "Stop words" settings moved to <a href="http://cleantalk.org/my">Control panel</a> of the service
|
1436 |
-
* "Response language" settings moved <a href="http://cleantalk.org/my">Control panel</a> of the service
|
1437 |
-
|
1438 |
-
= 2.4.9 =
|
1439 |
-
* Fixed extra debugging in base class
|
1440 |
-
|
1441 |
-
= 2.4.8 =
|
1442 |
-
* Enabled convertion to UTF8 for comment and example text
|
1443 |
-
* Optimized PHP code
|
1444 |
-
|
1445 |
-
= 2.3.8 =
|
1446 |
-
* Enabled selection the fastest server in the pool
|
1447 |
-
* Fixed work server in plugin's config
|
1448 |
-
|
1449 |
-
= 2.2.3 =
|
1450 |
-
* Secured md5 string for JavaScript test
|
1451 |
-
* Added requests's timestamp to calculate request work time
|
1452 |
-
* Update base CleanTalk's PHP class
|
1453 |
-
|
1454 |
-
= 2.1.2 =
|
1455 |
-
* Improved perfomance for processing large comments (over 32kb size)
|
1456 |
-
* Improved perfomance for bulk operations with comments in Comments panel
|
1457 |
-
* Added feedback request with URL to approved comment
|
1458 |
-
|
1459 |
-
= 2.0.2 =
|
1460 |
-
* Fixed bug with JavaScript test and WordPress cache plugins
|
1461 |
-
|
1462 |
-
= 2.0.1 =
|
1463 |
-
* Added option "Publicate relevant comments" to plugin's options.
|
1464 |
-
* Added descriptions to plugin options
|
1465 |
-
|
1466 |
-
= 1.5.4 =
|
1467 |
-
* Fixed HTTP_REFERER transmission to the servers
|
1468 |
-
* Improved JavaScript spam test
|
1469 |
-
* Optimized PHP code
|
1470 |
-
|
1471 |
-
= 1.4.4 =
|
1472 |
-
* Pingback, trackback comments has moved to manual moderataion
|
1473 |
-
* Added transmission to the serves comment type and URL
|
1474 |
-
* Post title, body and comments separated into individual data elements
|
1475 |
-
* Added priority for matched words in the comment with post title
|
1476 |
-
* Enabled stop words filtration as default option
|
1477 |
-
|
1478 |
-
= 1.3.4 =
|
1479 |
-
* Removed PHP debugging.
|
1480 |
-
|
1481 |
-
= 1.3.3 =
|
1482 |
-
* Added notice at admin panel about empty Access key in plugin settings
|
1483 |
-
* Removed HTTP link to the site project from post page
|
1484 |
-
* Removed unused options from settings page
|
1485 |
-
* Tested up to WordPress 3.5
|
1486 |
-
|
1487 |
-
= 1.2.3 =
|
1488 |
-
* Fixed bug with session_start.
|
1489 |
-
|
1490 |
-
= 1.2.2 =
|
1491 |
-
* Plugin rename to CleanTalk. Spam prevent plugin
|
1492 |
-
* Integration Base Class version 0.7
|
1493 |
-
* Added fast submit check
|
1494 |
-
* Added check website in form
|
1495 |
-
* Added feedbacks for change comment status (Not spam, unapprove)
|
1496 |
-
* Added function move comment in spam folder if CleanTalk say is spam
|
1497 |
-
* Disable checking for user groups Administrator, Author, Editor
|
1498 |
-
* Marked red color bad words
|
1499 |
-
|
1500 |
-
= 1.1.2 =
|
1501 |
-
* Addition: Title of the post attached to the example text in auto publication tool.
|
1502 |
-
* Tested with WordPress 3.4.1.
|
1503 |
-
|
1504 |
-
= 1.1.1 =
|
1505 |
-
* HTTP_REFERER bug fixed
|
1506 |
-
|
1507 |
-
= 1.1.1 =
|
1508 |
-
* Added user locale support, tested up to WP 3.4
|
1509 |
-
|
1510 |
-
= 1.1.0 =
|
1511 |
-
* First version
|
1512 |
-
|
1513 |
-
|
1514 |
-
== Upgrade Notice ==
|
1515 |
-
= 5.130 November 14 2019 =
|
1516 |
-
* Fix: JetPack contact form JS check.
|
1517 |
-
* FIx: Iphorm AJAX form.
|
1518 |
-
* Fix: Paid Memberships Pro fix.
|
1519 |
-
* Fix: Divi theme contact form fix.
|
1520 |
-
* Integration: Paid Memberships Pro.
|
1521 |
-
* Integration: Elementor Pro page builder forms.
|
1522 |
-
* Improved: Compatibility with different server.
|
1523 |
-
|
1524 |
-
= 5.129.1 November 5 2019 =
|
1525 |
-
* Fix: WooCommerce order detecting.
|
1526 |
-
|
1527 |
-
= 5.129 October 30 2019 =
|
1528 |
-
* Upd: Localize updated.
|
1529 |
-
* Fix: Direct $_SERVER access replaced.
|
1530 |
-
* Integration: The 7 theme contact form.
|
1531 |
-
* Fix: Minor improvements and bug fixes.
|
1532 |
-
* Mod: Putting site in maintenance mode during plugin update.
|
1533 |
-
|
1534 |
-
= 5.128.1 October 23 2019 =
|
1535 |
-
* Fix: Fatal error when using buffer output.
|
1536 |
-
* Fix: Translate domain for errors.
|
1537 |
-
* Code: Fix spelling in function name.
|
1538 |
-
* Fix: JS disabled error.
|
1539 |
-
* Upd: Comment edit screen updated.
|
1540 |
-
* Fix: Cleantalk\Arr::search() fixed.
|
1541 |
-
|
1542 |
-
= 5.128 October 17 2019 =
|
1543 |
-
* Mod: Users check - functionality updated.
|
1544 |
-
* Fix: Users check - dates format updated.
|
1545 |
-
* Mod: Comments check - functionality updated.
|
1546 |
-
* Fix: Comments check - dates format updated.
|
1547 |
-
* Fix: Fields exclusion fixed.
|
1548 |
-
* Fix: Notice fixed.
|
1549 |
-
* Fix: Cleantalk/Antispam/API.
|
1550 |
-
* Fix: Minor improvements and bug fixes.
|
1551 |
-
|
1552 |
-
= 5.127.4 October 13 2019 =
|
1553 |
-
* Mod: Automatically decrease amount of checked users by one request if an error occurs.
|
1554 |
-
* Fix: Security issue.
|
1555 |
-
* Fix: Static JS key.
|
1556 |
-
|
1557 |
-
= 5.127.3 October 8 2019 =
|
1558 |
-
* Fix: Errors during registration.
|
1559 |
-
|
1560 |
-
= 5.127.2 October 8 2019 =
|
1561 |
-
* Integration: SeedProd Coming Soon Page Pro.
|
1562 |
-
* Fix: WooCommerce double reuqests.
|
1563 |
-
* Fix: Static JS key.
|
1564 |
-
|
1565 |
-
= 5.127.1 October 7 2019 =
|
1566 |
-
* Fix: WPMS settings logic.
|
1567 |
-
* Using default database storage engine for tables.
|
1568 |
-
|
1569 |
-
= 5.127 September 30 2019 =
|
1570 |
-
* Fix: Delete redirect notice on external forms
|
1571 |
-
* Fix: Storing spam for 15 days.
|
1572 |
-
* Fix: correct DiVi display message.
|
1573 |
-
* Integration: Ultimate Members.
|
1574 |
-
* Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
|
1575 |
-
* Mod: Moving White Label option to main site settings.
|
1576 |
-
* New: Use static JS key if cache plugin detected.
|
1577 |
-
* New: Settings for URLs, fields, roles exclusions.
|
1578 |
-
* New: Regular Expressions support in URLs, fields exclusions.
|
1579 |
-
* New: Send validation errors on standard registration form.
|
1580 |
-
* Updater: Move exclusions from global variable to settings.
|
1581 |
-
* Deprecated: IP exclusions.
|
1582 |
-
|
1583 |
-
= 5.126 September 9 2019 =
|
1584 |
-
* Spam protection improved!
|
1585 |
-
* Integration: Option wheel.
|
1586 |
-
* Mod: Improved Email detection.
|
1587 |
-
* Mod: Improved IP detection.
|
1588 |
-
* Fix: Too large database table with alternative sessions.
|
1589 |
-
* Fix: Exception for WooCommerce AJAX.
|
1590 |
-
* Fix: API key validation.
|
1591 |
-
* Minor fixes.
|
1592 |
-
|
1593 |
-
= 5.125 August 26 2019 =
|
1594 |
-
* Fix: PHP Notices.
|
1595 |
-
* Fix: Auto update.
|
1596 |
-
* Fix: Displaying protection status for IP license.
|
1597 |
-
* Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
|
1598 |
-
* Fix: API key validating.
|
1599 |
-
* New: Complete deactivation setting.
|
1600 |
-
|
1601 |
-
= 5.124.1 August 8 2019 =
|
1602 |
-
* Fix: Error on PHP 5.3.
|
1603 |
-
|
1604 |
-
= 5.124 August 8 2019 =
|
1605 |
-
* Spam protection improved.
|
1606 |
-
* Fix: SpamFireWall local database counter on Multisite.
|
1607 |
-
* Fix: Caldera Forms integration.
|
1608 |
-
* Fix: Settings "Use AJAX for JS check" description.
|
1609 |
-
* Fix: Formidable integration.
|
1610 |
-
* New: External forms check now independed from JavaScript.
|
1611 |
-
* New: Setting Protect external - capture buffer.
|
1612 |
-
* New: QuForm integration.
|
1613 |
-
|
1614 |
-
= 5.123 July 25 2019 =
|
1615 |
-
* Fix: Plenty of minor fixes.
|
1616 |
-
* Fix: wpDiscuz integration.
|
1617 |
-
* Fix: Integration with bbPress.
|
1618 |
-
* Fix: New comment email notification.
|
1619 |
-
* New: Follow-Up Emails integration.
|
1620 |
-
* Fix: Woocommerce integration.
|
1621 |
-
* Fix: Spelling.
|
1622 |
-
|
1623 |
-
= 5.122 July 10 2019 =
|
1624 |
-
* Spam Protection improved.
|
1625 |
-
* Fix: Error while checking account status.
|
1626 |
-
* Fix: Conflict with Elementor Pro.
|
1627 |
-
* Fix: Integration with Ninja Forms.
|
1628 |
-
* Fix: Integration with Formidable.
|
1629 |
-
* New: Detecting mobile devices.
|
1630 |
-
* New: Integration for Easy Forms for Mailchimp.
|
1631 |
-
|
1632 |
-
= 5.121 June 26 2019 =
|
1633 |
-
* Fix: Translation typos.
|
1634 |
-
* Fix: Woocommerce integration.
|
1635 |
-
* Fix: Catching admin in AJAX queries.
|
1636 |
-
* Mod: Session table (cleantalk_sessions) issue.
|
1637 |
-
* Mod: Spam protection improved.
|
1638 |
-
* Integration: Wilcity theme custom registration validation enabled
|
1639 |
-
* New: Option "Use static JS key".
|
1640 |
-
|
1641 |
-
= 5.120.2 June 17 2019 =
|
1642 |
-
* Fix: WPForms integration.
|
1643 |
-
* Fix: Translation and spelling.
|
1644 |
-
* Fix: Minor PHP error
|
1645 |
-
|
1646 |
-
= 5.120.1 June 6 2019 =
|
1647 |
-
* Mod: Description for Search form protection.
|
1648 |
-
* Fix: CSS and JS attachment.
|
1649 |
-
* Fix: Undefined index error.
|
1650 |
-
|
1651 |
-
= 5.120 June 5 2019 =
|
1652 |
-
* Fix: bbPress false positives.
|
1653 |
-
* Fix: SpamFireWall check condition.
|
1654 |
-
* Fix: SpamFireWall block page.
|
1655 |
-
* Fix: Catch admin action via search form test.
|
1656 |
-
* Fix: Catch admin action (AJAX).
|
1657 |
-
* Mod: Using minified version of JS and CSS.
|
1658 |
-
* Mod: Date format in statistics.
|
1659 |
-
|
1660 |
-
|
1661 |
-
= 5.119.1 May 30 2019 =
|
1662 |
-
* Fix: Helper class error.
|
1663 |
-
|
1664 |
-
= 5.119 May 30 2019 =
|
1665 |
-
* Fix: No more second request after registration.
|
1666 |
-
* Fix: Activation hook.
|
1667 |
-
* Fix: Alternative sessions. Clear table.
|
1668 |
-
* Fix: Stop capchuring AJAX requests in admin area.
|
1669 |
-
* Fix: Spelling.
|
1670 |
-
* Fix: Registration cookies set.
|
1671 |
-
* Mod: SFW exdtended die page when testing.
|
1672 |
-
* Mod: User-agent modified.
|
1673 |
-
* New: Test search queries for spam.
|
1674 |
-
* New: Gathering and output statistics.
|
1675 |
-
|
1676 |
-
= 5.118.4 May 13 2019 =
|
1677 |
-
* Fix: SFW cookie. Set correct domain for subdomains.
|
1678 |
-
* Fix: SFW update.
|
1679 |
-
* Fix: IP detection.
|
1680 |
-
* Fix: Triggering AJAX check in backend.
|
1681 |
-
* Fix: Zero submit time on few forms.
|
1682 |
-
|
1683 |
-
= 5.118.3 April 29 2019 =
|
1684 |
-
* Fix: Spam statistics in dashboard widget.
|
1685 |
-
* Fix: IP detection.
|
1686 |
-
* Fix: Double check AJAX integrated forms like Ninja Forms.
|
1687 |
-
* Fix: Use url exclusions for AJAX forms.
|
1688 |
-
|
1689 |
-
= 5.118.2 April 25 2019 =
|
1690 |
-
* Mod: Spam filtration quality improved.
|
1691 |
-
* Mod: Store SFW cookie for 30 days.
|
1692 |
-
* Mod: Server IP added to connection report.
|
1693 |
-
* Fix: spam_stat is not defined.
|
1694 |
-
|
1695 |
-
= 5.118.1 April 19 2019 =
|
1696 |
-
* Fix: Fatal error.
|
1697 |
-
* Mod: Spam protection improved on registrations.
|
1698 |
-
|
1699 |
-
= 5.118 April 19 2019 =
|
1700 |
-
* Fix: Cookies on registration page.
|
1701 |
-
* Fix: Update fix.
|
1702 |
-
* Fix: Wordpress built-in API.
|
1703 |
-
* Fix: WooCommerce checkout form.
|
1704 |
-
* Fix: UpdraftPlus. Saving settings.
|
1705 |
-
* Fix: Convert Pro saving settings.
|
1706 |
-
* Fix: UTF-8 Converting.
|
1707 |
-
* Fix: GDPR notice.
|
1708 |
-
* Fix: cleantalk_sessions table size reduced.
|
1709 |
-
* Mod: Localization.
|
1710 |
-
* Mod: Performance improved.
|
1711 |
-
* Mod: SpamFierWall improvments.
|
1712 |
-
* Mod: IP detection improved.
|
1713 |
-
* Mod: JavaScript check rewised.
|
1714 |
-
* New: Setting "Use alternative mechanism for cookies".
|
1715 |
-
|
1716 |
-
= 5.117.1 April 5 2019 =
|
1717 |
-
* Fix: GDPR notice.
|
1718 |
-
* Fix: noCacheJS localization.
|
1719 |
-
* Fix: Fatal error when updating.
|
1720 |
-
|
1721 |
-
= 5.117 March 27 2019 =
|
1722 |
-
* New: Update logic runs on all pages.
|
1723 |
-
* New: Integration for Ajax Contact Forms plugin.
|
1724 |
-
* New: Notification for users groups about new comments.
|
1725 |
-
* New: SFW die page. Show browser and page creation time.
|
1726 |
-
* Fix: Huge bug in Cleantalk.php connected with servers changing.
|
1727 |
-
* Fix: Check AJAX requests for logged in users.
|
1728 |
-
* Fix: Deleting debug in JS.
|
1729 |
-
* Fix: Validating settings before saving.
|
1730 |
-
|
1731 |
-
= 5.116.3 March 14 2019 =
|
1732 |
-
* Fix: "Headers already sent" error.
|
1733 |
-
* Fix: Images paths.
|
1734 |
-
* Fix: IP detection.
|
1735 |
-
* Fix: Skip lost password form check
|
1736 |
-
* Fix: Skip mobile requests (push settings)
|
1737 |
-
* Fix: PHP notice when detecting BuddyPress template.
|
1738 |
-
|
1739 |
-
= 5.116.2 March 7 2019 =
|
1740 |
-
* Fix: Creating tables in MariaDB.
|
1741 |
-
|
1742 |
-
= 5.116.1 March 6 2019 =
|
1743 |
-
* Fix: Creating tables in DB.
|
1744 |
-
* Fix: PHP Warning in spam statistics widget.
|
1745 |
-
|
1746 |
-
= 5.116 March 6 2019 =
|
1747 |
-
* Spam filtration quality improved.
|
1748 |
-
* New: Storing visited URLs.
|
1749 |
-
* New: Check before validation Contact Form 7, Comments, Jetpack comments.
|
1750 |
-
* New: Get validation result for Contact Form 7, Comments, Jetpack comments.
|
1751 |
-
* Fix: ES add subscriber.
|
1752 |
-
* Fix: IP detection.
|
1753 |
-
|
1754 |
-
= 5.115.2 February 27 2019 =
|
1755 |
-
* Fix: False positives spam detection in WP Forms and Contact Form 7.
|
1756 |
-
|
1757 |
-
= 5.115.1 February 16 2019 =
|
1758 |
-
* Fix: SpamFireWall's false positives.
|
1759 |
-
|
1760 |
-
= 5.115 February 14 2019 =
|
1761 |
-
* Fix: Http_only flag for backend cookies.
|
1762 |
-
* Fix: Spam filtration improved.
|
1763 |
-
* New: IP detection improved.
|
1764 |
-
* Fix: SpamFirewall update speeded up.
|
1765 |
-
* New: False positives with caching solutions decreased.
|
1766 |
-
* New: Opportunity to use Wordpress HTTP API to connect with Cloud.
|
1767 |
-
|
1768 |
-
= 5.114 January 31 2019 =
|
1769 |
-
* New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
|
1770 |
-
* Fix: Formidable: Adding small JS check when adding JS_key.
|
1771 |
-
* Mod: layout of settings page.
|
1772 |
-
* Mod: Banner logic altered.
|
1773 |
-
|
1774 |
-
= 5.113.2 January 18 2019 =
|
1775 |
-
* Fix: "Settings" link returns to plugin page.
|
1776 |
-
|
1777 |
-
= 5.113.1 January 17 2019 =
|
1778 |
-
* Fix: Conflict with CityTours theme.
|
1779 |
-
* Fix: Error for Wordperss lower 4.7.
|
1780 |
-
* Add: Spam protection: "Validate email for existance".
|
1781 |
-
|
1782 |
-
= 5.113 January 16 2019 =
|
1783 |
-
* Fix: Fast and Simple Contact Form.
|
1784 |
-
* Fix: Settings layout.
|
1785 |
-
* Fix: Error with WooCommerce Quickview.
|
1786 |
-
* Fix: Bitrix24 contact form.
|
1787 |
-
* Fix: Request time decreased.
|
1788 |
-
* Fix: Requesting account status when activating for IP licenses.
|
1789 |
-
* Add: Precise AJAX request detection.
|
1790 |
-
* Spam protection improved.
|
1791 |
-
|
1792 |
-
= 5.112 December 21 2018 =
|
1793 |
-
* Fix: Woocommerce AJAX checkout form.
|
1794 |
-
* Fix: Profile Builder Pro.
|
1795 |
-
* Fix: DB structure improvements for WPMS.
|
1796 |
-
* Spam filtering quality improved.
|
1797 |
-
* Minor fixes.
|
1798 |
-
|
1799 |
-
= 5.111 December 13 2018 =
|
1800 |
-
* Fix: Double request in JetPack contact form.
|
1801 |
-
* Fix: Email notification about spam registration.
|
1802 |
-
* Fix: Links button for feedback comments.
|
1803 |
-
* Fix: Mail notification about plugin error.
|
1804 |
-
* Fix: Key field output.
|
1805 |
-
* Minor fixes.
|
1806 |
-
|
1807 |
-
= 5.110 November 29 2018 =
|
1808 |
-
* Integration: BuddyPress ActivityWall spam protection.
|
1809 |
-
* Add: Support different BuddyPress templates on activity wall.
|
1810 |
-
* Fix: Admin/moderator checking for validate post data.
|
1811 |
-
* Add: GDPR setting for shortcode.
|
1812 |
-
* Fix: Increase timeout for spam_check_cms to 15.
|
1813 |
-
|
1814 |
-
= 5.109 November 15 2018 =
|
1815 |
-
* Fix: Added URL and IP exclusions to Contact Form 7.
|
1816 |
-
* Fix: js error when responseText is not exists
|
1817 |
-
* Fix: Sitename when getting key automatically under WPMS.
|
1818 |
-
* Mod: SpamFireWall is now fully compatible with WPMS.
|
1819 |
-
* Mod: Setting 'Tell others about CleanTalk' was deleted.
|
1820 |
-
* Mod: Protection from spam improved.
|
1821 |
-
|
1822 |
-
= 5.108.1 November 8 2018 =
|
1823 |
-
* Fix: Errors with integration class.
|
1824 |
-
|
1825 |
-
= 5.108 November 7 2018 =
|
1826 |
-
* Fix: White label mode.
|
1827 |
-
* Fix: SpamFireWall now can be disabled.
|
1828 |
-
* Fix: Layout.
|
1829 |
-
* Integration: WPForms.
|
1830 |
-
* Add: Message about block for all no integrated AJAX forms.
|
1831 |
-
* Add: Displaying account name near api key.
|
1832 |
-
|
1833 |
-
= 5.107 October 29 2018 =
|
1834 |
-
* Fix: Ninja Forms integration.
|
1835 |
-
* Fix: Cookie usage.
|
1836 |
-
* Add: Capturing AJAX responses from non integrated forms.
|
1837 |
-
* Spam protection improved.
|
1838 |
-
* Minor fixes.
|
1839 |
-
|
1840 |
-
= 5.106 October 11 2018 =
|
1841 |
-
* Spam filtration improved.
|
1842 |
-
* New: White Label mode.
|
1843 |
-
* Modification: Warning message about test on SpamFireWall die page.
|
1844 |
-
* Integration: WP Maintenance Mode.
|
1845 |
-
* Fix: S2Member.
|
1846 |
-
* Fix: JavaScript attachments reconsidered.
|
1847 |
-
* Fix: Admin banners layout.
|
1848 |
-
* Fix: Minor layout fixes.
|
1849 |
-
|
1850 |
-
= 5.105 September 26 2018 =
|
1851 |
-
* Integration: Now bloking spam for QAEngine questions.
|
1852 |
-
* Fix: Async http__request call.
|
1853 |
-
* Fix: Unnecessary get_antispam_report_breif method call.
|
1854 |
-
* Layout: Hide "Do you like Cleantlak?" when key is not ok.
|
1855 |
-
* Layout: Minor fixes.
|
1856 |
-
|
1857 |
-
= 5.104 September 18 2018 =
|
1858 |
-
* Fix: Error when saving settings.
|
1859 |
-
* Fix: Trying update plugin plugin for the first installation.
|
1860 |
-
* Fix: Update system.
|
1861 |
-
* Fix: Errors output.
|
1862 |
-
* Fix: Plugin's settings under WPMS.
|
1863 |
-
* Fix: SpamFireWall update.
|
1864 |
-
* Fix: The server change system repaired.
|
1865 |
-
* Mod: Cron saving tasks improved.
|
1866 |
-
|
1867 |
-
= 5.103.1 September 14 2018 =
|
1868 |
-
* Fix: Error when saving settings.
|
1869 |
-
* Fix: Error when getting key automatically.
|
1870 |
-
|
1871 |
-
= 5.103 September 13 2018 =
|
1872 |
-
* Fix: Gravity Forms response message.
|
1873 |
-
* Fix: SpamFireWall redirect to 404 page.
|
1874 |
-
* Major anti-spam plugin improvement.
|
1875 |
-
* Recombined setting page.
|
1876 |
-
* Added error notification.
|
1877 |
-
* Mod: S2 Members integration.
|
1878 |
-
* Mod: Improved remote calls.
|
1879 |
-
|
1880 |
-
= 5.102 August 29 2018 =
|
1881 |
-
* Fix: Users and comments check.
|
1882 |
-
* Fix: Update from 5.70 or previous versions.
|
1883 |
-
* Fix: GDPR public JS-script.
|
1884 |
-
* Fix: Dashboard widget JS scripts attachment.
|
1885 |
-
* Fix: WooCommerce "Place order" action.
|
1886 |
-
* Mod: Notification logic altered.
|
1887 |
-
* Mod: Users check table now has 'Signed up' column.
|
1888 |
-
* Minor fixes.
|
1889 |
-
|
1890 |
-
= 5.101 August 10 2018 =
|
1891 |
-
* Fix: Set cookie only for non-dashboard pages.
|
1892 |
-
* Fix: Dashboard widget JS error.
|
1893 |
-
* Fix: JavaScript error for some environment.
|
1894 |
-
* Mod: Antispam protection accelerated for some pages.
|
1895 |
-
|
1896 |
-
= 5.100 July 30 2018 =
|
1897 |
-
* Fix: JavaScript dependencies.
|
1898 |
-
|
1899 |
-
= 5.99.1 July 17 2018 =
|
1900 |
-
* IP detection fixed and improved.
|
1901 |
-
|
1902 |
-
= 5.99 July 10 2018 =
|
1903 |
-
* Fix: WooCommerce false positives.
|
1904 |
-
* Fix: SpamFireWall IP detection.
|
1905 |
-
* Minor fixes.
|
1906 |
-
|
1907 |
-
= 5.98 June 27 2018 =
|
1908 |
-
* Fix: WooCommerce: Exclusion.
|
1909 |
-
* Fix: Public GDPR JS code.
|
1910 |
-
* Minor fixes.
|
1911 |
-
|
1912 |
-
= 5.97 June 7 2018 =
|
1913 |
-
* Fix: Update system.
|
1914 |
-
* Fix: Feedback from public page (admin only).
|
1915 |
-
* Fix: Users and comment check: API error.
|
1916 |
-
* Fix: Too many negative reports. (Too big ct_data option)
|
1917 |
-
* Fix: SpamFireWall: Infinite redirection on the blocking page.
|
1918 |
-
* Minor fixes.
|
1919 |
-
|
1920 |
-
= 5.96 May 22 2018 =
|
1921 |
-
* Fix: Update system.
|
1922 |
-
* Mod: Reset all counters button in admin bar.
|
1923 |
-
* Mod: GDPR compliance.
|
1924 |
-
* Minor fixes.
|
1925 |
-
|
1926 |
-
= 5.95.1 May 3 2018 =
|
1927 |
-
* Fix: "Get key automatically" button display logic.
|
1928 |
-
* Fix: PHP notices.
|
1929 |
-
|
1930 |
-
= 5.95 May 2 2018 =
|
1931 |
-
* Spam filtration improved.
|
1932 |
-
* Fix: Public widget layout.
|
1933 |
-
* Fix: Connection reports output.
|
1934 |
-
* Minor fixes.
|
1935 |
-
|
1936 |
-
= 5.94 April 23 2018 =
|
1937 |
-
* Mod: Async load option for JS.
|
1938 |
-
* Mod: JS scripts loading is conditional.
|
1939 |
-
* Fix: IP detection.
|
1940 |
-
* Fix: IP detection.
|
1941 |
-
* Fix: Javascript error.
|
1942 |
-
|
1943 |
-
= 5.93.1 April 9 2018 =
|
1944 |
-
* Fix: Fatal error on PHP 5.5 or lower.
|
1945 |
-
|
1946 |
-
= 5.93 April 9 2018 =
|
1947 |
-
* Fix: SpamFirewall IP detection.
|
1948 |
-
* Fix: Contact Form 7. False positives.
|
1949 |
-
* Mod: Autoupdate function improved.
|
1950 |
-
* Minor fixes.
|
1951 |
-
|
1952 |
-
= 5.92.2 March 23 2018 =
|
1953 |
-
* Fix: Error if cURL extension is disabled.
|
1954 |
-
|
1955 |
-
= 5.92.1 March 23 2018 =
|
1956 |
-
* Fix: Spelling
|
1957 |
-
* Fix: Fatal error if cURL extension is disabled.
|
1958 |
-
|
1959 |
-
= 5.92 March 22 2018 =
|
1960 |
-
* IP detection improved.
|
1961 |
-
* Fix: SSL connection.
|
1962 |
-
* Fix: False positives spam detection in Contact Form 7.
|
1963 |
-
* Minor fixes.
|
1964 |
-
|
1965 |
-
= 5.91 March 15 2018 =
|
1966 |
-
* Fix: Errors for PHP compiled without XML support.
|
1967 |
-
* Fix: Spelling and translation.
|
1968 |
-
* Stability increased.
|
1969 |
-
* Minor fixes.
|
1970 |
-
|
1971 |
-
= 5.90 March 7 2018 =
|
1972 |
-
* Improvement: Better IP recognition in Spam FireWall.
|
1973 |
-
* Fix: Gravity Froms blocking message.
|
1974 |
-
* Security improvments.
|
1975 |
-
* Minor fixes.
|
1976 |
-
|
1977 |
-
= 5.89 February 21 2018 =
|
1978 |
-
* Improved spam filtration quality.
|
1979 |
-
* Improved compatibility.
|
1980 |
-
* Public widget: Styles and referral link added.
|
1981 |
-
* Dashboard widget: revised and fixed.
|
1982 |
-
* Minor fixes.
|
1983 |
-
|
1984 |
-
= 5.88 February 12 2018 =
|
1985 |
-
* Integration: ConvertPro.
|
1986 |
-
* Improvement: Search for visitor's names in request.
|
1987 |
-
* Fix: Contact Form 7 message recognition.
|
1988 |
-
* Preparation for the remote plugin update.
|
1989 |
-
* Minor fixes.
|
1990 |
-
|
1991 |
-
= 5.87 February 2 2018 =
|
1992 |
-
* Filtration quality improved.
|
1993 |
-
* Fix: WP Foto Vote downloading images.
|
1994 |
-
* Fix: Fatal error for unsupported PHP 5.2.
|
1995 |
-
* Fix: Formidable Forms improved spam filtration.
|
1996 |
-
|
1997 |
-
= 5.86 January 25 2018 =
|
1998 |
-
* Fix: High CPU load with wp-ajax.php.
|
1999 |
-
* Fix: Mailpoet: Newsletter.
|
2000 |
-
* Fix: Gravity: Forms standardization for input fields.
|
2001 |
-
* Fix: ajax hook checks data for contact form.
|
2002 |
-
* Fix: UTF8 character in requests.
|
2003 |
-
|
2004 |
-
= 5.85 January 11 2018 =
|
2005 |
-
* Fix: Fast Secure contact form spam block message.
|
2006 |
-
* Fix: IP license status.
|
2007 |
-
* Layout: Dashboard widget description altered.
|
2008 |
-
|
2009 |
-
= 5.84 December 26 2017 =
|
2010 |
-
* Integration: PeepSo contact form
|
2011 |
-
* Repared: Feedback from comments page.
|
2012 |
-
* Fix: mb_* functions used only if exists.
|
2013 |
-
* Fix: Gravity forms: Multi-page form logic repared.
|
2014 |
-
* Fix: Gravity forms: AJAX form logic repared.
|
2015 |
-
* Minor fixes.
|
2016 |
-
|
2017 |
-
= 5.83.2 December 19 2017 =
|
2018 |
-
* Fix: Error in base class.
|
2019 |
-
|
2020 |
-
= 5.83.1 December 19 2017 =
|
2021 |
-
* Fix: CDN IP detection.
|
2022 |
-
|
2023 |
-
= 5.83 December 19 2017 =
|
2024 |
-
* Improving: Stability and compatibility.
|
2025 |
-
* Improving: Spam protection.
|
2026 |
-
* Fix: Comments logic filtration.
|
2027 |
-
* Fix: Admin bar counter.
|
2028 |
-
* Minor errors fixes.
|
2029 |
-
|
2030 |
-
= 5.82.1 December 7 2017 =
|
2031 |
-
* Fixed minor error with attaching JS and CSS files.
|
2032 |
-
|
2033 |
-
= 5.82 December 4 2017 =
|
2034 |
-
* Plugin doesn't use PHP sessions anymore.
|
2035 |
-
* Bug fixes.
|
2036 |
-
* Improved update logic.
|
2037 |
-
|
2038 |
-
= 5.81 November 22 2017 =
|
2039 |
-
* Fixed error with "Show/Hide key" button.
|
2040 |
-
* Slightly improved spam protection for all forms.
|
2041 |
-
* Small errors fixes.
|
2042 |
-
|
2043 |
-
= 5.80 November 3 2017 =
|
2044 |
-
* Spam protection improved.
|
2045 |
-
* Improved filtration quality for WooCommerce checkout.
|
2046 |
-
* Minor fixes for Spam FireWall.
|
2047 |
-
|
2048 |
-
= 5.79 October 26 2017 =
|
2049 |
-
* Spam protection improved.
|
2050 |
-
* Fixed issue with existing spam comments check.
|
2051 |
-
* Added posibility to exclude IP from check.
|
2052 |
-
* Minor fixes.
|
2053 |
-
|
2054 |
-
= 5.78 October 16 2017 =
|
2055 |
-
* Improved compatibility with themes. Changed core functions prefix.
|
2056 |
-
* Fixed issue with WooCommerce checkout.
|
2057 |
-
* Spam protection improved.
|
2058 |
-
* Minor fixes.
|
2059 |
-
|
2060 |
-
= 5.77 October 2 2017 =
|
2061 |
-
* Connection report's system.
|
2062 |
-
* Integration for CouponXXL Theme.
|
2063 |
-
* Fixed issue with mb_* functions.
|
2064 |
-
* Banners logic updated.
|
2065 |
-
|
2066 |
-
= 5.76 September 20 2017 =
|
2067 |
-
* Fixed issue with Spam FireWall and caching plugins.
|
2068 |
-
* Banners logic updated.
|
2069 |
-
|
2070 |
-
= 5.75 September 15 2017 =
|
2071 |
-
* Pause feature for users/comments spam check.
|
2072 |
-
* Improved protection from spam.
|
2073 |
-
* Small fixes.
|
2074 |
-
|
2075 |
-
= 5.74.2 September 2 2017 =
|
2076 |
-
* Fix for users spam check for PHP 5.3 and lower.
|
2077 |
-
|
2078 |
-
= 5.74.1 September 2 2017 =
|
2079 |
-
* Fix for the update system and cloud communication.
|
2080 |
-
* Added possibility to check users and comments for spam with a specific date range.
|
2081 |
-
|
2082 |
-
= 5.74 August 31 2017 =
|
2083 |
-
* Users and comments spam check: Two check types (fast and accurate).
|
2084 |
-
* Fix for WooCommerce checkout test.
|
2085 |
-
* Minor fixes.
|
2086 |
-
|
2087 |
-
= 5.73 August 11 2017 =
|
2088 |
-
* Fix for spam check for already existed users and comments.
|
2089 |
-
* Spam FireWall updated.
|
2090 |
-
* Layout fix for BT Comments.
|
2091 |
-
* Minor fixes.
|
2092 |
-
|
2093 |
-
= 5.72 July 27 2017 =
|
2094 |
-
* Improved spam check for existed users and comments.
|
2095 |
-
* Minor fixes.
|
2096 |
-
|
2097 |
-
= 5.71 July 20 2017 =
|
2098 |
-
* Improved spam protection for external forms.
|
2099 |
-
* Optimization.
|
2100 |
-
* Minor fixes.
|
2101 |
-
|
2102 |
-
= 5.70.2 July 17 2017 =
|
2103 |
-
* Fix for Spam FireWall for Multisite.
|
2104 |
-
|
2105 |
-
= 5.70.1 July 17 2017 =
|
2106 |
-
* Fix for Spam FireWall.
|
2107 |
-
* Spam detection improved.
|
2108 |
-
|
2109 |
-
= 5.70 July 13 2017 =
|
2110 |
-
* New updater logic.
|
2111 |
-
* Self cron system.
|
2112 |
-
* Improved AMP compatibility.
|
2113 |
-
* Optimization.
|
2114 |
-
* Fixed users and comments spam check.
|
2115 |
-
* Fixed layout for Comment's feedback from public page.
|
2116 |
-
* Updated Spam FireWall.
|
2117 |
-
* SFW: Spam FireWall counter now work in real-time.
|
2118 |
-
* SFW: Improved compatibility with different Data Bases.
|
2119 |
-
|
2120 |
-
= 5.69 July 3 2017 =
|
2121 |
-
* Reviewer - integration.
|
2122 |
-
* Optimization for Users and Comments check for big databases.
|
2123 |
-
* Errors fixes.
|
2124 |
-
* Improved protection from spam.
|
2125 |
-
|
2126 |
-
= 5.68 June 22 2017 =
|
2127 |
-
* Contact Form for WordPress - Ultimate Form Builder Lite - integration.
|
2128 |
-
* Contact Bank - Contact Forms Builder - integration.
|
2129 |
-
* Smart Forms - integration.
|
2130 |
-
* cformsII - integration.
|
2131 |
-
* Contact Form by Web-Settler - integration.
|
2132 |
-
* Error fixes.
|
2133 |
-
|
2134 |
-
= 5.67.3 June 9 2017 =
|
2135 |
-
* Fixed JS attachment error.
|
2136 |
-
|
2137 |
-
= 5.67.2 June 5 2017 =
|
2138 |
-
* Fixed error with IP determination.
|
2139 |
-
|
2140 |
-
= 5.67.1 June 4 2017 =
|
2141 |
-
* Fixed JS error in 5.67 version.
|
2142 |
-
* Integrations: Enfold theme, Convertplug.
|
2143 |
-
* Links to check for Emails/IP for spam.
|
2144 |
-
* Control comments and feedback about them from public post's page.
|
2145 |
-
* Improved connection stability with cloud service.
|
2146 |
-
* Spam protection improved.
|
2147 |
-
* Other small fixes.
|
2148 |
-
|
2149 |
-
= 5.67 June 1 2017 =
|
2150 |
-
* Integrations: Enfold theme, Convertplug.
|
2151 |
-
* Links to check for Emails/IP for spam.
|
2152 |
-
* Control comments and feedback about them from public post's page.
|
2153 |
-
* Improved connection stability with cloud service.
|
2154 |
-
* Spam protection improved.
|
2155 |
-
* Other small fixes.
|
2156 |
-
|
2157 |
-
= 5.66 May 23 2017 =
|
2158 |
-
* Spam protection improved.
|
2159 |
-
* Major fixes for users and comments spam check.
|
2160 |
-
* Added feedback from Wordpress comments list.
|
2161 |
-
* Fix for "internal forms check" option.
|
2162 |
-
* Fixed issue with caching Spam FireWall die page.
|
2163 |
-
* Other small fixes.
|
2164 |
-
|
2165 |
-
= 5.65 May 16 2017 =
|
2166 |
-
* Fix for PayPal redirecton.
|
2167 |
-
* Fixed issue with empty query for bulk comments test.
|
2168 |
-
* Added protection for Enfold contact form.
|
2169 |
-
* Ninja forms integration.
|
2170 |
-
|
2171 |
-
= 5.64 April 26 2017 =
|
2172 |
-
* Integration for Facebook registrations.
|
2173 |
-
* Small fixes for WPMS.
|
2174 |
-
* Fix for Activecampaign service.
|
2175 |
-
* Fix for check spam users.
|
2176 |
-
* Fixed rare notice Notice: Undefined index: REQUEST_URI
|
2177 |
-
|
2178 |
-
= 5.63 April 20 2017 =
|
2179 |
-
* Fix for the dashboard spam stat widget.
|
2180 |
-
* Added translation posibility for all text.
|
2181 |
-
|
2182 |
-
= 5.62 April 17 2017 =
|
2183 |
-
* Fix for the dashboard spam statistics widget.
|
2184 |
-
* Fix for users spam check.
|
2185 |
-
* Small appearance changes.
|
2186 |
-
|
2187 |
-
= 5.61 April 6 2017 =
|
2188 |
-
* Improved filtration.
|
2189 |
-
* Additional logic for the form recognizing.
|
2190 |
-
* Integration: Divi Theme Contact Form.
|
2191 |
-
* Fix: Gravity Forms multipages forms.
|
2192 |
-
* Stat Widget: Minor fixes.
|
2193 |
-
* Added possibility to download results of the users check in CSV format.
|
2194 |
-
* Alteration for settings page (footer).
|
2195 |
-
|
2196 |
-
= 5.60.1 March 29 2017 =
|
2197 |
-
* Fixed error function 'locale_get_display_region' no exists.
|
2198 |
-
|
2199 |
-
= 5.60 March 29 2017 =
|
2200 |
-
* Added main dashboard widget with spam sctivity stats.
|
2201 |
-
* Mailster - integration.
|
2202 |
-
* Base class updated.
|
2203 |
-
|
2204 |
-
= 5.59 March 24 2017 =
|
2205 |
-
* Users/comments check fix.
|
2206 |
-
* Plugin's name changed to Anti-Spam by CleanTalk.
|
2207 |
-
* Trial banner is dismissable. Disapear for 24h or till logout.
|
2208 |
-
* Settings modified (Auto testing failed warning).
|
2209 |
-
* Mailing(inactive key) interval increased to 6 hours.
|
2210 |
-
|
2211 |
-
= 5.58.6 March 16 2017 =
|
2212 |
-
* Fix for Ninja forms (protection updated).
|
2213 |
-
* Fix for QA Theme.
|
2214 |
-
* Fix for RSVP form.
|
2215 |
-
* Setting changes (Spam FireWall).
|
2216 |
-
* Improved debug section.
|
2217 |
-
* Improved gathering data function.
|
2218 |
-
* Minor fixes.
|
2219 |
-
|
2220 |
-
= 5.58.5 March 6 2017 =
|
2221 |
-
* Minor backend fix.
|
2222 |
-
|
2223 |
-
= 5.58.4 March 6 2017 =
|
2224 |
-
* Users check fix (redirect after the check).
|
2225 |
-
* Fixed PHP Notice "HTTP_REFERER" is unset.
|
2226 |
-
* Updated Notice logic.
|
2227 |
-
|
2228 |
-
= 5.58.3 February 28 2017 =
|
2229 |
-
* Bitrix24 Contact form integration.
|
2230 |
-
* Users/comments check fix.
|
2231 |
-
* Spam sorting updated.
|
2232 |
-
* Banner showing logic.
|
2233 |
-
|
2234 |
-
= 5.58.2 February 17 2017 =
|
2235 |
-
* Cron fix for daily report.
|
2236 |
-
|
2237 |
-
= 5.58.1 February 16 2017 =
|
2238 |
-
* Minor fixes.
|
2239 |
-
|
2240 |
-
= 5.58 February 15 2017 =
|
2241 |
-
* Work without access key
|
2242 |
-
* Bitrix24 contact integration
|
2243 |
-
* Issues fixes
|
2244 |
-
|
2245 |
-
= 5.57.1 February 8 2017 =
|
2246 |
-
* Fix for notice logic.
|
2247 |
-
|
2248 |
-
= 5.57 February 8 2017 =
|
2249 |
-
* Setting page changes.
|
2250 |
-
* Bug fixes for WooCommerce.
|
2251 |
-
* Spam FireWall filters only GET requests.
|
2252 |
-
* Optimization.
|
2253 |
-
* Minor and major fixes.
|
2254 |
-
|
2255 |
-
= 5.56.1 January 25 2017 =
|
2256 |
-
* Minor fixes
|
2257 |
-
|
2258 |
-
= 5.56 January 19 2017 =
|
2259 |
-
* Integrations: MailChimp Premium, Profile Press.
|
2260 |
-
* Changes comments flow.
|
2261 |
-
* FireWall updater fix.
|
2262 |
-
* Users check optimization.
|
2263 |
-
|
2264 |
-
= 5.55 December 23 2016 =
|
2265 |
-
* Integrations: Caldera Forms, Visual Form Builder.
|
2266 |
-
* Fix for different 'cookies' header names.
|
2267 |
-
* Fixed user deletion.
|
2268 |
-
|
2269 |
-
= 5.54 December 12 2016 =
|
2270 |
-
* Integrations: AmoForms, Contact Form Clean and Simple.
|
2271 |
-
* Comments check logic refreshed.
|
2272 |
-
* Registration JS error fix.
|
2273 |
-
* Users check fix.
|
2274 |
-
* Fix for translation system.
|
2275 |
-
* Minor fixes.
|
2276 |
-
|
2277 |
-
= 5.53.1 December 9 2016 =
|
2278 |
-
* Minor layout fixes.
|
2279 |
-
|
2280 |
-
= 5.53 November 28 2016 =
|
2281 |
-
* Addition warning before deleting users.
|
2282 |
-
* Spam FireWall is enabled by default.
|
2283 |
-
* Usernoise modal feedback / contact form : integration.
|
2284 |
-
* Translations.
|
2285 |
-
* Optimization.
|
2286 |
-
* Fixes.
|
2287 |
-
|
2288 |
-
= 5.52.1 November 14 2016 =
|
2289 |
-
* Users and comments check: Using new API method.
|
2290 |
-
* Quick Contact From: Integration via "Custom Contact Forms" setting.
|
2291 |
-
* JavaScript filtration improved.
|
2292 |
-
* Translation changes.
|
2293 |
-
* Optimized JavaScript code.
|
2294 |
-
|
2295 |
-
= 5.51 November 2 2016 =
|
2296 |
-
* Added protection for internal forms
|
2297 |
-
* Immediate spam check for comments and users from WP dashboard
|
2298 |
-
* Optimized code
|
2299 |
-
|
2300 |
-
= 5.50.1 October 24 2016 =
|
2301 |
-
* Improved filtration in contact forms.
|
2302 |
-
* Spam FireWall: Fixed issue with SFW logs
|
2303 |
-
* Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
|
2304 |
-
|
2305 |
-
= 5.50 October 20 2016 =
|
2306 |
-
* Custom contact forms: integration.
|
2307 |
-
* Pirate Forms: integration.
|
2308 |
-
* PHP 7 compatibility: Deleted third-party JSON library and dependences.
|
2309 |
-
* PHP 7 compatibility: Fixed end of lines.
|
2310 |
-
* YOAST Seo: Fixed PHP warnings.
|
2311 |
-
* Spam FireWall: Minor fix for Spam FireWall counter.
|
2312 |
-
* Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
|
2313 |
-
* Improved filtration in contact forms.
|
2314 |
-
|
2315 |
-
= 5.49.2 October 5 2016 =
|
2316 |
-
* Second Fix for database error. Stable version.
|
2317 |
-
|
2318 |
-
= 5.49.1 October 5 2016 =
|
2319 |
-
* Fixed database error.
|
2320 |
-
|
2321 |
-
= 5.49 October 3 2016 =
|
2322 |
-
* Spam FireWall feature: Class upgraded.
|
2323 |
-
* New feature: Delete links from approved comments.
|
2324 |
-
* Settings: Grouped.
|
2325 |
-
* Settings: Altered description fixed spelling mistakes.
|
2326 |
-
* Settings: Added indicator for Spam FireWall.
|
2327 |
-
* Admin bar: Added Spam FireWall counter
|
2328 |
-
* Clean and Simple Contact Form: Direct integration.
|
2329 |
-
* WooCommerce: Don't check password recovery form.
|
2330 |
-
* WooCommerce Wishlists: Issue with check for Google bots.
|
2331 |
-
* JetPack: contact form fix.
|
2332 |
-
* Fixed and created the defaults for all CleanTalk options.
|
2333 |
-
* Fixed spelling mistakes.
|
2334 |
-
|
2335 |
-
= 5.48 September 15 2016 =
|
2336 |
-
* buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
|
2337 |
-
* buddyPress: Added option in settings for private messages check.
|
2338 |
-
* WooCommerce Wishlist: Added check for wishlists.
|
2339 |
-
* Fixed issue with "check all post data" option.
|
2340 |
-
* Improved filtering for Gravity Forms
|
2341 |
-
* Mobile Assistant Connector fix
|
2342 |
-
* Minor fixes.
|
2343 |
-
|
2344 |
-
= 5.47 September 5 2016 =
|
2345 |
-
* WooCommerce: direct integration for checkout form.
|
2346 |
-
* WooCommerce Sensei: login form fix.
|
2347 |
-
* bbPress: Added the check for topics and comments with stop_words
|
2348 |
-
* bbPress: Skip check for admin in comments and topics
|
2349 |
-
* UserPro: fixes. Request without field "shortcode"
|
2350 |
-
* Contact Form 7: Bug fix.
|
2351 |
-
* Spam FireWall: Optimized logs rotation.
|
2352 |
-
* Updated inner functions (compatibility fix for PHP 5.4+)
|
2353 |
-
* Fixed output of counters (without spamfirewall stats)
|
2354 |
-
* Fixed spelling in settings
|
2355 |
-
* Added "Delete from the list" button in comments spam check page
|
2356 |
-
* Minor fixes.
|
2357 |
-
|
2358 |
-
= 5.46 August 17 2016 =
|
2359 |
-
* Fixed issue with admin bar links in WP Multi Network mode.
|
2360 |
-
* Added "All time counter" and "Daily counter" into admin bar.
|
2361 |
-
* Added settings to disable counters in admin bar.
|
2362 |
-
* New style for "Get access key manually" button.
|
2363 |
-
|
2364 |
-
= 5.45.2 August 4 2016 =
|
2365 |
-
* Added Anti-Spam protection for Quick Event Manager.
|
2366 |
-
* Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more then 30 days ago.
|
2367 |
-
* Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
|
2368 |
-
* Minor fix function to get the API key.
|
2369 |
-
|
2370 |
-
= 5.45.1 July 26 2016 =
|
2371 |
-
* Fixed issue with missed spam messages, subscriptions.
|
2372 |
-
* Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more then 30 days ago.
|
2373 |
-
|
2374 |
-
= 5.45 July 21 2016 =
|
2375 |
-
* Optimized bulk spam comments deletion.
|
2376 |
-
* Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
|
2377 |
-
* Added links to bulk spam comments&users removal tool.
|
2378 |
-
|
2379 |
-
= 5.44.1 July 13 2016 =
|
2380 |
-
* Optimized options getting code.
|
2381 |
-
* Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
|
2382 |
-
|
2383 |
-
= 5.43.2 June 30 2016 =
|
2384 |
-
* Optimized anti-spam code for AJAX based contact forms.
|
2385 |
-
* Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
|
2386 |
-
|
2387 |
-
= 5.43.1 June 23 2016 =
|
2388 |
-
* Added agent version in requests to test a connection between the website and servers.
|
2389 |
-
* Fixed issue with PHP notices in cleantalk-admin.php.
|
2390 |
-
|
2391 |
-
= 5.43 June 22 2016 =
|
2392 |
-
* Added spam protection for registrations via 'Login with AJAX' plug-in.
|
2393 |
-
* Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
|
2394 |
-
* Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
|
2395 |
-
* Fixed issue with spam protection for nested forms by Formidable plug-in.
|
2396 |
-
|
2397 |
-
= 5.42 2016-06-15 =
|
2398 |
-
* Added anti-spam protection for UserPro.
|
2399 |
-
* Improved protection for Formidable forms + Varnish.
|
2400 |
-
* Improved bulk search for spam accounts.
|
2401 |
-
* Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
|
2402 |
-
* Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
|
2403 |
-
* Minor fixes in plugin backend.
|
2404 |
-
|
2405 |
-
= 5.41 2016-05-31 =
|
2406 |
-
* Added HTTP response in plugin response if an network issue was happend.
|
2407 |
-
* Optimized JavaScript anti-spam test for Formidable forms.
|
2408 |
-
* Re-stored the option to auto redirect to plugn settings after plugin activation.
|
2409 |
-
* Fixed issue with nasted fields in Formidable forms.
|
2410 |
-
|
2411 |
-
= 5.40.3 2016-05-26 =
|
2412 |
-
* Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
|
2413 |
-
* Added JSON encoding for AJAX forms.
|
2414 |
-
* Obfuscated private data for Custom contact forms option.
|
2415 |
-
* Optimized bulk users check for spam over blacklists database.
|
2416 |
-
* Fixed issue with lost connection to servers and JavaScript anti-spam test.
|
2417 |
-
* Fixed issue with WordFence and collect_details.
|
2418 |
-
|
2419 |
-
= 5.40.2 2016-05-11 =
|
2420 |
-
* Improved account status check logic.
|
2421 |
-
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
2422 |
-
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
2423 |
-
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
2424 |
-
|
2425 |
-
= 5.40.1 2016-04-28 =
|
2426 |
-
* Fixed issue with Super Socializer.
|
2427 |
-
* Fixed issue with spam filtration for logged in users and Formidable forms.
|
2428 |
-
* Added logging of all submitted fields for FastSecure contact form.
|
2429 |
-
|
2430 |
-
= 5.40 2016-04-19 =
|
2431 |
-
* Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
|
2432 |
-
* Minor fix in plugin settings.
|
2433 |
-
* Fixed pagination for bulk users spam test.
|
2434 |
-
* Fixed issue with unknown _SESSION.
|
2435 |
-
* Fixed issue with double Spam FireWall database upload.
|
2436 |
-
|
2437 |
-
= 5.39.1 2016-04-04 =
|
2438 |
-
* Improved AJAX based anti-spam test with HTTPS backends.
|
2439 |
-
* Added fix to avoid issue with empty ct_info_flag on JavaScript side.
|
2440 |
-
* Added logic to exclude caching for Spam FireWall.
|
2441 |
-
* Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
|
2442 |
-
|
2443 |
-
= 5.38.1 2016-03-24 =
|
2444 |
-
* Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
|
2445 |
-
* Removed Spam FireWall protection on /feed page.
|
2446 |
-
* Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
|
2447 |
-
* Added reject notice for spam submissions on Gravity forms with AJAX calls.
|
2448 |
-
|
2449 |
-
= 5.37.3 2016-03-10 =
|
2450 |
-
* Minor bug fixes. Added an option to support Varnish cache.
|
2451 |
-
|
2452 |
-
= 5.36.1 2016-02-05 =
|
2453 |
-
* Fixed bug, when users receive error after logging in
|
2454 |
-
|
2455 |
-
= 5.36 2016-02-04 =
|
2456 |
-
* Improved JavaScript anti spam protection
|
2457 |
-
* Improvements for avoiding blocking requests from payment systems
|
2458 |
-
|
2459 |
-
= 5.35 2016-01-14 =
|
2460 |
-
* Added support for IP licensing
|
2461 |
-
* Some anti-spam protection improvements
|
2462 |
-
* Small backend interface fixes
|
2463 |
-
|
2464 |
-
= 5.34.1 2015-12-17 =
|
2465 |
-
* Fixed trackback antispam protection: improved checking mechanism
|
2466 |
-
* Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
|
2467 |
-
|
2468 |
-
= 5.34 2015-12-10 =
|
2469 |
-
* Improved spam checking mechanism
|
2470 |
-
* Added "Collect browser details" option for better antispam protection
|
2471 |
-
* Fixed custom contact forms checking
|
2472 |
-
* Minor translations fixes
|
2473 |
-
|
2474 |
-
= 5.33.1 2015-12-04 =
|
2475 |
-
* Fixed issue with BBPress
|
2476 |
-
* Fixed anti-spam comments checking
|
2477 |
-
* Fixed bulk checking
|
2478 |
-
* Fixed trackback and pingback checking
|
2479 |
-
|
2480 |
-
= 5.33 2015-12-01 =
|
2481 |
-
* Backend interface fixes
|
2482 |
-
* Improved Spam FireWall efficiency
|
2483 |
-
* Improved performance of anti spam checking
|
2484 |
-
|
2485 |
-
= 5.32 2015-11-26 =
|
2486 |
-
* Added improvements for manual spam detection
|
2487 |
-
* Fixed errors in backend
|
2488 |
-
* Fixed bulk users anti spam checking
|
2489 |
-
* Added indicator for bulk spam checking
|
2490 |
-
* Added "Get access key automatically" feature
|
2491 |
-
|
2492 |
-
= 5.31 2015-11-11 =
|
2493 |
-
* Improved backend performance
|
2494 |
-
* Fixed counter of approved/blocked spam attacks
|
2495 |
-
* Fixed Spam Firewall logging
|
2496 |
-
|
2497 |
-
= 5.30 2015-11-05 =
|
2498 |
-
* Improved anti-spam checking
|
2499 |
-
* Optimized performance
|
2500 |
-
* Fixed blocking email preview in MailPoet
|
2501 |
-
* Interface fixes
|
2502 |
-
* WPMU interface fixes
|
2503 |
-
|
2504 |
-
= 5.29 2015-10-27 =
|
2505 |
-
* Optimized performance
|
2506 |
-
* Fixed bugs in custom contact forms spam checking
|
2507 |
-
|
2508 |
-
= 5.28.7 2015-10-23 =
|
2509 |
-
* Major backend peromance fix.
|
2510 |
-
|
2511 |
-
= 5.28 2015-10-16 =
|
2512 |
-
* Fixed errors in anti-spam checking
|
2513 |
-
* Restored options for spam checking registrations and cpmmon contact forms
|
2514 |
-
* Improved anti spam defence
|
2515 |
-
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
2516 |
-
|
2517 |
-
= 5.27 2015-10-13 =
|
2518 |
-
* Improvements in Spam FireWall feature
|
2519 |
-
* Code optimization
|
2520 |
-
* Backend interface fixes
|
2521 |
-
|
2522 |
-
= 5.26 2015-10-05 =
|
2523 |
-
* Added WordPress Language Pack support
|
2524 |
-
* Removed spam checking for some autorisation plugins
|
2525 |
-
* New experimental feature: Spam FireWall
|
2526 |
-
|
2527 |
-
= 5.25.2 2015-09-28 =
|
2528 |
-
* Fixed backend bug
|
2529 |
-
|
2530 |
-
= 5.25.1 2015-09-28 =
|
2531 |
-
* Added widget with anti-spam stats
|
2532 |
-
* Added information about blocked spam attacks in admin dashboard and CleanTalk settings
|
2533 |
-
* Added ability not to check comments for users with 3 or above allowed comments
|
2534 |
-
* Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
|
2535 |
-
* Some backend interface settings
|
2536 |
-
* Removed "CleanTalk connection test" query
|
2537 |
-
|
2538 |
-
= 5.24.1 2015-09-16 =
|
2539 |
-
* Fixed some errors in frontend
|
2540 |
-
* Fixed access key saving
|
2541 |
-
|
2542 |
-
= 5.24 2015-09-14 =
|
2543 |
-
* Backend interface fixes
|
2544 |
-
* Improvement for AJAX JavaScript spam checking
|
2545 |
-
|
2546 |
-
= 5.23 2015-09-01 =
|
2547 |
-
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
2548 |
-
* Some interface fixes of bulk users & comments spam checking
|
2549 |
-
|
2550 |
-
= 5.22 2015-08-26 =
|
2551 |
-
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
2552 |
-
|
2553 |
-
= 5.21 2015-08-21 =
|
2554 |
-
* Fixed bug with skipping spam submissions
|
2555 |
-
* Fixed bug with receiving old user_token for viewing anti-spam stats
|
2556 |
-
* Small backend fixes
|
2557 |
-
|
2558 |
-
= 5.20 2015-08-15 =
|
2559 |
-
* Fixed anti-spam stats in admin bar
|
2560 |
-
* Fixed issue with skipping spam submissions
|
2561 |
-
* Added some PHP-constants for advanced users
|
2562 |
-
|
2563 |
-
= 5.19 2015-08-11 =
|
2564 |
-
* New feature: anti-spam checking for registered users
|
2565 |
-
* Fixed issue with AJAX JavaScript checking
|
2566 |
-
* Fixed issue with SEO Yoast xml sitemaps.
|
2567 |
-
|
2568 |
-
= 5.18 2015-08-04 =
|
2569 |
-
* Fixed issue with user_token
|
2570 |
-
* Added anti-spam API, see our FAQ
|
2571 |
-
|
2572 |
-
= 5.17 2015-07-23 =
|
2573 |
-
* Fixed infinite redirection after activation
|
2574 |
-
* Minor backend fixes
|
2575 |
-
|
2576 |
-
= 5.16 2015-07-22 =
|
2577 |
-
* Fixed external services checking
|
2578 |
-
* Fixed mass comments deletion
|
2579 |
-
* Fixed AJAX anti-spam protection
|
2580 |
-
|
2581 |
-
= 5.15 2015-07-16 =
|
2582 |
-
* New feature: anti-spam protection for forms, that uses external services
|
2583 |
-
|
2584 |
-
= 5.14 2015-07-03 =
|
2585 |
-
* Added anti-spam protection for some themes and plugins
|
2586 |
-
* Some backend fixes
|
2587 |
-
|
2588 |
-
= 5.13 2015-06-12 =
|
2589 |
-
* Closing notification for anti-spam renew
|
2590 |
-
* Fixed bulk anti spam comment checking
|
2591 |
-
|
2592 |
-
= 5.12 2015-06-01 =
|
2593 |
-
* Added option for checking all post data for spam
|
2594 |
-
* Some JavaScript protection improvements
|
2595 |
-
* Added option for old JavaScript check (without AJAX)
|
2596 |
-
|
2597 |
-
= 5.10 2015-05-25 =
|
2598 |
-
* Fixed Javascript error on some forms
|
2599 |
-
|
2600 |
-
= 5.9 2015-05-21 =
|
2601 |
-
* Fixed Javascript error on CF7 and JetPack
|
2602 |
-
* Some backend and frontent fixes
|
2603 |
-
|
2604 |
-
= 5.8 2015-05-18 =
|
2605 |
-
* Minor fixes
|
2606 |
-
|
2607 |
-
= 5.7 2015-05-18 =
|
2608 |
-
* Fixed French translation
|
2609 |
-
* Fixed protection algorithm
|
2610 |
-
|
2611 |
-
= 5.6 2015-05-11 =
|
2612 |
-
* Fixed translation
|
2613 |
-
* Fixed bulk comments anti-spam checking
|
2614 |
-
* Added option for disabling anti spam stats in adminbar
|
2615 |
-
* Some security fixes
|
2616 |
-
|
2617 |
-
= 5.5 2015-04-29
|
2618 |
-
* Fixed security issue
|
2619 |
-
|
2620 |
-
= 5.4 2015-04-27 =
|
2621 |
-
* Some interface and functionality changes in plugin settings page
|
2622 |
-
* Added counter for anti-spam stats in admin bar
|
2623 |
-
|
2624 |
-
= 5.3 2015-04-13 =
|
2625 |
-
* Added anti-spam protection for Divi theme contact forms
|
2626 |
-
* Added anti-spam protection for MyMail contact forms
|
2627 |
-
* Added anti-spam protection for MailPoet Newsletters
|
2628 |
-
* Some interface and functionality changes in backend
|
2629 |
-
|
2630 |
-
= 5.2 2015-04-01 =
|
2631 |
-
* Added link for anti-spam stats
|
2632 |
-
* Added WP User Frontend Pro registration form protection
|
2633 |
-
|
2634 |
-
= 5.10 2015-03-24 =
|
2635 |
-
* Fixed site crash after installing 5.0 on some websites
|
2636 |
-
|
2637 |
-
= 5.00 2015-03-24 =
|
2638 |
-
* Added bulk comments checking for spam via CleanTalk blacklists
|
2639 |
-
* Added anti-spam form protection for 'Ajax Login & Register'
|
2640 |
-
* Fixed JetPack form protection
|
2641 |
-
|
2642 |
-
= 4.24 2015-03-20 =
|
2643 |
-
Added immediate spam protection activation.
|
2644 |
-
|
2645 |
-
= 4.22 2015-03-17 =
|
2646 |
-
* Added button for automatic spam protection key getting.
|
2647 |
-
|
2648 |
-
= 4.21 2015-03-11 =
|
2649 |
-
* Added license renew notification.
|
2650 |
-
|
2651 |
-
= 4.20 2015-03-03 =
|
2652 |
-
* German, Italian, Polish, Portuguese translations, minor code fixes.
|
2653 |
-
|
2654 |
-
= 4.19 2015-02-24 =
|
2655 |
-
* Increased JS keys lifetime.
|
2656 |
-
|
2657 |
-
= 4.18 2015-02-17 =
|
2658 |
-
* Bugfix - fixed bug with comments approvement, PayPal 'payment_status' and Akismet 'spam' status processing.
|
2659 |
-
|
2660 |
-
= 4.17 2015-02-12 =
|
2661 |
-
* New base class, divided code to 3 separate files - common, public and admin.
|
2662 |
-
|
2663 |
-
= 4.16 2015-02-05 =
|
2664 |
-
* New base class, fixed JetPack filters logics, optimized Formidable, bbPress, BuddyPress filters.
|
2665 |
-
|
2666 |
-
= 4.15 2015-01-29 =
|
2667 |
-
* Support of Contact Form 7 versions before 3.0.0, fixed global JS-vars and online notice cookie logics.
|
2668 |
-
|
2669 |
-
= 4.14 2015-01-19 =
|
2670 |
-
* Removed deprecated option from comment approvement code.
|
2671 |
-
|
2672 |
-
= 4.13 2014-12-29 =
|
2673 |
-
* Not spam comments auto approvement bug fix.
|
2674 |
-
|
2675 |
-
= 4.12 2014-12-29 =
|
2676 |
-
* Plugin backend minfor bug fixes.
|
2677 |
-
|
2678 |
-
= 4.11 2014-12-22 =
|
2679 |
-
* Major changes in spam protection algorithms.
|
2680 |
-
|
2681 |
-
= 4.10 2014-12-10 =
|
2682 |
-
* Minor improvements for custom contact/registration/subscribe forms.
|
2683 |
-
|
2684 |
-
= 4.9 2014-11-24 =
|
2685 |
-
* Minor bug fix for Contact form 7.
|
2686 |
-
|
2687 |
-
= 4.8 2014-11-19 =
|
2688 |
-
* Improved anti-spam protection for BuddyPress registrations and custom contact forms.
|
2689 |
-
|
2690 |
-
= 4.7 2014-11-16 =
|
2691 |
-
* Fixed JavaScript antispam test for FastSecure contact form.
|
2692 |
-
|
2693 |
-
= 4.6 2014-11-11 =
|
2694 |
-
* Minor changes in anti-spam logic for BuddyPress registrations, contact forms and bbPress guest posting.
|
2695 |
-
|
2696 |
-
= 4.5 2014-11-04 =
|
2697 |
-
* Bug fixes for Contact form 7 and bbPress guests posting.
|
2698 |
-
|
2699 |
-
= 4.4 2014-10-29 =
|
2700 |
-
* Improved JS checking for CF7.
|
2701 |
-
|
2702 |
-
= 4.2 2014-10-20 =
|
2703 |
-
* Increased plugin perfomance for BuddyPress registrations.
|
2704 |
-
|
2705 |
-
= 4.1 2014-10-13 =
|
2706 |
-
* Minor anti-spam improvements for contacts, registration and contact forms.
|
2707 |
-
|
2708 |
-
= 4.0 2014-10-06 =
|
2709 |
-
* Major anti-spam improvements for registration and contact forms.
|
2710 |
-
|
2711 |
-
= 3.9 2014-10-01 =
|
2712 |
-
* Did exception to do not break to create new user in WordPress backend.
|
2713 |
-
|
2714 |
-
= 3.8 2014-09-19 =
|
2715 |
-
* Bug fix release. Minor fixes in API class and JavaScript anti-spam test.
|
2716 |
-
|
2717 |
-
= 3.6 2014-09-15 =
|
2718 |
-
* Minor fixes in anti-spam protection for Formidable and custom contact forms.
|
2719 |
-
|
2720 |
-
= 3.4 2014-09-04 =
|
2721 |
-
* Spam comments rotation. Custom (themes) contact forms support.
|
2722 |
-
|
2723 |
-
= 3.2 2014-08-27 =
|
2724 |
-
* Minor changes in spam filtration logic.
|
2725 |
-
|
2726 |
-
= 3.1 2014-08-19 =
|
2727 |
-
* Major changes for comments antispam logic. Improved plugin speed.
|
2728 |
-
|
2729 |
-
= 2.59 2014-08-14 =
|
2730 |
-
* Antispam protection for bbPress guests posts. Improvement for JetPack comments and PHP API update.
|
2731 |
-
|
2732 |
-
= 2.58 2014-08-06 =
|
2733 |
-
* Added anti-spam protection for signups posted via WooCommerce order form.
|
2734 |
-
* Improved anti-spam protection for Contact Form 7.
|
2735 |
-
* Improved anti-spam protection for registrations. Now the plugin looking for JavaScript antispam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
|
2736 |
-
* Updated PHP API. No the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
|
2737 |
-
|
2738 |
-
= 2.57 2014-07-29 =
|
2739 |
-
* Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
|
2740 |
-
* Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
|
2741 |
-
* Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
|
2742 |
-
|
2743 |
-
= 2.56 2014-07-21 =
|
2744 |
-
* Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
|
2745 |
-
|
2746 |
-
= 2.55 2014-07-11 =
|
2747 |
-
* Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it on every page.
|
2748 |
-
|
2749 |
-
= 2.54 2014-07-11 =
|
2750 |
-
* Fixed signup anti-spam protection logic for BuddyPress registrations.
|
2751 |
-
* Fixed anti-spam protection for JetPack contact form.
|
2752 |
-
* Changed account status check logic.
|
2753 |
-
|
2754 |
-
= 2.53 2014-06-27 =
|
2755 |
-
* Fixed anit-spam protection bug for signups.
|
2756 |
-
* Changed anti-spam functions (comments and signups) priority.
|
2757 |
-
|
2758 |
-
= 2.52 2014-06-25 =
|
2759 |
-
* Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
|
2760 |
-
|
2761 |
-
= 2.51 2014-06-23 =
|
2762 |
-
* Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
|
2763 |
-
* Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
|
2764 |
-
* Fixed minor bug with loading backend functions.
|
2765 |
-
|
2766 |
-
= 2.49 2014-06-10 =
|
2767 |
-
* Added spam protection for S2Member Auth.net forms.
|
2768 |
-
* Added spam protection for multisite signup form.
|
2769 |
-
* Optimized account status check function.
|
2770 |
-
|
2771 |
-
= 2.46 2014-05-19 =
|
2772 |
-
* Added: HTML notice about the need to enable JavaScript.
|
2773 |
-
* Fixed: Fixed pingbacks anti-spam test.
|
2774 |
-
|
2775 |
-
= 2.44 2014-05-12 =
|
2776 |
-
* Added: Anti-spam protection for S2Member framework.
|
2777 |
-
* Improved: Plugin load time for backend and frontend.
|
2778 |
-
* Improved: JavaScript anti-spam test.
|
2779 |
-
* Fixed: PHP warning mb_convert_encoding()
|
2780 |
-
|
2781 |
-
= 2.42 2014-04-29 =
|
2782 |
-
* Fixed: JavaScript anti-spam test for comments.
|
2783 |
-
|
2784 |
-
= 2.38 2014-03-27 =
|
2785 |
-
* Fixed: Registraion form submit time spam test.
|
2786 |
-
|
2787 |
-
= 2.36 2014-03-12 =
|
2788 |
-
* Reversed to patches from old revisions.
|
2789 |
-
|
2790 |
-
= 2.35 2014-03-12 =
|
2791 |
-
* New: Notifications about disabled account
|
2792 |
-
* New: Improved JavaScript spam test.
|
2793 |
-
* Fixed: Code optimization
|
2794 |
-
* Fixed: JavaScript test for signups.
|
2795 |
-
|
2796 |
-
= 2.33 2014-02-12 =
|
2797 |
-
* Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
|
2798 |
-
|
2799 |
-
= 2.32 2014-02-04 =
|
2800 |
-
* New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
|
2801 |
-
* New: At WordPress console added banner for notices.
|
2802 |
-
* Changed: Screenshots updated.
|
1 |
+
== Changelog ==
|
2 |
+
|
3 |
+
= 5.132.3 December 19 2019 =
|
4 |
+
* Fix: The disable comments functionality.
|
5 |
+
|
6 |
+
= 5.132.2 December 17 2019 =
|
7 |
+
* Fix: The disable comments functionality.
|
8 |
+
|
9 |
+
= 5.132.1 December 17 2019 =
|
10 |
+
* Fix: Fatal PHP error.
|
11 |
+
|
12 |
+
= 5.132 December 17 2019 =
|
13 |
+
* Fix: PHP 7.4 compability
|
14 |
+
* New: Settings and description for "disable comments" functionality.
|
15 |
+
* Mod: WooCommerce settings moved to separate block.
|
16 |
+
* Minor fixes.
|
17 |
+
* Spam protection improved.
|
18 |
+
|
19 |
+
= 5.131 December 6 2019 =
|
20 |
+
* Fix: WooCommerce registration.
|
21 |
+
* Fix: Auto update on Wordperss Multisite.
|
22 |
+
* Fix: URLs exceptions validation.
|
23 |
+
* New: Secuirty improved.
|
24 |
+
* Spam protection is improved.
|
25 |
+
* Minor fixes ond improvments.
|
26 |
+
|
27 |
+
= 5.130.1 November 20 2019 =
|
28 |
+
* Fix: Plugin autoupdate issues.
|
29 |
+
* FIx: Woocommerce checking.
|
30 |
+
* Fix: Correct IP detection.
|
31 |
+
* Fix: CSV export not working after update.
|
32 |
+
* Fix: QuickForms duplicates issues.
|
33 |
+
|
34 |
+
= 5.130 November 14 2019 =
|
35 |
+
* Fix: JetPack contact form JS check.
|
36 |
+
* FIx: Iphorm AJAX form.
|
37 |
+
* Fix: Paid Memberships Pro fix.
|
38 |
+
* Fix: Divi theme contact form fix.
|
39 |
+
* Integration: Paid Memberships Pro.
|
40 |
+
* Integration: Elementor Pro page builder forms.
|
41 |
+
* Improved: Compatibility with different server.
|
42 |
+
|
43 |
+
= 5.129.1 November 5 2019 =
|
44 |
+
* Fix: WooCommerce order detecting.
|
45 |
+
|
46 |
+
= 5.129 October 30 2019 =
|
47 |
+
* Upd: Localize updated.
|
48 |
+
* Fix: Direct $_SERVER access replaced.
|
49 |
+
* Integration: The 7 theme contact form.
|
50 |
+
* Fix: Minor improvements and bug fixes.
|
51 |
+
* Mod: Putting site in maintenance mode during plugin update.
|
52 |
+
|
53 |
+
= 5.128.1 October 23 2019 =
|
54 |
+
* Fix: Fatal error when using buffer output.
|
55 |
+
* Fix: Translate domain for errors.
|
56 |
+
* Code: Fix spelling in function name.
|
57 |
+
* Fix: JS disabled error.
|
58 |
+
* Upd: Comment edit screen updated.
|
59 |
+
* Fix: Cleantalk\Arr::search() fixed.
|
60 |
+
|
61 |
+
= 5.128 October 17 2019 =
|
62 |
+
* Mod: Users check - functionality updated.
|
63 |
+
* Fix: Users check - dates format updated.
|
64 |
+
* Mod: Comments check - functionality updated.
|
65 |
+
* Fix: Comments check - dates format updated.
|
66 |
+
* Fix: Fields exclusion fixed.
|
67 |
+
* Fix: Notice fixed.
|
68 |
+
* Fix: Cleantalk/Antispam/API.
|
69 |
+
* Fix: Minor improvements and bug fixes.
|
70 |
+
|
71 |
+
= 5.127.4 October 13 2019 =
|
72 |
+
* Mod: Automatically decrease amount of checked users by one request if an error occurs.
|
73 |
+
* Fix: Security issue.
|
74 |
+
* Fix: Static JS key.
|
75 |
+
|
76 |
+
= 5.127.3 October 8 2019 =
|
77 |
+
* Fix: Errors during registration.
|
78 |
+
|
79 |
+
= 5.127.2 October 8 2019 =
|
80 |
+
* Integration: SeedProd Coming Soon Page Pro.
|
81 |
+
* Fix: WooCommerce double reuqests.
|
82 |
+
* Fix: Static JS key.
|
83 |
+
|
84 |
+
= 5.127.1 October 7 2019 =
|
85 |
+
* Fix: WPMS settings logic.
|
86 |
+
* Using default database storage engine for tables.
|
87 |
+
|
88 |
+
= 5.127 September 30 2019 =
|
89 |
+
* Fix: Delete redirect notice on external forms
|
90 |
+
* Fix: Storing spam for 15 days.
|
91 |
+
* Fix: correct DiVi display message.
|
92 |
+
* Integration: Ultimate Members.
|
93 |
+
* Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
|
94 |
+
* Mod: Moving White Label option to main site settings.
|
95 |
+
* New: Use static JS key if cache plugin detected.
|
96 |
+
* New: Settings for URLs, fields, roles exclusions.
|
97 |
+
* New: Regular Expressions support in URLs, fields exclusions.
|
98 |
+
* New: Send validation errors on standard registration form.
|
99 |
+
* Updater: Move exclusions from global variable to settings.
|
100 |
+
* Deprecated: IP exclusions.
|
101 |
+
|
102 |
+
= 5.126 September 9 2019 =
|
103 |
+
* Spam protection improved!
|
104 |
+
* Integration: Option wheel.
|
105 |
+
* Mod: Improved Email detection.
|
106 |
+
* Mod: Improved IP detection.
|
107 |
+
* Fix: Too large database table with alternative sessions.
|
108 |
+
* Fix: Exception for WooCommerce AJAX.
|
109 |
+
* Fix: API key validation.
|
110 |
+
* Minor fixes.
|
111 |
+
|
112 |
+
= 5.125 August 26 2019 =
|
113 |
+
* Fix: PHP Notices.
|
114 |
+
* Fix: Auto update.
|
115 |
+
* Fix: Displaying protection status for IP license.
|
116 |
+
* Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
|
117 |
+
* Fix: API key validating.
|
118 |
+
* New: Complete deactivation setting.
|
119 |
+
|
120 |
+
= 5.124.1 August 8 2019 =
|
121 |
+
* Fix: Error on PHP 5.3.
|
122 |
+
|
123 |
+
= 5.124 August 8 2019 =
|
124 |
+
* Spam protection improved.
|
125 |
+
* Fix: SpamFireWall local database counter on Multisite.
|
126 |
+
* Fix: Caldera Forms integration.
|
127 |
+
* Fix: Settings "Use AJAX for JS check" description.
|
128 |
+
* Fix: Formidable integration.
|
129 |
+
* New: External forms check now independed from JavaScript.
|
130 |
+
* New: Setting Protect external - capture buffer.
|
131 |
+
* New: QuForm integration.
|
132 |
+
|
133 |
+
= 5.123 July 25 2019 =
|
134 |
+
* Fix: Plenty of minor fixes.
|
135 |
+
* Fix: wpDiscuz integration.
|
136 |
+
* Fix: Integration with bbPress.
|
137 |
+
* Fix: New comment email notification.
|
138 |
+
* New: Follow-Up Emails integration.
|
139 |
+
* Fix: Woocommerce integration.
|
140 |
+
* Fix: Spelling.
|
141 |
+
|
142 |
+
= 5.122 July 10 2019 =
|
143 |
+
* Spam Protection improved.
|
144 |
+
* Fix: Error while checking account status.
|
145 |
+
* Fix: Conflict with Elementor Pro.
|
146 |
+
* Fix: Integration with Ninja Forms.
|
147 |
+
* Fix: Integration with Formidable.
|
148 |
+
* New: Detecting mobile devices.
|
149 |
+
* New: Integration for Easy Forms for Mailchimp.
|
150 |
+
|
151 |
+
= 5.121 June 26 2019 =
|
152 |
+
* Fix: Translation typos.
|
153 |
+
* Fix: Woocommerce integration.
|
154 |
+
* Fix: Catching admin in AJAX queries.
|
155 |
+
* Mod: Session table (cleantalk_sessions) issue.
|
156 |
+
* Mod: Spam protection improved.
|
157 |
+
* Integration: Wilcity theme custom registration validation enabled
|
158 |
+
* New: Option "Use static JS key".
|
159 |
+
|
160 |
+
= 5.120.2 June 17 2019 =
|
161 |
+
* Fix: WPForms integration.
|
162 |
+
* Fix: Translation and spelling.
|
163 |
+
* Fix: Minor PHP error
|
164 |
+
|
165 |
+
= 5.120.1 June 6 2019 =
|
166 |
+
* Mod: Description for Search form protection.
|
167 |
+
* Fix: CSS and JS attachment.
|
168 |
+
* Fix: Undefined index error.
|
169 |
+
|
170 |
+
= 5.120 June 5 2019 =
|
171 |
+
* Fix: bbPress false positives.
|
172 |
+
* Fix: SpamFireWall check condition.
|
173 |
+
* Fix: SpamFireWall block page.
|
174 |
+
* Fix: Catch admin action via search form test.
|
175 |
+
* Fix: Catch admin action (AJAX).
|
176 |
+
* Mod: Using minified version of JS and CSS.
|
177 |
+
* Mod: Date format in statistics.
|
178 |
+
|
179 |
+
= 5.119.1 May 30 2019 =
|
180 |
+
* Fix: Helper class error.
|
181 |
+
|
182 |
+
= 5.119 May 30 2019 =
|
183 |
+
* Fix: No more second request after registration.
|
184 |
+
* Fix: Activation hook.
|
185 |
+
* Fix: Alternative sessions. Clear table.
|
186 |
+
* Fix: Stop capchuring AJAX requests in admin area.
|
187 |
+
* Fix: Spelling.
|
188 |
+
* Fix: Registration cookies set.
|
189 |
+
* Mod: SFW exdtended die page when testing.
|
190 |
+
* Mod: User-agent modified.
|
191 |
+
* New: Test search queries for spam.
|
192 |
+
* New: Gathering and output statistics.
|
193 |
+
|
194 |
+
= 5.118.4 May 13 2019 =
|
195 |
+
* Fix: SFW cookie. Set correct domain for subdomains.
|
196 |
+
* Fix: SFW update.
|
197 |
+
* Fix: IP detection.
|
198 |
+
* Fix: Triggering AJAX check in backend.
|
199 |
+
* Fix: Zero submit time on few forms.
|
200 |
+
|
201 |
+
= 5.118.3 April 29 2019 =
|
202 |
+
* Fix: Spam statistics in dashboard widget.
|
203 |
+
* Fix: IP detection.
|
204 |
+
* Fix: Double check AJAX integrated forms like Ninja Forms.
|
205 |
+
* Fix: Use url exclusions for AJAX forms.
|
206 |
+
|
207 |
+
= 5.118.2 April 25 2019 =
|
208 |
+
* Mod: Spam filtration quality improved.
|
209 |
+
* Mod: Store SFW cookie for 30 days.
|
210 |
+
* Mod: Server IP added to connection report.
|
211 |
+
* Fix: spam_stat is not defined.
|
212 |
+
|
213 |
+
= 5.118.1 April 19 2019 =
|
214 |
+
* Fix: Fatal error.
|
215 |
+
* Mod: Spam protection improved on registrations.
|
216 |
+
|
217 |
+
= 5.118 April 19 2019 =
|
218 |
+
* Fix: Cookies on registration page.
|
219 |
+
* Fix: Update fix.
|
220 |
+
* Fix: Wordpress built-in API.
|
221 |
+
* Fix: WooCommerce checkout form.
|
222 |
+
* Fix: UpdraftPlus. Saving settings.
|
223 |
+
* Fix: Convert Pro saving settings.
|
224 |
+
* Fix: UTF-8 Converting.
|
225 |
+
* Fix: GDPR notice.
|
226 |
+
* Fix: cleantalk_sessions table size reduced.
|
227 |
+
* Mod: Localization.
|
228 |
+
* Mod: Performance improved.
|
229 |
+
* Mod: SpamFierWall improvments.
|
230 |
+
* Mod: IP detection improved.
|
231 |
+
* Mod: JavaScript check rewised.
|
232 |
+
* New: Setting "Use alternative mechanism for cookies".
|
233 |
+
|
234 |
+
= 5.117.1 April 5 2019 =
|
235 |
+
* Fix: GDPR notice.
|
236 |
+
* Fix: noCacheJS localization.
|
237 |
+
* Fix: Fatal error when updating.
|
238 |
+
|
239 |
+
= 5.117 March 27 2019 =
|
240 |
+
* New: Update logic runs on all pages.
|
241 |
+
* New: Integration for Ajax Contact Forms plugin.
|
242 |
+
* New: Notification for users groups about new comments.
|
243 |
+
* New: SFW die page. Show browser and page creation time.
|
244 |
+
* Fix: Huge bug in Cleantalk.php connected with servers changing.
|
245 |
+
* Fix: Check AJAX requests for logged in users.
|
246 |
+
* Fix: Deleting debug in JS.
|
247 |
+
* Fix: Validating settings before saving.
|
248 |
+
|
249 |
+
= 5.116.3 March 14 2019 =
|
250 |
+
* Fix: "Headers already sent" error.
|
251 |
+
* Fix: Images paths.
|
252 |
+
* Fix: IP detection.
|
253 |
+
* Fix: Skip lost password form check
|
254 |
+
* Fix: Skip mobile requests (push settings)
|
255 |
+
* Fix: PHP notice when detecting BuddyPress template.
|
256 |
+
|
257 |
+
= 5.116.2 March 7 2019 =
|
258 |
+
* Fix: Creating tables in MariaDB.
|
259 |
+
|
260 |
+
= 5.116.1 March 6 2019 =
|
261 |
+
* Fix: Creating tables in DB.
|
262 |
+
* Fix: PHP Warning in spam statistics widget.
|
263 |
+
|
264 |
+
= 5.116 March 6 2019 =
|
265 |
+
* Spam filtration quality improved.
|
266 |
+
* New: Storing visited URLs.
|
267 |
+
* New: Check before validation Contact Form 7, Comments, Jetpack comments.
|
268 |
+
* New: Get validation result for Contact Form 7, Comments, Jetpack comments.
|
269 |
+
* Fix: ES add subscriber.
|
270 |
+
* Fix: IP detection.
|
271 |
+
|
272 |
+
= 5.115.2 February 27 2019 =
|
273 |
+
* Fix: False positives spam detection in WP Forms and Contact Form 7.
|
274 |
+
|
275 |
+
= 5.115.1 February 16 2019 =
|
276 |
+
* Fix: SpamFireWall's false positives.
|
277 |
+
|
278 |
+
= 5.115 February 14 2019 =
|
279 |
+
* Fix: Http_only flag for backend cookies.
|
280 |
+
* Fix: Spam filtration improved.
|
281 |
+
* New: IP detection improved.
|
282 |
+
* Fix: SpamFirewall update speeded up.
|
283 |
+
* New: False positives with caching solutions decreased.
|
284 |
+
* New: Opportunity to use Wordpress HTTP API to connect with Cloud.
|
285 |
+
|
286 |
+
= 5.114 January 31 2019 =
|
287 |
+
* New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
|
288 |
+
* Fix: Formidable: Adding small JS check when adding JS_key.
|
289 |
+
* Mod: layout of settings page.
|
290 |
+
* Mod: Banner logic altered.
|
291 |
+
|
292 |
+
= 5.113.2 January 18 2019 =
|
293 |
+
* Fix: "Settings" link returns to plugin page.
|
294 |
+
|
295 |
+
= 5.113.1 January 17 2019 =
|
296 |
+
* Fix: Conflict with CityTours theme.
|
297 |
+
* Fix: Error for Wordpress lower 4.7.
|
298 |
+
* Add: Spam protection: "Validate email for existence".
|
299 |
+
|
300 |
+
= 5.113 January 16 2019 =
|
301 |
+
* Fix: Fast and Simple Contact Form.
|
302 |
+
* Fix: Settings layout.
|
303 |
+
* Fix: Error with WooCommerce Quickview.
|
304 |
+
* Fix: Bitrix24 contact form.
|
305 |
+
* Fix: Request time decreased.
|
306 |
+
* Fix: Requesting account status when activating for IP licenses.
|
307 |
+
* Add: Precise AJAX request detection.
|
308 |
+
* Spam protection improved.
|
309 |
+
|
310 |
+
= 5.112 December 21 2018 =
|
311 |
+
* Fix: Woocommerce AJAX checkout form.
|
312 |
+
* Fix: Profile Builder Pro.
|
313 |
+
* Fix: DB structure improvements for WPMS.
|
314 |
+
* Spam filtering quality improved.
|
315 |
+
* Minor fixes.
|
316 |
+
|
317 |
+
= 5.111 December 13 2018 =
|
318 |
+
* Fix: Double request in JetPack contact form.
|
319 |
+
* Fix: Email notification about spam registration.
|
320 |
+
* Fix: Links button for feedback comments.
|
321 |
+
* Fix: Mail notification about plugin error.
|
322 |
+
* Fix: Key field output.
|
323 |
+
* Minor fixes.
|
324 |
+
|
325 |
+
= 5.110 November 29 2018 =
|
326 |
+
* Integration: BuddyPress ActivityWall spam protection.
|
327 |
+
* Add: GDPR setting for shortcode.
|
328 |
+
* Add: Support different BuddyPress templates on activity wall.
|
329 |
+
* Fix: Admin/moderator checking for validate post data.
|
330 |
+
|
331 |
+
= 5.109 November 15 2018 =
|
332 |
+
* Fix: Added URL and IP exclusions to Contact Form 7.
|
333 |
+
* Fix: js error when responseText is not exists
|
334 |
+
* Fix: Sitename when getting key automatically under WPMS.
|
335 |
+
* Mod: SpamFireWall is now fully compatible with WPMS.
|
336 |
+
* Mod: Setting 'Tell others about CleanTalk' was deleted.
|
337 |
+
* Mod: Protection from spam improved.
|
338 |
+
|
339 |
+
= 5.108.1 November 8 2018 =
|
340 |
+
* Fix: Errors with integration class.
|
341 |
+
|
342 |
+
= 5.108 November 7 2018 =
|
343 |
+
* Fix: White label mode.
|
344 |
+
* Fix: SpamFireWall now can be disabled.
|
345 |
+
* Fix: Layout.
|
346 |
+
* Integration: WPForms.
|
347 |
+
* Add: Message about block for all no integrated AJAX forms.
|
348 |
+
* Add: Displaying account name near api key.
|
349 |
+
|
350 |
+
= 5.107 October 29 2018 =
|
351 |
+
* Fix: Ninja Forms integration.
|
352 |
+
* Fix: Cookie usage.
|
353 |
+
* Add: Capturing AJAX responses from non integrated forms.
|
354 |
+
* Spam protection improved.
|
355 |
+
* Minor fixes.
|
356 |
+
|
357 |
+
= 5.106 October 11 2018 =
|
358 |
+
* Spam filtration improved.
|
359 |
+
* New: White Label mode.
|
360 |
+
* Modification: Warning message about test on SpamFireWall die page.
|
361 |
+
* Integration: WP Maintenance Mode.
|
362 |
+
* Fix: S2Member.
|
363 |
+
* Fix: JavaScript attachments reconsidered.
|
364 |
+
* Fix: Admin banners layout.
|
365 |
+
* Fix: Minor layout fixes.
|
366 |
+
|
367 |
+
= 5.105 September 26 2018 =
|
368 |
+
* Integration: Now bloking spam for QAEngine questions.
|
369 |
+
* Fix: Async http__request call.
|
370 |
+
* Fix: Unnecessary get_antispam_report_breif method call.
|
371 |
+
* Layout: Hide "Do you like Cleantlak?" when key is not ok.
|
372 |
+
* Layout: Minor fixes.
|
373 |
+
|
374 |
+
= 5.104 September 18 2018 =
|
375 |
+
* Fix: Error when saving settings.
|
376 |
+
* Fix: Trying update anti spam plugin for the first installation.
|
377 |
+
* Fix: Update system.
|
378 |
+
* Fix: Errors output.
|
379 |
+
* Fix: Plugin's settings under WPMS.
|
380 |
+
* Fix: SpamFireWall update.
|
381 |
+
* Fix: The server change system repaired.
|
382 |
+
* Mod: Cron saving tasks improved.
|
383 |
+
|
384 |
+
= 5.103.1 September 14 2018 =
|
385 |
+
* Fix: Error when saving settings.
|
386 |
+
* Fix: Error when getting key automatically.
|
387 |
+
|
388 |
+
= 5.103 September 13 2018 =
|
389 |
+
* Fix: Gravity Forms response message.
|
390 |
+
* Fix: SpamFireWall redirect to 404 page.
|
391 |
+
* Major anti-spam plugin improvement.
|
392 |
+
* Recombined setting page.
|
393 |
+
* Added error notification.
|
394 |
+
* Mod: S2 Members integration.
|
395 |
+
* Mod: Improved remote calls.
|
396 |
+
|
397 |
+
= 5.102 August 29 2018 =
|
398 |
+
* Fix: Users and comments check.
|
399 |
+
* Fix: Update from 5.70 or previous versions.
|
400 |
+
* Fix: GDPR public JS-script.
|
401 |
+
* Fix: Dashboard widget JS scripts attachment.
|
402 |
+
* Fix: WooCommerce "Place order" action.
|
403 |
+
* Mod: Notification logic altered.
|
404 |
+
* Mod: Users check table now has 'Signed up' column.
|
405 |
+
* Minor fixes.
|
406 |
+
|
407 |
+
= 5.101 August 10 2018 =
|
408 |
+
* Fix: Set cookie only for non-dashboard pages.
|
409 |
+
* Fix: Dashboard widget JS error.
|
410 |
+
* Fix: JavaScript error for some environment.
|
411 |
+
* Mod: Antispam protection accelerated for some pages.
|
412 |
+
|
413 |
+
= 5.100 July 30 2018 =
|
414 |
+
* Fix: JavaScript dependencies.
|
415 |
+
|
416 |
+
= 5.99.1 July 17 2018 =
|
417 |
+
* IP detection fixed and improved.
|
418 |
+
|
419 |
+
= 5.99 July 10 2018 =
|
420 |
+
* Fix: WooCommerce false positives.
|
421 |
+
* Fix: SpamFireWall IP detection.
|
422 |
+
* Minor fixes.
|
423 |
+
|
424 |
+
= 5.98 June 27 2018 =
|
425 |
+
* Fix: WooCommerce: Theme exclusion.
|
426 |
+
* Fix: Public GDPR JS code.
|
427 |
+
* Minor fixes.
|
428 |
+
|
429 |
+
= 5.97 June 7 2018 =
|
430 |
+
* Fix: Update system.
|
431 |
+
* Fix: Feedback from public page (admin only).
|
432 |
+
* Fix: Users and comment check: API error.
|
433 |
+
* Fix: Too many negative reports. (Too big ct_data option)
|
434 |
+
* Fix: SpamFireWall: Infinite redirection on the blocking page.
|
435 |
+
* Minor fixes.
|
436 |
+
|
437 |
+
= 5.96 May 22 2018 =
|
438 |
+
* Fix: Update system.
|
439 |
+
* Mod: Reset all counters button in admin bar.
|
440 |
+
* Mod: GDPR compliance.
|
441 |
+
* Minor fixes.
|
442 |
+
|
443 |
+
= 5.95.1 May 3 2018 =
|
444 |
+
* Fix: "Get key automatically" button display logic.
|
445 |
+
* Fix: PHP notices.
|
446 |
+
|
447 |
+
= 5.95 May 2 2018 =
|
448 |
+
* Spam filtration improved.
|
449 |
+
* Fix: Public widget layout.
|
450 |
+
* Fix: Connection reports output.
|
451 |
+
* Minor fixes.
|
452 |
+
|
453 |
+
= 5.94 April 23 2018 =
|
454 |
+
* Mod: Async load option for JS.
|
455 |
+
* Mod: JS scripts loading is conditional.
|
456 |
+
* Fix: IP detection.
|
457 |
+
* Fix: IP detection.
|
458 |
+
* Fix: Javascript error.
|
459 |
+
|
460 |
+
= 5.93.1 April 9 2018 =
|
461 |
+
* Fix: Fatal error on PHP 5.5 or lower.
|
462 |
+
|
463 |
+
= 5.93 April 9 2018 =
|
464 |
+
* Fix: Spam FireWall IP detection.
|
465 |
+
* Fix: Contact Form 7. False positives.
|
466 |
+
* Mod: Autoupdate function improved.
|
467 |
+
* Minor fixes.
|
468 |
+
|
469 |
+
= 5.92.2 March 23 2018 =
|
470 |
+
* Fix: Error if cURL extension is disabled.
|
471 |
+
|
472 |
+
= 5.92.1 March 23 2018 =
|
473 |
+
* Fix: Spelling
|
474 |
+
* Fix: Fatal error if cURL extension is disabled.
|
475 |
+
|
476 |
+
= 5.92 March 22 2018 =
|
477 |
+
* IP detection improved.
|
478 |
+
* Fix: SSL connection.
|
479 |
+
* Fix: False positives spam detection in Contact Form 7.
|
480 |
+
* Minor fixes.
|
481 |
+
|
482 |
+
= 5.91 March 15 2018 =
|
483 |
+
* Fix: Errors for PHP compiled without XML support.
|
484 |
+
* Fix: Spelling and translation.
|
485 |
+
* Stability increased.
|
486 |
+
* Minor fixes.
|
487 |
+
|
488 |
+
= 5.90 March 7 2018 =
|
489 |
+
* Improvement: Better IP recognition in Spam FireWall.
|
490 |
+
* Fix: Gravity Froms blocking message.
|
491 |
+
* Security improvments.
|
492 |
+
* Minor fixes.
|
493 |
+
|
494 |
+
= 5.89 February 21 2018 =
|
495 |
+
* Improved spam filtration quality.
|
496 |
+
* Improved compatibility.
|
497 |
+
* Public widget: Styles and referral link added.
|
498 |
+
* Dashboard widget: revised and fixed.
|
499 |
+
* Minor fixes.
|
500 |
+
|
501 |
+
= 5.88 February 12 2018 =
|
502 |
+
* Integration: ConvertPro.
|
503 |
+
* Improvement: Search for visitor's names in request.
|
504 |
+
* Fix: Contact Form 7 message recognition.
|
505 |
+
* Preparation for the remote plugin update.
|
506 |
+
* Minor fixes.
|
507 |
+
|
508 |
+
= 5.87 February 2 2018 =
|
509 |
+
* Filtration quality improved.
|
510 |
+
* Fix: WP Foto Vote downloading images.
|
511 |
+
* Fix: Fatal error for unsupported PHP 5.2.
|
512 |
+
* Fix: Formidable Forms improved spam filtration.
|
513 |
+
|
514 |
+
= 5.86 January 25 2018 =
|
515 |
+
* Fix: High CPU load with wp-ajax.php.
|
516 |
+
* Fix: Mailpoet: Newsletter.
|
517 |
+
* Fix: Gravity: Forms standardization for input fields.
|
518 |
+
* Fix: ajax hook checks data for contact form.
|
519 |
+
* Fix: UTF8 character in requests.
|
520 |
+
|
521 |
+
= 5.85 January 11 2018 =
|
522 |
+
* Fix: Fast Secure contact form spam block message.
|
523 |
+
* Fix: IP license status.
|
524 |
+
* Layout: Dashboard widget description altered.
|
525 |
+
|
526 |
+
= 5.84 December 26 2017 =
|
527 |
+
* Integration: PeepSo contact form
|
528 |
+
* Repared: Feedback from comments page.
|
529 |
+
* Fix: mb_* functions used only if exists.
|
530 |
+
* Fix: Gravity forms: Multi-page form logic repared.
|
531 |
+
* Fix: Gravity forms: AJAX form logic repared.
|
532 |
+
* Minor fixes.
|
533 |
+
|
534 |
+
= 5.83.2 December 19 2017 =
|
535 |
+
* Fix: Error in base class.
|
536 |
+
|
537 |
+
= 5.83.1 December 19 2017 =
|
538 |
+
* Fix: CDN IP detection.
|
539 |
+
|
540 |
+
= 5.83 December 19 2017 =
|
541 |
+
* Improving: Stability and compatibility.
|
542 |
+
* Improving: Spam protection.
|
543 |
+
* Fix: Comments logic filtration.
|
544 |
+
* Fix: Admin bar counter.
|
545 |
+
* Minor errors fixes.
|
546 |
+
|
547 |
+
= 5.82.1 December 7 2017 =
|
548 |
+
* Fixed minor error with attaching JS and CSS files.
|
549 |
+
|
550 |
+
= 5.82 December 4 2017 =
|
551 |
+
* Plugin doesn't use PHP sessions anymore.
|
552 |
+
* Bug fixes.
|
553 |
+
* Improved update logic.
|
554 |
+
|
555 |
+
= 5.81 November 22 2017 =
|
556 |
+
* Fixed error with "Show/Hide key" button.
|
557 |
+
* Slightly improved spam protection for all forms.
|
558 |
+
* Small errors fixes.
|
559 |
+
|
560 |
+
= 5.80 November 3 2017 =
|
561 |
+
* Spam protection improved.
|
562 |
+
* Improved filtration quality for WooCommerce checkout.
|
563 |
+
* Minor fixes for Spam FireWall.
|
564 |
+
|
565 |
+
= 5.79 October 26 2017 =
|
566 |
+
* Spam protection improved.
|
567 |
+
* Fixed issue with existing spam comments check.
|
568 |
+
* Added posibility to exclude IP from check.
|
569 |
+
* Minor fixes.
|
570 |
+
|
571 |
+
= 5.78 October 16 2017 =
|
572 |
+
* Improved compatibility with themes. Changed core functions prefix.
|
573 |
+
* Fixed issue with WooCommerce checkout.
|
574 |
+
* Spam protection improved.
|
575 |
+
* Minor fixes.
|
576 |
+
|
577 |
+
= 5.77 October 2 2017 =
|
578 |
+
* Connection report's system.
|
579 |
+
* Integration for CouponXXL Theme.
|
580 |
+
* Fixed issue with mb_* functions.
|
581 |
+
* Banners logic updated.
|
582 |
+
|
583 |
+
= 5.76 September 20 2017 =
|
584 |
+
* Fixed issue with Spam FireWall and caching plugins.
|
585 |
+
* Banners logic updated.
|
586 |
+
|
587 |
+
= 5.75 September 15 2017 =
|
588 |
+
* Pause feature for users/comments spam check.
|
589 |
+
* Improved protection from spam.
|
590 |
+
* Small fixes.
|
591 |
+
|
592 |
+
= 5.74.2 September 2 2017 =
|
593 |
+
* Fix for users spam check for PHP 5.3 and lower.
|
594 |
+
|
595 |
+
= 5.74.1 September 2 2017 =
|
596 |
+
* Fix for the update system and cloud communication.
|
597 |
+
* Added possibility to check users and comments for spam with a specific date range.
|
598 |
+
|
599 |
+
= 5.74 August 31 2017 =
|
600 |
+
* Users and comments spam check: Two check types (fast and accurate).
|
601 |
+
* Fix for WooCommerce checkout test.
|
602 |
+
* Minor fixes.
|
603 |
+
|
604 |
+
= 5.73 August 11 2017 =
|
605 |
+
* Fix for spam check for already existed users and comments.
|
606 |
+
* Spam FireWall updated.
|
607 |
+
* Layout fix for BT Comments.
|
608 |
+
* Minor fixes.
|
609 |
+
|
610 |
+
= 5.72 July 27 2017 =
|
611 |
+
* Improved spam check for existed users and comments.
|
612 |
+
* Minor fixes.
|
613 |
+
|
614 |
+
= 5.71 July 20 2017 =
|
615 |
+
* Improved spam protection for external forms.
|
616 |
+
* Optimization.
|
617 |
+
* Minor fixes.
|
618 |
+
|
619 |
+
= 5.70.2 July 17 2017 =
|
620 |
+
* Fix for Spam FireWall for Multisite.
|
621 |
+
|
622 |
+
= 5.70.1 July 17 2017 =
|
623 |
+
* Fix for Spam FireWall.
|
624 |
+
* Spam detection improved.
|
625 |
+
|
626 |
+
= 5.70 July 13 2017 =
|
627 |
+
* New updater logic.
|
628 |
+
* Self cron system.
|
629 |
+
* Improved AMP compatibility.
|
630 |
+
* Optimization.
|
631 |
+
* Fixed users and comments spam check.
|
632 |
+
* Fixed layout for Comment's feedback from public page.
|
633 |
+
* Updated Spam FireWall.
|
634 |
+
* SFW: Spam FireWall counter now work in real-time.
|
635 |
+
* SFW: Improved compatibility with different Data Bases.
|
636 |
+
|
637 |
+
= 5.69 July 3 2017 =
|
638 |
+
* Reviewer - integration.
|
639 |
+
* Optimization for Users and Comments check for big databases.
|
640 |
+
* Errors fixes.
|
641 |
+
* Improved protection from spam.
|
642 |
+
|
643 |
+
= 5.68 June 22 2017 =
|
644 |
+
* Contact Form for WordPress - Ultimate Form Builder Lite - integration.
|
645 |
+
* Contact Bank - Contact Forms Builder - integration.
|
646 |
+
* Smart Forms - integration.
|
647 |
+
* cformsII - integration.
|
648 |
+
* Contact Form by Web-Settler - integration.
|
649 |
+
* Error fixes.
|
650 |
+
|
651 |
+
= 5.67.3 June 9 2017 =
|
652 |
+
* Fixed JS attachment error.
|
653 |
+
|
654 |
+
= 5.67.2 June 5 2017 =
|
655 |
+
* Fixed error with IP determination.
|
656 |
+
|
657 |
+
= 5.67.1 June 4 2017 =
|
658 |
+
* Fixed JS error in 5.67 version.
|
659 |
+
* Integrations: Enfold theme, Convertplug.
|
660 |
+
* Links to check for Emails/IP for spam.
|
661 |
+
* Control comments and feedback about them from public post's page.
|
662 |
+
* Improved connection stability with cloud service.
|
663 |
+
* Spam protection improved.
|
664 |
+
* Other small fixes.
|
665 |
+
|
666 |
+
= 5.67 June 1 2017 =
|
667 |
+
* Integrations: Enfold theme, Convertplug.
|
668 |
+
* Links to check for Emails/IP for spam.
|
669 |
+
* Control comments and feedback about them from public post's page.
|
670 |
+
* Improved connection stability with cloud service.
|
671 |
+
* Spam protection improved.
|
672 |
+
* Other small fixes.
|
673 |
+
|
674 |
+
= 5.66 May 23 2017 =
|
675 |
+
* Spam protection improved.
|
676 |
+
* Major fixes for users and comments spam check.
|
677 |
+
* Added feedback from Wordpress comments list.
|
678 |
+
* Fix for "internal forms check" option.
|
679 |
+
* Fixed issue with caching Spam FireWall die page.
|
680 |
+
* Other small fixes.
|
681 |
+
|
682 |
+
= 5.65 May 16 2017 =
|
683 |
+
* Fix for PayPal redirecton.
|
684 |
+
* Fixed issue with empty query for bulk comments test.
|
685 |
+
* Added protection for Enfold contact form.
|
686 |
+
* Ninja forms integration.
|
687 |
+
|
688 |
+
= 5.64 April 26 2017 =
|
689 |
+
* Integration for Facebook registrations.
|
690 |
+
* Small fixes for WPMS.
|
691 |
+
* Fix for Activecampaign service.
|
692 |
+
* Fix for check spam users.
|
693 |
+
* Fixed rare notice Notice: Undefined index: REQUEST_URI
|
694 |
+
|
695 |
+
= 5.63 April 20 2017 =
|
696 |
+
* Fix for the dashboard spam stat widget.
|
697 |
+
* Added translation posibility for all text.
|
698 |
+
|
699 |
+
= 5.62 April 17 2017 =
|
700 |
+
* Fix for the dashboard spam statistics widget.
|
701 |
+
* Fix for users spam check.
|
702 |
+
* Small appearance changes.
|
703 |
+
|
704 |
+
= 5.61 April 6 2017 =
|
705 |
+
* Improved filtration.
|
706 |
+
* Additional logic for the form recognizing.
|
707 |
+
* Integration: Divi Theme Contact Form.
|
708 |
+
* Fix: Gravity Forms multipages forms.
|
709 |
+
* Stat Widget: Minor fixes.
|
710 |
+
* Added possibility to download results of the users check in CSV format.
|
711 |
+
* Alteration for settings page (footer).
|
712 |
+
|
713 |
+
= 5.60.1 March 29 2017 =
|
714 |
+
* Fixed error function 'locale_get_display_region' no exists.
|
715 |
+
|
716 |
+
= 5.60 March 29 2017 =
|
717 |
+
* Added main dashboard widget with spam sctivity stats.
|
718 |
+
* Mailster - integration.
|
719 |
+
* Base class updated.
|
720 |
+
|
721 |
+
= 5.59 March 24 2017 =
|
722 |
+
* Users/comments check fix.
|
723 |
+
* Plugin's name changed to Anti-Spam by CleanTalk.
|
724 |
+
* Trial banner is dismissable. Disapear for 24h or till logout.
|
725 |
+
* Settings modified (Auto testing failed warning).
|
726 |
+
* Mailing(inactive key) interval increased to 6 hours.
|
727 |
+
|
728 |
+
= 5.58.6 March 16 2017 =
|
729 |
+
* Fix for Ninja forms (protection updated).
|
730 |
+
* Fix for QA Theme.
|
731 |
+
* Fix for RSVP form.
|
732 |
+
* Setting changes (Spam FireWall).
|
733 |
+
* Improved debug section.
|
734 |
+
* Improved gathering data function.
|
735 |
+
* Minor fixes.
|
736 |
+
|
737 |
+
= 5.58.5 March 6 2017 =
|
738 |
+
* Minor backend fix.
|
739 |
+
|
740 |
+
= 5.58.4 March 6 2017 =
|
741 |
+
* Users check fix (redirect after the check).
|
742 |
+
* Fixed PHP Notice "HTTP_REFERER" is unset.
|
743 |
+
* Updated Notice logic.
|
744 |
+
|
745 |
+
= 5.58.3 February 28 2017 =
|
746 |
+
* Bitrix24 Contact form integration.
|
747 |
+
* Users/comments check fix.
|
748 |
+
* Spam sorting updated.
|
749 |
+
* Banner showing logic.
|
750 |
+
|
751 |
+
= 5.58.2 February 17 2017 =
|
752 |
+
* Cron fix for daily report.
|
753 |
+
|
754 |
+
= 5.58.1 February 16 2017 =
|
755 |
+
* Minor fixes.
|
756 |
+
|
757 |
+
= 5.58 February 15 2017 =
|
758 |
+
* Work without access key
|
759 |
+
* Bitrix24 contact integration
|
760 |
+
* Issues fixes
|
761 |
+
|
762 |
+
= 5.57.1 February 8 2017 =
|
763 |
+
* Fix for notice logic.
|
764 |
+
|
765 |
+
= 5.57 February 8 2017 =
|
766 |
+
* Setting page changes.
|
767 |
+
* Bug fixes for WooCommerce.
|
768 |
+
* Spam FireWall filters only GET requests.
|
769 |
+
* Optimization.
|
770 |
+
* Minor and major fixes.
|
771 |
+
|
772 |
+
= 5.56.1 January 25 2017 =
|
773 |
+
* Minor fixes
|
774 |
+
|
775 |
+
= 5.56 January 19 2017 =
|
776 |
+
* Integrations: MailChimp Premium, Profile Press.
|
777 |
+
* Changes comments flow.
|
778 |
+
* FireWall updater fix.
|
779 |
+
* Users check optimization.
|
780 |
+
|
781 |
+
= 5.55 December 23 2016 =
|
782 |
+
* Integrations: Caldera Forms, Visual Form Builder.
|
783 |
+
* Fix for different 'cookies' header names.
|
784 |
+
* Fixed user deletion.
|
785 |
+
|
786 |
+
= 5.54 December 12 2016 =
|
787 |
+
* Integrations: AmoForms, Contact Form Clean and Simple.
|
788 |
+
* Comments check logic refreshed.
|
789 |
+
* Registration JS error fix.
|
790 |
+
* Users check fix.
|
791 |
+
* Fix for translation system.
|
792 |
+
* Minor fixes.
|
793 |
+
|
794 |
+
= 5.53.1 December 9 2016 =
|
795 |
+
* Minor layout fixes.
|
796 |
+
|
797 |
+
= 5.53 November 28 2016 =
|
798 |
+
* Addition warning before deleting users.
|
799 |
+
* Spam FireWall is enabled by default.
|
800 |
+
* Usernoise modal feedback / contact form : integration.
|
801 |
+
* Translations.
|
802 |
+
* Optimization.
|
803 |
+
* Fixes.
|
804 |
+
|
805 |
+
= 5.52.1 November 14 2016 =
|
806 |
+
* Users and comments check: Using new API method.
|
807 |
+
* Quick Contact From: Integration via "Custom Contact Forms" setting.
|
808 |
+
* JavaScript filtration improved.
|
809 |
+
* Translation changes.
|
810 |
+
* Optimized JavaScript code.
|
811 |
+
|
812 |
+
= 5.51 November 2 2016 =
|
813 |
+
* Added protection for internal forms
|
814 |
+
* Immediate spam check for comments and users from WP dashboard
|
815 |
+
* Optimized code
|
816 |
+
|
817 |
+
= 5.50.1 October 24 2016 =
|
818 |
+
* Improved filtration in contact forms.
|
819 |
+
* Spam FireWall: Fixed issue with SFW logs
|
820 |
+
* Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
|
821 |
+
|
822 |
+
= 5.50 October 20 2016 =
|
823 |
+
* Custom contact forms: integration.
|
824 |
+
* Pirate Forms: integration.
|
825 |
+
* PHP 7 compatibility: Deleted third-party JSON library and dependences.
|
826 |
+
* PHP 7 compatibility: Fixed end of lines.
|
827 |
+
* YOAST Seo: Fixed PHP warnings.
|
828 |
+
* Spam FireWall: Minor fix for Spam FireWall counter.
|
829 |
+
* Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
|
830 |
+
* Improved filtration in contact forms.
|
831 |
+
|
832 |
+
= 5.49.2 October 5 2016 =
|
833 |
+
* Second Fix for database error. Stable version.
|
834 |
+
|
835 |
+
= 5.49.1 October 5 2016 =
|
836 |
+
* Fixed database error.
|
837 |
+
|
838 |
+
= 5.49 October 3 2016 =
|
839 |
+
* Spam FireWall feature: Class upgraded.
|
840 |
+
* New feature: Delete links from approved comments.
|
841 |
+
* Settings: Grouped.
|
842 |
+
* Settings: Altered description fixed spelling mistakes.
|
843 |
+
* Settings: Added indicator for Spam FireWall.
|
844 |
+
* Admin bar: Added Spam FireWall counter
|
845 |
+
* Clean and Simple Contact Form: Direct integration.
|
846 |
+
* WooCommerce: Don't check password recovery form.
|
847 |
+
* WooCommerce Wishlists: Issue with check for Google bots.
|
848 |
+
* JetPack: contact form fix.
|
849 |
+
* Fixed and created the defaults for all CleanTalk options.
|
850 |
+
* Fixed spelling mistakes.
|
851 |
+
|
852 |
+
= 5.48 September 15 2016 =
|
853 |
+
* buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
|
854 |
+
* buddyPress: Added option in settings for private messages check.
|
855 |
+
* WooCommerce Wishlist: Added check for wishlists.
|
856 |
+
* Fixed issue with "check all post data" option.
|
857 |
+
* Improved filtering for Gravity Forms
|
858 |
+
* Mobile Assistant Connector fix
|
859 |
+
* Minor fixes.
|
860 |
+
|
861 |
+
= 5.47 September 5 2016 =
|
862 |
+
* WooCommerce: direct integration for checkout form.
|
863 |
+
* WooCommerce Sensei: login form fix.
|
864 |
+
* bbPress: Added the check for topics and comments with stop_words
|
865 |
+
* bbPress: Skip check for admin in comments and topics
|
866 |
+
* UserPro: fixes. Request without field "shortcode"
|
867 |
+
* Contact Form 7: Bug fix.
|
868 |
+
* Spam FireWall: Optimized logs rotation.
|
869 |
+
* Updated inner functions (compatibility fix for PHP 5.4+)
|
870 |
+
* Fixed output of counters (without spamfirewall stats)
|
871 |
+
* Fixed spelling in settings
|
872 |
+
* Added "Delete from the list" button in comments spam check page
|
873 |
+
* Minor fixes.
|
874 |
+
|
875 |
+
= 5.46 August 17 2016 =
|
876 |
+
* Fixed issue with admin bar links in WP Multi Network mode.
|
877 |
+
* Added "All time counter" and "Daily counter" into admin bar.
|
878 |
+
* Added settings to disable counters in admin bar.
|
879 |
+
* New style for "Get access key manually" button.
|
880 |
+
|
881 |
+
= 5.45.2 August 4 2016 =
|
882 |
+
* Added Anti-Spam protection for Quick Event Manager.
|
883 |
+
* Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more than 30 days ago.
|
884 |
+
* Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
|
885 |
+
* Minor fix function to get the API key.
|
886 |
+
|
887 |
+
= 5.45.1 July 26 2016 =
|
888 |
+
* Fixed issue with missed spam messages, subscriptions.
|
889 |
+
* Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more than 30 days ago.
|
890 |
+
|
891 |
+
= 5.45 July 21 2016 =
|
892 |
+
* Optimized bulk spam comments deletion.
|
893 |
+
* Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
|
894 |
+
* Added links to bulk spam comments&users removal tool.
|
895 |
+
|
896 |
+
= 5.44.1 July 13 2016 =
|
897 |
+
* Optimized options getting code.
|
898 |
+
* Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
|
899 |
+
|
900 |
+
= 5.43.2 June 30 2016 =
|
901 |
+
* Optimized anti-spam code for AJAX based contact forms.
|
902 |
+
* Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
|
903 |
+
|
904 |
+
= 5.43.1 June 23 2016 =
|
905 |
+
* Added agent version in requests to test a connection between the website and servers.
|
906 |
+
* Fixed issue with PHP notices in cleantalk-admin.php.
|
907 |
+
|
908 |
+
= 5.43 June 22 2016 =
|
909 |
+
* Added spam protection for registrations via 'Login with AJAX' plug-in.
|
910 |
+
* Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
|
911 |
+
* Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
|
912 |
+
* Fixed issue with spam protection for nested forms by Formidable plug-in.
|
913 |
+
|
914 |
+
= 5.42 2016-06-15 =
|
915 |
+
* Added anti-spam protection for UserPro.
|
916 |
+
* Improved protection for Formidable forms + Varnish.
|
917 |
+
* Improved bulk search for spam accounts.
|
918 |
+
* Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
|
919 |
+
* Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
|
920 |
+
* Minor fixes in plugin backend.
|
921 |
+
|
922 |
+
= 5.41 2016-05-31 =
|
923 |
+
* Added HTTP response in plugin response if an network issue was happend.
|
924 |
+
* Optimized JavaScript anti-spam test for Formidable forms.
|
925 |
+
* Re-stored the option to auto redirect to plugn settings after plugin activation.
|
926 |
+
* Updated Spanish, Russian translations.
|
927 |
+
* Fixed issue with nasted fields in Formidable forms.
|
928 |
+
|
929 |
+
= 5.40.3 2016-05-26 =
|
930 |
+
* Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
|
931 |
+
* Added JSON encoding for AJAX forms.
|
932 |
+
* Obfuscated private data for Custom contact forms option.
|
933 |
+
* Optimized bulk users check for spam over blacklists database.
|
934 |
+
* Fixed issue with lost connection to servers and JavaScript anti-spam test.
|
935 |
+
* Fixed issue with WordFence and collect_details.
|
936 |
+
|
937 |
+
= 5.40.2 2016-05-11 =
|
938 |
+
* Improved account status check logic.
|
939 |
+
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
940 |
+
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
941 |
+
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
942 |
+
|
943 |
+
= 5.40.1 2016-04-28 =
|
944 |
+
* Fixed issue with Super Socializer.
|
945 |
+
* Fixed issue with spam filtration for logged in users and Formidable forms.
|
946 |
+
* Added logging of all submitted fields for FastSecure contact form.
|
947 |
+
|
948 |
+
= 5.40 2016-04-19 =
|
949 |
+
* Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
|
950 |
+
* Minor fix in plugin settings.
|
951 |
+
* Fixed pagination for bulk users spam test.
|
952 |
+
* Fixed issue with unknown _SESSION.
|
953 |
+
* Fixed issue with double Spam FireWall database upload.
|
954 |
+
|
955 |
+
= 5.39.1 2016-04-04 =
|
956 |
+
* Improved AJAX based anti-spam test with HTTPS backends.
|
957 |
+
* Added fix to avoid issue with empty ct_info_flag on JavaScript side.
|
958 |
+
* Added logic to exclude caching for Spam FireWall.
|
959 |
+
* Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
|
960 |
+
|
961 |
+
= 5.38.1 2016-03-24 =
|
962 |
+
* Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
|
963 |
+
* Removed Spam FireWall protection on /feed page.
|
964 |
+
* Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
|
965 |
+
* Added reject notice for spam submissions on Gravity forms with AJAX calls.
|
966 |
+
|
967 |
+
= 5.37.3 2016-03-10 =
|
968 |
+
* Fixed bug with broken MailPoet previews.
|
969 |
+
* Fixed bug with broken Geo My WP pop-up windows.
|
970 |
+
* Fixed issue with mb_convert_encoding() function.
|
971 |
+
* Removed double JavaScript code in front-end.
|
972 |
+
* Removed unused variables in anti spam logic.
|
973 |
+
* Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms.
|
974 |
+
* Added anti-spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
|
975 |
+
|
976 |
+
= 5.36.1 2016-02-05 =
|
977 |
+
* Fixed bug, when users receive error after logging in
|
978 |
+
* Improve anti-spam filters for contact forms.
|
979 |
+
|
980 |
+
= 5.36 2016-02-04 =
|
981 |
+
* Improved JavaScript anti spam protection
|
982 |
+
* Improvements for avoiding blocking requests from payment systems
|
983 |
+
|
984 |
+
= 5.35 2016-01-14 =
|
985 |
+
* Added support for IP licensing
|
986 |
+
* Some anti-spam protection improvements
|
987 |
+
* Small backend interface fixes
|
988 |
+
|
989 |
+
= 5.34.1 2015-12-17 =
|
990 |
+
* Fixed trackback antispam protection: improved checking mechanism
|
991 |
+
* Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
|
992 |
+
|
993 |
+
= 5.34 2015-12-10 =
|
994 |
+
* Improved spam checking mechanism
|
995 |
+
* Added "Collect browser details" option for better antispam protection
|
996 |
+
* Fixed custom contact forms checking for AJAX requests
|
997 |
+
* Minor translations fixes
|
998 |
+
|
999 |
+
= 5.33.1 2015-12-04 =
|
1000 |
+
* Fixed issue with BBPress: restored old user permission checking mechanism
|
1001 |
+
* Fixed anti-spam comments checking: sometimes get_comments returned wrong comments number
|
1002 |
+
* Fixed bulk checking: made numeric indexes in users and comments arrays
|
1003 |
+
* Fixed trackback and pingback checking: removed exception for checking
|
1004 |
+
|
1005 |
+
= 5.33 2015-12-01 =
|
1006 |
+
* Backend interface fixes
|
1007 |
+
* Improved Spam FireWall efficiency
|
1008 |
+
* Improved performance of anti spam checking
|
1009 |
+
|
1010 |
+
= 5.32 2015-11-26 =
|
1011 |
+
* Added improvements for manual spam detection
|
1012 |
+
* Fixed errors in backend
|
1013 |
+
* Fixed bulk users anti spam checking
|
1014 |
+
* Added indicator for bulk spam checking
|
1015 |
+
* Added "Get access key automatically" button
|
1016 |
+
|
1017 |
+
= 5.31 2015-11-11 =
|
1018 |
+
* Improved backend performance
|
1019 |
+
* Fixed counter of approved/blocked spam attacks
|
1020 |
+
* Fixed Spam FireWall logging
|
1021 |
+
|
1022 |
+
= 5.30 2015-11-05 =
|
1023 |
+
* Improved anti-spam checking
|
1024 |
+
* Optimized performance
|
1025 |
+
* Fixed blocking email preview in MailPoet
|
1026 |
+
* Interface fixes
|
1027 |
+
* WPMU interface fixes
|
1028 |
+
|
1029 |
+
= 5.29 2015-10-27 =
|
1030 |
+
* Optimized performance
|
1031 |
+
* Fixed bugs in custom contact forms spam checking
|
1032 |
+
|
1033 |
+
= 5.28.7 2015-10-23 =
|
1034 |
+
* Optimized PHP sessions creation algorithm. This fix should increase plugin perfomance on hostings without retenion of PHP sessions files.
|
1035 |
+
* Removed autoredirection to plugin settings after plugin activation.
|
1036 |
+
|
1037 |
+
= 5.28 2015-10-16 =
|
1038 |
+
* Fixed errors in anti-spam checking
|
1039 |
+
* Restored options for spam checking registrations and cpmmon contact forms
|
1040 |
+
* Improved spam protection
|
1041 |
+
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
1042 |
+
|
1043 |
+
= 5.27 2015-10-13 =
|
1044 |
+
* Improvements in SpamFireWall feature
|
1045 |
+
* Code optimization
|
1046 |
+
* Backend interface fixes
|
1047 |
+
|
1048 |
+
= 5.26 2015-10-05 =
|
1049 |
+
* Added WordPress Language Pack support
|
1050 |
+
* Removed spam checking for some autorisation plugins
|
1051 |
+
* New experimental feature: SpamFireWall
|
1052 |
+
|
1053 |
+
= 5.25.2 2015-09-28 =
|
1054 |
+
* Fixed backend bug
|
1055 |
+
|
1056 |
+
= 5.25.1 2015-09-28 =
|
1057 |
+
* Added widget with anti-spam stats
|
1058 |
+
* Added information about blocked spam attacks in admin dashboard and CleanTalk settings
|
1059 |
+
* Added ability not to check comments for users with 3 or above allowed comments
|
1060 |
+
* Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
|
1061 |
+
* Some backend interface settings
|
1062 |
+
|
1063 |
+
= 5.24.1 2015-09-16 =
|
1064 |
+
* Fixed some errors in frontend
|
1065 |
+
* Fixed access key saving
|
1066 |
+
|
1067 |
+
= 5.24 2015-09-14 =
|
1068 |
+
* Backend interface fixes
|
1069 |
+
* Improvement for AJAX JavaScript spam checking
|
1070 |
+
|
1071 |
+
= 5.23 2015-09-01 =
|
1072 |
+
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
1073 |
+
* Some interface fixes of bulk users & comments spam checking
|
1074 |
+
|
1075 |
+
= 5.22 2015-08-26 =
|
1076 |
+
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
1077 |
+
|
1078 |
+
= 5.21 2015-08-21 =
|
1079 |
+
* Fixed bug with skipping spam submissions
|
1080 |
+
* Fixed bug with receiving old user_token for viewing anti-spam stats
|
1081 |
+
* Small backend fixes
|
1082 |
+
|
1083 |
+
= 5.20 2015-08-15 =
|
1084 |
+
* Fixed anti-spam stats in admin bar - now stats updates every hour
|
1085 |
+
* Fixed issue with skipping spam submissions
|
1086 |
+
* Added some PHP-constants for advanced users - CLEANTALK_AJAX_USE_BUFFER and CLEANTALK_AJAX_USE_FOOTER_HEADER can be defined to true or false in wp-config.php to control method, which will be used for injection of AJAX script.
|
1087 |
+
|
1088 |
+
= 5.19 2015-08-11 =
|
1089 |
+
* New feature: anti-spam checking for registered users
|
1090 |
+
* Fixed issue with AJAX JavaScript anti-spam test.
|
1091 |
+
* Fixed issue with SEO Yoast xml sitemaps and JavaScript anti-spam test.
|
1092 |
+
|
1093 |
+
= 5.18 2015-08-04 =
|
1094 |
+
* Fixed issue with user_token
|
1095 |
+
* Added anti-spam API, see our FAQ
|
1096 |
+
|
1097 |
+
= 5.17 2015-07-23 =
|
1098 |
+
* Fixed infinite redirection after activation
|
1099 |
+
* Minor backend fixes
|
1100 |
+
|
1101 |
+
= 5.16 2015-07-22 =
|
1102 |
+
* Fixed external services checking
|
1103 |
+
* Fixed mass comments deletion
|
1104 |
+
* Fixed AJAX anti-spam protection
|
1105 |
+
|
1106 |
+
= 5.15 2015-07-16 =
|
1107 |
+
* New feature: anti-spam protection for forms, that uses external services
|
1108 |
+
|
1109 |
+
= 5.14 2015-07-03 =
|
1110 |
+
* Added anti-spam protection for some themes and plugins
|
1111 |
+
* Some backend fixes
|
1112 |
+
|
1113 |
+
= 5.13 2015-06-12 =
|
1114 |
+
* Closing notification for anti-spam renew
|
1115 |
+
* Fixed bulk anti spam comment checking
|
1116 |
+
|
1117 |
+
= 5.12 2015-06-01 =
|
1118 |
+
* Added option for checking all post data for spam
|
1119 |
+
* Some JavaScript protection improvements
|
1120 |
+
* Added option for old JavaScript check (without AJAX)
|
1121 |
+
|
1122 |
+
= 5.10 2015-05-25 =
|
1123 |
+
* Fixed Javascript error on some forms
|
1124 |
+
|
1125 |
+
= 5.9 2015-05-21 =
|
1126 |
+
* Fixed Javascript error on CF7 and JetPack
|
1127 |
+
* Some backend and frontent fixes
|
1128 |
+
|
1129 |
+
= 5.8 2015-05-18 =
|
1130 |
+
* Minor fixes
|
1131 |
+
|
1132 |
+
= 5.7 2015-05-18 =
|
1133 |
+
* Fixed French translation
|
1134 |
+
* Fixed protection algorithm
|
1135 |
+
|
1136 |
+
= 5.6 2015-05-11 =
|
1137 |
+
* Fixed translation
|
1138 |
+
* Fixed bulk comments anti-spam checking
|
1139 |
+
* Added option for disabling anti spam stats in adminbar
|
1140 |
+
* Some security fixes
|
1141 |
+
|
1142 |
+
= 5.5 2015-04-29 =
|
1143 |
+
* Fixed security issue
|
1144 |
+
* Some interface fixes
|
1145 |
+
|
1146 |
+
= 5.4 2015-04-27 =
|
1147 |
+
* Some interface and functionality changes in plugin settings page
|
1148 |
+
* Added counter for anti-spam stats in admin bar
|
1149 |
+
|
1150 |
+
= 5.3 2015-04-13 =
|
1151 |
+
* Added anti-spam protection for Divi theme contact forms
|
1152 |
+
* Added anti-spam protection for MyMail contact forms
|
1153 |
+
* Added anti-spam protection for MailPoet Newsletters
|
1154 |
+
* Some interface and functionality changes in backend
|
1155 |
+
|
1156 |
+
= 5.2 2015-04-01 =
|
1157 |
+
* Added link for anti-spam stats
|
1158 |
+
* Added WP User Frontend Pro registration form protection
|
1159 |
+
|
1160 |
+
= 5.1 2015-03-24 =
|
1161 |
+
* Fixed site crash after installing 5.0 on some websites
|
1162 |
+
|
1163 |
+
= 5.0 2015-03-24 =
|
1164 |
+
* Added bulk comments checking for spam via CleanTalk blacklists
|
1165 |
+
* Added anti-spam form protection for 'Ajax Login & Register'
|
1166 |
+
* Fixed JetPack form protection
|
1167 |
+
|
1168 |
+
= 4.24 2015-03-20 =
|
1169 |
+
* Added immediate spam protection activation.
|
1170 |
+
|
1171 |
+
= 4.22 2015-03-17 =
|
1172 |
+
* Added button for automatic spam protection key getting.
|
1173 |
+
|
1174 |
+
= 4.21 2015-03-11 =
|
1175 |
+
* Added license renew notification.
|
1176 |
+
|
1177 |
+
= 4.20 2015-03-03 =
|
1178 |
+
* Added German, Italian, Polish, Portuguese translations.
|
1179 |
+
* Minor code fixes.
|
1180 |
+
|
1181 |
+
= 4.19 2015-02-24 =
|
1182 |
+
* Increased keys lifetime for JS spam test.
|
1183 |
+
|
1184 |
+
= 4.18 2015-02-17 =
|
1185 |
+
* Fixed bug with comments approvement - moved ct_unmark_red() to cleantalk-admin.php
|
1186 |
+
* Added PayPal 'payment_status' in skip list.
|
1187 |
+
* Added Akismet 'spam' status processing.
|
1188 |
+
|
1189 |
+
= 4.17 2015-02-12 =
|
1190 |
+
* New base class.
|
1191 |
+
* Divided code to 3 separate files - common, public and admin.
|
1192 |
+
|
1193 |
+
= 4.16 2015-02-05 =
|
1194 |
+
* New base class.
|
1195 |
+
* Fixed JetPack spam filters logics.
|
1196 |
+
* Optimized Formidable, bbPress, BuddyPress spam filters.
|
1197 |
+
|
1198 |
+
= 4.15 2015-01-29 =
|
1199 |
+
* Support spam test for Contact Form 7 versions before 3.0.0.
|
1200 |
+
* Fixed global JS-vars for JS spam test.
|
1201 |
+
* Fixed online notice cookie logics.
|
1202 |
+
* Optimized spam filters for FSCF, WooCommerce, JetPack.
|
1203 |
+
* Optimized option getting.
|
1204 |
+
|
1205 |
+
= 4.14 2015-01-19 =
|
1206 |
+
* Removed deprecated option from comment approvement code.
|
1207 |
+
* New API key URL.
|
1208 |
+
* Trimmed API key in admin panel.
|
1209 |
+
* Added current options to array sended to CleanTalk servers.
|
1210 |
+
= 4.13 2014-12-29 =
|
1211 |
+
* Fixed bug with autimatically aprovement not spam comments. Now this option disabled and do not override local WordPress policy.
|
1212 |
+
|
1213 |
+
= 4.12 2014-12-29 =
|
1214 |
+
* Fixed bug with 'Wrong Access key...' notice in WordPress dashboard.
|
1215 |
+
* Fixed filtration bug in WordPress dashboard login form.
|
1216 |
+
|
1217 |
+
= 4.11 2014-12-22 =
|
1218 |
+
* Improved anti-spam protection for custom contact/registration/subscribe forms.
|
1219 |
+
* Improved anti-spam protection for comments.
|
1220 |
+
* Accelerated plugin speed for comments, regirstrations and contacts.
|
1221 |
+
* Added translation to French.
|
1222 |
+
|
1223 |
+
= 4.10 2014-12-10 =
|
1224 |
+
* Improved anti-spam protection for custom contact/registration/subscribe forms.
|
1225 |
+
* Option 'Custom contact forms' enabled by default for new setups.
|
1226 |
+
* Removed settings "Publish relevant comments", "Use encrypted (SSL) connection".
|
1227 |
+
* Added translation to Danish (thank you for Mikkel at KreativJul.dk).
|
1228 |
+
|
1229 |
+
= 4.9 2014-11-24 =
|
1230 |
+
* Fixed spam test for Contact Form 7.
|
1231 |
+
|
1232 |
+
= 4.8 2014-11-19 =
|
1233 |
+
* Improved anti-spam protection for BuddyPress registrations and custom contact forms.
|
1234 |
+
|
1235 |
+
= 4.7 2014-11-16 =
|
1236 |
+
* Fixed JavaScript spam test for FastSecure contact form.
|
1237 |
+
|
1238 |
+
= 4.6 2014-11-11 =
|
1239 |
+
* Improved anti-spam protection on BuddyPress registrations.
|
1240 |
+
* Improved anti-spam protection on contact forms.
|
1241 |
+
* Removed plugin sign from pending, spam comments. To get details about a comment please use Dashboard at cleantalk.org.
|
1242 |
+
* Improved Access key validation function.
|
1243 |
+
* Added protection for bbPress comments via stop list. Stop list function is a list to reject comments by prefiled words. To fill the list please use Dashboard at cleantalk.org.
|
1244 |
+
|
1245 |
+
= 4.5 2014-11-04 =
|
1246 |
+
* Fixed CF7 JavaScript bug.
|
1247 |
+
* Fixed rejects in bbPress guests comments.
|
1248 |
+
|
1249 |
+
= 4.4 2014-10-29 =
|
1250 |
+
* Improved anti-spam JS test for CF7.
|
1251 |
+
* Fixed 'noscript' text in FaceBook Like preview in Valenti theme.
|
1252 |
+
|
1253 |
+
= 4.2 2014-10-20 =
|
1254 |
+
* Fixed double checks issue for BuddyPress registrations.
|
1255 |
+
* Increased timeout limits to find the work server.
|
1256 |
+
|
1257 |
+
= 4.1 2014-10-13 =
|
1258 |
+
* Optimized code for manual moderation feedback sending.
|
1259 |
+
* Optimized anti-spam algorithms for comments, contacts and signups.
|
1260 |
+
|
1261 |
+
= 4.0 2014-10-06 =
|
1262 |
+
* Improved anti-spam protection for custom contact forms.
|
1263 |
+
* Improved anti-spam protection for registration forms.
|
1264 |
+
|
1265 |
+
= 3.9 2014-10-01 =
|
1266 |
+
* Did exception to do not break to create new user in WordPress backend.
|
1267 |
+
|
1268 |
+
= 3.8 2014-09-19 =
|
1269 |
+
* Fixed json_encode() + malformed characters.
|
1270 |
+
* Fixed JavaScript issue with wpautop().
|
1271 |
+
|
1272 |
+
= 3.6 2014-09-15 =
|
1273 |
+
* Fixed preg_match() issue for Formidable forms and Custom contact forms.
|
1274 |
+
* Improved anti-spam protection for Custom contact forms.
|
1275 |
+
|
1276 |
+
= 3.4 2014-09-04 =
|
1277 |
+
* We've added anti-spam for themes contact forms and any untested contact forms plugins. To use this test enable option "Custom contact forms" in plugin settings.
|
1278 |
+
* We've added auto rotation for spam comments. Now the plugin removes comments in SPAM folder older then 15 days. This option is enabled by default.
|
1279 |
+
|
1280 |
+
= 3.2 2014-08-27 =
|
1281 |
+
* Fixed submit_time() logic for failed submits (comments/registrations). Now form fill time resets after every failed submit.
|
1282 |
+
|
1283 |
+
= 3.1 2014-08-19 =
|
1284 |
+
* Added anti-spam test over senders Cookies.
|
1285 |
+
* Improved form fill anti-spam test.
|
1286 |
+
* Improved speed selection of the nearest server to website.
|
1287 |
+
* Improved anti-spam speed for comments.
|
1288 |
+
* Relevance anti-spam test disabled by default. To enable test should be used option 'relevance_test'.
|
1289 |
+
|
1290 |
+
= 2.58 2014-08-06 =
|
1291 |
+
* Added anti-spam protection for signups posted via WooCommerce order form.
|
1292 |
+
* Improved anti-spam protection for Contact Form 7.
|
1293 |
+
* Improved anti-spam protection for registrations. Now the plugin looking for JavaScript anti spam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
|
1294 |
+
* Updated PHP API. Now the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
|
1295 |
+
|
1296 |
+
= 2.57 2014-07-29 =
|
1297 |
+
* Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
|
1298 |
+
* Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
|
1299 |
+
* Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
|
1300 |
+
|
1301 |
+
= 2.56 2014-07-21 =
|
1302 |
+
* Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
|
1303 |
+
|
1304 |
+
= 2.55 2014-07-11 =
|
1305 |
+
* Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it!' on every page.
|
1306 |
+
|
1307 |
+
= 2.54 2014-07-11 =
|
1308 |
+
* Fixed signup anti-spam protection logic for BuddyPress registrations.
|
1309 |
+
* Fixed anti-spam protection for JetPack contact form.
|
1310 |
+
* Changed account status check logic.
|
1311 |
+
|
1312 |
+
= 2.53 2014-06-27 =
|
1313 |
+
* Fixed anit-spam protection bug for signups.
|
1314 |
+
* Changed anti-spam functions (comments and signups) priority.
|
1315 |
+
|
1316 |
+
= 2.52 2014-06-25 =
|
1317 |
+
* Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
|
1318 |
+
|
1319 |
+
= 2.51 2014-06-23 =
|
1320 |
+
* Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
|
1321 |
+
* Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
|
1322 |
+
* Fixed minor bug with loading backend functions.
|
1323 |
+
|
1324 |
+
= 2.49 2014-06-10 =
|
1325 |
+
* Added spam protection for S2Member Auth.net forms.
|
1326 |
+
* Added spam protection for multisite signup form.
|
1327 |
+
* Optimized account status check function.
|
1328 |
+
|
1329 |
+
= 2.46 2014-05-19 =
|
1330 |
+
* Added: HTML notice about the need to enable JavaScript.
|
1331 |
+
* Fixed: Fixed pingbacks anti-spam test.
|
1332 |
+
|
1333 |
+
= 2.44 2014-05-12 =
|
1334 |
+
* Added: Anti-spam protection for S2Member framework.
|
1335 |
+
* Improved: JavaScript anti-spam test.
|
1336 |
+
* Improved: Plugin load time for backend and frontend.
|
1337 |
+
* Fixed: PHP warning mb_convert_encoding()
|
1338 |
+
|
1339 |
+
= 2.42 2014-04-29 =
|
1340 |
+
* Fixed: JavaScript anti-spam test for comments.
|
1341 |
+
|
1342 |
+
= 2.40 2014-04-25 =
|
1343 |
+
* New: Fast Secure Contact form support.
|
1344 |
+
* New: WordPress Landing Pages support
|
1345 |
+
|
1346 |
+
= 2.38 2014-03-27 =
|
1347 |
+
* Fixed: Registraion form submit time spam test.
|
1348 |
+
|
1349 |
+
= 2.36 2014-03-12 =
|
1350 |
+
* Reversed to patches from old revisions.
|
1351 |
+
|
1352 |
+
= 2.35 2014-03-12 =
|
1353 |
+
* New: Notifications about disabled account
|
1354 |
+
* New: Improved JavaScript spam test.
|
1355 |
+
* Fixed: Code optimization
|
1356 |
+
* Fixed: JavaScript test for signups.
|
1357 |
+
|
1358 |
+
= 2.33 2014-02-12 =
|
1359 |
+
* Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
|
1360 |
+
|
1361 |
+
= 2.32 2014-02-04 =
|
1362 |
+
* New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
|
1363 |
+
* New: At WordPress console added banner for notices.
|
1364 |
+
* Changed: Screenshots updated.
|
1365 |
+
|
1366 |
+
= 2.31 2014-01-24 =
|
1367 |
+
* New: Added spam protection for JetPack comments
|
1368 |
+
* Fixed: cURL connection issue "Expect: 100-continue"
|
1369 |
+
|
1370 |
+
= 2.30 2014-01-13 =
|
1371 |
+
* Changed: Improved servers connection logic.
|
1372 |
+
* Fixed: Antispam test for Fomidable forms.
|
1373 |
+
|
1374 |
+
= 2.28 2013-12-19 =
|
1375 |
+
* New: Added protection against spam bots for WooCommerce review form.
|
1376 |
+
* Fixed: JavaScript anti-spam logic for WooCommerce review form.
|
1377 |
+
|
1378 |
+
= 2.27 2013-12-06 =
|
1379 |
+
* New: Added protection against spam bots for JetPack Contact form.
|
1380 |
+
* Fixed: JavaScript anti-spam logic for registrations and Contact form 7.
|
1381 |
+
|
1382 |
+
= 2.25 2013-11-27 =
|
1383 |
+
* New: Added protection against spam bots for BuddyPress registrations.
|
1384 |
+
* New: Added protection against spam bots for Contact form 7.
|
1385 |
+
* New: Added Spanish (es_ES) translation.
|
1386 |
+
|
1387 |
+
= 2.23 2013-11-20 =
|
1388 |
+
* New: Added automatic training blacklists on spam bot account deletion.
|
1389 |
+
* New: Added URL to project homepage at plugin options.
|
1390 |
+
* Changed: Improved anti-spam logic.
|
1391 |
+
|
1392 |
+
= 2.21 2013-11-13 =
|
1393 |
+
* Changed: WordPress blacklists settings get priority over plugin's anti-spam settings
|
1394 |
+
* Changed: Disabled management approval comments for regular commentators of the blog. Automatically approved for publication only the comments of the new blog authors.
|
1395 |
+
* Changed: Removed form submit time test. Imporved JavaScript spam test.
|
1396 |
+
* Changed: PHP code optimizations
|
1397 |
+
|
1398 |
+
= 2.19 2013-11-08 =
|
1399 |
+
* New: Antispam protection from spam bots at the registration form
|
1400 |
+
* Changed: Russian localization for admin panel
|
1401 |
+
* Changed: PHP code optimizations
|
1402 |
+
|
1403 |
+
= 2.5.18 2013-11-01 =
|
1404 |
+
* Fixed: Bug with selection of the last comments for post
|
1405 |
+
* New: Antispam protection for Formidable feedback forms
|
1406 |
+
* New: Automatic deletion of outdated spam comments
|
1407 |
+
* New: On/Off option for comments spam filtration
|
1408 |
+
* Tested with WordPress 3.7.1
|
1409 |
+
|
1410 |
+
= 2.4.15 2013-09-26 =
|
1411 |
+
* Fixed: Bug with mass comments deletion
|
1412 |
+
* Changed: Russian localization for admin panel
|
1413 |
+
* Tested with mulitsite setup (WordPress network or WPMU)
|
1414 |
+
|
1415 |
+
= 2.4.14 2013-08-29 =
|
1416 |
+
* Changed: Removed feedback requests to the servers for banned (spam) comments.
|
1417 |
+
|
1418 |
+
= 2.4.13 2013-08-19 =
|
1419 |
+
* Changed: Switched HTTP requests from file_get_contents() to CURL. Added file_get_contens() as backup connection to the servers.
|
1420 |
+
* Changed: Removed feedback requests for comments moved to trash.
|
1421 |
+
* Fixed: "Fail connect to servers..." error on hostings with disabled 'allow_url_fopen' PHP option.
|
1422 |
+
|
1423 |
+
= 2.4.12 2013-08-12 =
|
1424 |
+
* Removed RPC::XML library from plugin.
|
1425 |
+
* Switched plugin to HTTP+JSON connection with servers.
|
1426 |
+
* Fixed bug with comments anti-spam tests with non UTF8 codepage.
|
1427 |
+
|
1428 |
+
= 2.4.11 2013-08-02 =
|
1429 |
+
* Removed spam tests for self-made pingbacks
|
1430 |
+
* Tested up to WP 3.6
|
1431 |
+
|
1432 |
+
= 2.4.10 2013-07-24 =
|
1433 |
+
* Fixed warning in PHP 5.4
|
1434 |
+
* Fixed bug with disabling comments test for Administrators, Authors and Editors
|
1435 |
+
* "Stop words" settings moved to <a href="http://cleantalk.org/my">Control panel</a> of the service
|
1436 |
+
* "Response language" settings moved <a href="http://cleantalk.org/my">Control panel</a> of the service
|
1437 |
+
|
1438 |
+
= 2.4.9 =
|
1439 |
+
* Fixed extra debugging in base class
|
1440 |
+
|
1441 |
+
= 2.4.8 =
|
1442 |
+
* Enabled convertion to UTF8 for comment and example text
|
1443 |
+
* Optimized PHP code
|
1444 |
+
|
1445 |
+
= 2.3.8 =
|
1446 |
+
* Enabled selection the fastest server in the pool
|
1447 |
+
* Fixed work server in plugin's config
|
1448 |
+
|
1449 |
+
= 2.2.3 =
|
1450 |
+
* Secured md5 string for JavaScript test
|
1451 |
+
* Added requests's timestamp to calculate request work time
|
1452 |
+
* Update base CleanTalk's PHP class
|
1453 |
+
|
1454 |
+
= 2.1.2 =
|
1455 |
+
* Improved perfomance for processing large comments (over 32kb size)
|
1456 |
+
* Improved perfomance for bulk operations with comments in Comments panel
|
1457 |
+
* Added feedback request with URL to approved comment
|
1458 |
+
|
1459 |
+
= 2.0.2 =
|
1460 |
+
* Fixed bug with JavaScript test and WordPress cache plugins
|
1461 |
+
|
1462 |
+
= 2.0.1 =
|
1463 |
+
* Added option "Publicate relevant comments" to plugin's options.
|
1464 |
+
* Added descriptions to plugin options
|
1465 |
+
|
1466 |
+
= 1.5.4 =
|
1467 |
+
* Fixed HTTP_REFERER transmission to the servers
|
1468 |
+
* Improved JavaScript spam test
|
1469 |
+
* Optimized PHP code
|
1470 |
+
|
1471 |
+
= 1.4.4 =
|
1472 |
+
* Pingback, trackback comments has moved to manual moderataion
|
1473 |
+
* Added transmission to the serves comment type and URL
|
1474 |
+
* Post title, body and comments separated into individual data elements
|
1475 |
+
* Added priority for matched words in the comment with post title
|
1476 |
+
* Enabled stop words filtration as default option
|
1477 |
+
|
1478 |
+
= 1.3.4 =
|
1479 |
+
* Removed PHP debugging.
|
1480 |
+
|
1481 |
+
= 1.3.3 =
|
1482 |
+
* Added notice at admin panel about empty Access key in plugin settings
|
1483 |
+
* Removed HTTP link to the site project from post page
|
1484 |
+
* Removed unused options from settings page
|
1485 |
+
* Tested up to WordPress 3.5
|
1486 |
+
|
1487 |
+
= 1.2.3 =
|
1488 |
+
* Fixed bug with session_start.
|
1489 |
+
|
1490 |
+
= 1.2.2 =
|
1491 |
+
* Plugin rename to CleanTalk. Spam prevent plugin
|
1492 |
+
* Integration Base Class version 0.7
|
1493 |
+
* Added fast submit check
|
1494 |
+
* Added check website in form
|
1495 |
+
* Added feedbacks for change comment status (Not spam, unapprove)
|
1496 |
+
* Added function move comment in spam folder if CleanTalk say is spam
|
1497 |
+
* Disable checking for user groups Administrator, Author, Editor
|
1498 |
+
* Marked red color bad words
|
1499 |
+
|
1500 |
+
= 1.1.2 =
|
1501 |
+
* Addition: Title of the post attached to the example text in auto publication tool.
|
1502 |
+
* Tested with WordPress 3.4.1.
|
1503 |
+
|
1504 |
+
= 1.1.1 =
|
1505 |
+
* HTTP_REFERER bug fixed
|
1506 |
+
|
1507 |
+
= 1.1.1 =
|
1508 |
+
* Added user locale support, tested up to WP 3.4
|
1509 |
+
|
1510 |
+
= 1.1.0 =
|
1511 |
+
* First version
|
1512 |
+
|
1513 |
+
|
1514 |
+
== Upgrade Notice ==
|
1515 |
+
= 5.130 November 14 2019 =
|
1516 |
+
* Fix: JetPack contact form JS check.
|
1517 |
+
* FIx: Iphorm AJAX form.
|
1518 |
+
* Fix: Paid Memberships Pro fix.
|
1519 |
+
* Fix: Divi theme contact form fix.
|
1520 |
+
* Integration: Paid Memberships Pro.
|
1521 |
+
* Integration: Elementor Pro page builder forms.
|
1522 |
+
* Improved: Compatibility with different server.
|
1523 |
+
|
1524 |
+
= 5.129.1 November 5 2019 =
|
1525 |
+
* Fix: WooCommerce order detecting.
|
1526 |
+
|
1527 |
+
= 5.129 October 30 2019 =
|
1528 |
+
* Upd: Localize updated.
|
1529 |
+
* Fix: Direct $_SERVER access replaced.
|
1530 |
+
* Integration: The 7 theme contact form.
|
1531 |
+
* Fix: Minor improvements and bug fixes.
|
1532 |
+
* Mod: Putting site in maintenance mode during plugin update.
|
1533 |
+
|
1534 |
+
= 5.128.1 October 23 2019 =
|
1535 |
+
* Fix: Fatal error when using buffer output.
|
1536 |
+
* Fix: Translate domain for errors.
|
1537 |
+
* Code: Fix spelling in function name.
|
1538 |
+
* Fix: JS disabled error.
|
1539 |
+
* Upd: Comment edit screen updated.
|
1540 |
+
* Fix: Cleantalk\Arr::search() fixed.
|
1541 |
+
|
1542 |
+
= 5.128 October 17 2019 =
|
1543 |
+
* Mod: Users check - functionality updated.
|
1544 |
+
* Fix: Users check - dates format updated.
|
1545 |
+
* Mod: Comments check - functionality updated.
|
1546 |
+
* Fix: Comments check - dates format updated.
|
1547 |
+
* Fix: Fields exclusion fixed.
|
1548 |
+
* Fix: Notice fixed.
|
1549 |
+
* Fix: Cleantalk/Antispam/API.
|
1550 |
+
* Fix: Minor improvements and bug fixes.
|
1551 |
+
|
1552 |
+
= 5.127.4 October 13 2019 =
|
1553 |
+
* Mod: Automatically decrease amount of checked users by one request if an error occurs.
|
1554 |
+
* Fix: Security issue.
|
1555 |
+
* Fix: Static JS key.
|
1556 |
+
|
1557 |
+
= 5.127.3 October 8 2019 =
|
1558 |
+
* Fix: Errors during registration.
|
1559 |
+
|
1560 |
+
= 5.127.2 October 8 2019 =
|
1561 |
+
* Integration: SeedProd Coming Soon Page Pro.
|
1562 |
+
* Fix: WooCommerce double reuqests.
|
1563 |
+
* Fix: Static JS key.
|
1564 |
+
|
1565 |
+
= 5.127.1 October 7 2019 =
|
1566 |
+
* Fix: WPMS settings logic.
|
1567 |
+
* Using default database storage engine for tables.
|
1568 |
+
|
1569 |
+
= 5.127 September 30 2019 =
|
1570 |
+
* Fix: Delete redirect notice on external forms
|
1571 |
+
* Fix: Storing spam for 15 days.
|
1572 |
+
* Fix: correct DiVi display message.
|
1573 |
+
* Integration: Ultimate Members.
|
1574 |
+
* Mod: Setting "Use static JS key" switched to "Auto" if it was "No". Default is "Auto".
|
1575 |
+
* Mod: Moving White Label option to main site settings.
|
1576 |
+
* New: Use static JS key if cache plugin detected.
|
1577 |
+
* New: Settings for URLs, fields, roles exclusions.
|
1578 |
+
* New: Regular Expressions support in URLs, fields exclusions.
|
1579 |
+
* New: Send validation errors on standard registration form.
|
1580 |
+
* Updater: Move exclusions from global variable to settings.
|
1581 |
+
* Deprecated: IP exclusions.
|
1582 |
+
|
1583 |
+
= 5.126 September 9 2019 =
|
1584 |
+
* Spam protection improved!
|
1585 |
+
* Integration: Option wheel.
|
1586 |
+
* Mod: Improved Email detection.
|
1587 |
+
* Mod: Improved IP detection.
|
1588 |
+
* Fix: Too large database table with alternative sessions.
|
1589 |
+
* Fix: Exception for WooCommerce AJAX.
|
1590 |
+
* Fix: API key validation.
|
1591 |
+
* Minor fixes.
|
1592 |
+
|
1593 |
+
= 5.125 August 26 2019 =
|
1594 |
+
* Fix: PHP Notices.
|
1595 |
+
* Fix: Auto update.
|
1596 |
+
* Fix: Displaying protection status for IP license.
|
1597 |
+
* Fix: prevent capturing buffer for XMLRPC requests (check_external functionality).
|
1598 |
+
* Fix: API key validating.
|
1599 |
+
* New: Complete deactivation setting.
|
1600 |
+
|
1601 |
+
= 5.124.1 August 8 2019 =
|
1602 |
+
* Fix: Error on PHP 5.3.
|
1603 |
+
|
1604 |
+
= 5.124 August 8 2019 =
|
1605 |
+
* Spam protection improved.
|
1606 |
+
* Fix: SpamFireWall local database counter on Multisite.
|
1607 |
+
* Fix: Caldera Forms integration.
|
1608 |
+
* Fix: Settings "Use AJAX for JS check" description.
|
1609 |
+
* Fix: Formidable integration.
|
1610 |
+
* New: External forms check now independed from JavaScript.
|
1611 |
+
* New: Setting Protect external - capture buffer.
|
1612 |
+
* New: QuForm integration.
|
1613 |
+
|
1614 |
+
= 5.123 July 25 2019 =
|
1615 |
+
* Fix: Plenty of minor fixes.
|
1616 |
+
* Fix: wpDiscuz integration.
|
1617 |
+
* Fix: Integration with bbPress.
|
1618 |
+
* Fix: New comment email notification.
|
1619 |
+
* New: Follow-Up Emails integration.
|
1620 |
+
* Fix: Woocommerce integration.
|
1621 |
+
* Fix: Spelling.
|
1622 |
+
|
1623 |
+
= 5.122 July 10 2019 =
|
1624 |
+
* Spam Protection improved.
|
1625 |
+
* Fix: Error while checking account status.
|
1626 |
+
* Fix: Conflict with Elementor Pro.
|
1627 |
+
* Fix: Integration with Ninja Forms.
|
1628 |
+
* Fix: Integration with Formidable.
|
1629 |
+
* New: Detecting mobile devices.
|
1630 |
+
* New: Integration for Easy Forms for Mailchimp.
|
1631 |
+
|
1632 |
+
= 5.121 June 26 2019 =
|
1633 |
+
* Fix: Translation typos.
|
1634 |
+
* Fix: Woocommerce integration.
|
1635 |
+
* Fix: Catching admin in AJAX queries.
|
1636 |
+
* Mod: Session table (cleantalk_sessions) issue.
|
1637 |
+
* Mod: Spam protection improved.
|
1638 |
+
* Integration: Wilcity theme custom registration validation enabled
|
1639 |
+
* New: Option "Use static JS key".
|
1640 |
+
|
1641 |
+
= 5.120.2 June 17 2019 =
|
1642 |
+
* Fix: WPForms integration.
|
1643 |
+
* Fix: Translation and spelling.
|
1644 |
+
* Fix: Minor PHP error
|
1645 |
+
|
1646 |
+
= 5.120.1 June 6 2019 =
|
1647 |
+
* Mod: Description for Search form protection.
|
1648 |
+
* Fix: CSS and JS attachment.
|
1649 |
+
* Fix: Undefined index error.
|
1650 |
+
|
1651 |
+
= 5.120 June 5 2019 =
|
1652 |
+
* Fix: bbPress false positives.
|
1653 |
+
* Fix: SpamFireWall check condition.
|
1654 |
+
* Fix: SpamFireWall block page.
|
1655 |
+
* Fix: Catch admin action via search form test.
|
1656 |
+
* Fix: Catch admin action (AJAX).
|
1657 |
+
* Mod: Using minified version of JS and CSS.
|
1658 |
+
* Mod: Date format in statistics.
|
1659 |
+
|
1660 |
+
|
1661 |
+
= 5.119.1 May 30 2019 =
|
1662 |
+
* Fix: Helper class error.
|
1663 |
+
|
1664 |
+
= 5.119 May 30 2019 =
|
1665 |
+
* Fix: No more second request after registration.
|
1666 |
+
* Fix: Activation hook.
|
1667 |
+
* Fix: Alternative sessions. Clear table.
|
1668 |
+
* Fix: Stop capchuring AJAX requests in admin area.
|
1669 |
+
* Fix: Spelling.
|
1670 |
+
* Fix: Registration cookies set.
|
1671 |
+
* Mod: SFW exdtended die page when testing.
|
1672 |
+
* Mod: User-agent modified.
|
1673 |
+
* New: Test search queries for spam.
|
1674 |
+
* New: Gathering and output statistics.
|
1675 |
+
|
1676 |
+
= 5.118.4 May 13 2019 =
|
1677 |
+
* Fix: SFW cookie. Set correct domain for subdomains.
|
1678 |
+
* Fix: SFW update.
|
1679 |
+
* Fix: IP detection.
|
1680 |
+
* Fix: Triggering AJAX check in backend.
|
1681 |
+
* Fix: Zero submit time on few forms.
|
1682 |
+
|
1683 |
+
= 5.118.3 April 29 2019 =
|
1684 |
+
* Fix: Spam statistics in dashboard widget.
|
1685 |
+
* Fix: IP detection.
|
1686 |
+
* Fix: Double check AJAX integrated forms like Ninja Forms.
|
1687 |
+
* Fix: Use url exclusions for AJAX forms.
|
1688 |
+
|
1689 |
+
= 5.118.2 April 25 2019 =
|
1690 |
+
* Mod: Spam filtration quality improved.
|
1691 |
+
* Mod: Store SFW cookie for 30 days.
|
1692 |
+
* Mod: Server IP added to connection report.
|
1693 |
+
* Fix: spam_stat is not defined.
|
1694 |
+
|
1695 |
+
= 5.118.1 April 19 2019 =
|
1696 |
+
* Fix: Fatal error.
|
1697 |
+
* Mod: Spam protection improved on registrations.
|
1698 |
+
|
1699 |
+
= 5.118 April 19 2019 =
|
1700 |
+
* Fix: Cookies on registration page.
|
1701 |
+
* Fix: Update fix.
|
1702 |
+
* Fix: Wordpress built-in API.
|
1703 |
+
* Fix: WooCommerce checkout form.
|
1704 |
+
* Fix: UpdraftPlus. Saving settings.
|
1705 |
+
* Fix: Convert Pro saving settings.
|
1706 |
+
* Fix: UTF-8 Converting.
|
1707 |
+
* Fix: GDPR notice.
|
1708 |
+
* Fix: cleantalk_sessions table size reduced.
|
1709 |
+
* Mod: Localization.
|
1710 |
+
* Mod: Performance improved.
|
1711 |
+
* Mod: SpamFierWall improvments.
|
1712 |
+
* Mod: IP detection improved.
|
1713 |
+
* Mod: JavaScript check rewised.
|
1714 |
+
* New: Setting "Use alternative mechanism for cookies".
|
1715 |
+
|
1716 |
+
= 5.117.1 April 5 2019 =
|
1717 |
+
* Fix: GDPR notice.
|
1718 |
+
* Fix: noCacheJS localization.
|
1719 |
+
* Fix: Fatal error when updating.
|
1720 |
+
|
1721 |
+
= 5.117 March 27 2019 =
|
1722 |
+
* New: Update logic runs on all pages.
|
1723 |
+
* New: Integration for Ajax Contact Forms plugin.
|
1724 |
+
* New: Notification for users groups about new comments.
|
1725 |
+
* New: SFW die page. Show browser and page creation time.
|
1726 |
+
* Fix: Huge bug in Cleantalk.php connected with servers changing.
|
1727 |
+
* Fix: Check AJAX requests for logged in users.
|
1728 |
+
* Fix: Deleting debug in JS.
|
1729 |
+
* Fix: Validating settings before saving.
|
1730 |
+
|
1731 |
+
= 5.116.3 March 14 2019 =
|
1732 |
+
* Fix: "Headers already sent" error.
|
1733 |
+
* Fix: Images paths.
|
1734 |
+
* Fix: IP detection.
|
1735 |
+
* Fix: Skip lost password form check
|
1736 |
+
* Fix: Skip mobile requests (push settings)
|
1737 |
+
* Fix: PHP notice when detecting BuddyPress template.
|
1738 |
+
|
1739 |
+
= 5.116.2 March 7 2019 =
|
1740 |
+
* Fix: Creating tables in MariaDB.
|
1741 |
+
|
1742 |
+
= 5.116.1 March 6 2019 =
|
1743 |
+
* Fix: Creating tables in DB.
|
1744 |
+
* Fix: PHP Warning in spam statistics widget.
|
1745 |
+
|
1746 |
+
= 5.116 March 6 2019 =
|
1747 |
+
* Spam filtration quality improved.
|
1748 |
+
* New: Storing visited URLs.
|
1749 |
+
* New: Check before validation Contact Form 7, Comments, Jetpack comments.
|
1750 |
+
* New: Get validation result for Contact Form 7, Comments, Jetpack comments.
|
1751 |
+
* Fix: ES add subscriber.
|
1752 |
+
* Fix: IP detection.
|
1753 |
+
|
1754 |
+
= 5.115.2 February 27 2019 =
|
1755 |
+
* Fix: False positives spam detection in WP Forms and Contact Form 7.
|
1756 |
+
|
1757 |
+
= 5.115.1 February 16 2019 =
|
1758 |
+
* Fix: SpamFireWall's false positives.
|
1759 |
+
|
1760 |
+
= 5.115 February 14 2019 =
|
1761 |
+
* Fix: Http_only flag for backend cookies.
|
1762 |
+
* Fix: Spam filtration improved.
|
1763 |
+
* New: IP detection improved.
|
1764 |
+
* Fix: SpamFirewall update speeded up.
|
1765 |
+
* New: False positives with caching solutions decreased.
|
1766 |
+
* New: Opportunity to use Wordpress HTTP API to connect with Cloud.
|
1767 |
+
|
1768 |
+
= 5.114 January 31 2019 =
|
1769 |
+
* New: Setting "Use Wordpress HTTP API" as alternative to CURL. Disabled by default.
|
1770 |
+
* Fix: Formidable: Adding small JS check when adding JS_key.
|
1771 |
+
* Mod: layout of settings page.
|
1772 |
+
* Mod: Banner logic altered.
|
1773 |
+
|
1774 |
+
= 5.113.2 January 18 2019 =
|
1775 |
+
* Fix: "Settings" link returns to plugin page.
|
1776 |
+
|
1777 |
+
= 5.113.1 January 17 2019 =
|
1778 |
+
* Fix: Conflict with CityTours theme.
|
1779 |
+
* Fix: Error for Wordperss lower 4.7.
|
1780 |
+
* Add: Spam protection: "Validate email for existance".
|
1781 |
+
|
1782 |
+
= 5.113 January 16 2019 =
|
1783 |
+
* Fix: Fast and Simple Contact Form.
|
1784 |
+
* Fix: Settings layout.
|
1785 |
+
* Fix: Error with WooCommerce Quickview.
|
1786 |
+
* Fix: Bitrix24 contact form.
|
1787 |
+
* Fix: Request time decreased.
|
1788 |
+
* Fix: Requesting account status when activating for IP licenses.
|
1789 |
+
* Add: Precise AJAX request detection.
|
1790 |
+
* Spam protection improved.
|
1791 |
+
|
1792 |
+
= 5.112 December 21 2018 =
|
1793 |
+
* Fix: Woocommerce AJAX checkout form.
|
1794 |
+
* Fix: Profile Builder Pro.
|
1795 |
+
* Fix: DB structure improvements for WPMS.
|
1796 |
+
* Spam filtering quality improved.
|
1797 |
+
* Minor fixes.
|
1798 |
+
|
1799 |
+
= 5.111 December 13 2018 =
|
1800 |
+
* Fix: Double request in JetPack contact form.
|
1801 |
+
* Fix: Email notification about spam registration.
|
1802 |
+
* Fix: Links button for feedback comments.
|
1803 |
+
* Fix: Mail notification about plugin error.
|
1804 |
+
* Fix: Key field output.
|
1805 |
+
* Minor fixes.
|
1806 |
+
|
1807 |
+
= 5.110 November 29 2018 =
|
1808 |
+
* Integration: BuddyPress ActivityWall spam protection.
|
1809 |
+
* Add: Support different BuddyPress templates on activity wall.
|
1810 |
+
* Fix: Admin/moderator checking for validate post data.
|
1811 |
+
* Add: GDPR setting for shortcode.
|
1812 |
+
* Fix: Increase timeout for spam_check_cms to 15.
|
1813 |
+
|
1814 |
+
= 5.109 November 15 2018 =
|
1815 |
+
* Fix: Added URL and IP exclusions to Contact Form 7.
|
1816 |
+
* Fix: js error when responseText is not exists
|
1817 |
+
* Fix: Sitename when getting key automatically under WPMS.
|
1818 |
+
* Mod: SpamFireWall is now fully compatible with WPMS.
|
1819 |
+
* Mod: Setting 'Tell others about CleanTalk' was deleted.
|
1820 |
+
* Mod: Protection from spam improved.
|
1821 |
+
|
1822 |
+
= 5.108.1 November 8 2018 =
|
1823 |
+
* Fix: Errors with integration class.
|
1824 |
+
|
1825 |
+
= 5.108 November 7 2018 =
|
1826 |
+
* Fix: White label mode.
|
1827 |
+
* Fix: SpamFireWall now can be disabled.
|
1828 |
+
* Fix: Layout.
|
1829 |
+
* Integration: WPForms.
|
1830 |
+
* Add: Message about block for all no integrated AJAX forms.
|
1831 |
+
* Add: Displaying account name near api key.
|
1832 |
+
|
1833 |
+
= 5.107 October 29 2018 =
|
1834 |
+
* Fix: Ninja Forms integration.
|
1835 |
+
* Fix: Cookie usage.
|
1836 |
+
* Add: Capturing AJAX responses from non integrated forms.
|
1837 |
+
* Spam protection improved.
|
1838 |
+
* Minor fixes.
|
1839 |
+
|
1840 |
+
= 5.106 October 11 2018 =
|
1841 |
+
* Spam filtration improved.
|
1842 |
+
* New: White Label mode.
|
1843 |
+
* Modification: Warning message about test on SpamFireWall die page.
|
1844 |
+
* Integration: WP Maintenance Mode.
|
1845 |
+
* Fix: S2Member.
|
1846 |
+
* Fix: JavaScript attachments reconsidered.
|
1847 |
+
* Fix: Admin banners layout.
|
1848 |
+
* Fix: Minor layout fixes.
|
1849 |
+
|
1850 |
+
= 5.105 September 26 2018 =
|
1851 |
+
* Integration: Now bloking spam for QAEngine questions.
|
1852 |
+
* Fix: Async http__request call.
|
1853 |
+
* Fix: Unnecessary get_antispam_report_breif method call.
|
1854 |
+
* Layout: Hide "Do you like Cleantlak?" when key is not ok.
|
1855 |
+
* Layout: Minor fixes.
|
1856 |
+
|
1857 |
+
= 5.104 September 18 2018 =
|
1858 |
+
* Fix: Error when saving settings.
|
1859 |
+
* Fix: Trying update plugin plugin for the first installation.
|
1860 |
+
* Fix: Update system.
|
1861 |
+
* Fix: Errors output.
|
1862 |
+
* Fix: Plugin's settings under WPMS.
|
1863 |
+
* Fix: SpamFireWall update.
|
1864 |
+
* Fix: The server change system repaired.
|
1865 |
+
* Mod: Cron saving tasks improved.
|
1866 |
+
|
1867 |
+
= 5.103.1 September 14 2018 =
|
1868 |
+
* Fix: Error when saving settings.
|
1869 |
+
* Fix: Error when getting key automatically.
|
1870 |
+
|
1871 |
+
= 5.103 September 13 2018 =
|
1872 |
+
* Fix: Gravity Forms response message.
|
1873 |
+
* Fix: SpamFireWall redirect to 404 page.
|
1874 |
+
* Major anti-spam plugin improvement.
|
1875 |
+
* Recombined setting page.
|
1876 |
+
* Added error notification.
|
1877 |
+
* Mod: S2 Members integration.
|
1878 |
+
* Mod: Improved remote calls.
|
1879 |
+
|
1880 |
+
= 5.102 August 29 2018 =
|
1881 |
+
* Fix: Users and comments check.
|
1882 |
+
* Fix: Update from 5.70 or previous versions.
|
1883 |
+
* Fix: GDPR public JS-script.
|
1884 |
+
* Fix: Dashboard widget JS scripts attachment.
|
1885 |
+
* Fix: WooCommerce "Place order" action.
|
1886 |
+
* Mod: Notification logic altered.
|
1887 |
+
* Mod: Users check table now has 'Signed up' column.
|
1888 |
+
* Minor fixes.
|
1889 |
+
|
1890 |
+
= 5.101 August 10 2018 =
|
1891 |
+
* Fix: Set cookie only for non-dashboard pages.
|
1892 |
+
* Fix: Dashboard widget JS error.
|
1893 |
+
* Fix: JavaScript error for some environment.
|
1894 |
+
* Mod: Antispam protection accelerated for some pages.
|
1895 |
+
|
1896 |
+
= 5.100 July 30 2018 =
|
1897 |
+
* Fix: JavaScript dependencies.
|
1898 |
+
|
1899 |
+
= 5.99.1 July 17 2018 =
|
1900 |
+
* IP detection fixed and improved.
|
1901 |
+
|
1902 |
+
= 5.99 July 10 2018 =
|
1903 |
+
* Fix: WooCommerce false positives.
|
1904 |
+
* Fix: SpamFireWall IP detection.
|
1905 |
+
* Minor fixes.
|
1906 |
+
|
1907 |
+
= 5.98 June 27 2018 =
|
1908 |
+
* Fix: WooCommerce: Exclusion.
|
1909 |
+
* Fix: Public GDPR JS code.
|
1910 |
+
* Minor fixes.
|
1911 |
+
|
1912 |
+
= 5.97 June 7 2018 =
|
1913 |
+
* Fix: Update system.
|
1914 |
+
* Fix: Feedback from public page (admin only).
|
1915 |
+
* Fix: Users and comment check: API error.
|
1916 |
+
* Fix: Too many negative reports. (Too big ct_data option)
|
1917 |
+
* Fix: SpamFireWall: Infinite redirection on the blocking page.
|
1918 |
+
* Minor fixes.
|
1919 |
+
|
1920 |
+
= 5.96 May 22 2018 =
|
1921 |
+
* Fix: Update system.
|
1922 |
+
* Mod: Reset all counters button in admin bar.
|
1923 |
+
* Mod: GDPR compliance.
|
1924 |
+
* Minor fixes.
|
1925 |
+
|
1926 |
+
= 5.95.1 May 3 2018 =
|
1927 |
+
* Fix: "Get key automatically" button display logic.
|
1928 |
+
* Fix: PHP notices.
|
1929 |
+
|
1930 |
+
= 5.95 May 2 2018 =
|
1931 |
+
* Spam filtration improved.
|
1932 |
+
* Fix: Public widget layout.
|
1933 |
+
* Fix: Connection reports output.
|
1934 |
+
* Minor fixes.
|
1935 |
+
|
1936 |
+
= 5.94 April 23 2018 =
|
1937 |
+
* Mod: Async load option for JS.
|
1938 |
+
* Mod: JS scripts loading is conditional.
|
1939 |
+
* Fix: IP detection.
|
1940 |
+
* Fix: IP detection.
|
1941 |
+
* Fix: Javascript error.
|
1942 |
+
|
1943 |
+
= 5.93.1 April 9 2018 =
|
1944 |
+
* Fix: Fatal error on PHP 5.5 or lower.
|
1945 |
+
|
1946 |
+
= 5.93 April 9 2018 =
|
1947 |
+
* Fix: SpamFirewall IP detection.
|
1948 |
+
* Fix: Contact Form 7. False positives.
|
1949 |
+
* Mod: Autoupdate function improved.
|
1950 |
+
* Minor fixes.
|
1951 |
+
|
1952 |
+
= 5.92.2 March 23 2018 =
|
1953 |
+
* Fix: Error if cURL extension is disabled.
|
1954 |
+
|
1955 |
+
= 5.92.1 March 23 2018 =
|
1956 |
+
* Fix: Spelling
|
1957 |
+
* Fix: Fatal error if cURL extension is disabled.
|
1958 |
+
|
1959 |
+
= 5.92 March 22 2018 =
|
1960 |
+
* IP detection improved.
|
1961 |
+
* Fix: SSL connection.
|
1962 |
+
* Fix: False positives spam detection in Contact Form 7.
|
1963 |
+
* Minor fixes.
|
1964 |
+
|
1965 |
+
= 5.91 March 15 2018 =
|
1966 |
+
* Fix: Errors for PHP compiled without XML support.
|
1967 |
+
* Fix: Spelling and translation.
|
1968 |
+
* Stability increased.
|
1969 |
+
* Minor fixes.
|
1970 |
+
|
1971 |
+
= 5.90 March 7 2018 =
|
1972 |
+
* Improvement: Better IP recognition in Spam FireWall.
|
1973 |
+
* Fix: Gravity Froms blocking message.
|
1974 |
+
* Security improvments.
|
1975 |
+
* Minor fixes.
|
1976 |
+
|
1977 |
+
= 5.89 February 21 2018 =
|
1978 |
+
* Improved spam filtration quality.
|
1979 |
+
* Improved compatibility.
|
1980 |
+
* Public widget: Styles and referral link added.
|
1981 |
+
* Dashboard widget: revised and fixed.
|
1982 |
+
* Minor fixes.
|
1983 |
+
|
1984 |
+
= 5.88 February 12 2018 =
|
1985 |
+
* Integration: ConvertPro.
|
1986 |
+
* Improvement: Search for visitor's names in request.
|
1987 |
+
* Fix: Contact Form 7 message recognition.
|
1988 |
+
* Preparation for the remote plugin update.
|
1989 |
+
* Minor fixes.
|
1990 |
+
|
1991 |
+
= 5.87 February 2 2018 =
|
1992 |
+
* Filtration quality improved.
|
1993 |
+
* Fix: WP Foto Vote downloading images.
|
1994 |
+
* Fix: Fatal error for unsupported PHP 5.2.
|
1995 |
+
* Fix: Formidable Forms improved spam filtration.
|
1996 |
+
|
1997 |
+
= 5.86 January 25 2018 =
|
1998 |
+
* Fix: High CPU load with wp-ajax.php.
|
1999 |
+
* Fix: Mailpoet: Newsletter.
|
2000 |
+
* Fix: Gravity: Forms standardization for input fields.
|
2001 |
+
* Fix: ajax hook checks data for contact form.
|
2002 |
+
* Fix: UTF8 character in requests.
|
2003 |
+
|
2004 |
+
= 5.85 January 11 2018 =
|
2005 |
+
* Fix: Fast Secure contact form spam block message.
|
2006 |
+
* Fix: IP license status.
|
2007 |
+
* Layout: Dashboard widget description altered.
|
2008 |
+
|
2009 |
+
= 5.84 December 26 2017 =
|
2010 |
+
* Integration: PeepSo contact form
|
2011 |
+
* Repared: Feedback from comments page.
|
2012 |
+
* Fix: mb_* functions used only if exists.
|
2013 |
+
* Fix: Gravity forms: Multi-page form logic repared.
|
2014 |
+
* Fix: Gravity forms: AJAX form logic repared.
|
2015 |
+
* Minor fixes.
|
2016 |
+
|
2017 |
+
= 5.83.2 December 19 2017 =
|
2018 |
+
* Fix: Error in base class.
|
2019 |
+
|
2020 |
+
= 5.83.1 December 19 2017 =
|
2021 |
+
* Fix: CDN IP detection.
|
2022 |
+
|
2023 |
+
= 5.83 December 19 2017 =
|
2024 |
+
* Improving: Stability and compatibility.
|
2025 |
+
* Improving: Spam protection.
|
2026 |
+
* Fix: Comments logic filtration.
|
2027 |
+
* Fix: Admin bar counter.
|
2028 |
+
* Minor errors fixes.
|
2029 |
+
|
2030 |
+
= 5.82.1 December 7 2017 =
|
2031 |
+
* Fixed minor error with attaching JS and CSS files.
|
2032 |
+
|
2033 |
+
= 5.82 December 4 2017 =
|
2034 |
+
* Plugin doesn't use PHP sessions anymore.
|
2035 |
+
* Bug fixes.
|
2036 |
+
* Improved update logic.
|
2037 |
+
|
2038 |
+
= 5.81 November 22 2017 =
|
2039 |
+
* Fixed error with "Show/Hide key" button.
|
2040 |
+
* Slightly improved spam protection for all forms.
|
2041 |
+
* Small errors fixes.
|
2042 |
+
|
2043 |
+
= 5.80 November 3 2017 =
|
2044 |
+
* Spam protection improved.
|
2045 |
+
* Improved filtration quality for WooCommerce checkout.
|
2046 |
+
* Minor fixes for Spam FireWall.
|
2047 |
+
|
2048 |
+
= 5.79 October 26 2017 =
|
2049 |
+
* Spam protection improved.
|
2050 |
+
* Fixed issue with existing spam comments check.
|
2051 |
+
* Added posibility to exclude IP from check.
|
2052 |
+
* Minor fixes.
|
2053 |
+
|
2054 |
+
= 5.78 October 16 2017 =
|
2055 |
+
* Improved compatibility with themes. Changed core functions prefix.
|
2056 |
+
* Fixed issue with WooCommerce checkout.
|
2057 |
+
* Spam protection improved.
|
2058 |
+
* Minor fixes.
|
2059 |
+
|
2060 |
+
= 5.77 October 2 2017 =
|
2061 |
+
* Connection report's system.
|
2062 |
+
* Integration for CouponXXL Theme.
|
2063 |
+
* Fixed issue with mb_* functions.
|
2064 |
+
* Banners logic updated.
|
2065 |
+
|
2066 |
+
= 5.76 September 20 2017 =
|
2067 |
+
* Fixed issue with Spam FireWall and caching plugins.
|
2068 |
+
* Banners logic updated.
|
2069 |
+
|
2070 |
+
= 5.75 September 15 2017 =
|
2071 |
+
* Pause feature for users/comments spam check.
|
2072 |
+
* Improved protection from spam.
|
2073 |
+
* Small fixes.
|
2074 |
+
|
2075 |
+
= 5.74.2 September 2 2017 =
|
2076 |
+
* Fix for users spam check for PHP 5.3 and lower.
|
2077 |
+
|
2078 |
+
= 5.74.1 September 2 2017 =
|
2079 |
+
* Fix for the update system and cloud communication.
|
2080 |
+
* Added possibility to check users and comments for spam with a specific date range.
|
2081 |
+
|
2082 |
+
= 5.74 August 31 2017 =
|
2083 |
+
* Users and comments spam check: Two check types (fast and accurate).
|
2084 |
+
* Fix for WooCommerce checkout test.
|
2085 |
+
* Minor fixes.
|
2086 |
+
|
2087 |
+
= 5.73 August 11 2017 =
|
2088 |
+
* Fix for spam check for already existed users and comments.
|
2089 |
+
* Spam FireWall updated.
|
2090 |
+
* Layout fix for BT Comments.
|
2091 |
+
* Minor fixes.
|
2092 |
+
|
2093 |
+
= 5.72 July 27 2017 =
|
2094 |
+
* Improved spam check for existed users and comments.
|
2095 |
+
* Minor fixes.
|
2096 |
+
|
2097 |
+
= 5.71 July 20 2017 =
|
2098 |
+
* Improved spam protection for external forms.
|
2099 |
+
* Optimization.
|
2100 |
+
* Minor fixes.
|
2101 |
+
|
2102 |
+
= 5.70.2 July 17 2017 =
|
2103 |
+
* Fix for Spam FireWall for Multisite.
|
2104 |
+
|
2105 |
+
= 5.70.1 July 17 2017 =
|
2106 |
+
* Fix for Spam FireWall.
|
2107 |
+
* Spam detection improved.
|
2108 |
+
|
2109 |
+
= 5.70 July 13 2017 =
|
2110 |
+
* New updater logic.
|
2111 |
+
* Self cron system.
|
2112 |
+
* Improved AMP compatibility.
|
2113 |
+
* Optimization.
|
2114 |
+
* Fixed users and comments spam check.
|
2115 |
+
* Fixed layout for Comment's feedback from public page.
|
2116 |
+
* Updated Spam FireWall.
|
2117 |
+
* SFW: Spam FireWall counter now work in real-time.
|
2118 |
+
* SFW: Improved compatibility with different Data Bases.
|
2119 |
+
|
2120 |
+
= 5.69 July 3 2017 =
|
2121 |
+
* Reviewer - integration.
|
2122 |
+
* Optimization for Users and Comments check for big databases.
|
2123 |
+
* Errors fixes.
|
2124 |
+
* Improved protection from spam.
|
2125 |
+
|
2126 |
+
= 5.68 June 22 2017 =
|
2127 |
+
* Contact Form for WordPress - Ultimate Form Builder Lite - integration.
|
2128 |
+
* Contact Bank - Contact Forms Builder - integration.
|
2129 |
+
* Smart Forms - integration.
|
2130 |
+
* cformsII - integration.
|
2131 |
+
* Contact Form by Web-Settler - integration.
|
2132 |
+
* Error fixes.
|
2133 |
+
|
2134 |
+
= 5.67.3 June 9 2017 =
|
2135 |
+
* Fixed JS attachment error.
|
2136 |
+
|
2137 |
+
= 5.67.2 June 5 2017 =
|
2138 |
+
* Fixed error with IP determination.
|
2139 |
+
|
2140 |
+
= 5.67.1 June 4 2017 =
|
2141 |
+
* Fixed JS error in 5.67 version.
|
2142 |
+
* Integrations: Enfold theme, Convertplug.
|
2143 |
+
* Links to check for Emails/IP for spam.
|
2144 |
+
* Control comments and feedback about them from public post's page.
|
2145 |
+
* Improved connection stability with cloud service.
|
2146 |
+
* Spam protection improved.
|
2147 |
+
* Other small fixes.
|
2148 |
+
|
2149 |
+
= 5.67 June 1 2017 =
|
2150 |
+
* Integrations: Enfold theme, Convertplug.
|
2151 |
+
* Links to check for Emails/IP for spam.
|
2152 |
+
* Control comments and feedback about them from public post's page.
|
2153 |
+
* Improved connection stability with cloud service.
|
2154 |
+
* Spam protection improved.
|
2155 |
+
* Other small fixes.
|
2156 |
+
|
2157 |
+
= 5.66 May 23 2017 =
|
2158 |
+
* Spam protection improved.
|
2159 |
+
* Major fixes for users and comments spam check.
|
2160 |
+
* Added feedback from Wordpress comments list.
|
2161 |
+
* Fix for "internal forms check" option.
|
2162 |
+
* Fixed issue with caching Spam FireWall die page.
|
2163 |
+
* Other small fixes.
|
2164 |
+
|
2165 |
+
= 5.65 May 16 2017 =
|
2166 |
+
* Fix for PayPal redirecton.
|
2167 |
+
* Fixed issue with empty query for bulk comments test.
|
2168 |
+
* Added protection for Enfold contact form.
|
2169 |
+
* Ninja forms integration.
|
2170 |
+
|
2171 |
+
= 5.64 April 26 2017 =
|
2172 |
+
* Integration for Facebook registrations.
|
2173 |
+
* Small fixes for WPMS.
|
2174 |
+
* Fix for Activecampaign service.
|
2175 |
+
* Fix for check spam users.
|
2176 |
+
* Fixed rare notice Notice: Undefined index: REQUEST_URI
|
2177 |
+
|
2178 |
+
= 5.63 April 20 2017 =
|
2179 |
+
* Fix for the dashboard spam stat widget.
|
2180 |
+
* Added translation posibility for all text.
|
2181 |
+
|
2182 |
+
= 5.62 April 17 2017 =
|
2183 |
+
* Fix for the dashboard spam statistics widget.
|
2184 |
+
* Fix for users spam check.
|
2185 |
+
* Small appearance changes.
|
2186 |
+
|
2187 |
+
= 5.61 April 6 2017 =
|
2188 |
+
* Improved filtration.
|
2189 |
+
* Additional logic for the form recognizing.
|
2190 |
+
* Integration: Divi Theme Contact Form.
|
2191 |
+
* Fix: Gravity Forms multipages forms.
|
2192 |
+
* Stat Widget: Minor fixes.
|
2193 |
+
* Added possibility to download results of the users check in CSV format.
|
2194 |
+
* Alteration for settings page (footer).
|
2195 |
+
|
2196 |
+
= 5.60.1 March 29 2017 =
|
2197 |
+
* Fixed error function 'locale_get_display_region' no exists.
|
2198 |
+
|
2199 |
+
= 5.60 March 29 2017 =
|
2200 |
+
* Added main dashboard widget with spam sctivity stats.
|
2201 |
+
* Mailster - integration.
|
2202 |
+
* Base class updated.
|
2203 |
+
|
2204 |
+
= 5.59 March 24 2017 =
|
2205 |
+
* Users/comments check fix.
|
2206 |
+
* Plugin's name changed to Anti-Spam by CleanTalk.
|
2207 |
+
* Trial banner is dismissable. Disapear for 24h or till logout.
|
2208 |
+
* Settings modified (Auto testing failed warning).
|
2209 |
+
* Mailing(inactive key) interval increased to 6 hours.
|
2210 |
+
|
2211 |
+
= 5.58.6 March 16 2017 =
|
2212 |
+
* Fix for Ninja forms (protection updated).
|
2213 |
+
* Fix for QA Theme.
|
2214 |
+
* Fix for RSVP form.
|
2215 |
+
* Setting changes (Spam FireWall).
|
2216 |
+
* Improved debug section.
|
2217 |
+
* Improved gathering data function.
|
2218 |
+
* Minor fixes.
|
2219 |
+
|
2220 |
+
= 5.58.5 March 6 2017 =
|
2221 |
+
* Minor backend fix.
|
2222 |
+
|
2223 |
+
= 5.58.4 March 6 2017 =
|
2224 |
+
* Users check fix (redirect after the check).
|
2225 |
+
* Fixed PHP Notice "HTTP_REFERER" is unset.
|
2226 |
+
* Updated Notice logic.
|
2227 |
+
|
2228 |
+
= 5.58.3 February 28 2017 =
|
2229 |
+
* Bitrix24 Contact form integration.
|
2230 |
+
* Users/comments check fix.
|
2231 |
+
* Spam sorting updated.
|
2232 |
+
* Banner showing logic.
|
2233 |
+
|
2234 |
+
= 5.58.2 February 17 2017 =
|
2235 |
+
* Cron fix for daily report.
|
2236 |
+
|
2237 |
+
= 5.58.1 February 16 2017 =
|
2238 |
+
* Minor fixes.
|
2239 |
+
|
2240 |
+
= 5.58 February 15 2017 =
|
2241 |
+
* Work without access key
|
2242 |
+
* Bitrix24 contact integration
|
2243 |
+
* Issues fixes
|
2244 |
+
|
2245 |
+
= 5.57.1 February 8 2017 =
|
2246 |
+
* Fix for notice logic.
|
2247 |
+
|
2248 |
+
= 5.57 February 8 2017 =
|
2249 |
+
* Setting page changes.
|
2250 |
+
* Bug fixes for WooCommerce.
|
2251 |
+
* Spam FireWall filters only GET requests.
|
2252 |
+
* Optimization.
|
2253 |
+
* Minor and major fixes.
|
2254 |
+
|
2255 |
+
= 5.56.1 January 25 2017 =
|
2256 |
+
* Minor fixes
|
2257 |
+
|
2258 |
+
= 5.56 January 19 2017 =
|
2259 |
+
* Integrations: MailChimp Premium, Profile Press.
|
2260 |
+
* Changes comments flow.
|
2261 |
+
* FireWall updater fix.
|
2262 |
+
* Users check optimization.
|
2263 |
+
|
2264 |
+
= 5.55 December 23 2016 =
|
2265 |
+
* Integrations: Caldera Forms, Visual Form Builder.
|
2266 |
+
* Fix for different 'cookies' header names.
|
2267 |
+
* Fixed user deletion.
|
2268 |
+
|
2269 |
+
= 5.54 December 12 2016 =
|
2270 |
+
* Integrations: AmoForms, Contact Form Clean and Simple.
|
2271 |
+
* Comments check logic refreshed.
|
2272 |
+
* Registration JS error fix.
|
2273 |
+
* Users check fix.
|
2274 |
+
* Fix for translation system.
|
2275 |
+
* Minor fixes.
|
2276 |
+
|
2277 |
+
= 5.53.1 December 9 2016 =
|
2278 |
+
* Minor layout fixes.
|
2279 |
+
|
2280 |
+
= 5.53 November 28 2016 =
|
2281 |
+
* Addition warning before deleting users.
|
2282 |
+
* Spam FireWall is enabled by default.
|
2283 |
+
* Usernoise modal feedback / contact form : integration.
|
2284 |
+
* Translations.
|
2285 |
+
* Optimization.
|
2286 |
+
* Fixes.
|
2287 |
+
|
2288 |
+
= 5.52.1 November 14 2016 =
|
2289 |
+
* Users and comments check: Using new API method.
|
2290 |
+
* Quick Contact From: Integration via "Custom Contact Forms" setting.
|
2291 |
+
* JavaScript filtration improved.
|
2292 |
+
* Translation changes.
|
2293 |
+
* Optimized JavaScript code.
|
2294 |
+
|
2295 |
+
= 5.51 November 2 2016 =
|
2296 |
+
* Added protection for internal forms
|
2297 |
+
* Immediate spam check for comments and users from WP dashboard
|
2298 |
+
* Optimized code
|
2299 |
+
|
2300 |
+
= 5.50.1 October 24 2016 =
|
2301 |
+
* Improved filtration in contact forms.
|
2302 |
+
* Spam FireWall: Fixed issue with SFW logs
|
2303 |
+
* Skipping service fields: Fast Secure Contact Froms, QU Forms, Custom Contact Forms
|
2304 |
+
|
2305 |
+
= 5.50 October 20 2016 =
|
2306 |
+
* Custom contact forms: integration.
|
2307 |
+
* Pirate Forms: integration.
|
2308 |
+
* PHP 7 compatibility: Deleted third-party JSON library and dependences.
|
2309 |
+
* PHP 7 compatibility: Fixed end of lines.
|
2310 |
+
* YOAST Seo: Fixed PHP warnings.
|
2311 |
+
* Spam FireWall: Minor fix for Spam FireWall counter.
|
2312 |
+
* Only admin could access to CleanTalk dashboard (exclude Authors an Editors).
|
2313 |
+
* Improved filtration in contact forms.
|
2314 |
+
|
2315 |
+
= 5.49.2 October 5 2016 =
|
2316 |
+
* Second Fix for database error. Stable version.
|
2317 |
+
|
2318 |
+
= 5.49.1 October 5 2016 =
|
2319 |
+
* Fixed database error.
|
2320 |
+
|
2321 |
+
= 5.49 October 3 2016 =
|
2322 |
+
* Spam FireWall feature: Class upgraded.
|
2323 |
+
* New feature: Delete links from approved comments.
|
2324 |
+
* Settings: Grouped.
|
2325 |
+
* Settings: Altered description fixed spelling mistakes.
|
2326 |
+
* Settings: Added indicator for Spam FireWall.
|
2327 |
+
* Admin bar: Added Spam FireWall counter
|
2328 |
+
* Clean and Simple Contact Form: Direct integration.
|
2329 |
+
* WooCommerce: Don't check password recovery form.
|
2330 |
+
* WooCommerce Wishlists: Issue with check for Google bots.
|
2331 |
+
* JetPack: contact form fix.
|
2332 |
+
* Fixed and created the defaults for all CleanTalk options.
|
2333 |
+
* Fixed spelling mistakes.
|
2334 |
+
|
2335 |
+
= 5.48 September 15 2016 =
|
2336 |
+
* buddyPress: Added private messages filtering. Doesn't check user if he has 3 or more messages in the "sentbox" and "inbox" folders.
|
2337 |
+
* buddyPress: Added option in settings for private messages check.
|
2338 |
+
* WooCommerce Wishlist: Added check for wishlists.
|
2339 |
+
* Fixed issue with "check all post data" option.
|
2340 |
+
* Improved filtering for Gravity Forms
|
2341 |
+
* Mobile Assistant Connector fix
|
2342 |
+
* Minor fixes.
|
2343 |
+
|
2344 |
+
= 5.47 September 5 2016 =
|
2345 |
+
* WooCommerce: direct integration for checkout form.
|
2346 |
+
* WooCommerce Sensei: login form fix.
|
2347 |
+
* bbPress: Added the check for topics and comments with stop_words
|
2348 |
+
* bbPress: Skip check for admin in comments and topics
|
2349 |
+
* UserPro: fixes. Request without field "shortcode"
|
2350 |
+
* Contact Form 7: Bug fix.
|
2351 |
+
* Spam FireWall: Optimized logs rotation.
|
2352 |
+
* Updated inner functions (compatibility fix for PHP 5.4+)
|
2353 |
+
* Fixed output of counters (without spamfirewall stats)
|
2354 |
+
* Fixed spelling in settings
|
2355 |
+
* Added "Delete from the list" button in comments spam check page
|
2356 |
+
* Minor fixes.
|
2357 |
+
|
2358 |
+
= 5.46 August 17 2016 =
|
2359 |
+
* Fixed issue with admin bar links in WP Multi Network mode.
|
2360 |
+
* Added "All time counter" and "Daily counter" into admin bar.
|
2361 |
+
* Added settings to disable counters in admin bar.
|
2362 |
+
* New style for "Get access key manually" button.
|
2363 |
+
|
2364 |
+
= 5.45.2 August 4 2016 =
|
2365 |
+
* Added Anti-Spam protection for Quick Event Manager.
|
2366 |
+
* Improved bulk spam test for users. Now the plugin does not mark as Spam user, if the user IP address has spam activity more then 30 days ago.
|
2367 |
+
* Fixed bulk spam test for comments. Previous version had a conflict between spam history for IP and Email.
|
2368 |
+
* Minor fix function to get the API key.
|
2369 |
+
|
2370 |
+
= 5.45.1 July 26 2016 =
|
2371 |
+
* Fixed issue with missed spam messages, subscriptions.
|
2372 |
+
* Improved bulk spam test for comments. Now the plugin will not mark as Spam comments, if a comment sender (IP address) has spam activity more then 30 days ago.
|
2373 |
+
|
2374 |
+
= 5.45 July 21 2016 =
|
2375 |
+
* Optimized bulk spam comments deletion.
|
2376 |
+
* Turned off JavaScript anti-spam cookies if the option 'Set cookies' is turned off. It helps to avoid issues with Varnish.
|
2377 |
+
* Added links to bulk spam comments&users removal tool.
|
2378 |
+
|
2379 |
+
= 5.44.1 July 13 2016 =
|
2380 |
+
* Optimized options getting code.
|
2381 |
+
* Added the option 'Protect Logged in users' to do anti-spam tests for submissions by logged in users.
|
2382 |
+
|
2383 |
+
= 5.43.2 June 30 2016 =
|
2384 |
+
* Optimized anti-spam code for AJAX based contact forms.
|
2385 |
+
* Fixed CSS layout of counters in Admin bar (issue with layout in IE11).
|
2386 |
+
|
2387 |
+
= 5.43.1 June 23 2016 =
|
2388 |
+
* Added agent version in requests to test a connection between the website and servers.
|
2389 |
+
* Fixed issue with PHP notices in cleantalk-admin.php.
|
2390 |
+
|
2391 |
+
= 5.43 June 22 2016 =
|
2392 |
+
* Added spam protection for registrations via 'Login with AJAX' plug-in.
|
2393 |
+
* Added a new counter to Admin bar that allows to count spam and approved submissions since last reset.
|
2394 |
+
* Update the code that tests a connection between a website and CleanTalk's servers. New version doesn't generate submissions with email good@cleantalk.org.
|
2395 |
+
* Fixed issue with spam protection for nested forms by Formidable plug-in.
|
2396 |
+
|
2397 |
+
= 5.42 2016-06-15 =
|
2398 |
+
* Added anti-spam protection for UserPro.
|
2399 |
+
* Improved protection for Formidable forms + Varnish.
|
2400 |
+
* Improved bulk search for spam accounts.
|
2401 |
+
* Fixed spam protection for pages that contain multiple Formidable forms with same HTML ID.
|
2402 |
+
* Optimized PHP code to be compatible with PHP 5.4 and above. The patch has been applied to Formidable forms spam protection.
|
2403 |
+
* Minor fixes in plugin backend.
|
2404 |
+
|
2405 |
+
= 5.41 2016-05-31 =
|
2406 |
+
* Added HTTP response in plugin response if an network issue was happend.
|
2407 |
+
* Optimized JavaScript anti-spam test for Formidable forms.
|
2408 |
+
* Re-stored the option to auto redirect to plugn settings after plugin activation.
|
2409 |
+
* Fixed issue with nasted fields in Formidable forms.
|
2410 |
+
|
2411 |
+
= 5.40.3 2016-05-26 =
|
2412 |
+
* Added option to encrypt (SSL) connection to CleanTalk anti-spam servers.
|
2413 |
+
* Added JSON encoding for AJAX forms.
|
2414 |
+
* Obfuscated private data for Custom contact forms option.
|
2415 |
+
* Optimized bulk users check for spam over blacklists database.
|
2416 |
+
* Fixed issue with lost connection to servers and JavaScript anti-spam test.
|
2417 |
+
* Fixed issue with WordFence and collect_details.
|
2418 |
+
|
2419 |
+
= 5.40.2 2016-05-11 =
|
2420 |
+
* Improved account status check logic.
|
2421 |
+
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
2422 |
+
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
2423 |
+
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
2424 |
+
|
2425 |
+
= 5.40.1 2016-04-28 =
|
2426 |
+
* Fixed issue with Super Socializer.
|
2427 |
+
* Fixed issue with spam filtration for logged in users and Formidable forms.
|
2428 |
+
* Added logging of all submitted fields for FastSecure contact form.
|
2429 |
+
|
2430 |
+
= 5.40 2016-04-19 =
|
2431 |
+
* Added JSON encoding for posts that were protected via Custom contact forms option. It allows show anti-spam logs in the Dashboard in more comfortable view.
|
2432 |
+
* Minor fix in plugin settings.
|
2433 |
+
* Fixed pagination for bulk users spam test.
|
2434 |
+
* Fixed issue with unknown _SESSION.
|
2435 |
+
* Fixed issue with double Spam FireWall database upload.
|
2436 |
+
|
2437 |
+
= 5.39.1 2016-04-04 =
|
2438 |
+
* Improved AJAX based anti-spam test with HTTPS backends.
|
2439 |
+
* Added fix to avoid issue with empty ct_info_flag on JavaScript side.
|
2440 |
+
* Added logic to exclude caching for Spam FireWall.
|
2441 |
+
* Removed a condition to skip accounts with 127.0.0.1 IP in spam test for registered acconts.
|
2442 |
+
|
2443 |
+
= 5.38.1 2016-03-24 =
|
2444 |
+
* Fixed issue with PHP sessions and 'The session id is too long or contains illegal characters'.
|
2445 |
+
* Removed Spam FireWall protection on /feed page.
|
2446 |
+
* Disabled anti-spam tests for AJAX calls if the option 'Custom contact forms' is turned off.
|
2447 |
+
* Added reject notice for spam submissions on Gravity forms with AJAX calls.
|
2448 |
+
|
2449 |
+
= 5.37.3 2016-03-10 =
|
2450 |
+
* Minor bug fixes. Added an option to support Varnish cache.
|
2451 |
+
|
2452 |
+
= 5.36.1 2016-02-05 =
|
2453 |
+
* Fixed bug, when users receive error after logging in
|
2454 |
+
|
2455 |
+
= 5.36 2016-02-04 =
|
2456 |
+
* Improved JavaScript anti spam protection
|
2457 |
+
* Improvements for avoiding blocking requests from payment systems
|
2458 |
+
|
2459 |
+
= 5.35 2016-01-14 =
|
2460 |
+
* Added support for IP licensing
|
2461 |
+
* Some anti-spam protection improvements
|
2462 |
+
* Small backend interface fixes
|
2463 |
+
|
2464 |
+
= 5.34.1 2015-12-17 =
|
2465 |
+
* Fixed trackback antispam protection: improved checking mechanism
|
2466 |
+
* Fixed problem with blocking MailPoet: added exclusions in spam checking algorithm
|
2467 |
+
|
2468 |
+
= 5.34 2015-12-10 =
|
2469 |
+
* Improved spam checking mechanism
|
2470 |
+
* Added "Collect browser details" option for better antispam protection
|
2471 |
+
* Fixed custom contact forms checking
|
2472 |
+
* Minor translations fixes
|
2473 |
+
|
2474 |
+
= 5.33.1 2015-12-04 =
|
2475 |
+
* Fixed issue with BBPress
|
2476 |
+
* Fixed anti-spam comments checking
|
2477 |
+
* Fixed bulk checking
|
2478 |
+
* Fixed trackback and pingback checking
|
2479 |
+
|
2480 |
+
= 5.33 2015-12-01 =
|
2481 |
+
* Backend interface fixes
|
2482 |
+
* Improved Spam FireWall efficiency
|
2483 |
+
* Improved performance of anti spam checking
|
2484 |
+
|
2485 |
+
= 5.32 2015-11-26 =
|
2486 |
+
* Added improvements for manual spam detection
|
2487 |
+
* Fixed errors in backend
|
2488 |
+
* Fixed bulk users anti spam checking
|
2489 |
+
* Added indicator for bulk spam checking
|
2490 |
+
* Added "Get access key automatically" feature
|
2491 |
+
|
2492 |
+
= 5.31 2015-11-11 =
|
2493 |
+
* Improved backend performance
|
2494 |
+
* Fixed counter of approved/blocked spam attacks
|
2495 |
+
* Fixed Spam Firewall logging
|
2496 |
+
|
2497 |
+
= 5.30 2015-11-05 =
|
2498 |
+
* Improved anti-spam checking
|
2499 |
+
* Optimized performance
|
2500 |
+
* Fixed blocking email preview in MailPoet
|
2501 |
+
* Interface fixes
|
2502 |
+
* WPMU interface fixes
|
2503 |
+
|
2504 |
+
= 5.29 2015-10-27 =
|
2505 |
+
* Optimized performance
|
2506 |
+
* Fixed bugs in custom contact forms spam checking
|
2507 |
+
|
2508 |
+
= 5.28.7 2015-10-23 =
|
2509 |
+
* Major backend peromance fix.
|
2510 |
+
|
2511 |
+
= 5.28 2015-10-16 =
|
2512 |
+
* Fixed errors in anti-spam checking
|
2513 |
+
* Restored options for spam checking registrations and cpmmon contact forms
|
2514 |
+
* Improved anti spam defence
|
2515 |
+
* Fixed problems with AJAX functionality in MailPoet, WooCommerce and other AJAX plugins
|
2516 |
+
|
2517 |
+
= 5.27 2015-10-13 =
|
2518 |
+
* Improvements in Spam FireWall feature
|
2519 |
+
* Code optimization
|
2520 |
+
* Backend interface fixes
|
2521 |
+
|
2522 |
+
= 5.26 2015-10-05 =
|
2523 |
+
* Added WordPress Language Pack support
|
2524 |
+
* Removed spam checking for some autorisation plugins
|
2525 |
+
* New experimental feature: Spam FireWall
|
2526 |
+
|
2527 |
+
= 5.25.2 2015-09-28 =
|
2528 |
+
* Fixed backend bug
|
2529 |
+
|
2530 |
+
= 5.25.1 2015-09-28 =
|
2531 |
+
* Added widget with anti-spam stats
|
2532 |
+
* Added information about blocked spam attacks in admin dashboard and CleanTalk settings
|
2533 |
+
* Added ability not to check comments for users with 3 or above allowed comments
|
2534 |
+
* Added an option 'Help others known CleanTalk' to show information for site visitors, that your site is protected from spam by us
|
2535 |
+
* Some backend interface settings
|
2536 |
+
* Removed "CleanTalk connection test" query
|
2537 |
+
|
2538 |
+
= 5.24.1 2015-09-16 =
|
2539 |
+
* Fixed some errors in frontend
|
2540 |
+
* Fixed access key saving
|
2541 |
+
|
2542 |
+
= 5.24 2015-09-14 =
|
2543 |
+
* Backend interface fixes
|
2544 |
+
* Improvement for AJAX JavaScript spam checking
|
2545 |
+
|
2546 |
+
= 5.23 2015-09-01 =
|
2547 |
+
* Fixed BuddyPress profile search false positivities of anti-spam protection.
|
2548 |
+
* Some interface fixes of bulk users & comments spam checking
|
2549 |
+
|
2550 |
+
= 5.22 2015-08-26 =
|
2551 |
+
* Fixed possible XSS issue for anti-spam test on third-party forms.
|
2552 |
+
|
2553 |
+
= 5.21 2015-08-21 =
|
2554 |
+
* Fixed bug with skipping spam submissions
|
2555 |
+
* Fixed bug with receiving old user_token for viewing anti-spam stats
|
2556 |
+
* Small backend fixes
|
2557 |
+
|
2558 |
+
= 5.20 2015-08-15 =
|
2559 |
+
* Fixed anti-spam stats in admin bar
|
2560 |
+
* Fixed issue with skipping spam submissions
|
2561 |
+
* Added some PHP-constants for advanced users
|
2562 |
+
|
2563 |
+
= 5.19 2015-08-11 =
|
2564 |
+
* New feature: anti-spam checking for registered users
|
2565 |
+
* Fixed issue with AJAX JavaScript checking
|
2566 |
+
* Fixed issue with SEO Yoast xml sitemaps.
|
2567 |
+
|
2568 |
+
= 5.18 2015-08-04 =
|
2569 |
+
* Fixed issue with user_token
|
2570 |
+
* Added anti-spam API, see our FAQ
|
2571 |
+
|
2572 |
+
= 5.17 2015-07-23 =
|
2573 |
+
* Fixed infinite redirection after activation
|
2574 |
+
* Minor backend fixes
|
2575 |
+
|
2576 |
+
= 5.16 2015-07-22 =
|
2577 |
+
* Fixed external services checking
|
2578 |
+
* Fixed mass comments deletion
|
2579 |
+
* Fixed AJAX anti-spam protection
|
2580 |
+
|
2581 |
+
= 5.15 2015-07-16 =
|
2582 |
+
* New feature: anti-spam protection for forms, that uses external services
|
2583 |
+
|
2584 |
+
= 5.14 2015-07-03 =
|
2585 |
+
* Added anti-spam protection for some themes and plugins
|
2586 |
+
* Some backend fixes
|
2587 |
+
|
2588 |
+
= 5.13 2015-06-12 =
|
2589 |
+
* Closing notification for anti-spam renew
|
2590 |
+
* Fixed bulk anti spam comment checking
|
2591 |
+
|
2592 |
+
= 5.12 2015-06-01 =
|
2593 |
+
* Added option for checking all post data for spam
|
2594 |
+
* Some JavaScript protection improvements
|
2595 |
+
* Added option for old JavaScript check (without AJAX)
|
2596 |
+
|
2597 |
+
= 5.10 2015-05-25 =
|
2598 |
+
* Fixed Javascript error on some forms
|
2599 |
+
|
2600 |
+
= 5.9 2015-05-21 =
|
2601 |
+
* Fixed Javascript error on CF7 and JetPack
|
2602 |
+
* Some backend and frontent fixes
|
2603 |
+
|
2604 |
+
= 5.8 2015-05-18 =
|
2605 |
+
* Minor fixes
|
2606 |
+
|
2607 |
+
= 5.7 2015-05-18 =
|
2608 |
+
* Fixed French translation
|
2609 |
+
* Fixed protection algorithm
|
2610 |
+
|
2611 |
+
= 5.6 2015-05-11 =
|
2612 |
+
* Fixed translation
|
2613 |
+
* Fixed bulk comments anti-spam checking
|
2614 |
+
* Added option for disabling anti spam stats in adminbar
|
2615 |
+
* Some security fixes
|
2616 |
+
|
2617 |
+
= 5.5 2015-04-29
|
2618 |
+
* Fixed security issue
|
2619 |
+
|
2620 |
+
= 5.4 2015-04-27 =
|
2621 |
+
* Some interface and functionality changes in plugin settings page
|
2622 |
+
* Added counter for anti-spam stats in admin bar
|
2623 |
+
|
2624 |
+
= 5.3 2015-04-13 =
|
2625 |
+
* Added anti-spam protection for Divi theme contact forms
|
2626 |
+
* Added anti-spam protection for MyMail contact forms
|
2627 |
+
* Added anti-spam protection for MailPoet Newsletters
|
2628 |
+
* Some interface and functionality changes in backend
|
2629 |
+
|
2630 |
+
= 5.2 2015-04-01 =
|
2631 |
+
* Added link for anti-spam stats
|
2632 |
+
* Added WP User Frontend Pro registration form protection
|
2633 |
+
|
2634 |
+
= 5.10 2015-03-24 =
|
2635 |
+
* Fixed site crash after installing 5.0 on some websites
|
2636 |
+
|
2637 |
+
= 5.00 2015-03-24 =
|
2638 |
+
* Added bulk comments checking for spam via CleanTalk blacklists
|
2639 |
+
* Added anti-spam form protection for 'Ajax Login & Register'
|
2640 |
+
* Fixed JetPack form protection
|
2641 |
+
|
2642 |
+
= 4.24 2015-03-20 =
|
2643 |
+
Added immediate spam protection activation.
|
2644 |
+
|
2645 |
+
= 4.22 2015-03-17 =
|
2646 |
+
* Added button for automatic spam protection key getting.
|
2647 |
+
|
2648 |
+
= 4.21 2015-03-11 =
|
2649 |
+
* Added license renew notification.
|
2650 |
+
|
2651 |
+
= 4.20 2015-03-03 =
|
2652 |
+
* German, Italian, Polish, Portuguese translations, minor code fixes.
|
2653 |
+
|
2654 |
+
= 4.19 2015-02-24 =
|
2655 |
+
* Increased JS keys lifetime.
|
2656 |
+
|
2657 |
+
= 4.18 2015-02-17 =
|
2658 |
+
* Bugfix - fixed bug with comments approvement, PayPal 'payment_status' and Akismet 'spam' status processing.
|
2659 |
+
|
2660 |
+
= 4.17 2015-02-12 =
|
2661 |
+
* New base class, divided code to 3 separate files - common, public and admin.
|
2662 |
+
|
2663 |
+
= 4.16 2015-02-05 =
|
2664 |
+
* New base class, fixed JetPack filters logics, optimized Formidable, bbPress, BuddyPress filters.
|
2665 |
+
|
2666 |
+
= 4.15 2015-01-29 =
|
2667 |
+
* Support of Contact Form 7 versions before 3.0.0, fixed global JS-vars and online notice cookie logics.
|
2668 |
+
|
2669 |
+
= 4.14 2015-01-19 =
|
2670 |
+
* Removed deprecated option from comment approvement code.
|
2671 |
+
|
2672 |
+
= 4.13 2014-12-29 =
|
2673 |
+
* Not spam comments auto approvement bug fix.
|
2674 |
+
|
2675 |
+
= 4.12 2014-12-29 =
|
2676 |
+
* Plugin backend minfor bug fixes.
|
2677 |
+
|
2678 |
+
= 4.11 2014-12-22 =
|
2679 |
+
* Major changes in spam protection algorithms.
|
2680 |
+
|
2681 |
+
= 4.10 2014-12-10 =
|
2682 |
+
* Minor improvements for custom contact/registration/subscribe forms.
|
2683 |
+
|
2684 |
+
= 4.9 2014-11-24 =
|
2685 |
+
* Minor bug fix for Contact form 7.
|
2686 |
+
|
2687 |
+
= 4.8 2014-11-19 =
|
2688 |
+
* Improved anti-spam protection for BuddyPress registrations and custom contact forms.
|
2689 |
+
|
2690 |
+
= 4.7 2014-11-16 =
|
2691 |
+
* Fixed JavaScript antispam test for FastSecure contact form.
|
2692 |
+
|
2693 |
+
= 4.6 2014-11-11 =
|
2694 |
+
* Minor changes in anti-spam logic for BuddyPress registrations, contact forms and bbPress guest posting.
|
2695 |
+
|
2696 |
+
= 4.5 2014-11-04 =
|
2697 |
+
* Bug fixes for Contact form 7 and bbPress guests posting.
|
2698 |
+
|
2699 |
+
= 4.4 2014-10-29 =
|
2700 |
+
* Improved JS checking for CF7.
|
2701 |
+
|
2702 |
+
= 4.2 2014-10-20 =
|
2703 |
+
* Increased plugin perfomance for BuddyPress registrations.
|
2704 |
+
|
2705 |
+
= 4.1 2014-10-13 =
|
2706 |
+
* Minor anti-spam improvements for contacts, registration and contact forms.
|
2707 |
+
|
2708 |
+
= 4.0 2014-10-06 =
|
2709 |
+
* Major anti-spam improvements for registration and contact forms.
|
2710 |
+
|
2711 |
+
= 3.9 2014-10-01 =
|
2712 |
+
* Did exception to do not break to create new user in WordPress backend.
|
2713 |
+
|
2714 |
+
= 3.8 2014-09-19 =
|
2715 |
+
* Bug fix release. Minor fixes in API class and JavaScript anti-spam test.
|
2716 |
+
|
2717 |
+
= 3.6 2014-09-15 =
|
2718 |
+
* Minor fixes in anti-spam protection for Formidable and custom contact forms.
|
2719 |
+
|
2720 |
+
= 3.4 2014-09-04 =
|
2721 |
+
* Spam comments rotation. Custom (themes) contact forms support.
|
2722 |
+
|
2723 |
+
= 3.2 2014-08-27 =
|
2724 |
+
* Minor changes in spam filtration logic.
|
2725 |
+
|
2726 |
+
= 3.1 2014-08-19 =
|
2727 |
+
* Major changes for comments antispam logic. Improved plugin speed.
|
2728 |
+
|
2729 |
+
= 2.59 2014-08-14 =
|
2730 |
+
* Antispam protection for bbPress guests posts. Improvement for JetPack comments and PHP API update.
|
2731 |
+
|
2732 |
+
= 2.58 2014-08-06 =
|
2733 |
+
* Added anti-spam protection for signups posted via WooCommerce order form.
|
2734 |
+
* Improved anti-spam protection for Contact Form 7.
|
2735 |
+
* Improved anti-spam protection for registrations. Now the plugin looking for JavaScript antispam test results not only in POST array, but in COOKIES array too. This improvement allows protect signup forms for any untested signups plugins and themes.
|
2736 |
+
* Updated PHP API. No the plugin can resolve sender IP for websites behind proxy servers. If the proxy servers uses private IP address.
|
2737 |
+
|
2738 |
+
= 2.57 2014-07-29 =
|
2739 |
+
* Improved anti-spam protection for comments. The plugin now proccessing website url in the comments form.
|
2740 |
+
* Fixed sign remove logic for approved comments. Previous version doesn't cut sign for comments approved via AJAX call in WordPress backend.
|
2741 |
+
* Fixed switching to SSL for comments. Previous version doesn't use secured connection for comments.
|
2742 |
+
|
2743 |
+
= 2.56 2014-07-21 =
|
2744 |
+
* Fixed account status check logic. Previous version makes unnecessary test API calls when the plugin asks account status check.
|
2745 |
+
|
2746 |
+
= 2.55 2014-07-11 =
|
2747 |
+
* Fixed bug with account status function. In backend the plugin showed notice 'Please don't forget to disable CAPTCHA if you have it on every page.
|
2748 |
+
|
2749 |
+
= 2.54 2014-07-11 =
|
2750 |
+
* Fixed signup anti-spam protection logic for BuddyPress registrations.
|
2751 |
+
* Fixed anti-spam protection for JetPack contact form.
|
2752 |
+
* Changed account status check logic.
|
2753 |
+
|
2754 |
+
= 2.53 2014-06-27 =
|
2755 |
+
* Fixed anit-spam protection bug for signups.
|
2756 |
+
* Changed anti-spam functions (comments and signups) priority.
|
2757 |
+
|
2758 |
+
= 2.52 2014-06-25 =
|
2759 |
+
* Fixed 'Fatal error: Call to a member function get_error_code()' issue with signups via BuddyPress.
|
2760 |
+
|
2761 |
+
= 2.51 2014-06-23 =
|
2762 |
+
* Added spam protection for registrations via plugin New User Approve by Josh Harrison. If the CleanTalk matched signup as spam this signup will be denied to placing in pending queue.
|
2763 |
+
* Added option "Use secure (SSL) connection to CleanTalk cloud". If the option enabled plugin will communicate with CleanTalk severs via 128bit encrypted data channel. So, if you have SSL protected webforms on website you can use this option to be sure that visitors personal data safely transmits to CleanTalk servers.
|
2764 |
+
* Fixed minor bug with loading backend functions.
|
2765 |
+
|
2766 |
+
= 2.49 2014-06-10 =
|
2767 |
+
* Added spam protection for S2Member Auth.net forms.
|
2768 |
+
* Added spam protection for multisite signup form.
|
2769 |
+
* Optimized account status check function.
|
2770 |
+
|
2771 |
+
= 2.46 2014-05-19 =
|
2772 |
+
* Added: HTML notice about the need to enable JavaScript.
|
2773 |
+
* Fixed: Fixed pingbacks anti-spam test.
|
2774 |
+
|
2775 |
+
= 2.44 2014-05-12 =
|
2776 |
+
* Added: Anti-spam protection for S2Member framework.
|
2777 |
+
* Improved: Plugin load time for backend and frontend.
|
2778 |
+
* Improved: JavaScript anti-spam test.
|
2779 |
+
* Fixed: PHP warning mb_convert_encoding()
|
2780 |
+
|
2781 |
+
= 2.42 2014-04-29 =
|
2782 |
+
* Fixed: JavaScript anti-spam test for comments.
|
2783 |
+
|
2784 |
+
= 2.38 2014-03-27 =
|
2785 |
+
* Fixed: Registraion form submit time spam test.
|
2786 |
+
|
2787 |
+
= 2.36 2014-03-12 =
|
2788 |
+
* Reversed to patches from old revisions.
|
2789 |
+
|
2790 |
+
= 2.35 2014-03-12 =
|
2791 |
+
* New: Notifications about disabled account
|
2792 |
+
* New: Improved JavaScript spam test.
|
2793 |
+
* Fixed: Code optimization
|
2794 |
+
* Fixed: JavaScript test for signups.
|
2795 |
+
|
2796 |
+
= 2.33 2014-02-12 =
|
2797 |
+
* Fixed: CURLOPT_FOLLOWLOCATION bug at admin notice
|
2798 |
+
|
2799 |
+
= 2.32 2014-02-04 =
|
2800 |
+
* New: Added notice about automatically approved comment. The notice shows only for first approved comment and only for new commentators (without approved comments) of the blog.
|
2801 |
+
* New: At WordPress console added banner for notices.
|
2802 |
+
* Changed: Screenshots updated.
|
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: https://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
-
Version: 5.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: https://cleantalk.org
|
9 |
Text Domain: cleantalk-spam-protect
|
@@ -82,9 +82,9 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
82 |
// Customize \Cleantalk\ApbctWP\State
|
83 |
// Account status
|
84 |
|
85 |
-
$apbct->white_label = $apbct->network_settings['
|
86 |
-
$apbct->allow_custom_key = $apbct->network_settings['
|
87 |
-
$apbct->plugin_name = $apbct->network_settings['
|
88 |
$apbct->api_key = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->settings['apikey'] : $apbct->network_settings['apikey'];
|
89 |
$apbct->key_is_ok = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->data['key_is_ok'] : $apbct->network_data['key_is_ok'];
|
90 |
$apbct->moderate = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->data['moderate'] : $apbct->network_data['moderate'];
|
@@ -101,7 +101,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
101 |
}
|
102 |
|
103 |
// Disabling comments
|
104 |
-
if($apbct->settings['
|
105 |
\Cleantalk\Antispam\DisableComments::getInstance();
|
106 |
}
|
107 |
|
@@ -173,7 +173,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
173 |
}
|
174 |
|
175 |
// Facebook
|
176 |
-
if ($apbct->settings['
|
177 |
&& (!empty($_POST['action']) && $_POST['action'] == 'fb_intialize')
|
178 |
&& !empty($_POST['FB_userdata'])
|
179 |
){
|
@@ -255,7 +255,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
255 |
|
256 |
// SpamFireWall check
|
257 |
if( $apbct->plugin_version == APBCT_VERSION && // Do not call with first start
|
258 |
-
$apbct->settings['
|
259 |
apbct_is_get() &&
|
260 |
! apbct_wp_doing_cron()
|
261 |
){
|
@@ -287,7 +287,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
287 |
// After plugin loaded - to load locale as described in manual
|
288 |
add_action('plugins_loaded', 'apbct_plugin_loaded' );
|
289 |
|
290 |
-
if( !empty($apbct->settings['
|
291 |
! apbct_is_in_uri( '.xml' ) &&
|
292 |
! apbct_is_in_uri( '.xsl' ) )
|
293 |
{
|
@@ -301,21 +301,20 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
301 |
require_once( CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-find-spam.php' );
|
302 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-admin.php');
|
303 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-settings.php');
|
304 |
-
|
305 |
-
add_action(
|
306 |
-
|
307 |
if (!(defined( 'DOING_AJAX' ) && DOING_AJAX)){
|
308 |
|
309 |
add_action('admin_enqueue_scripts', 'apbct_admin__enqueue_scripts');
|
310 |
-
|
311 |
-
add_action('admin_init', 'apbct_admin__init', 1);
|
312 |
add_action('admin_menu', 'apbct_settings_add_page');
|
313 |
add_action('network_admin_menu', 'apbct_settings_add_page');
|
314 |
add_action('admin_notices', 'apbct_admin__notice_message');
|
315 |
add_action('network_admin_notices', 'apbct_admin__notice_message');
|
316 |
|
317 |
//Show widget only if enables and not IP license
|
318 |
-
if( $apbct->settings['
|
319 |
add_action('wp_dashboard_setup', 'ct_dashboard_statistics_widget' );
|
320 |
}
|
321 |
|
@@ -340,7 +339,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
340 |
// Check AJAX requests
|
341 |
// if User is not logged in
|
342 |
// if Unknown action or Known action with mandatory check
|
343 |
-
if( ( ! apbct_is_user_logged_in() || $apbct->settings['
|
344 |
isset( $_POST['action'] ) &&
|
345 |
( ! in_array( $_POST['action'], $cleantalk_hooked_actions ) || in_array( $_POST['action'], $cleantalk_ajax_actions_to_check ) ) &&
|
346 |
! array_search( $_POST['action'], array_column( $apbct_active_integrations, 'hook' ) )
|
@@ -349,7 +348,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
349 |
}
|
350 |
|
351 |
//QAEngine Theme answers
|
352 |
-
if (intval($apbct->settings['
|
353 |
add_filter('et_pre_insert_question', 'ct_ajax_hook', 1, 1); // Questions
|
354 |
add_filter('et_pre_insert_answer', 'ct_ajax_hook', 1, 1); // Answers
|
355 |
|
@@ -372,7 +371,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
372 |
|
373 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
374 |
//Bitrix24 contact form
|
375 |
-
if ($apbct->settings['
|
376 |
!empty($_POST['your-phone']) &&
|
377 |
!empty($_POST['your-email']) &&
|
378 |
!empty($_POST['your-message'])
|
@@ -445,7 +444,7 @@ if( !defined( 'CLEANTALK_PLUGIN_DIR' ) ){
|
|
445 |
}
|
446 |
|
447 |
// Short code for GDPR
|
448 |
-
if($apbct->settings['
|
449 |
add_shortcode('cleantalk_gdpr_form', 'apbct_shrotcode_handler__GDPR_public_notice__form');
|
450 |
|
451 |
}
|
@@ -492,11 +491,11 @@ function apbct_sfw__check()
|
|
492 |
APBCT_TBL_FIREWALL_LOG,
|
493 |
APBCT_TBL_FIREWALL_DATA,
|
494 |
array(
|
495 |
-
'
|
496 |
'api_key' => $apbct->api_key,
|
497 |
'apbct' => $apbct,
|
498 |
'cookie_domain' => parse_url( get_option( 'siteurl' ), PHP_URL_HOST ),
|
499 |
-
'
|
500 |
)
|
501 |
) );
|
502 |
|
@@ -626,7 +625,7 @@ function apbct_activation__new_blog($blog_id, $user_id, $domain, $path, $site_id
|
|
626 |
ct_sfw_update(); // Updating SFW
|
627 |
ct_account_status_check(null, false);
|
628 |
|
629 |
-
if (isset($settings['
|
630 |
update_option('cleantalk_settings', $settings);
|
631 |
}
|
632 |
restore_current_blog();
|
@@ -650,7 +649,7 @@ function apbct_deactivation( $network ) {
|
|
650 |
apbct_deactivation__delete_blog_tables();
|
651 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
652 |
|
653 |
-
if($apbct->settings['
|
654 |
apbct_deactivation__delete_all_options();
|
655 |
apbct_deactivation__delete_meta();
|
656 |
apbct_deactivation__delete_all_options__in_network();
|
@@ -665,7 +664,7 @@ function apbct_deactivation( $network ) {
|
|
665 |
apbct_deactivation__delete_common_tables();
|
666 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
667 |
|
668 |
-
if($apbct->settings['
|
669 |
apbct_deactivation__delete_all_options();
|
670 |
apbct_deactivation__delete_meta();
|
671 |
}
|
@@ -676,7 +675,7 @@ function apbct_deactivation( $network ) {
|
|
676 |
apbct_deactivation__delete_common_tables();
|
677 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
678 |
|
679 |
-
if($apbct->settings['
|
680 |
apbct_deactivation__delete_all_options();
|
681 |
apbct_deactivation__delete_meta();
|
682 |
}
|
@@ -779,12 +778,12 @@ function ct_add_event($event_type)
|
|
779 |
//Add 1 to counters
|
780 |
if($event_type=='yes'){
|
781 |
$apbct->data['array_accepted'][$current_hour]++;
|
782 |
-
$apbct->data['
|
783 |
$apbct->data['user_counter']['accepted']++;
|
784 |
}
|
785 |
if($event_type=='no'){
|
786 |
$apbct->data['array_blocked'][$current_hour]++;
|
787 |
-
$apbct->data['
|
788 |
$apbct->data['user_counter']['blocked']++;
|
789 |
}
|
790 |
|
@@ -835,7 +834,7 @@ function ct_sfw_update( $api_key = '', $immediate = false ){
|
|
835 |
|
836 |
$api_key = !empty($apbct->api_key) ? $apbct->api_key : $api_key;
|
837 |
|
838 |
-
if( empty( $api_key ) || $apbct->settings['
|
839 |
return true;
|
840 |
}
|
841 |
|
@@ -909,38 +908,46 @@ function ct_sfw_update( $api_key = '', $immediate = false ){
|
|
909 |
);
|
910 |
} else {
|
911 |
|
912 |
-
$
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
935 |
}
|
936 |
-
delete_option( 'sfw_sync_first' );
|
937 |
-
}
|
938 |
|
939 |
-
|
940 |
-
|
|
|
|
|
941 |
|
942 |
-
|
943 |
-
|
|
|
944 |
|
945 |
}
|
946 |
}else
|
@@ -974,7 +981,7 @@ function ct_sfw_send_logs($api_key = '')
|
|
974 |
if(
|
975 |
time() - $apbct->stats['sfw']['sending_logs__timestamp'] < 180 ||
|
976 |
empty( $api_key ) ||
|
977 |
-
$apbct->settings['
|
978 |
){
|
979 |
return true;
|
980 |
}
|
@@ -1165,9 +1172,9 @@ function apbct_rc__deactivate_plugin($plugin = null){
|
|
1165 |
if($plugin){
|
1166 |
|
1167 |
// Switching complete deactivation for security
|
1168 |
-
if($plugin == 'security-malware-firewall/security-malware-firewall.php' && !empty($_GET['
|
1169 |
$spbc_settings = get_option('spbc_settings');
|
1170 |
-
$spbc_settings['
|
1171 |
update_option('spbc_settings', $spbc_settings);
|
1172 |
}
|
1173 |
|
@@ -1208,9 +1215,9 @@ function apbct_rc__uninstall_plugin($plugin = null){
|
|
1208 |
if($plugin){
|
1209 |
|
1210 |
// Switching complete deactivation for security
|
1211 |
-
if($plugin == 'security-malware-firewall/security-malware-firewall.php' && !empty($_GET['
|
1212 |
$spbc_settings = get_option('spbc_settings');
|
1213 |
-
$spbc_settings['
|
1214 |
update_option('spbc_settings', $spbc_settings);
|
1215 |
}
|
1216 |
|
@@ -1533,7 +1540,7 @@ function apbct_store__urls(){
|
|
1533 |
|
1534 |
global $apbct;
|
1535 |
|
1536 |
-
if($apbct->settings['
|
1537 |
|
1538 |
// URLs HISTORY
|
1539 |
// Get current url
|
@@ -1542,7 +1549,7 @@ function apbct_store__urls(){
|
|
1542 |
$current_url = $current_url ? substr($current_url, 0,256) : 'UNKNOWN';
|
1543 |
|
1544 |
// Get already stored URLs
|
1545 |
-
$urls = $apbct->settings['
|
1546 |
? (array)apbct_alt_session__get('apbct_urls')
|
1547 |
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
1548 |
|
@@ -1553,7 +1560,7 @@ function apbct_store__urls(){
|
|
1553 |
$urls = count($urls) > 10 ? array_slice($urls, 1, 10) : $urls;
|
1554 |
|
1555 |
// Saving
|
1556 |
-
$apbct->settings['
|
1557 |
? apbct_alt_session__save('apbct_urls', json_encode($urls))
|
1558 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_urls', json_encode($urls), time()+86400*3, '/', parse_url(get_option('siteurl'),PHP_URL_HOST), false, true, 'Lax');
|
1559 |
|
@@ -1563,14 +1570,14 @@ function apbct_store__urls(){
|
|
1563 |
$new_site_referer = $new_site_referer ? $new_site_referer : 'UNKNOWN';
|
1564 |
|
1565 |
// Get already stored referer
|
1566 |
-
$site_referer = $apbct->settings['
|
1567 |
? apbct_alt_session__get('apbct_site_referer')
|
1568 |
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
1569 |
|
1570 |
// Save if empty
|
1571 |
if( !$site_referer || parse_url($new_site_referer, PHP_URL_HOST) !== apbct_get_server_variable( 'HTTP_HOST' ) ){
|
1572 |
|
1573 |
-
$apbct->settings['
|
1574 |
? apbct_alt_session__save('apbct_site_referer', $new_site_referer)
|
1575 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_site_referer', $new_site_referer, time()+86400*3, '/', parse_url(get_option('siteurl'),PHP_URL_HOST), false, true, 'Lax');
|
1576 |
}
|
@@ -1621,11 +1628,11 @@ function apbct_cookie(){
|
|
1621 |
|
1622 |
global $apbct;
|
1623 |
|
1624 |
-
if($apbct->settings['
|
1625 |
apbct_alt_sessions__remove_old();
|
1626 |
|
1627 |
if(
|
1628 |
-
empty($apbct->settings['
|
1629 |
!empty($apbct->flags__cookies_setuped) || // Cookies already set
|
1630 |
!empty($apbct->headers_sent) // Headers sent
|
1631 |
)
|
@@ -1652,7 +1659,7 @@ function apbct_cookie(){
|
|
1652 |
// Submit time
|
1653 |
if(empty($_POST['ct_multipage_form'])){ // Do not start/reset page timer if it is multipage form (Gravitiy forms))
|
1654 |
$apbct_timestamp = time();
|
1655 |
-
$apbct->settings['
|
1656 |
? apbct_alt_session__save('apbct_timestamp', $apbct_timestamp)
|
1657 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_timestamp', $apbct_timestamp, 0, '/', $domain, false, true, 'Lax' );
|
1658 |
$cookie_test_value['cookies_names'][] = 'apbct_timestamp';
|
@@ -1661,7 +1668,7 @@ function apbct_cookie(){
|
|
1661 |
|
1662 |
// Pervious referer
|
1663 |
if(apbct_get_server_variable( 'HTTP_REFERER' )){
|
1664 |
-
$apbct->settings['
|
1665 |
? apbct_alt_session__save('apbct_prev_referer', apbct_get_server_variable( 'HTTP_REFERER' ))
|
1666 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_prev_referer', apbct_get_server_variable( 'HTTP_REFERER' ), 0, '/', $domain, false, true, 'Lax' );
|
1667 |
$cookie_test_value['cookies_names'][] = 'apbct_prev_referer';
|
@@ -1669,12 +1676,12 @@ function apbct_cookie(){
|
|
1669 |
}
|
1670 |
|
1671 |
// Landing time
|
1672 |
-
$site_landing_timestamp = $apbct->settings['
|
1673 |
? apbct_alt_session__get('apbct_site_landing_ts')
|
1674 |
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
1675 |
if(!$site_landing_timestamp){
|
1676 |
$site_landing_timestamp = time();
|
1677 |
-
$apbct->settings['
|
1678 |
? apbct_alt_session__save('apbct_site_landing_ts', $site_landing_timestamp)
|
1679 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_site_landing_ts', $site_landing_timestamp, 0, '/', $domain, false, true, 'Lax' );
|
1680 |
}
|
@@ -1683,13 +1690,13 @@ function apbct_cookie(){
|
|
1683 |
|
1684 |
// Page hits
|
1685 |
// Get
|
1686 |
-
$page_hits = $apbct->settings['
|
1687 |
? apbct_alt_session__get('apbct_page_hits')
|
1688 |
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
1689 |
// Set / Increase
|
1690 |
$page_hits = intval($page_hits) ? $page_hits + 1 : 1;
|
1691 |
|
1692 |
-
$apbct->settings['
|
1693 |
? apbct_alt_session__save('apbct_page_hits', $page_hits)
|
1694 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_page_hits', $page_hits, 0, '/', $domain, false, true, 'Lax' );
|
1695 |
|
@@ -1698,7 +1705,7 @@ function apbct_cookie(){
|
|
1698 |
|
1699 |
// Cookies test
|
1700 |
$cookie_test_value['check_value'] = md5($cookie_test_value['check_value']);
|
1701 |
-
if(!$apbct->settings['
|
1702 |
\Cleantalk\Common\Helper::apbct_cookie__set('apbct_cookies_test', urlencode(json_encode($cookie_test_value)), 0, '/', $domain, false, true, 'Lax' );
|
1703 |
|
1704 |
$apbct->flags__cookies_setuped = true;
|
@@ -1714,7 +1721,7 @@ function apbct_cookies_test()
|
|
1714 |
{
|
1715 |
global $apbct;
|
1716 |
|
1717 |
-
if($apbct->settings['
|
1718 |
return 1;
|
1719 |
|
1720 |
if(isset($_COOKIE['apbct_cookies_test'])){
|
@@ -1747,7 +1754,7 @@ function apbct_cookies_test()
|
|
1747 |
function apbct_get_submit_time()
|
1748 |
{
|
1749 |
global $apbct;
|
1750 |
-
$apbct_timestamp = $apbct->settings['
|
1751 |
? apbct_alt_session__get('apbct_timestamp')
|
1752 |
: filter_input(INPUT_COOKIE, 'apbct_timestamp');
|
1753 |
return apbct_cookies_test() == 1 ? time() - (int)$apbct_timestamp : null;
|
@@ -1814,7 +1821,7 @@ function ct_mail_send_connection_report() {
|
|
1814 |
|
1815 |
global $apbct;
|
1816 |
|
1817 |
-
if (($apbct->settings['
|
1818 |
{
|
1819 |
$to = "welcome@cleantalk.org" ;
|
1820 |
$subject = "Connection report for " . apbct_get_server_variable( 'HTTP_HOST' );
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: https://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
+
Version: 5.154
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: https://cleantalk.org
|
9 |
Text Domain: cleantalk-spam-protect
|
82 |
// Customize \Cleantalk\ApbctWP\State
|
83 |
// Account status
|
84 |
|
85 |
+
$apbct->white_label = $apbct->network_settings['multisite__white_label'];
|
86 |
+
$apbct->allow_custom_key = $apbct->network_settings['multisite__allow_custom_key'];
|
87 |
+
$apbct->plugin_name = $apbct->network_settings['multisite__white_label__plugin_name'] ? $apbct->network_settings['multisite__white_label__plugin_name'] : APBCT_NAME;
|
88 |
$apbct->api_key = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->settings['apikey'] : $apbct->network_settings['apikey'];
|
89 |
$apbct->key_is_ok = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->data['key_is_ok'] : $apbct->network_data['key_is_ok'];
|
90 |
$apbct->moderate = !APBCT_WPMS || $apbct->allow_custom_key || $apbct->white_label ? $apbct->data['moderate'] : $apbct->network_data['moderate'];
|
101 |
}
|
102 |
|
103 |
// Disabling comments
|
104 |
+
if($apbct->settings['comments__disable_comments__all'] || $apbct->settings['comments__disable_comments__posts'] || $apbct->settings['comments__disable_comments__pages'] || $apbct->settings['comments__disable_comments__media']){
|
105 |
\Cleantalk\Antispam\DisableComments::getInstance();
|
106 |
}
|
107 |
|
173 |
}
|
174 |
|
175 |
// Facebook
|
176 |
+
if ($apbct->settings['forms__general_contact_forms_test'] == 1
|
177 |
&& (!empty($_POST['action']) && $_POST['action'] == 'fb_intialize')
|
178 |
&& !empty($_POST['FB_userdata'])
|
179 |
){
|
255 |
|
256 |
// SpamFireWall check
|
257 |
if( $apbct->plugin_version == APBCT_VERSION && // Do not call with first start
|
258 |
+
$apbct->settings['sfw__enabled'] == 1 &&
|
259 |
apbct_is_get() &&
|
260 |
! apbct_wp_doing_cron()
|
261 |
){
|
287 |
// After plugin loaded - to load locale as described in manual
|
288 |
add_action('plugins_loaded', 'apbct_plugin_loaded' );
|
289 |
|
290 |
+
if( !empty($apbct->settings['data__use_ajax']) &&
|
291 |
! apbct_is_in_uri( '.xml' ) &&
|
292 |
! apbct_is_in_uri( '.xsl' ) )
|
293 |
{
|
301 |
require_once( CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-find-spam.php' );
|
302 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-admin.php');
|
303 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-settings.php');
|
304 |
+
|
305 |
+
add_action('admin_init', 'apbct_admin__init', 1);
|
306 |
+
|
307 |
if (!(defined( 'DOING_AJAX' ) && DOING_AJAX)){
|
308 |
|
309 |
add_action('admin_enqueue_scripts', 'apbct_admin__enqueue_scripts');
|
310 |
+
|
|
|
311 |
add_action('admin_menu', 'apbct_settings_add_page');
|
312 |
add_action('network_admin_menu', 'apbct_settings_add_page');
|
313 |
add_action('admin_notices', 'apbct_admin__notice_message');
|
314 |
add_action('network_admin_notices', 'apbct_admin__notice_message');
|
315 |
|
316 |
//Show widget only if enables and not IP license
|
317 |
+
if( $apbct->settings['wp__dashboard_widget__show'] && ! $apbct->moderate_ip )
|
318 |
add_action('wp_dashboard_setup', 'ct_dashboard_statistics_widget' );
|
319 |
}
|
320 |
|
339 |
// Check AJAX requests
|
340 |
// if User is not logged in
|
341 |
// if Unknown action or Known action with mandatory check
|
342 |
+
if( ( ! apbct_is_user_logged_in() || $apbct->settings['data__protect_logged_in'] == 1) &&
|
343 |
isset( $_POST['action'] ) &&
|
344 |
( ! in_array( $_POST['action'], $cleantalk_hooked_actions ) || in_array( $_POST['action'], $cleantalk_ajax_actions_to_check ) ) &&
|
345 |
! array_search( $_POST['action'], array_column( $apbct_active_integrations, 'hook' ) )
|
348 |
}
|
349 |
|
350 |
//QAEngine Theme answers
|
351 |
+
if (intval($apbct->settings['forms__general_contact_forms_test']))
|
352 |
add_filter('et_pre_insert_question', 'ct_ajax_hook', 1, 1); // Questions
|
353 |
add_filter('et_pre_insert_answer', 'ct_ajax_hook', 1, 1); // Answers
|
354 |
|
371 |
|
372 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
373 |
//Bitrix24 contact form
|
374 |
+
if ($apbct->settings['forms__general_contact_forms_test'] == 1 &&
|
375 |
!empty($_POST['your-phone']) &&
|
376 |
!empty($_POST['your-email']) &&
|
377 |
!empty($_POST['your-message'])
|
444 |
}
|
445 |
|
446 |
// Short code for GDPR
|
447 |
+
if($apbct->settings['gdpr__enabled'])
|
448 |
add_shortcode('cleantalk_gdpr_form', 'apbct_shrotcode_handler__GDPR_public_notice__form');
|
449 |
|
450 |
}
|
491 |
APBCT_TBL_FIREWALL_LOG,
|
492 |
APBCT_TBL_FIREWALL_DATA,
|
493 |
array(
|
494 |
+
'admin_bar__sfw_counter' => $apbct->settings['admin_bar__sfw_counter'],
|
495 |
'api_key' => $apbct->api_key,
|
496 |
'apbct' => $apbct,
|
497 |
'cookie_domain' => parse_url( get_option( 'siteurl' ), PHP_URL_HOST ),
|
498 |
+
'data__set_cookies' => $apbct->settings['data__set_cookies'],
|
499 |
)
|
500 |
) );
|
501 |
|
625 |
ct_sfw_update(); // Updating SFW
|
626 |
ct_account_status_check(null, false);
|
627 |
|
628 |
+
if (isset($settings['multisite__use_settings_template_apply_for_new']) && $settings['multisite__use_settings_template_apply_for_new'] == 1) {
|
629 |
update_option('cleantalk_settings', $settings);
|
630 |
}
|
631 |
restore_current_blog();
|
649 |
apbct_deactivation__delete_blog_tables();
|
650 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
651 |
|
652 |
+
if($apbct->settings['misc__complete_deactivation']){
|
653 |
apbct_deactivation__delete_all_options();
|
654 |
apbct_deactivation__delete_meta();
|
655 |
apbct_deactivation__delete_all_options__in_network();
|
664 |
apbct_deactivation__delete_common_tables();
|
665 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
666 |
|
667 |
+
if($apbct->settings['misc__complete_deactivation']) {
|
668 |
apbct_deactivation__delete_all_options();
|
669 |
apbct_deactivation__delete_meta();
|
670 |
}
|
675 |
apbct_deactivation__delete_common_tables();
|
676 |
delete_option('cleantalk_cron'); // Deleting cron entries
|
677 |
|
678 |
+
if($apbct->settings['misc__complete_deactivation']) {
|
679 |
apbct_deactivation__delete_all_options();
|
680 |
apbct_deactivation__delete_meta();
|
681 |
}
|
778 |
//Add 1 to counters
|
779 |
if($event_type=='yes'){
|
780 |
$apbct->data['array_accepted'][$current_hour]++;
|
781 |
+
$apbct->data['admin_bar__all_time_counter']['accepted']++;
|
782 |
$apbct->data['user_counter']['accepted']++;
|
783 |
}
|
784 |
if($event_type=='no'){
|
785 |
$apbct->data['array_blocked'][$current_hour]++;
|
786 |
+
$apbct->data['admin_bar__all_time_counter']['blocked']++;
|
787 |
$apbct->data['user_counter']['blocked']++;
|
788 |
}
|
789 |
|
834 |
|
835 |
$api_key = !empty($apbct->api_key) ? $apbct->api_key : $api_key;
|
836 |
|
837 |
+
if( empty( $api_key ) || $apbct->settings['sfw__enabled'] != 1 ){
|
838 |
return true;
|
839 |
}
|
840 |
|
908 |
);
|
909 |
} else {
|
910 |
|
911 |
+
$result = SFW::firewall_update__write_to_db__exclusions( DB::getInstance(), APBCT_TBL_FIREWALL_DATA . '_temp' );
|
912 |
+
|
913 |
+
if( empty( $result['error'] ) && is_int( $result ) ) {
|
914 |
+
|
915 |
+
$is_first_updating = strpos( $apbct->fw_stats['firewall_updating_id'], 'first' );
|
916 |
+
|
917 |
+
// REMOVE AND RENAME
|
918 |
+
// @todo We have to handle errors here
|
919 |
+
SFW::delete_main_data_tables( DB::getInstance() );
|
920 |
+
// @todo We have to handle errors here
|
921 |
+
SFW::rename_data_tables( DB::getInstance() );
|
922 |
+
|
923 |
+
//Files array is empty update sfw stats
|
924 |
+
$apbct->data['last_firewall_updated'] = current_time('timestamp'); // Unused
|
925 |
+
$apbct->save('data'); // Unused
|
926 |
+
$apbct->fw_stats['firewall_update_percent'] = 0;
|
927 |
+
$apbct->fw_stats['firewall_updating_id'] = null;
|
928 |
+
$apbct->save( 'fw_stats' );
|
929 |
+
|
930 |
+
//Files array is empty update sfw time
|
931 |
+
$apbct->stats['sfw']['entries'] = $wpdb->get_var('SELECT COUNT(*) FROM ' . APBCT_TBL_FIREWALL_DATA );
|
932 |
+
$apbct->stats['sfw']['last_update_time'] = time();
|
933 |
+
$apbct->save('stats');
|
934 |
+
|
935 |
+
// Running sfw update once again in 12 min if entries is < 4000
|
936 |
+
if( $is_first_updating !== false ) {
|
937 |
+
if( $apbct->stats['sfw']['entries'] < 4000 ) {
|
938 |
+
wp_schedule_single_event( time() + 720, 'ct_sfw_update' );
|
939 |
+
}
|
940 |
+
delete_option( 'sfw_sync_first' );
|
941 |
}
|
|
|
|
|
942 |
|
943 |
+
// Delete update errors
|
944 |
+
$apbct->error_delete( 'sfw_update', 'save_settings' );
|
945 |
+
|
946 |
+
return $result;
|
947 |
|
948 |
+
} else {
|
949 |
+
return array( 'error' => 'SFW_UPDATE: EXCLUSIONS: ' . $result['error'] );
|
950 |
+
}
|
951 |
|
952 |
}
|
953 |
}else
|
981 |
if(
|
982 |
time() - $apbct->stats['sfw']['sending_logs__timestamp'] < 180 ||
|
983 |
empty( $api_key ) ||
|
984 |
+
$apbct->settings['sfw__enabled'] != 1
|
985 |
){
|
986 |
return true;
|
987 |
}
|
1172 |
if($plugin){
|
1173 |
|
1174 |
// Switching complete deactivation for security
|
1175 |
+
if($plugin == 'security-malware-firewall/security-malware-firewall.php' && !empty($_GET['misc__complete_deactivation'])){
|
1176 |
$spbc_settings = get_option('spbc_settings');
|
1177 |
+
$spbc_settings['misc__complete_deactivation'] = intval($_GET['misc__complete_deactivation']);
|
1178 |
update_option('spbc_settings', $spbc_settings);
|
1179 |
}
|
1180 |
|
1215 |
if($plugin){
|
1216 |
|
1217 |
// Switching complete deactivation for security
|
1218 |
+
if($plugin == 'security-malware-firewall/security-malware-firewall.php' && !empty($_GET['misc__complete_deactivation'])){
|
1219 |
$spbc_settings = get_option('spbc_settings');
|
1220 |
+
$spbc_settings['misc__complete_deactivation'] = intval($_GET['misc__complete_deactivation']);
|
1221 |
update_option('spbc_settings', $spbc_settings);
|
1222 |
}
|
1223 |
|
1540 |
|
1541 |
global $apbct;
|
1542 |
|
1543 |
+
if($apbct->settings['misc__store_urls'] && empty($apbct->flags__url_stored) && !headers_sent()){
|
1544 |
|
1545 |
// URLs HISTORY
|
1546 |
// Get current url
|
1549 |
$current_url = $current_url ? substr($current_url, 0,256) : 'UNKNOWN';
|
1550 |
|
1551 |
// Get already stored URLs
|
1552 |
+
$urls = $apbct->settings['misc__store_urls__sessions']
|
1553 |
? (array)apbct_alt_session__get('apbct_urls')
|
1554 |
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
1555 |
|
1560 |
$urls = count($urls) > 10 ? array_slice($urls, 1, 10) : $urls;
|
1561 |
|
1562 |
// Saving
|
1563 |
+
$apbct->settings['misc__store_urls__sessions']
|
1564 |
? apbct_alt_session__save('apbct_urls', json_encode($urls))
|
1565 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_urls', json_encode($urls), time()+86400*3, '/', parse_url(get_option('siteurl'),PHP_URL_HOST), false, true, 'Lax');
|
1566 |
|
1570 |
$new_site_referer = $new_site_referer ? $new_site_referer : 'UNKNOWN';
|
1571 |
|
1572 |
// Get already stored referer
|
1573 |
+
$site_referer = $apbct->settings['misc__store_urls__sessions']
|
1574 |
? apbct_alt_session__get('apbct_site_referer')
|
1575 |
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
1576 |
|
1577 |
// Save if empty
|
1578 |
if( !$site_referer || parse_url($new_site_referer, PHP_URL_HOST) !== apbct_get_server_variable( 'HTTP_HOST' ) ){
|
1579 |
|
1580 |
+
$apbct->settings['misc__store_urls__sessions']
|
1581 |
? apbct_alt_session__save('apbct_site_referer', $new_site_referer)
|
1582 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_site_referer', $new_site_referer, time()+86400*3, '/', parse_url(get_option('siteurl'),PHP_URL_HOST), false, true, 'Lax');
|
1583 |
}
|
1628 |
|
1629 |
global $apbct;
|
1630 |
|
1631 |
+
if($apbct->settings['misc__store_urls__sessions'] || $apbct->settings['data__set_cookies__sessions'])
|
1632 |
apbct_alt_sessions__remove_old();
|
1633 |
|
1634 |
if(
|
1635 |
+
empty($apbct->settings['data__set_cookies']) || // Do not set cookies if option is disabled (for Varnish cache).
|
1636 |
!empty($apbct->flags__cookies_setuped) || // Cookies already set
|
1637 |
!empty($apbct->headers_sent) // Headers sent
|
1638 |
)
|
1659 |
// Submit time
|
1660 |
if(empty($_POST['ct_multipage_form'])){ // Do not start/reset page timer if it is multipage form (Gravitiy forms))
|
1661 |
$apbct_timestamp = time();
|
1662 |
+
$apbct->settings['data__set_cookies__sessions']
|
1663 |
? apbct_alt_session__save('apbct_timestamp', $apbct_timestamp)
|
1664 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_timestamp', $apbct_timestamp, 0, '/', $domain, false, true, 'Lax' );
|
1665 |
$cookie_test_value['cookies_names'][] = 'apbct_timestamp';
|
1668 |
|
1669 |
// Pervious referer
|
1670 |
if(apbct_get_server_variable( 'HTTP_REFERER' )){
|
1671 |
+
$apbct->settings['data__set_cookies__sessions']
|
1672 |
? apbct_alt_session__save('apbct_prev_referer', apbct_get_server_variable( 'HTTP_REFERER' ))
|
1673 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_prev_referer', apbct_get_server_variable( 'HTTP_REFERER' ), 0, '/', $domain, false, true, 'Lax' );
|
1674 |
$cookie_test_value['cookies_names'][] = 'apbct_prev_referer';
|
1676 |
}
|
1677 |
|
1678 |
// Landing time
|
1679 |
+
$site_landing_timestamp = $apbct->settings['data__set_cookies__sessions']
|
1680 |
? apbct_alt_session__get('apbct_site_landing_ts')
|
1681 |
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
1682 |
if(!$site_landing_timestamp){
|
1683 |
$site_landing_timestamp = time();
|
1684 |
+
$apbct->settings['data__set_cookies__sessions']
|
1685 |
? apbct_alt_session__save('apbct_site_landing_ts', $site_landing_timestamp)
|
1686 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_site_landing_ts', $site_landing_timestamp, 0, '/', $domain, false, true, 'Lax' );
|
1687 |
}
|
1690 |
|
1691 |
// Page hits
|
1692 |
// Get
|
1693 |
+
$page_hits = $apbct->settings['data__set_cookies__sessions']
|
1694 |
? apbct_alt_session__get('apbct_page_hits')
|
1695 |
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
1696 |
// Set / Increase
|
1697 |
$page_hits = intval($page_hits) ? $page_hits + 1 : 1;
|
1698 |
|
1699 |
+
$apbct->settings['data__set_cookies__sessions']
|
1700 |
? apbct_alt_session__save('apbct_page_hits', $page_hits)
|
1701 |
: \Cleantalk\Common\Helper::apbct_cookie__set('apbct_page_hits', $page_hits, 0, '/', $domain, false, true, 'Lax' );
|
1702 |
|
1705 |
|
1706 |
// Cookies test
|
1707 |
$cookie_test_value['check_value'] = md5($cookie_test_value['check_value']);
|
1708 |
+
if(!$apbct->settings['data__set_cookies__sessions'])
|
1709 |
\Cleantalk\Common\Helper::apbct_cookie__set('apbct_cookies_test', urlencode(json_encode($cookie_test_value)), 0, '/', $domain, false, true, 'Lax' );
|
1710 |
|
1711 |
$apbct->flags__cookies_setuped = true;
|
1721 |
{
|
1722 |
global $apbct;
|
1723 |
|
1724 |
+
if($apbct->settings['data__set_cookies__sessions'])
|
1725 |
return 1;
|
1726 |
|
1727 |
if(isset($_COOKIE['apbct_cookies_test'])){
|
1754 |
function apbct_get_submit_time()
|
1755 |
{
|
1756 |
global $apbct;
|
1757 |
+
$apbct_timestamp = $apbct->settings['data__set_cookies__sessions']
|
1758 |
? apbct_alt_session__get('apbct_timestamp')
|
1759 |
: filter_input(INPUT_COOKIE, 'apbct_timestamp');
|
1760 |
return apbct_cookies_test() == 1 ? time() - (int)$apbct_timestamp : null;
|
1821 |
|
1822 |
global $apbct;
|
1823 |
|
1824 |
+
if (($apbct->settings['misc__send_connection_reports'] == 1 && $apbct->connection_reports['negative'] > 0) || !empty($_GET['ct_send_connection_report']))
|
1825 |
{
|
1826 |
$to = "welcome@cleantalk.org" ;
|
1827 |
$subject = "Connection report for " . apbct_get_server_variable( 'HTTP_HOST' );
|
@@ -1 +1 @@
|
|
1 |
-
.apbct_settings-field_content,.cleantalk_link-auto,.cleantalk_link-manual,.ct-warning-test-failed,.ct_rate_block,.ct_settings_banner,i.animate-spin{display:inline-block}#apbctTopWarning{margin-bottom:5px}#apbctTopWarning h3{margin:10px 0 5px}#apbctTopWarning h4{margin:10px}#apbctTopWarning h4 span{margin-top:5px}.apbct_settings-subtitle{position:relative;top:-15px;margin:0}.apbct_settings-field_wrapper{margin:15px 0}.apbct_settings-field_wrapper--sub{margin-left:30px!important}.apbct_settings__label{margin-right:10px;font-size:17px;vertical-align:text-bottom}.apbct_settings-field_content--radio{width:70%}.apbct_settings-field_title--radio{display:inline-block;margin:0;width:210px;padding-right:10px;font-size:14px;vertical-align:top}.apbct_input_text{min-width:255px;width:400px}.apbct_settings-field--api_key{font-size:14pt}.apbct_settings-long_description---show:hover{color:#aaa;cursor:pointer}.apbct_setting_textarea{min-width:300px}.cleantalk_link{text-decoration:none;font-size:13px;line-height:26px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.cleantalk_link-auto{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;height:28px;-webkit-border-radius:2px;border-radius:2px}.cleantalk_link-auto:hover{color:#fff}.cleantalk_link-manual{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;-webkit-border-radius:3px;border-radius:3px;text-align:center}.cleantalk_link-manual:hover{color:#000}.cleantalk_link[disabled=disabled]{background:#5d9db5;color:#000}.apbct_status_icon{vertical-align:text-bottom;margin:0 5px 0 8px}a.ct_support_link{color:#666;margin-right:.5em;font-size:10pt;font-weight:400}.ct-warning-test-failed{position:relative;padding:5px;margin:4px;border:3px solid rgba(240,50,50,1);border-radius:5px;background-color:rgba(255,200,200,1)}.ct_settings_banner{text-align:right;width:100%;margin:1em 0;vertical-align:top}#ct_translate_plugin{margin-left:0}.ct_rate_block{width:370px;margin-right:3em;padding:.8em .8em 15px;
|
1 |
+
.apbct_settings-field_content,.cleantalk_link-auto,.cleantalk_link-manual,.ct-warning-test-failed,.ct_rate_block,.ct_settings_banner,i.animate-spin{display:inline-block}#apbctTopWarning{margin-bottom:5px}#apbctTopWarning h3{margin:10px 0 5px}#apbctTopWarning h4{margin:10px}#apbctTopWarning h4 span{margin-top:5px}.apbct_settings-subtitle{position:relative;top:-15px;margin:0}.apbct_settings-field_wrapper{margin:15px 0}.apbct_settings-field_wrapper--sub{margin-left:30px!important}.apbct_settings__label{margin-right:10px;font-size:17px;vertical-align:text-bottom}.apbct_settings-field_content--radio{width:70%}.apbct_settings-field_title--radio{display:inline-block;margin:0;width:210px;padding-right:10px;font-size:14px;vertical-align:top}.apbct_input_text{min-width:255px;width:400px}.apbct_settings-field--api_key{font-size:14pt}.apbct_settings-long_description---show:hover{color:#aaa;cursor:pointer}.apbct_setting_textarea{min-width:300px}.cleantalk_link{text-decoration:none;font-size:13px;line-height:26px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.cleantalk_link-auto{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;height:28px;-webkit-border-radius:2px;border-radius:2px}.cleantalk_link-auto:hover{color:#fff}.cleantalk_link-manual{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;-webkit-border-radius:3px;border-radius:3px;text-align:center}.cleantalk_link-manual:hover{color:#000}.cleantalk_link[disabled=disabled]{background:#5d9db5;color:#000}.apbct_status_icon{vertical-align:text-bottom;margin:0 5px 0 8px}a.ct_support_link{color:#666;margin-right:.5em;font-size:10pt;font-weight:400}.ct-warning-test-failed{position:relative;padding:5px;margin:4px;border:3px solid rgba(240,50,50,1);border-radius:5px;background-color:rgba(255,200,200,1)}.ct_settings_banner{text-align:right;width:100%;margin:1em 0;vertical-align:top}#cleantalk-modal-content,.ct_rate_block{text-align:center}#ct_translate_plugin{margin-left:0}.ct_rate_block{width:370px;margin-right:3em;padding:.8em .8em 15px;border:1px dashed #666}#ct_translate_plugin .apbct_button_rate{margin-bottom:10px}.apbct_long_desc{position:absolute;background:#5a5a5a;min-width:80px;min-height:80px;max-width:500px;padding:10px;color:#fff;z-index:10}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.apbct_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.apbct_long_desc__cancel:hover{color:#fff}.apbct_long_desc__angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.apbct_long_desc__title{color:rgba(120,200,230,1);margin:0}.--hide{display:none}.apbct_preloader_button{height:15px;margin-left:5px;vertical-align:text-top;display:none}#cleantalk-modal-content>*{display:block;width:100%}
|
@@ -1,5 +1,7 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
3 |
require_once('cleantalk-settings.php');
|
4 |
|
5 |
// Add buttons to comments list table
|
@@ -180,21 +182,28 @@ function apbct_admin__init(){
|
|
180 |
|
181 |
// Getting key like hoster. Only once!
|
182 |
if(!is_main_site() && $apbct->white_label && ( empty($apbct->api_key) || $apbct->settings['apikey'] == $apbct->network_settings['apikey'] ) ){
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
|
|
|
|
189 |
}
|
190 |
-
}
|
191 |
|
192 |
-
function apbct_admin__init___ajax_actions(){
|
193 |
-
|
194 |
// Settings
|
195 |
add_action('wp_ajax_apbct_settings__get__long_description', 'apbct_settings__get__long_description'); // Long description
|
196 |
-
|
197 |
add_action( 'wp_ajax_apbct_sync', 'apbct_settings__sync' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
|
200 |
/**
|
@@ -327,7 +336,7 @@ function apbct_admin__enqueue_scripts($hook){
|
|
327 |
'ct_feedback_msg_whitelisted' => __("The sender has been whitelisted.", 'cleantalk-spam-protect'),
|
328 |
'ct_feedback_msg_blacklisted' => __("The sender has been blacklisted.", 'cleantalk-spam-protect'),
|
329 |
'ct_feedback_msg' => sprintf(__("Feedback has been sent to %sCleanTalk Dashboard%s.", 'cleantalk-spam-protect'), $apbct->user_token ? "<a target='_blank' href=https://cleantalk.org/my?user_token={$apbct->user_token}&cp_mode=antispam>" : '', $apbct->user_token ? "</a>" : ''),
|
330 |
-
'ct_show_check_links' => (bool)$apbct->settings['
|
331 |
'ct_img_src_new_tab' => plugin_dir_url(__FILE__)."images/new_window.gif",
|
332 |
));
|
333 |
}
|
@@ -338,7 +347,7 @@ function apbct_admin__enqueue_scripts($hook){
|
|
338 |
wp_enqueue_script('ct_users_editscreen', plugins_url('/cleantalk-spam-protect/js/cleantalk-users-editscreen.min.js'), array(), APBCT_VERSION);
|
339 |
wp_localize_script( 'ct_users_editscreen', 'ctUsersScreen', array(
|
340 |
'spambutton_text' => __("Find spam-users", 'cleantalk-spam-protect'),
|
341 |
-
'ct_show_check_links' => (bool)$apbct->settings['
|
342 |
'ct_img_src_new_tab' => plugin_dir_url(__FILE__)."images/new_window.gif"
|
343 |
));
|
344 |
}
|
@@ -476,7 +485,7 @@ function apbct_admin__admin_bar__add( $wp_admin_bar ) {
|
|
476 |
|
477 |
global $apbct;
|
478 |
|
479 |
-
if (current_user_can('activate_plugins') && $apbct->settings['
|
480 |
|
481 |
//Reset or create user counter
|
482 |
if(!empty($_GET['ct_reset_user_counter'])){
|
@@ -487,8 +496,8 @@ function apbct_admin__admin_bar__add( $wp_admin_bar ) {
|
|
487 |
}
|
488 |
//Reset or create all counters
|
489 |
if(!empty($_GET['ct_reset_all_counters'])){
|
490 |
-
$apbct->data['
|
491 |
-
$apbct->data['
|
492 |
$apbct->data['user_counter'] = array('all' => 0, 'accepted' => 0, 'blocked' => 0, 'since' => date('d M'));
|
493 |
$apbct->data['array_accepted'] = array();
|
494 |
$apbct->data['array_blocked'] = array();
|
@@ -502,22 +511,22 @@ function apbct_admin__admin_bar__add( $wp_admin_bar ) {
|
|
502 |
|
503 |
$all_time_counter_str='';
|
504 |
//Don't compile if all time counter disabled
|
505 |
-
if($apbct->settings['
|
506 |
-
$all_time_counter=Array('accepted'=>$apbct->data['
|
507 |
$all_time_counter_str='<span style="color: white;" title="'.__('All / Allowed / Blocked submissions. The number of submissions is being counted since CleanTalk plugin installation.', 'cleantalk-spam-protect').'"><span style="color: white;"> | ' . __('All', 'cleantalk-spam-protect') . ': ' .$all_time_counter['all']. '</span> / <span style="color: green;">' .$all_time_counter['accepted']. '</span> / <span style="color: red;">' .$all_time_counter['blocked']. '</span></span>';
|
508 |
}
|
509 |
|
510 |
$daily_counter_str='';
|
511 |
//Don't compile if daily counter disabled
|
512 |
-
if( $apbct->settings['
|
513 |
$daily_counter=Array('accepted'=>array_sum($apbct->data['array_accepted']), 'blocked'=>array_sum($apbct->data['array_blocked']), 'all'=>array_sum($apbct->data['array_accepted']) + array_sum($apbct->data['array_blocked']));
|
514 |
//Previous version $daily_counter_str='<span style="color: white;" title="'.__('All / Allowed / Blocked submissions. The number of submissions for past 24 hours. ', 'cleantalk-spam-protect').'"><span style="color: white;"> | Day: ' .$daily_counter['all']. '</span> / <span style="color: green;">' .$daily_counter['accepted']. '</span> / <span style="color: red;">' .$daily_counter['blocked']. '</span></span>';
|
515 |
$daily_counter_str='<span style="color: white;" title="'.__('Allowed / Blocked submissions. The number of submissions for past 24 hours. ', 'cleantalk-spam-protect').'"><span style="color: white;"> | ' . __('Day', 'cleantalk-spam-protect') . ': </span><span style="color: green;">' .$daily_counter['accepted']. '</span> / <span style="color: red;">' .$daily_counter['blocked']. '</span></span>';
|
516 |
}
|
517 |
$sfw_counter_str='';
|
518 |
//Don't compile if SFW counter disabled
|
519 |
-
if( $apbct->settings['
|
520 |
-
$sfw_counter=Array('all'=>$apbct->data['
|
521 |
$sfw_counter_str='<span style="color: white;" title="'.__('All / Blocked events. Access attempts regitred by SpamFireWall counted since the last plugin activation.', 'cleantalk-spam-protect').'"><span style="color: white;"> | SpamFireWall: ' .$sfw_counter['all']. '</span> / <span style="color: red;">' .$sfw_counter['blocked']. '</span></span>';
|
522 |
}
|
523 |
|
1 |
<?php
|
2 |
|
3 |
+
use Cleantalk\ApbctWP\CleantalkSettingsTemplates;
|
4 |
+
|
5 |
require_once('cleantalk-settings.php');
|
6 |
|
7 |
// Add buttons to comments list table
|
182 |
|
183 |
// Getting key like hoster. Only once!
|
184 |
if(!is_main_site() && $apbct->white_label && ( empty($apbct->api_key) || $apbct->settings['apikey'] == $apbct->network_settings['apikey'] ) ){
|
185 |
+
$res = apbct_settings__get_key_auto( true );
|
186 |
+
if( isset( $res['auth_key'], $res['user_token'] ) ) {
|
187 |
+
$settings = apbct_settings__validate(array(
|
188 |
+
'apikey' => $res['auth_key'],
|
189 |
+
));
|
190 |
+
$apbct->api_key = $settings['apikey'];
|
191 |
+
$apbct->save('settings');
|
192 |
+
}
|
193 |
}
|
|
|
194 |
|
|
|
|
|
195 |
// Settings
|
196 |
add_action('wp_ajax_apbct_settings__get__long_description', 'apbct_settings__get__long_description'); // Long description
|
197 |
+
|
198 |
add_action( 'wp_ajax_apbct_sync', 'apbct_settings__sync' );
|
199 |
+
|
200 |
+
add_action( 'wp_ajax_apbct_get_key_auto', 'apbct_settings__get_key_auto' );
|
201 |
+
|
202 |
+
// Settings Templates
|
203 |
+
if( ! is_multisite() || is_main_site() || ( ! is_main_site() && $apbct->network_settings['wpms__allow_custom_settings'] ) ) {
|
204 |
+
new CleantalkSettingsTemplates( $apbct->api_key );
|
205 |
+
}
|
206 |
+
|
207 |
}
|
208 |
|
209 |
/**
|
336 |
'ct_feedback_msg_whitelisted' => __("The sender has been whitelisted.", 'cleantalk-spam-protect'),
|
337 |
'ct_feedback_msg_blacklisted' => __("The sender has been blacklisted.", 'cleantalk-spam-protect'),
|
338 |
'ct_feedback_msg' => sprintf(__("Feedback has been sent to %sCleanTalk Dashboard%s.", 'cleantalk-spam-protect'), $apbct->user_token ? "<a target='_blank' href=https://cleantalk.org/my?user_token={$apbct->user_token}&cp_mode=antispam>" : '', $apbct->user_token ? "</a>" : ''),
|
339 |
+
'ct_show_check_links' => (bool)$apbct->settings['comments__show_check_links'],
|
340 |
'ct_img_src_new_tab' => plugin_dir_url(__FILE__)."images/new_window.gif",
|
341 |
));
|
342 |
}
|
347 |
wp_enqueue_script('ct_users_editscreen', plugins_url('/cleantalk-spam-protect/js/cleantalk-users-editscreen.min.js'), array(), APBCT_VERSION);
|
348 |
wp_localize_script( 'ct_users_editscreen', 'ctUsersScreen', array(
|
349 |
'spambutton_text' => __("Find spam-users", 'cleantalk-spam-protect'),
|
350 |
+
'ct_show_check_links' => (bool)$apbct->settings['comments__show_check_links'],
|
351 |
'ct_img_src_new_tab' => plugin_dir_url(__FILE__)."images/new_window.gif"
|
352 |
));
|
353 |
}
|
485 |
|
486 |
global $apbct;
|
487 |
|
488 |
+
if (current_user_can('activate_plugins') && $apbct->settings['admin_bar__show'] == 1 && (apbct_api_key__is_correct($apbct->api_key) !== false || (defined('CLEANTALK_SHOW_ADMIN_BAR_FORCE') && CLEANTALK_SHOW_ADMIN_BAR_FORCE))) {
|
489 |
|
490 |
//Reset or create user counter
|
491 |
if(!empty($_GET['ct_reset_user_counter'])){
|
496 |
}
|
497 |
//Reset or create all counters
|
498 |
if(!empty($_GET['ct_reset_all_counters'])){
|
499 |
+
$apbct->data['admin_bar__sfw_counter'] = array('all' => 0, 'blocked' => 0);
|
500 |
+
$apbct->data['admin_bar__all_time_counter'] = array('accepted' => 0, 'blocked' => 0);
|
501 |
$apbct->data['user_counter'] = array('all' => 0, 'accepted' => 0, 'blocked' => 0, 'since' => date('d M'));
|
502 |
$apbct->data['array_accepted'] = array();
|
503 |
$apbct->data['array_blocked'] = array();
|
511 |
|
512 |
$all_time_counter_str='';
|
513 |
//Don't compile if all time counter disabled
|
514 |
+
if($apbct->settings['admin_bar__all_time_counter'] == 1){
|
515 |
+
$all_time_counter=Array('accepted'=>$apbct->data['admin_bar__all_time_counter']['accepted'], 'blocked'=>$apbct->data['admin_bar__all_time_counter']['blocked'], 'all'=>$apbct->data['admin_bar__all_time_counter']['accepted'] + $apbct->data['admin_bar__all_time_counter']['blocked']);
|
516 |
$all_time_counter_str='<span style="color: white;" title="'.__('All / Allowed / Blocked submissions. The number of submissions is being counted since CleanTalk plugin installation.', 'cleantalk-spam-protect').'"><span style="color: white;"> | ' . __('All', 'cleantalk-spam-protect') . ': ' .$all_time_counter['all']. '</span> / <span style="color: green;">' .$all_time_counter['accepted']. '</span> / <span style="color: red;">' .$all_time_counter['blocked']. '</span></span>';
|
517 |
}
|
518 |
|
519 |
$daily_counter_str='';
|
520 |
//Don't compile if daily counter disabled
|
521 |
+
if( $apbct->settings['admin_bar__daily_counter'] == 1){
|
522 |
$daily_counter=Array('accepted'=>array_sum($apbct->data['array_accepted']), 'blocked'=>array_sum($apbct->data['array_blocked']), 'all'=>array_sum($apbct->data['array_accepted']) + array_sum($apbct->data['array_blocked']));
|
523 |
//Previous version $daily_counter_str='<span style="color: white;" title="'.__('All / Allowed / Blocked submissions. The number of submissions for past 24 hours. ', 'cleantalk-spam-protect').'"><span style="color: white;"> | Day: ' .$daily_counter['all']. '</span> / <span style="color: green;">' .$daily_counter['accepted']. '</span> / <span style="color: red;">' .$daily_counter['blocked']. '</span></span>';
|
524 |
$daily_counter_str='<span style="color: white;" title="'.__('Allowed / Blocked submissions. The number of submissions for past 24 hours. ', 'cleantalk-spam-protect').'"><span style="color: white;"> | ' . __('Day', 'cleantalk-spam-protect') . ': </span><span style="color: green;">' .$daily_counter['accepted']. '</span> / <span style="color: red;">' .$daily_counter['blocked']. '</span></span>';
|
525 |
}
|
526 |
$sfw_counter_str='';
|
527 |
//Don't compile if SFW counter disabled
|
528 |
+
if( $apbct->settings['admin_bar__sfw_counter'] == 1 && $apbct->settings['sfw__enabled'] == 1){
|
529 |
+
$sfw_counter=Array('all'=>$apbct->data['admin_bar__sfw_counter']['all'], 'blocked'=>$apbct->data['admin_bar__sfw_counter']['blocked']);
|
530 |
$sfw_counter_str='<span style="color: white;" title="'.__('All / Blocked events. Access attempts regitred by SpamFireWall counted since the last plugin activation.', 'cleantalk-spam-protect').'"><span style="color: white;"> | SpamFireWall: ' .$sfw_counter['all']. '</span> / <span style="color: red;">' .$sfw_counter['blocked']. '</span></span>';
|
531 |
}
|
532 |
|
@@ -330,10 +330,10 @@ function ct_ajax_hook($message_obj = false, $additional = false)
|
|
330 |
);
|
331 |
|
332 |
// Skip test if
|
333 |
-
if( !$apbct->settings['
|
334 |
!apbct_is_user_enable($apbct->user) || // User is admin, editor, author
|
335 |
// (function_exists('get_current_user_id') && get_current_user_id() != 0) || // Check with default wp_* function if it's admin
|
336 |
-
(!$apbct->settings['
|
337 |
apbct_exclusions_check__url() || // url exclusions
|
338 |
(isset($_POST['action']) && in_array($_POST['action'], $skip_post)) || // Special params
|
339 |
(isset($_GET['action']) && in_array($_GET['action'], $skip_post)) || // Special params
|
@@ -418,7 +418,7 @@ function ct_ajax_hook($message_obj = false, $additional = false)
|
|
418 |
//Woocommerce checkout
|
419 |
if( \Cleantalk\Variables\Post::get( 'action' ) == 'woocommerce_checkout' || \Cleantalk\Variables\Post::get( 'action' ) == 'save_data' ){
|
420 |
$post_info['comment_type'] = 'order';
|
421 |
-
if( empty( $apbct->settings['
|
422 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
423 |
return false;
|
424 |
}
|
330 |
);
|
331 |
|
332 |
// Skip test if
|
333 |
+
if( !$apbct->settings['forms__general_contact_forms_test'] || // Test disabled
|
334 |
!apbct_is_user_enable($apbct->user) || // User is admin, editor, author
|
335 |
// (function_exists('get_current_user_id') && get_current_user_id() != 0) || // Check with default wp_* function if it's admin
|
336 |
+
(!$apbct->settings['data__protect_logged_in'] && ($apbct->user instanceof WP_User) && $apbct->user->ID !== 0 ) || // Logged in user
|
337 |
apbct_exclusions_check__url() || // url exclusions
|
338 |
(isset($_POST['action']) && in_array($_POST['action'], $skip_post)) || // Special params
|
339 |
(isset($_GET['action']) && in_array($_GET['action'], $skip_post)) || // Special params
|
418 |
//Woocommerce checkout
|
419 |
if( \Cleantalk\Variables\Post::get( 'action' ) == 'woocommerce_checkout' || \Cleantalk\Variables\Post::get( 'action' ) == 'save_data' ){
|
420 |
$post_info['comment_type'] = 'order';
|
421 |
+
if( empty( $apbct->settings['forms__wc_checkout_test'] ) ){
|
422 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
423 |
return false;
|
424 |
}
|
@@ -173,8 +173,8 @@ function apbct_base_call($params = array(), $reg_flag = false){
|
|
173 |
|
174 |
$ct = new Cleantalk();
|
175 |
|
176 |
-
$ct->use_bultin_api = $apbct->settings['
|
177 |
-
$ct->ssl_on = $apbct->settings['
|
178 |
$ct->ssl_path = APBCT_CASERT_PATH;
|
179 |
|
180 |
// Options store url without shceme because of DB error with ''://'
|
@@ -368,15 +368,15 @@ function apbct_get_sender_info() {
|
|
368 |
// Validate cookie from the backend
|
369 |
$cookie_is_ok = apbct_cookies_test();
|
370 |
|
371 |
-
$referer_previous = $apbct->settings['
|
372 |
? apbct_alt_session__get('apbct_prev_referer')
|
373 |
: filter_input(INPUT_COOKIE, 'apbct_prev_referer');
|
374 |
|
375 |
-
$site_landing_ts = $apbct->settings['
|
376 |
? apbct_alt_session__get('apbct_site_landing_ts')
|
377 |
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
378 |
|
379 |
-
$page_hits = $apbct->settings['
|
380 |
? apbct_alt_session__get('apbct_page_hits')
|
381 |
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
382 |
|
@@ -395,11 +395,11 @@ function apbct_get_sender_info() {
|
|
395 |
: 0
|
396 |
: null;
|
397 |
|
398 |
-
$site_referer = $apbct->settings['
|
399 |
? apbct_alt_session__get('apbct_site_referer')
|
400 |
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
401 |
|
402 |
-
$urls = $apbct->settings['
|
403 |
? (array)apbct_alt_session__get('apbct_urls')
|
404 |
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
405 |
|
@@ -516,13 +516,13 @@ function ct_get_checkjs_value(){
|
|
516 |
global $apbct;
|
517 |
|
518 |
// Use static JS keys
|
519 |
-
if($apbct->settings['
|
520 |
|
521 |
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
522 |
|
523 |
// Auto detecting. Detected.
|
524 |
}elseif(
|
525 |
-
$apbct->settings['
|
526 |
( apbct_is_cache_plugins_exists() ||
|
527 |
( apbct_is_post() && $apbct->data['cache_detected'] == 1 )
|
528 |
)
|
@@ -530,6 +530,8 @@ function ct_get_checkjs_value(){
|
|
530 |
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
531 |
if( apbct_is_cache_plugins_exists() )
|
532 |
$apbct->data['cache_detected'] = 1;
|
|
|
|
|
533 |
|
534 |
// Using dynamic JS keys
|
535 |
}else{
|
@@ -567,9 +569,10 @@ function ct_get_checkjs_value(){
|
|
567 |
}
|
568 |
|
569 |
$apbct->data['cache_detected'] = 0;
|
570 |
-
}
|
571 |
|
572 |
-
|
|
|
|
|
573 |
|
574 |
return $key;
|
575 |
}
|
@@ -725,7 +728,7 @@ function ct_delete_spam_comments() {
|
|
725 |
|
726 |
global $apbct;
|
727 |
|
728 |
-
if ($apbct->settings['
|
729 |
$last_comments = get_comments(array('status' => 'spam', 'number' => 1000, 'order' => 'ASC'));
|
730 |
foreach ($last_comments as $c) {
|
731 |
$comment_date_gmt = strtotime($c->comment_date_gmt);
|
@@ -1069,7 +1072,7 @@ function apbct_add_async_attribute($tag, $handle, $src) {
|
|
1069 |
$handle === 'ct_external' ||
|
1070 |
$handle === 'ct_nocache'
|
1071 |
){
|
1072 |
-
if( $apbct->settings['
|
1073 |
$tag = str_replace( ' src', ' async="async" src', $tag );
|
1074 |
|
1075 |
if( class_exists('Cookiebot_WP') )
|
173 |
|
174 |
$ct = new Cleantalk();
|
175 |
|
176 |
+
$ct->use_bultin_api = $apbct->settings['wp__use_builtin_http_api'] ? true : false;
|
177 |
+
$ct->ssl_on = $apbct->settings['data__ssl_on'];
|
178 |
$ct->ssl_path = APBCT_CASERT_PATH;
|
179 |
|
180 |
// Options store url without shceme because of DB error with ''://'
|
368 |
// Validate cookie from the backend
|
369 |
$cookie_is_ok = apbct_cookies_test();
|
370 |
|
371 |
+
$referer_previous = $apbct->settings['data__set_cookies__sessions']
|
372 |
? apbct_alt_session__get('apbct_prev_referer')
|
373 |
: filter_input(INPUT_COOKIE, 'apbct_prev_referer');
|
374 |
|
375 |
+
$site_landing_ts = $apbct->settings['data__set_cookies__sessions']
|
376 |
? apbct_alt_session__get('apbct_site_landing_ts')
|
377 |
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
378 |
|
379 |
+
$page_hits = $apbct->settings['data__set_cookies__sessions']
|
380 |
? apbct_alt_session__get('apbct_page_hits')
|
381 |
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
382 |
|
395 |
: 0
|
396 |
: null;
|
397 |
|
398 |
+
$site_referer = $apbct->settings['misc__store_urls__sessions']
|
399 |
? apbct_alt_session__get('apbct_site_referer')
|
400 |
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
401 |
|
402 |
+
$urls = $apbct->settings['misc__store_urls__sessions']
|
403 |
? (array)apbct_alt_session__get('apbct_urls')
|
404 |
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
405 |
|
516 |
global $apbct;
|
517 |
|
518 |
// Use static JS keys
|
519 |
+
if($apbct->settings['data__use_static_js_key'] == 1){
|
520 |
|
521 |
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
522 |
|
523 |
// Auto detecting. Detected.
|
524 |
}elseif(
|
525 |
+
$apbct->settings['data__use_static_js_key'] == - 1 &&
|
526 |
( apbct_is_cache_plugins_exists() ||
|
527 |
( apbct_is_post() && $apbct->data['cache_detected'] == 1 )
|
528 |
)
|
530 |
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
531 |
if( apbct_is_cache_plugins_exists() )
|
532 |
$apbct->data['cache_detected'] = 1;
|
533 |
+
|
534 |
+
$apbct->saveData();
|
535 |
|
536 |
// Using dynamic JS keys
|
537 |
}else{
|
569 |
}
|
570 |
|
571 |
$apbct->data['cache_detected'] = 0;
|
|
|
572 |
|
573 |
+
$apbct->saveData();
|
574 |
+
|
575 |
+
}
|
576 |
|
577 |
return $key;
|
578 |
}
|
728 |
|
729 |
global $apbct;
|
730 |
|
731 |
+
if ($apbct->settings['comments__remove_old_spam'] == 1) {
|
732 |
$last_comments = get_comments(array('status' => 'spam', 'number' => 1000, 'order' => 'ASC'));
|
733 |
foreach ($last_comments as $c) {
|
734 |
$comment_date_gmt = strtotime($c->comment_date_gmt);
|
1072 |
$handle === 'ct_external' ||
|
1073 |
$handle === 'ct_nocache'
|
1074 |
){
|
1075 |
+
if( $apbct->settings['misc__async_js'] )
|
1076 |
$tag = str_replace( ' src', ' async="async" src', $tag );
|
1077 |
|
1078 |
if( class_exists('Cookiebot_WP') )
|
@@ -356,6 +356,14 @@ function apbct_is_skip_request( $ajax = false ) {
|
|
356 |
/* Here is ajax requests skipping */
|
357 |
/*****************************************/
|
358 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
// Bookly Plugin admin actions skip
|
360 |
if( apbct_is_plugin_active( 'bookly-responsive-appointment-booking-tool/main.php' ) &&
|
361 |
isset( $_POST['action'] ) &&
|
@@ -414,6 +422,31 @@ function apbct_is_skip_request( $ajax = false ) {
|
|
414 |
){
|
415 |
return 'jackmail_admin_actions';
|
416 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
|
418 |
break;
|
419 |
|
@@ -434,6 +467,12 @@ function apbct_is_skip_request( $ajax = false ) {
|
|
434 |
{
|
435 |
return 'ultimatemember_password_reset';
|
436 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
|
438 |
break;
|
439 |
|
@@ -441,3 +480,47 @@ function apbct_is_skip_request( $ajax = false ) {
|
|
441 |
|
442 |
return false;
|
443 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
/* Here is ajax requests skipping */
|
357 |
/*****************************************/
|
358 |
|
359 |
+
// wpDiscuz - Online Users Addon for wpDiscuz
|
360 |
+
if(
|
361 |
+
apbct_is_plugin_active( 'wpdiscuz-online-users/wpdiscuz-ou.php' ) &&
|
362 |
+
Post::get( 'action' ) === 'wouPushNotification'
|
363 |
+
){
|
364 |
+
return 'wpdiscuz_online_users__push_notification';
|
365 |
+
}
|
366 |
+
|
367 |
// Bookly Plugin admin actions skip
|
368 |
if( apbct_is_plugin_active( 'bookly-responsive-appointment-booking-tool/main.php' ) &&
|
369 |
isset( $_POST['action'] ) &&
|
422 |
){
|
423 |
return 'jackmail_admin_actions';
|
424 |
}
|
425 |
+
// Newspaper theme login form
|
426 |
+
if ( apbct_is_theme_active( 'Newspaper' ) &&
|
427 |
+
isset( $_POST['action'] ) &&
|
428 |
+
( $_POST['action'] == 'td_mod_login' || $_POST['action'] == 'td_mod_remember_pass' ) )
|
429 |
+
{
|
430 |
+
return 'Newspaper_theme_login_form';
|
431 |
+
}
|
432 |
+
// Save abandoned cart checking skip
|
433 |
+
if ( apbct_is_plugin_active( 'woo-save-abandoned-carts/cartbounty-abandoned-carts.php' ) &&
|
434 |
+
Post::get( 'action' ) === 'cartbounty_save' )
|
435 |
+
{
|
436 |
+
return 'cartbounty_save';
|
437 |
+
}
|
438 |
+
// SUMODISCOUNT discout request skip
|
439 |
+
if ( apbct_is_plugin_active( 'sumodiscounts/sumodiscounts.php' ) &&
|
440 |
+
Post::get( 'action' ) === 'fp_apply_discount_for_first_purchase' )
|
441 |
+
{
|
442 |
+
return 'fp_apply_discount_for_first_purchase';
|
443 |
+
}
|
444 |
+
// WP eMember login form skip
|
445 |
+
if ( apbct_is_plugin_active( 'wp-eMember/wp_eMember.php' ) &&
|
446 |
+
Post::get( 'action' ) === 'emember_ajax_login' )
|
447 |
+
{
|
448 |
+
return 'emember_ajax_login';
|
449 |
+
}
|
450 |
|
451 |
break;
|
452 |
|
467 |
{
|
468 |
return 'ultimatemember_password_reset';
|
469 |
}
|
470 |
+
// UltimateMember password reset skip
|
471 |
+
if( apbct_is_plugin_active( 'gravityformspaypal/paypal.php' ) &&
|
472 |
+
( apbct_is_in_uri('page=gf_paypal_ipn') || apbct_is_in_uri('callback=gravityformspaypal') ) )
|
473 |
+
{
|
474 |
+
return 'gravityformspaypal_processing_skipped';
|
475 |
+
}
|
476 |
|
477 |
break;
|
478 |
|
480 |
|
481 |
return false;
|
482 |
}
|
483 |
+
|
484 |
+
function apbct_get_plugin_options() {
|
485 |
+
global $apbct;
|
486 |
+
$settings = (array) $apbct->settings;
|
487 |
+
// Remove apikey from export
|
488 |
+
if( isset( $settings['apikey'] ) ) {
|
489 |
+
unset( $settings['apikey'] );
|
490 |
+
}
|
491 |
+
// Remove misc__debug_ajax from export
|
492 |
+
if( isset( $settings['misc__debug_ajax'] ) ) {
|
493 |
+
unset( $settings['misc__debug_ajax'] );
|
494 |
+
}
|
495 |
+
// Remove multisite__white_label__hoster_key from export
|
496 |
+
if( isset( $settings['multisite__white_label__hoster_key'] ) ) {
|
497 |
+
unset( $settings['multisite__white_label__hoster_key'] );
|
498 |
+
}
|
499 |
+
// Remove all WPMS from export
|
500 |
+
$settings = array_filter( $settings, function( $key ){
|
501 |
+
return strpos( $key, 'multisite__' ) === false;
|
502 |
+
}, ARRAY_FILTER_USE_KEY );
|
503 |
+
return json_encode( $settings, JSON_FORCE_OBJECT );
|
504 |
+
}
|
505 |
+
|
506 |
+
function apbct_set_plugin_options( $template_id, $template_name, $settings ) {
|
507 |
+
global $apbct;
|
508 |
+
$settings = array_replace( (array) $apbct->settings, $settings );
|
509 |
+
$settings = apbct_settings__validate($settings);
|
510 |
+
$apbct->settings = $settings;
|
511 |
+
$apbct->data['current_settings_template_id'] = $template_id;
|
512 |
+
$apbct->data['current_settings_template_name'] = $template_name;
|
513 |
+
return $apbct->saveSettings() && $apbct->saveData();
|
514 |
+
}
|
515 |
+
|
516 |
+
function apbct_reset_plugin_options() {
|
517 |
+
global $apbct;
|
518 |
+
$def_settings = $apbct->def_settings;
|
519 |
+
if( isset( $def_settings['apikey'] ) ) {
|
520 |
+
unset( $def_settings['apikey'] );
|
521 |
+
}
|
522 |
+
$settings = array_replace( (array) $apbct->settings, $def_settings );
|
523 |
+
$settings = apbct_settings__validate($settings);
|
524 |
+
$apbct->settings = $settings;
|
525 |
+
return $apbct->saveSettings();
|
526 |
+
}
|
@@ -10,7 +10,7 @@ function apbct_init() {
|
|
10 |
|
11 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
12 |
if((isset($_POST['action']) && $_POST['action'] == 'ct_check_internal') &&
|
13 |
-
$apbct->settings['
|
14 |
){
|
15 |
$ct_result = ct_contact_form_validate();
|
16 |
if($ct_result == null){
|
@@ -33,10 +33,10 @@ function apbct_init() {
|
|
33 |
add_shortcode( 'et_pb_contact_form', 'ct_contact_form_validate' );
|
34 |
}
|
35 |
|
36 |
-
if($apbct->settings['
|
37 |
|
38 |
// Fixing form and directs it this site
|
39 |
-
if($apbct->settings['
|
40 |
|
41 |
if (defined('CLEANTALK_CAPTURE_BUFFER_SPECIFIC_URL') && is_string(CLEANTALK_CAPTURE_BUFFER_SPECIFIC_URL)) {
|
42 |
$catch_buffer = false;
|
@@ -94,10 +94,10 @@ function apbct_init() {
|
|
94 |
}
|
95 |
|
96 |
//hook for Anonymous Post
|
97 |
-
if($apbct->settings['
|
98 |
add_action('wp', 'ct_contact_form_validate_postdata',1);
|
99 |
|
100 |
-
if($apbct->settings['
|
101 |
add_action('CMA_custom_post_type_nav', 'ct_contact_form_validate_postdata',1);
|
102 |
//add_action('init','ct_contact_form_validate',1);
|
103 |
ct_contact_form_validate();
|
@@ -115,7 +115,7 @@ function apbct_init() {
|
|
115 |
}*/
|
116 |
}
|
117 |
|
118 |
-
if($apbct->settings['
|
119 |
add_action('CMA_custom_post_type_nav', 'ct_contact_form_validate_postdata',1);
|
120 |
|
121 |
//add_action('wp_footer','ct_ajaxurl');
|
@@ -129,10 +129,10 @@ function apbct_init() {
|
|
129 |
// WooCommerce registration
|
130 |
if(class_exists('WooCommerce')){
|
131 |
add_filter( 'woocommerce_registration_errors', 'ct_registration_errors', 1, 3 );
|
132 |
-
if ($apbct->settings['
|
133 |
add_filter('woocommerce_checkout_process', 'ct_woocommerce_checkout_check', 1, 3);
|
134 |
}
|
135 |
-
if( isset($_REQUEST['wc-ajax']) && $_REQUEST['wc-ajax'] == 'checkout' && empty( $apbct->settings['
|
136 |
remove_filter( 'woocommerce_registration_errors', 'ct_registration_errors', 1 );
|
137 |
}
|
138 |
}
|
@@ -307,17 +307,17 @@ function apbct_init() {
|
|
307 |
add_action('wp_footer', 'apbct_hook__wp_footer', 1);
|
308 |
}
|
309 |
|
310 |
-
if ($apbct->settings['
|
311 |
ct_contact_form_validate();
|
312 |
}
|
313 |
|
314 |
if (apbct_is_user_enable()) {
|
315 |
|
316 |
-
if ($apbct->settings['
|
317 |
add_action( 'init', 'ct_contact_form_validate', 999 );
|
318 |
}
|
319 |
if( apbct_is_post() &&
|
320 |
-
$apbct->settings['
|
321 |
!isset($_POST['ct_checkjs_cf7']) &&
|
322 |
!is_admin() &&
|
323 |
!apbct_is_user_role_in(array('administrator', 'moderator'))
|
@@ -443,13 +443,13 @@ function ct_validate_ccf_submission($value, $field_id, $required){
|
|
443 |
|
444 |
|
445 |
//If the check for contact forms enabled
|
446 |
-
if(!$apbct->settings['
|
447 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
448 |
return true;
|
449 |
}
|
450 |
|
451 |
//If the check for logged in users enabled
|
452 |
-
if($apbct->settings['
|
453 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
454 |
return true;
|
455 |
}
|
@@ -513,7 +513,7 @@ function ct_woocommerce_wishlist_check($args){
|
|
513 |
|
514 |
//Protect logged in users
|
515 |
if($args['wishlist_status'])
|
516 |
-
if($apbct->settings['
|
517 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
518 |
return $args;
|
519 |
}
|
@@ -656,7 +656,7 @@ function apbct_integration__buddyPres__private_msg_check( $bp_message_obj){
|
|
656 |
|
657 |
//Check for enabled option
|
658 |
if(
|
659 |
-
$apbct->settings['
|
660 |
apbct_exclusions_check()
|
661 |
) {
|
662 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -669,7 +669,7 @@ function apbct_integration__buddyPres__private_msg_check( $bp_message_obj){
|
|
669 |
? CLEANTALK_CHECK_COMMENTS_NUMBER
|
670 |
: 3;
|
671 |
|
672 |
-
if($apbct->settings['
|
673 |
$args = array(
|
674 |
'user_id' => $bp_message_obj->sender_id,
|
675 |
'box' => 'sentbox',
|
@@ -728,7 +728,7 @@ function apbct_integration__buddyPres__private_msg_check( $bp_message_obj){
|
|
728 |
*/
|
729 |
function apbct_forms__search__addField( $form ){
|
730 |
global $apbct;
|
731 |
-
if($apbct->settings['
|
732 |
$js_filed = ct_add_hidden_fields('ct_checkjs_search_default', true, false, false, false);
|
733 |
$form = str_replace('</form>', $js_filed, $form);
|
734 |
}
|
@@ -748,8 +748,8 @@ function apbct_forms__search__testSpam( $search ){
|
|
748 |
if(
|
749 |
empty($search) ||
|
750 |
$cleantalk_executed ||
|
751 |
-
$apbct->settings['
|
752 |
-
$apbct->settings['
|
753 |
){
|
754 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
755 |
return $search;
|
@@ -784,8 +784,8 @@ function apbct_search_add_noindex() {
|
|
784 |
|
785 |
if(
|
786 |
! is_search() || // If it is search results
|
787 |
-
$apbct->settings['
|
788 |
-
$apbct->settings['
|
789 |
){
|
790 |
return ;
|
791 |
}
|
@@ -830,7 +830,7 @@ function ct_woocommerce_checkout_check() {
|
|
830 |
)
|
831 |
);
|
832 |
|
833 |
-
if( $apbct->settings['
|
834 |
$cleantalk_executed = false;
|
835 |
}
|
836 |
|
@@ -855,7 +855,7 @@ function apbct_form__piratesForm__testSpam(){
|
|
855 |
global $apbct;
|
856 |
|
857 |
//Check for enabled option
|
858 |
-
if( !$apbct->settings['
|
859 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
860 |
return;
|
861 |
}
|
@@ -905,7 +905,7 @@ function ct_comment_form($post_id){
|
|
905 |
return false;
|
906 |
}
|
907 |
|
908 |
-
if ( !$apbct->settings['
|
909 |
return false;
|
910 |
}
|
911 |
|
@@ -946,7 +946,7 @@ function ct_add_hidden_fields($field_name = 'ct_checkjs', $return_string = false
|
|
946 |
$field_id_hash = md5(rand(0, 1000));
|
947 |
|
948 |
// Using only cookies
|
949 |
-
if ($cookie_check && $apbct->settings['
|
950 |
|
951 |
$html = "<script type=\"text/javascript\" " . ( class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '' ) . ">
|
952 |
function ctSetCookie___from_backend(c_name, value) {
|
@@ -956,7 +956,7 @@ function ct_add_hidden_fields($field_name = 'ct_checkjs', $return_string = false
|
|
956 |
</script>";
|
957 |
|
958 |
// Using AJAX to get key
|
959 |
-
}elseif($apbct->settings['
|
960 |
|
961 |
// Fix only for wp_footer -> apbct_hook__wp_head__set_cookie__ct_checkjs()
|
962 |
if($no_print)
|
@@ -967,12 +967,10 @@ function ct_add_hidden_fields($field_name = 'ct_checkjs', $return_string = false
|
|
967 |
$html = "<input type=\"hidden\" id=\"{$field_id}\" name=\"{$field_name}\" value=\"{$ct_checkjs_def}\" />
|
968 |
<script type=\"text/javascript\" " . ( class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '' ) . ">
|
969 |
window.addEventListener(\"DOMContentLoaded\", function () {
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
);
|
975 |
-
}, 1000);
|
976 |
});
|
977 |
</script>";
|
978 |
|
@@ -1014,7 +1012,7 @@ function apbct_rorm__formidable__footerScripts($fields, $form) {
|
|
1014 |
|
1015 |
global $apbct, $ct_checkjs_frm;
|
1016 |
|
1017 |
-
if ( !$apbct->settings['
|
1018 |
return false;
|
1019 |
|
1020 |
$ct_checkjs_key = ct_get_checkjs_value();
|
@@ -1051,13 +1049,13 @@ function apbct_rorm__formidable__testSpam ( $errors, $form ) {
|
|
1051 |
|
1052 |
global $apbct;
|
1053 |
|
1054 |
-
if ( !$apbct->settings['
|
1055 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1056 |
return $errors;
|
1057 |
}
|
1058 |
|
1059 |
// Skip processing for logged in users.
|
1060 |
-
if ( !$apbct->settings['
|
1061 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1062 |
return $errors;
|
1063 |
}
|
@@ -1136,13 +1134,13 @@ function ct_bbp_new_pre_content ($comment) {
|
|
1136 |
|
1137 |
global $apbct, $current_user;
|
1138 |
|
1139 |
-
if ( !$apbct->settings['
|
1140 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1141 |
return $comment;
|
1142 |
}
|
1143 |
|
1144 |
// Skip processing for logged in users and admin.
|
1145 |
-
if ( !$apbct->settings['
|
1146 |
apbct_exclusions_check()
|
1147 |
) {
|
1148 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -1252,12 +1250,12 @@ function ct_preprocess_comment($comment) {
|
|
1252 |
global $current_user, $comment_post_id, $ct_comment_done, $ct_jp_comments, $apbct;
|
1253 |
|
1254 |
// Send email notification for chosen groups of users
|
1255 |
-
if($apbct->settings['
|
1256 |
|
1257 |
add_filter('notify_post_author', 'apbct_comment__Wordpress__doNotify', 100, 2);
|
1258 |
|
1259 |
$users = get_users(array(
|
1260 |
-
'role__in' => $apbct->settings['
|
1261 |
'fileds' => array('user_email')
|
1262 |
));
|
1263 |
|
@@ -1280,7 +1278,7 @@ function ct_preprocess_comment($comment) {
|
|
1280 |
|
1281 |
$comments_check_number = defined('CLEANTALK_CHECK_COMMENTS_NUMBER') ? CLEANTALK_CHECK_COMMENTS_NUMBER : 3;
|
1282 |
|
1283 |
-
if($apbct->settings['
|
1284 |
$args = array(
|
1285 |
'author_email' => $comment['comment_author_email'],
|
1286 |
'status' => 'approve',
|
@@ -1295,7 +1293,7 @@ function ct_preprocess_comment($comment) {
|
|
1295 |
($comment['comment_type']!='trackback') &&
|
1296 |
(
|
1297 |
apbct_is_user_enable() === false ||
|
1298 |
-
$apbct->settings['
|
1299 |
$ct_comment_done ||
|
1300 |
(isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) ||
|
1301 |
(isset($is_max_comments) && $is_max_comments) ||
|
@@ -1445,7 +1443,7 @@ function ct_preprocess_comment($comment) {
|
|
1445 |
add_action('comment_post', 'ct_die', 999, 2);
|
1446 |
}
|
1447 |
|
1448 |
-
if($apbct->settings['
|
1449 |
$comment['comment_content'] = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '[Link deleted]', $comment['comment_content']);
|
1450 |
}
|
1451 |
|
@@ -1624,8 +1622,8 @@ function apbct_js_test($field_name = 'ct_checkjs', $data = null) {
|
|
1624 |
|
1625 |
// Check static key
|
1626 |
if(
|
1627 |
-
$apbct->settings['
|
1628 |
-
( $apbct->settings['
|
1629 |
( apbct_is_cache_plugins_exists() ||
|
1630 |
( apbct_is_post() && isset($apbct->data['cache_detected']) && $apbct->data['cache_detected'] == 1 )
|
1631 |
)
|
@@ -1765,7 +1763,7 @@ function ct_register_form() {
|
|
1765 |
|
1766 |
global $ct_checkjs_register_form, $apbct;
|
1767 |
|
1768 |
-
if ($apbct->settings['
|
1769 |
return false;
|
1770 |
}
|
1771 |
|
@@ -1797,7 +1795,7 @@ function ct_login_message($message) {
|
|
1797 |
|
1798 |
global $errors, $apbct, $apbct_cookie_register_ok_label;
|
1799 |
|
1800 |
-
if ($apbct->settings['
|
1801 |
if( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] ){
|
1802 |
if (isset($_COOKIE[$apbct_cookie_register_ok_label])){
|
1803 |
if(is_wp_error($errors)){
|
@@ -1948,7 +1946,7 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
|
|
1948 |
return $errors;
|
1949 |
}
|
1950 |
|
1951 |
-
if ($apbct->settings['
|
1952 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1953 |
return $errors;
|
1954 |
}
|
@@ -2125,7 +2123,7 @@ function apbct_registration__UltimateMembers__check( $args ){
|
|
2125 |
|
2126 |
global $apbct, $cleantalk_executed;
|
2127 |
|
2128 |
-
if ($apbct->settings['
|
2129 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2130 |
return $args;
|
2131 |
}
|
@@ -2220,7 +2218,7 @@ function ct_grunion_contact_form_field_html($r, $field_label) {
|
|
2220 |
|
2221 |
global $ct_checkjs_jpcf, $ct_jpcf_patched, $ct_jpcf_fields, $apbct;
|
2222 |
|
2223 |
-
if ($apbct->settings['
|
2224 |
|
2225 |
// Looking for element name prefix
|
2226 |
$name_patched = false;
|
@@ -2244,7 +2242,7 @@ function ct_contact_form_is_spam($form) {
|
|
2244 |
|
2245 |
global $ct_checkjs_jpcf, $apbct;
|
2246 |
|
2247 |
-
if ($apbct->settings['
|
2248 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2249 |
return null;
|
2250 |
}
|
@@ -2292,7 +2290,7 @@ function ct_contact_form_is_spam($form) {
|
|
2292 |
function ct_contact_form_is_spam_jetpack($is_spam,$form) {
|
2293 |
global $ct_checkjs_jpcf, $apbct;
|
2294 |
|
2295 |
-
if ($apbct->settings['
|
2296 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2297 |
return null;
|
2298 |
}
|
@@ -2339,7 +2337,7 @@ function apbct_form__contactForm7__addField($html) {
|
|
2339 |
|
2340 |
|
2341 |
|
2342 |
-
if ($apbct->settings['
|
2343 |
return $html;
|
2344 |
}
|
2345 |
|
@@ -2378,10 +2376,10 @@ function apbct_form__contactForm7__testSpam( $spam, $submission = null ) {
|
|
2378 |
global $ct_checkjs_cf7, $apbct;
|
2379 |
|
2380 |
if(
|
2381 |
-
$apbct->settings['
|
2382 |
$spam == false && WPCF7_VERSION < '3.0.0' ||
|
2383 |
$spam === true && WPCF7_VERSION >= '3.0.0' ||
|
2384 |
-
$apbct->settings['
|
2385 |
apbct_exclusions_check__url() ||
|
2386 |
apbct_exclusions_check__ip() ||
|
2387 |
isset($apbct->cf7_checked)
|
@@ -2505,8 +2503,8 @@ function apbct_form__ninjaForms__testSpam() {
|
|
2505 |
}
|
2506 |
|
2507 |
if(
|
2508 |
-
$apbct->settings['
|
2509 |
-
|| ($apbct->settings['
|
2510 |
|| apbct_exclusions_check__url()
|
2511 |
){
|
2512 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -2603,8 +2601,8 @@ function apbct_form__seedprod_coming_soon__testSpam() {
|
|
2603 |
global $apbct;
|
2604 |
|
2605 |
if(
|
2606 |
-
$apbct->settings['
|
2607 |
-
|| ($apbct->settings['
|
2608 |
|| apbct_exclusions_check__url()
|
2609 |
){
|
2610 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -2685,7 +2683,7 @@ function apbct_form__WPForms__addField($form_data, $some, $title, $description,
|
|
2685 |
|
2686 |
global $apbct;
|
2687 |
|
2688 |
-
if($apbct->settings['
|
2689 |
ct_add_hidden_fields('checkjs_wpforms', false);
|
2690 |
|
2691 |
}
|
@@ -2756,8 +2754,8 @@ function apbct_form__WPForms__testSpam() {
|
|
2756 |
global $apbct;
|
2757 |
|
2758 |
if(
|
2759 |
-
$apbct->settings['
|
2760 |
-
$apbct->settings['
|
2761 |
){
|
2762 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2763 |
return;
|
@@ -2891,7 +2889,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
|
|
2891 |
}
|
2892 |
|
2893 |
|
2894 |
-
if ($apbct->settings['
|
2895 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2896 |
return $form_errors;
|
2897 |
}
|
@@ -2966,7 +2964,7 @@ function ct_check_wplp(){
|
|
2966 |
|
2967 |
if (!isset($_COOKIE[$ct_wplp_result_label])) {
|
2968 |
// First AJAX submit of WPLP form
|
2969 |
-
if ($apbct->settings['
|
2970 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2971 |
return;
|
2972 |
}
|
@@ -3052,7 +3050,7 @@ function apbct_form__gravityForms__testSpam($is_spam, $form, $entry) {
|
|
3052 |
global $apbct, $cleantalk_executed, $ct_gform_is_spam, $ct_gform_response;
|
3053 |
|
3054 |
if (
|
3055 |
-
$apbct->settings['
|
3056 |
$cleantalk_executed // Return unchanged result if the submission was already tested.
|
3057 |
) {
|
3058 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -3125,7 +3123,7 @@ function ct_s2member_registration_test($post_key) {
|
|
3125 |
|
3126 |
global $apbct;
|
3127 |
|
3128 |
-
if ($apbct->settings['
|
3129 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3130 |
return null;
|
3131 |
}
|
@@ -3214,8 +3212,8 @@ function apbct_form__elementor_pro__testSpam() {
|
|
3214 |
global $apbct, $cleantalk_executed;
|
3215 |
|
3216 |
if(
|
3217 |
-
$apbct->settings['
|
3218 |
-
|| ($apbct->settings['
|
3219 |
|| apbct_exclusions_check__url()
|
3220 |
){
|
3221 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -3264,8 +3262,8 @@ function apbct_form__inevio__testSpam() {
|
|
3264 |
$theme = wp_get_theme();
|
3265 |
if(
|
3266 |
stripos( $theme->get( 'Name' ), 'INEVIO' ) === false ||
|
3267 |
-
$apbct->settings['
|
3268 |
-
($apbct->settings['
|
3269 |
apbct_exclusions_check__url()
|
3270 |
) {
|
3271 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
@@ -3332,13 +3330,13 @@ function ct_contact_form_validate() {
|
|
3332 |
isset($_GET['ptype']) && $_GET['ptype']=='login' ||
|
3333 |
isset($_POST['ct_checkjs_register_form']) ||
|
3334 |
(isset($_POST['signup_username']) && isset($_POST['signup_password_confirm']) && isset($_POST['signup_submit']) ) ||
|
3335 |
-
$apbct->settings['
|
3336 |
isset($_POST['bbp_topic_content']) ||
|
3337 |
isset($_POST['bbp_reply_content']) ||
|
3338 |
isset($_POST['fscf_submitted']) ||
|
3339 |
apbct_is_in_uri('/wc-api') ||
|
3340 |
isset($_POST['log']) && isset($_POST['pwd']) && isset($_POST['wp-submit']) ||
|
3341 |
-
isset($_POST[$ct_checkjs_frm]) && $apbct->settings['
|
3342 |
( isset($_POST['comment_post_ID']) && ! isset($_POST['comment-submit'] ) ) || // The comment form && ! DW Question & Answer
|
3343 |
isset($_GET['for']) ||
|
3344 |
(isset($_POST['log'], $_POST['pwd'])) || //WooCommerce Sensei login form fix
|
@@ -3416,7 +3414,7 @@ function ct_contact_form_validate() {
|
|
3416 |
}
|
3417 |
|
3418 |
// Do not execute anti-spam test for logged in users.
|
3419 |
-
if (isset($_COOKIE[LOGGED_IN_COOKIE]) && $apbct->settings['
|
3420 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3421 |
return null;
|
3422 |
}
|
@@ -3606,7 +3604,7 @@ function ct_contact_form_validate_postdata() {
|
|
3606 |
isset($_GET['ptype']) && $_GET['ptype']=='login' ||
|
3607 |
isset($_POST['ct_checkjs_register_form']) ||
|
3608 |
(isset($_POST['signup_username']) && isset($_POST['signup_password_confirm']) && isset($_POST['signup_submit']) ) ||
|
3609 |
-
$apbct->settings['
|
3610 |
isset($_POST['bbp_topic_content']) ||
|
3611 |
isset($_POST['bbp_reply_content']) ||
|
3612 |
isset($_POST['fscf_submitted']) ||
|
@@ -3766,7 +3764,7 @@ function ct_enqueue_scripts_public($hook){
|
|
3766 |
return;
|
3767 |
}
|
3768 |
|
3769 |
-
if($apbct->settings['
|
3770 |
|
3771 |
if( ! $apbct->public_script_loaded ) {
|
3772 |
|
@@ -3781,41 +3779,41 @@ function ct_enqueue_scripts_public($hook){
|
|
3781 |
}
|
3782 |
|
3783 |
// GDPR script
|
3784 |
-
if($apbct->settings['
|
3785 |
|
3786 |
wp_enqueue_script('ct_public_gdpr', APBCT_URL_PATH.'/js/apbct-public--gdpr.min.js', array('jquery', 'ct_public'), APBCT_VERSION, false /*in header*/);
|
3787 |
|
3788 |
wp_localize_script('ct_public_gdpr', 'ctPublicGDPR', array(
|
3789 |
'gdpr_forms' => array(),
|
3790 |
-
'
|
3791 |
));
|
3792 |
}
|
3793 |
|
3794 |
}
|
3795 |
|
3796 |
if(!defined('CLEANTALK_AJAX_USE_FOOTER_HEADER') || (defined('CLEANTALK_AJAX_USE_FOOTER_HEADER') && CLEANTALK_AJAX_USE_FOOTER_HEADER)){
|
3797 |
-
if($apbct->settings['
|
3798 |
if( ! apbct_is_in_uri('jm-ajax') ){
|
3799 |
|
3800 |
// Use AJAX for JavaScript check
|
3801 |
-
if($apbct->settings['
|
3802 |
|
3803 |
wp_enqueue_script('ct_nocache', plugins_url('/cleantalk-spam-protect/js/cleantalk_nocache.min.js'), array(), APBCT_VERSION, false /*in header*/);
|
3804 |
|
3805 |
wp_localize_script('ct_nocache', 'ctNocache', array(
|
3806 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
3807 |
-
'info_flag' => $apbct->settings['
|
3808 |
-
'set_cookies_flag' => $apbct->settings['
|
3809 |
'blog_home' => get_home_url().'/',
|
3810 |
));
|
3811 |
}
|
3812 |
|
3813 |
// External forms check
|
3814 |
-
if($apbct->settings['
|
3815 |
wp_enqueue_script('ct_external', plugins_url('/cleantalk-spam-protect/js/cleantalk_external.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3816 |
|
3817 |
// Internal forms check
|
3818 |
-
if($apbct->settings['
|
3819 |
wp_enqueue_script('ct_internal', plugins_url('/cleantalk-spam-protect/js/cleantalk_internal.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3820 |
|
3821 |
}
|
@@ -3825,7 +3823,7 @@ function ct_enqueue_scripts_public($hook){
|
|
3825 |
// Show controls for commentaries
|
3826 |
if(in_array("administrator", $current_user->roles)){
|
3827 |
|
3828 |
-
if($apbct->settings['
|
3829 |
|
3830 |
$ajax_nonce = wp_create_nonce( "ct_secret_nonce" );
|
3831 |
|
@@ -3844,7 +3842,7 @@ function ct_enqueue_scripts_public($hook){
|
|
3844 |
}
|
3845 |
|
3846 |
// Debug
|
3847 |
-
if($apbct->settings['
|
3848 |
wp_enqueue_script('ct_debug_js', plugins_url('/cleantalk-spam-protect/js/cleantalk-debug-ajax.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3849 |
|
3850 |
wp_localize_script('ct_debug_js', 'apbctDebug', array(
|
@@ -3862,7 +3860,7 @@ function ct_wp_list_comments_args($options){
|
|
3862 |
global $current_user, $apbct;
|
3863 |
|
3864 |
if(in_array("administrator", $current_user->roles)){
|
3865 |
-
if($apbct->settings['
|
3866 |
$theme = wp_get_theme();
|
3867 |
$apbct->active_theme = $theme->get( 'Name' );
|
3868 |
$options['end-callback'] = 'ct_comments_output';
|
@@ -3924,7 +3922,7 @@ function ct_comments_output($curr_comment, $param2, $wp_list_comments_args){
|
|
3924 |
echo "</div>";
|
3925 |
|
3926 |
// @todo research what such themes and make exception for them
|
3927 |
-
$ending_tag = $wp_list_comments_args['style'];
|
3928 |
if( in_array( $apbct->active_theme, array( 'Paperio', 'Twenty Twenty' ) ) ){
|
3929 |
$ending_tag = is_null($wp_list_comments_args['style']) ? 'div' : $wp_list_comments_args['style'];
|
3930 |
};
|
10 |
|
11 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
12 |
if((isset($_POST['action']) && $_POST['action'] == 'ct_check_internal') &&
|
13 |
+
$apbct->settings['forms__check_internal']
|
14 |
){
|
15 |
$ct_result = ct_contact_form_validate();
|
16 |
if($ct_result == null){
|
33 |
add_shortcode( 'et_pb_contact_form', 'ct_contact_form_validate' );
|
34 |
}
|
35 |
|
36 |
+
if($apbct->settings['forms__check_external']){
|
37 |
|
38 |
// Fixing form and directs it this site
|
39 |
+
if($apbct->settings['forms__check_external__capture_buffer'] && !is_admin() && !apbct_is_ajax() && !apbct_is_post() && apbct_is_user_enable() && !(defined('DOING_CRON') && DOING_CRON) && !(defined('XMLRPC_REQUEST') && XMLRPC_REQUEST)){
|
40 |
|
41 |
if (defined('CLEANTALK_CAPTURE_BUFFER_SPECIFIC_URL') && is_string(CLEANTALK_CAPTURE_BUFFER_SPECIFIC_URL)) {
|
42 |
$catch_buffer = false;
|
94 |
}
|
95 |
|
96 |
//hook for Anonymous Post
|
97 |
+
if($apbct->settings['data__general_postdata_test'] == 1 && empty($_POST['ct_checkjs_cf7']))
|
98 |
add_action('wp', 'ct_contact_form_validate_postdata',1);
|
99 |
|
100 |
+
if($apbct->settings['forms__general_contact_forms_test'] == 1 && empty($_POST['ct_checkjs_cf7'])){
|
101 |
add_action('CMA_custom_post_type_nav', 'ct_contact_form_validate_postdata',1);
|
102 |
//add_action('init','ct_contact_form_validate',1);
|
103 |
ct_contact_form_validate();
|
115 |
}*/
|
116 |
}
|
117 |
|
118 |
+
if($apbct->settings['data__general_postdata_test'] == 1 && empty($_POST['ct_checkjs_cf7']))
|
119 |
add_action('CMA_custom_post_type_nav', 'ct_contact_form_validate_postdata',1);
|
120 |
|
121 |
//add_action('wp_footer','ct_ajaxurl');
|
129 |
// WooCommerce registration
|
130 |
if(class_exists('WooCommerce')){
|
131 |
add_filter( 'woocommerce_registration_errors', 'ct_registration_errors', 1, 3 );
|
132 |
+
if ($apbct->settings['forms__wc_checkout_test'] == 1) {
|
133 |
add_filter('woocommerce_checkout_process', 'ct_woocommerce_checkout_check', 1, 3);
|
134 |
}
|
135 |
+
if( isset($_REQUEST['wc-ajax']) && $_REQUEST['wc-ajax'] == 'checkout' && empty( $apbct->settings['forms__wc_register_from_order'] ) ){
|
136 |
remove_filter( 'woocommerce_registration_errors', 'ct_registration_errors', 1 );
|
137 |
}
|
138 |
}
|
307 |
add_action('wp_footer', 'apbct_hook__wp_footer', 1);
|
308 |
}
|
309 |
|
310 |
+
if ($apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in()) {
|
311 |
ct_contact_form_validate();
|
312 |
}
|
313 |
|
314 |
if (apbct_is_user_enable()) {
|
315 |
|
316 |
+
if ($apbct->settings['forms__general_contact_forms_test'] == 1 && !isset($_POST['comment_post_ID']) && !isset($_GET['for'])){
|
317 |
add_action( 'init', 'ct_contact_form_validate', 999 );
|
318 |
}
|
319 |
if( apbct_is_post() &&
|
320 |
+
$apbct->settings['data__general_postdata_test'] == 1 &&
|
321 |
!isset($_POST['ct_checkjs_cf7']) &&
|
322 |
!is_admin() &&
|
323 |
!apbct_is_user_role_in(array('administrator', 'moderator'))
|
443 |
|
444 |
|
445 |
//If the check for contact forms enabled
|
446 |
+
if(!$apbct->settings['forms__contact_forms_test']) {
|
447 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
448 |
return true;
|
449 |
}
|
450 |
|
451 |
//If the check for logged in users enabled
|
452 |
+
if($apbct->settings['data__protect_logged_in'] == 1 && is_user_logged_in()) {
|
453 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
454 |
return true;
|
455 |
}
|
513 |
|
514 |
//Protect logged in users
|
515 |
if($args['wishlist_status'])
|
516 |
+
if($apbct->settings['data__protect_logged_in'] == 0) {
|
517 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
518 |
return $args;
|
519 |
}
|
656 |
|
657 |
//Check for enabled option
|
658 |
if(
|
659 |
+
$apbct->settings['comments__bp_private_messages'] == 0 ||
|
660 |
apbct_exclusions_check()
|
661 |
) {
|
662 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
669 |
? CLEANTALK_CHECK_COMMENTS_NUMBER
|
670 |
: 3;
|
671 |
|
672 |
+
if($apbct->settings['comments__check_comments_number']){
|
673 |
$args = array(
|
674 |
'user_id' => $bp_message_obj->sender_id,
|
675 |
'box' => 'sentbox',
|
728 |
*/
|
729 |
function apbct_forms__search__addField( $form ){
|
730 |
global $apbct;
|
731 |
+
if($apbct->settings['forms__search_test'] == 1){
|
732 |
$js_filed = ct_add_hidden_fields('ct_checkjs_search_default', true, false, false, false);
|
733 |
$form = str_replace('</form>', $js_filed, $form);
|
734 |
}
|
748 |
if(
|
749 |
empty($search) ||
|
750 |
$cleantalk_executed ||
|
751 |
+
$apbct->settings['forms__search_test'] == 0 ||
|
752 |
+
$apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in() // Skip processing for logged in users.
|
753 |
){
|
754 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
755 |
return $search;
|
784 |
|
785 |
if(
|
786 |
! is_search() || // If it is search results
|
787 |
+
$apbct->settings['forms__search_test'] == 0 ||
|
788 |
+
$apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in() // Skip processing for logged in users.
|
789 |
){
|
790 |
return ;
|
791 |
}
|
830 |
)
|
831 |
);
|
832 |
|
833 |
+
if( $apbct->settings['forms__wc_register_from_order'] ) {
|
834 |
$cleantalk_executed = false;
|
835 |
}
|
836 |
|
855 |
global $apbct;
|
856 |
|
857 |
//Check for enabled option
|
858 |
+
if( !$apbct->settings['forms__contact_forms_test']) {
|
859 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
860 |
return;
|
861 |
}
|
905 |
return false;
|
906 |
}
|
907 |
|
908 |
+
if ( !$apbct->settings['forms__comments_test']) {
|
909 |
return false;
|
910 |
}
|
911 |
|
946 |
$field_id_hash = md5(rand(0, 1000));
|
947 |
|
948 |
// Using only cookies
|
949 |
+
if ($cookie_check && $apbct->settings['data__set_cookies'] == 1) {
|
950 |
|
951 |
$html = "<script type=\"text/javascript\" " . ( class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '' ) . ">
|
952 |
function ctSetCookie___from_backend(c_name, value) {
|
956 |
</script>";
|
957 |
|
958 |
// Using AJAX to get key
|
959 |
+
}elseif($apbct->settings['data__use_ajax'] && $ajax){
|
960 |
|
961 |
// Fix only for wp_footer -> apbct_hook__wp_head__set_cookie__ct_checkjs()
|
962 |
if($no_print)
|
967 |
$html = "<input type=\"hidden\" id=\"{$field_id}\" name=\"{$field_name}\" value=\"{$ct_checkjs_def}\" />
|
968 |
<script type=\"text/javascript\" " . ( class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '' ) . ">
|
969 |
window.addEventListener(\"DOMContentLoaded\", function () {
|
970 |
+
apbct_public_sendAJAX(
|
971 |
+
{action: \"apbct_js_keys__get\"},
|
972 |
+
{callback: apbct_js_keys__set_input_value, input_name: \"{$field_id}\",silent: true, no_nonce: true}
|
973 |
+
);
|
|
|
|
|
974 |
});
|
975 |
</script>";
|
976 |
|
1012 |
|
1013 |
global $apbct, $ct_checkjs_frm;
|
1014 |
|
1015 |
+
if ( !$apbct->settings['forms__contact_forms_test'])
|
1016 |
return false;
|
1017 |
|
1018 |
$ct_checkjs_key = ct_get_checkjs_value();
|
1049 |
|
1050 |
global $apbct;
|
1051 |
|
1052 |
+
if ( !$apbct->settings['forms__contact_forms_test']) {
|
1053 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1054 |
return $errors;
|
1055 |
}
|
1056 |
|
1057 |
// Skip processing for logged in users.
|
1058 |
+
if ( !$apbct->settings['data__protect_logged_in'] && is_user_logged_in()) {
|
1059 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1060 |
return $errors;
|
1061 |
}
|
1134 |
|
1135 |
global $apbct, $current_user;
|
1136 |
|
1137 |
+
if ( !$apbct->settings['forms__comments_test']) {
|
1138 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1139 |
return $comment;
|
1140 |
}
|
1141 |
|
1142 |
// Skip processing for logged in users and admin.
|
1143 |
+
if ( !$apbct->settings['data__protect_logged_in'] && is_user_logged_in() ||
|
1144 |
apbct_exclusions_check()
|
1145 |
) {
|
1146 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1250 |
global $current_user, $comment_post_id, $ct_comment_done, $ct_jp_comments, $apbct;
|
1251 |
|
1252 |
// Send email notification for chosen groups of users
|
1253 |
+
if($apbct->settings['wp__comment_notify'] && !empty($apbct->settings['wp__comment_notify__roles']) && $apbct->data['moderate']){
|
1254 |
|
1255 |
add_filter('notify_post_author', 'apbct_comment__Wordpress__doNotify', 100, 2);
|
1256 |
|
1257 |
$users = get_users(array(
|
1258 |
+
'role__in' => $apbct->settings['wp__comment_notify__roles'],
|
1259 |
'fileds' => array('user_email')
|
1260 |
));
|
1261 |
|
1278 |
|
1279 |
$comments_check_number = defined('CLEANTALK_CHECK_COMMENTS_NUMBER') ? CLEANTALK_CHECK_COMMENTS_NUMBER : 3;
|
1280 |
|
1281 |
+
if($apbct->settings['comments__check_comments_number'] && $comment['comment_author_email']){
|
1282 |
$args = array(
|
1283 |
'author_email' => $comment['comment_author_email'],
|
1284 |
'status' => 'approve',
|
1293 |
($comment['comment_type']!='trackback') &&
|
1294 |
(
|
1295 |
apbct_is_user_enable() === false ||
|
1296 |
+
$apbct->settings['forms__comments_test'] == 0 ||
|
1297 |
$ct_comment_done ||
|
1298 |
(isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) ||
|
1299 |
(isset($is_max_comments) && $is_max_comments) ||
|
1443 |
add_action('comment_post', 'ct_die', 999, 2);
|
1444 |
}
|
1445 |
|
1446 |
+
if($apbct->settings['comments__remove_comments_links'] == 1){
|
1447 |
$comment['comment_content'] = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '[Link deleted]', $comment['comment_content']);
|
1448 |
}
|
1449 |
|
1622 |
|
1623 |
// Check static key
|
1624 |
if(
|
1625 |
+
$apbct->settings['data__use_static_js_key'] == 1 ||
|
1626 |
+
( $apbct->settings['data__use_static_js_key'] == - 1 &&
|
1627 |
( apbct_is_cache_plugins_exists() ||
|
1628 |
( apbct_is_post() && isset($apbct->data['cache_detected']) && $apbct->data['cache_detected'] == 1 )
|
1629 |
)
|
1763 |
|
1764 |
global $ct_checkjs_register_form, $apbct;
|
1765 |
|
1766 |
+
if ($apbct->settings['forms__registrations_test'] == 0) {
|
1767 |
return false;
|
1768 |
}
|
1769 |
|
1795 |
|
1796 |
global $errors, $apbct, $apbct_cookie_register_ok_label;
|
1797 |
|
1798 |
+
if ($apbct->settings['forms__registrations_test'] != 0){
|
1799 |
if( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] ){
|
1800 |
if (isset($_COOKIE[$apbct_cookie_register_ok_label])){
|
1801 |
if(is_wp_error($errors)){
|
1946 |
return $errors;
|
1947 |
}
|
1948 |
|
1949 |
+
if ($apbct->settings['forms__registrations_test'] == 0) {
|
1950 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
1951 |
return $errors;
|
1952 |
}
|
2123 |
|
2124 |
global $apbct, $cleantalk_executed;
|
2125 |
|
2126 |
+
if ($apbct->settings['forms__registrations_test'] == 0) {
|
2127 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2128 |
return $args;
|
2129 |
}
|
2218 |
|
2219 |
global $ct_checkjs_jpcf, $ct_jpcf_patched, $ct_jpcf_fields, $apbct;
|
2220 |
|
2221 |
+
if ($apbct->settings['forms__contact_forms_test'] == 1 && $ct_jpcf_patched === false && preg_match( "/(text|email)/i", $r)) {
|
2222 |
|
2223 |
// Looking for element name prefix
|
2224 |
$name_patched = false;
|
2242 |
|
2243 |
global $ct_checkjs_jpcf, $apbct;
|
2244 |
|
2245 |
+
if ($apbct->settings['forms__contact_forms_test'] == 0) {
|
2246 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2247 |
return null;
|
2248 |
}
|
2290 |
function ct_contact_form_is_spam_jetpack($is_spam,$form) {
|
2291 |
global $ct_checkjs_jpcf, $apbct;
|
2292 |
|
2293 |
+
if ($apbct->settings['forms__contact_forms_test'] == 0) {
|
2294 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2295 |
return null;
|
2296 |
}
|
2337 |
|
2338 |
|
2339 |
|
2340 |
+
if ($apbct->settings['forms__contact_forms_test'] == 0) {
|
2341 |
return $html;
|
2342 |
}
|
2343 |
|
2376 |
global $ct_checkjs_cf7, $apbct;
|
2377 |
|
2378 |
if(
|
2379 |
+
$apbct->settings['forms__contact_forms_test'] == 0 ||
|
2380 |
$spam == false && WPCF7_VERSION < '3.0.0' ||
|
2381 |
$spam === true && WPCF7_VERSION >= '3.0.0' ||
|
2382 |
+
$apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in() || // Skip processing for logged in users.
|
2383 |
apbct_exclusions_check__url() ||
|
2384 |
apbct_exclusions_check__ip() ||
|
2385 |
isset($apbct->cf7_checked)
|
2503 |
}
|
2504 |
|
2505 |
if(
|
2506 |
+
$apbct->settings['forms__contact_forms_test'] == 0
|
2507 |
+
|| ($apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in()) // Skip processing for logged in users.
|
2508 |
|| apbct_exclusions_check__url()
|
2509 |
){
|
2510 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2601 |
global $apbct;
|
2602 |
|
2603 |
if(
|
2604 |
+
$apbct->settings['forms__contact_forms_test'] == 0
|
2605 |
+
|| ($apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in()) // Skip processing for logged in users.
|
2606 |
|| apbct_exclusions_check__url()
|
2607 |
){
|
2608 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2683 |
|
2684 |
global $apbct;
|
2685 |
|
2686 |
+
if($apbct->settings['forms__contact_forms_test'] == 1)
|
2687 |
ct_add_hidden_fields('checkjs_wpforms', false);
|
2688 |
|
2689 |
}
|
2754 |
global $apbct;
|
2755 |
|
2756 |
if(
|
2757 |
+
$apbct->settings['forms__contact_forms_test'] == 0 ||
|
2758 |
+
$apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in() // Skip processing for logged in users.
|
2759 |
){
|
2760 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2761 |
return;
|
2889 |
}
|
2890 |
|
2891 |
|
2892 |
+
if ($apbct->settings['forms__contact_forms_test'] == 0) {
|
2893 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2894 |
return $form_errors;
|
2895 |
}
|
2964 |
|
2965 |
if (!isset($_COOKIE[$ct_wplp_result_label])) {
|
2966 |
// First AJAX submit of WPLP form
|
2967 |
+
if ($apbct->settings['forms__contact_forms_test'] == 0) {
|
2968 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
2969 |
return;
|
2970 |
}
|
3050 |
global $apbct, $cleantalk_executed, $ct_gform_is_spam, $ct_gform_response;
|
3051 |
|
3052 |
if (
|
3053 |
+
$apbct->settings['forms__contact_forms_test'] == 0 ||
|
3054 |
$cleantalk_executed // Return unchanged result if the submission was already tested.
|
3055 |
) {
|
3056 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3123 |
|
3124 |
global $apbct;
|
3125 |
|
3126 |
+
if ($apbct->settings['forms__registrations_test'] == 0) {
|
3127 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3128 |
return null;
|
3129 |
}
|
3212 |
global $apbct, $cleantalk_executed;
|
3213 |
|
3214 |
if(
|
3215 |
+
$apbct->settings['forms__contact_forms_test'] == 0
|
3216 |
+
|| ($apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in()) // Skip processing for logged in users.
|
3217 |
|| apbct_exclusions_check__url()
|
3218 |
){
|
3219 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3262 |
$theme = wp_get_theme();
|
3263 |
if(
|
3264 |
stripos( $theme->get( 'Name' ), 'INEVIO' ) === false ||
|
3265 |
+
$apbct->settings['forms__contact_forms_test'] == 0 ||
|
3266 |
+
($apbct->settings['data__protect_logged_in'] != 1 && is_user_logged_in()) || // Skip processing for logged in users.
|
3267 |
apbct_exclusions_check__url()
|
3268 |
) {
|
3269 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3330 |
isset($_GET['ptype']) && $_GET['ptype']=='login' ||
|
3331 |
isset($_POST['ct_checkjs_register_form']) ||
|
3332 |
(isset($_POST['signup_username']) && isset($_POST['signup_password_confirm']) && isset($_POST['signup_submit']) ) ||
|
3333 |
+
$apbct->settings['forms__general_contact_forms_test'] == 0 ||
|
3334 |
isset($_POST['bbp_topic_content']) ||
|
3335 |
isset($_POST['bbp_reply_content']) ||
|
3336 |
isset($_POST['fscf_submitted']) ||
|
3337 |
apbct_is_in_uri('/wc-api') ||
|
3338 |
isset($_POST['log']) && isset($_POST['pwd']) && isset($_POST['wp-submit']) ||
|
3339 |
+
isset($_POST[$ct_checkjs_frm]) && $apbct->settings['forms__contact_forms_test'] == 1 ||// Formidable forms
|
3340 |
( isset($_POST['comment_post_ID']) && ! isset($_POST['comment-submit'] ) ) || // The comment form && ! DW Question & Answer
|
3341 |
isset($_GET['for']) ||
|
3342 |
(isset($_POST['log'], $_POST['pwd'])) || //WooCommerce Sensei login form fix
|
3414 |
}
|
3415 |
|
3416 |
// Do not execute anti-spam test for logged in users.
|
3417 |
+
if (isset($_COOKIE[LOGGED_IN_COOKIE]) && $apbct->settings['data__protect_logged_in'] != 1) {
|
3418 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3419 |
return null;
|
3420 |
}
|
3604 |
isset($_GET['ptype']) && $_GET['ptype']=='login' ||
|
3605 |
isset($_POST['ct_checkjs_register_form']) ||
|
3606 |
(isset($_POST['signup_username']) && isset($_POST['signup_password_confirm']) && isset($_POST['signup_submit']) ) ||
|
3607 |
+
$apbct->settings['forms__general_contact_forms_test']==0 ||
|
3608 |
isset($_POST['bbp_topic_content']) ||
|
3609 |
isset($_POST['bbp_reply_content']) ||
|
3610 |
isset($_POST['fscf_submitted']) ||
|
3764 |
return;
|
3765 |
}
|
3766 |
|
3767 |
+
if($apbct->settings['forms__registrations_test'] || $apbct->settings['forms__comments_test'] || $apbct->settings['forms__contact_forms_test'] || $apbct->settings['forms__general_contact_forms_test'] || $apbct->settings['forms__wc_checkout_test'] || $apbct->settings['forms__check_external'] || $apbct->settings['forms__check_internal'] || $apbct->settings['comments__bp_private_messages'] || $apbct->settings['data__general_postdata_test']){
|
3768 |
|
3769 |
if( ! $apbct->public_script_loaded ) {
|
3770 |
|
3779 |
}
|
3780 |
|
3781 |
// GDPR script
|
3782 |
+
if($apbct->settings['gdpr__enabled']){
|
3783 |
|
3784 |
wp_enqueue_script('ct_public_gdpr', APBCT_URL_PATH.'/js/apbct-public--gdpr.min.js', array('jquery', 'ct_public'), APBCT_VERSION, false /*in header*/);
|
3785 |
|
3786 |
wp_localize_script('ct_public_gdpr', 'ctPublicGDPR', array(
|
3787 |
'gdpr_forms' => array(),
|
3788 |
+
'gdpr__text' => $apbct->settings['gdpr__text'] ? $apbct->settings['gdpr__text'] : __('By using this form you agree with the storage and processing of your data by using the Privacy Policy on this website.', 'cleantalk-spam-protect'),
|
3789 |
));
|
3790 |
}
|
3791 |
|
3792 |
}
|
3793 |
|
3794 |
if(!defined('CLEANTALK_AJAX_USE_FOOTER_HEADER') || (defined('CLEANTALK_AJAX_USE_FOOTER_HEADER') && CLEANTALK_AJAX_USE_FOOTER_HEADER)){
|
3795 |
+
if($apbct->settings['data__use_ajax'] && ! apbct_is_in_uri('.xml') && ! apbct_is_in_uri('.xsl')){
|
3796 |
if( ! apbct_is_in_uri('jm-ajax') ){
|
3797 |
|
3798 |
// Use AJAX for JavaScript check
|
3799 |
+
if($apbct->settings['data__use_ajax']){
|
3800 |
|
3801 |
wp_enqueue_script('ct_nocache', plugins_url('/cleantalk-spam-protect/js/cleantalk_nocache.min.js'), array(), APBCT_VERSION, false /*in header*/);
|
3802 |
|
3803 |
wp_localize_script('ct_nocache', 'ctNocache', array(
|
3804 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
3805 |
+
'info_flag' => $apbct->settings['misc__collect_details'] && $apbct->settings['data__set_cookies'] ? true : false,
|
3806 |
+
'set_cookies_flag' => $apbct->settings['data__set_cookies'] ? false : true,
|
3807 |
'blog_home' => get_home_url().'/',
|
3808 |
));
|
3809 |
}
|
3810 |
|
3811 |
// External forms check
|
3812 |
+
if($apbct->settings['forms__check_external'])
|
3813 |
wp_enqueue_script('ct_external', plugins_url('/cleantalk-spam-protect/js/cleantalk_external.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3814 |
|
3815 |
// Internal forms check
|
3816 |
+
if($apbct->settings['forms__check_internal'])
|
3817 |
wp_enqueue_script('ct_internal', plugins_url('/cleantalk-spam-protect/js/cleantalk_internal.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3818 |
|
3819 |
}
|
3823 |
// Show controls for commentaries
|
3824 |
if(in_array("administrator", $current_user->roles)){
|
3825 |
|
3826 |
+
if($apbct->settings['comments__manage_comments_on_public_page']){
|
3827 |
|
3828 |
$ajax_nonce = wp_create_nonce( "ct_secret_nonce" );
|
3829 |
|
3842 |
}
|
3843 |
|
3844 |
// Debug
|
3845 |
+
if($apbct->settings['misc__debug_ajax']){
|
3846 |
wp_enqueue_script('ct_debug_js', plugins_url('/cleantalk-spam-protect/js/cleantalk-debug-ajax.min.js'), array('jquery'), APBCT_VERSION, false /*in header*/);
|
3847 |
|
3848 |
wp_localize_script('ct_debug_js', 'apbctDebug', array(
|
3860 |
global $current_user, $apbct;
|
3861 |
|
3862 |
if(in_array("administrator", $current_user->roles)){
|
3863 |
+
if($apbct->settings['comments__manage_comments_on_public_page']) {
|
3864 |
$theme = wp_get_theme();
|
3865 |
$apbct->active_theme = $theme->get( 'Name' );
|
3866 |
$options['end-callback'] = 'ct_comments_output';
|
3922 |
echo "</div>";
|
3923 |
|
3924 |
// @todo research what such themes and make exception for them
|
3925 |
+
$ending_tag = isset( $wp_list_comments_args['style'] ) ? $wp_list_comments_args['style'] : null ;
|
3926 |
if( in_array( $apbct->active_theme, array( 'Paperio', 'Twenty Twenty' ) ) ){
|
3927 |
$ending_tag = is_null($wp_list_comments_args['style']) ? 'div' : $wp_list_comments_args['style'];
|
3928 |
};
|
@@ -98,7 +98,7 @@ function apbct_settings__set_fileds( $fields ){
|
|
98 |
'html_before' => '<hr>',
|
99 |
'html_after' => '',
|
100 |
'fields' => array(
|
101 |
-
'
|
102 |
'type' => 'checkbox',
|
103 |
'title' => __('SpamFireWall', 'cleantalk-spam-protect'),
|
104 |
'description' => __("This option allows to filter spam bots before they access website. Also reduces CPU usage on hosting server and accelerates pages load time.", 'cleantalk-spam-protect'),
|
@@ -108,7 +108,7 @@ function apbct_settings__set_fileds( $fields ){
|
|
108 |
'type' => 'checkbox',
|
109 |
'title' => __('Anti-Crawler', 'cleantalk-spam-protect') . $additional_ac_title,
|
110 |
'class' => 'apbct_settings-field_wrapper--sub',
|
111 |
-
'parent' => '
|
112 |
'description' => __('Plugin shows SpamFireWall stop page for any bot, except allowed bots (Google, Yahoo and etc).', 'cleantalk-spam-protect')
|
113 |
. '<br>'
|
114 |
. __( 'Anti-Crawler includes blocking bots by the User-Agent. Use Personal lists in the Dashboard to filter specific User-Agents.', 'cleantalk-spam-protect' ),
|
@@ -130,23 +130,23 @@ function apbct_settings__set_fileds( $fields ){
|
|
130 |
.'<div id="apbct_settings__davanced_settings" style="display: none;">',
|
131 |
'html_after' => '',
|
132 |
'fields' => array(
|
133 |
-
'
|
134 |
'title' => __('Registration Forms', 'cleantalk-spam-protect'),
|
135 |
'description' => __('WordPress, BuddyPress, bbPress, S2Member, WooCommerce.', 'cleantalk-spam-protect'),
|
136 |
),
|
137 |
-
'
|
138 |
'title' => __('Comments form', 'cleantalk-spam-protect'),
|
139 |
'description' => __('WordPress, JetPack, WooCommerce.', 'cleantalk-spam-protect'),
|
140 |
),
|
141 |
-
'
|
142 |
'title' => __('Contact forms', 'cleantalk-spam-protect'),
|
143 |
'description' => __('Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, WordPress Landing Pages, Gravity Forms.', 'cleantalk-spam-protect'),
|
144 |
),
|
145 |
-
'
|
146 |
'title' => __('Custom contact forms', 'cleantalk-spam-protect'),
|
147 |
'description' => __('Anti spam test for any WordPress themes or contacts forms.', 'cleantalk-spam-protect'),
|
148 |
),
|
149 |
-
'
|
150 |
'title' => __('Test default Wordpress search form for spam', 'cleantalk-spam-protect'),
|
151 |
'description' => __('Spam protection for Search form.', 'cleantalk-spam-protect')
|
152 |
. (!$apbct->white_label || is_main_site()
|
@@ -157,18 +157,18 @@ function apbct_settings__set_fileds( $fields ){
|
|
157 |
: ''
|
158 |
)
|
159 |
),
|
160 |
-
'
|
161 |
'title' => __('Protect external forms', 'cleantalk-spam-protect'),
|
162 |
'description' => __('Turn this option on to protect forms on your WordPress that send data to third-part servers (like MailChimp).', 'cleantalk-spam-protect'),
|
163 |
-
'childrens' => array('
|
164 |
),
|
165 |
-
'
|
166 |
'title' => __('Capture buffer', 'cleantalk-spam-protect'),
|
167 |
'description' => __('This setting gives you more sophisticated and strengthened protection for external forms. But it could break plugins which use a buffer like Ninja Forms.', 'cleantalk-spam-protect'),
|
168 |
'class' => 'apbct_settings-field_wrapper--sub',
|
169 |
-
'parent' => '
|
170 |
),
|
171 |
-
'
|
172 |
'title' => __('Protect internal forms', 'cleantalk-spam-protect'),
|
173 |
'description' => __('This option will enable protection for custom (hand-made) AJAX forms with PHP scripts handlers on your WordPress.', 'cleantalk-spam-protect'),
|
174 |
),
|
@@ -179,15 +179,15 @@ function apbct_settings__set_fileds( $fields ){
|
|
179 |
'wc' => array(
|
180 |
'title' => __('WooCommerce', 'cleantalk-spam-protect'),
|
181 |
'fields' => array(
|
182 |
-
'
|
183 |
'title' => __('WooCommerce checkout form', 'cleantalk-spam-protect'),
|
184 |
'description' => __('Anti spam test for WooCommerce checkout form.', 'cleantalk-spam-protect'),
|
185 |
-
'childrens' => array('
|
186 |
),
|
187 |
-
'
|
188 |
'title' => __('Spam test for registration during checkout', 'cleantalk-spam-protect'),
|
189 |
'description' => __('Enable anti spam test for registration process which during woocommerce\'s checkout.', 'cleantalk-spam-protect'),
|
190 |
-
'parent' => '
|
191 |
'class' => 'apbct_settings-field_wrapper--sub',
|
192 |
'reverse_trigger' => true
|
193 |
),
|
@@ -198,55 +198,55 @@ function apbct_settings__set_fileds( $fields ){
|
|
198 |
'comments_and_messages' => array(
|
199 |
'title' => __('Comments and Messages', 'cleantalk-spam-protect'),
|
200 |
'fields' => array(
|
201 |
-
'
|
202 |
'title' => __( 'Disable all comments', 'cleantalk-spam-protect'),
|
203 |
'description' => __( 'Disabling comments for all types of content.', 'cleantalk-spam-protect'),
|
204 |
'childrens' => array(
|
205 |
-
'
|
206 |
-
'
|
207 |
-
'
|
208 |
),
|
209 |
'options' => array(
|
210 |
array( 'val' => 1, 'label' => __( 'On' ), 'childrens_enable' => 0, ),
|
211 |
array( 'val' => 0, 'label' => __( 'Off' ), 'childrens_enable' => 1, ),
|
212 |
),
|
213 |
),
|
214 |
-
'
|
215 |
'title' => __( 'Disable comments for all posts', 'cleantalk-spam-protect'),
|
216 |
'class' => 'apbct_settings-field_wrapper--sub',
|
217 |
-
'parent' => '
|
218 |
'reverse_trigger' => true,
|
219 |
),
|
220 |
-
'
|
221 |
'title' => __( 'Disable comments for all pages', 'cleantalk-spam-protect'),
|
222 |
'class' => 'apbct_settings-field_wrapper--sub',
|
223 |
-
'parent' => '
|
224 |
'reverse_trigger' => true,
|
225 |
),
|
226 |
-
'
|
227 |
'title' => __( 'Disable comments for all media', 'cleantalk-spam-protect'),
|
228 |
'class' => 'apbct_settings-field_wrapper--sub',
|
229 |
-
'parent' => '
|
230 |
'reverse_trigger' => true,
|
231 |
),
|
232 |
-
'
|
233 |
'title' => __('BuddyPress Private Messages', 'cleantalk-spam-protect'),
|
234 |
'description' => __('Check buddyPress private messages.', 'cleantalk-spam-protect'),
|
235 |
),
|
236 |
-
'
|
237 |
'title' => __('Automatically delete spam comments', 'cleantalk-spam-protect'),
|
238 |
'description' => sprintf(__('Delete spam comments older than %d days.', 'cleantalk-spam-protect'), $apbct->data['spam_store_days']),
|
239 |
),
|
240 |
-
'
|
241 |
'title' => __('Remove links from approved comments', 'cleantalk-spam-protect'),
|
242 |
'description' => __('Remove links from approved comments. Replace it with "[Link deleted]"', 'cleantalk-spam-protect'),
|
243 |
),
|
244 |
-
'
|
245 |
'title' => __('Show links to check Emails, IPs for spam', 'cleantalk-spam-protect'),
|
246 |
'description' => __('Shows little icon near IP addresses and Emails allowing you to check it via CleanTalk\'s database.', 'cleantalk-spam-protect'),
|
247 |
'display' => !$apbct->white_label,
|
248 |
),
|
249 |
-
'
|
250 |
'title' => __('Manage comments on public pages', 'cleantalk-spam-protect'),
|
251 |
'description' => __('Allows administrators to manage comments on public post\'s pages with small interactive menu.', 'cleantalk-spam-protect'),
|
252 |
'display' => !$apbct->white_label,
|
@@ -258,19 +258,19 @@ function apbct_settings__set_fileds( $fields ){
|
|
258 |
'data_processing' => array(
|
259 |
'title' => __('Data Processing', 'cleantalk-spam-protect'),
|
260 |
'fields' => array(
|
261 |
-
'
|
262 |
'title' => __("Protect logged in Users", 'cleantalk-spam-protect'),
|
263 |
'description' => __('Turn this option on to check for spam any submissions (comments, contact forms and etc.) from registered Users.', 'cleantalk-spam-protect'),
|
264 |
),
|
265 |
-
'
|
266 |
'title' => __("Don't check trusted user's comments", 'cleantalk-spam-protect'),
|
267 |
'description' => sprintf(__("Don't check comments for users with above %d comments.", 'cleantalk-spam-protect'), defined('CLEANTALK_CHECK_COMMENTS_NUMBER') ? CLEANTALK_CHECK_COMMENTS_NUMBER : 3),
|
268 |
),
|
269 |
-
'
|
270 |
'title' => __('Use AJAX for JavaScript check', 'cleantalk-spam-protect'),
|
271 |
'description' => __('Options helps protect WordPress against spam with any caching plugins. Turn this option on to avoid issues with caching plugins. Turn off this option and SpamFireWall to be compatible with Accelerated mobile pages (AMP).', 'cleantalk-spam-protect'),
|
272 |
),
|
273 |
-
'
|
274 |
'title' => __('Use static keys for JS check.', 'cleantalk-spam-protect'),
|
275 |
'description' => __('Could help if you have cache for AJAX requests and you are dealing with false positives. Slightly decreases protection quality. Auto - Static key will be used if caching plugin is spotted.', 'cleantalk-spam-protect'),
|
276 |
'options' => array(
|
@@ -279,7 +279,7 @@ function apbct_settings__set_fileds( $fields ){
|
|
279 |
array('val' => -1, 'label' => __('Auto'),),
|
280 |
),
|
281 |
),
|
282 |
-
'
|
283 |
'title' => __('Check all post data', 'cleantalk-spam-protect'),
|
284 |
'description' => __('Check all POST submissions from website visitors. Enable this option if you have spam misses on website.', 'cleantalk-spam-protect')
|
285 |
.(!$apbct->white_label
|
@@ -288,29 +288,29 @@ function apbct_settings__set_fileds( $fields ){
|
|
288 |
)
|
289 |
.'<br />' . __('СAUTION! Option can catch POST requests in WordPress backend', 'cleantalk-spam-protect'),
|
290 |
),
|
291 |
-
'
|
292 |
'title' => __("Set cookies", 'cleantalk-spam-protect'),
|
293 |
'description' => __('Turn this option off to deny plugin generates any cookies on website front-end. This option is helpful if you use Varnish. But most of contact forms will not be protected if the option is turned off! <b>Warning: We strongly recommend you to enable this otherwise it could cause false positives spam detection.</b>', 'cleantalk-spam-protect'),
|
294 |
-
'childrens' => array('
|
295 |
),
|
296 |
-
'
|
297 |
'title' => __('Use alternative mechanism for cookies', 'cleantalk-spam-protect'),
|
298 |
'description' => __('Doesn\'t use cookie or PHP sessions. Collect data for all types of bots.', 'cleantalk-spam-protect'),
|
299 |
-
'parent' => '
|
300 |
'class' => 'apbct_settings-field_wrapper--sub',
|
301 |
),
|
302 |
-
'
|
303 |
'title' => __("Use SSL", 'cleantalk-spam-protect'),
|
304 |
'description' => __('Turn this option on to use encrypted (SSL) connection with servers.', 'cleantalk-spam-protect'),
|
305 |
),
|
306 |
-
'
|
307 |
'title' => __("Use Wordpress HTTP API", 'cleantalk-spam-protect'),
|
308 |
'description' => __('Alternative way to connect the Cloud. Use this if you have connection problems.', 'cleantalk-spam-protect'),
|
309 |
),
|
310 |
'sfw__use_delete_to_clear_table' => array(
|
311 |
'title' => __("Use DELETE SQL-command instead TRUNCATE to clear tables", 'cleantalk-spam-protect'),
|
312 |
'description' => __('Could help if you have blocked SpamFireWall tables in your database.', 'cleantalk-spam-protect'),
|
313 |
-
'parent' => '
|
314 |
),
|
315 |
),
|
316 |
),
|
@@ -355,27 +355,27 @@ function apbct_settings__set_fileds( $fields ){
|
|
355 |
'html_before' => '',
|
356 |
'html_after' => '',
|
357 |
'fields' => array(
|
358 |
-
'
|
359 |
'title' => __('Show statistics in admin bar', 'cleantalk-spam-protect'),
|
360 |
'description' => __('Show/hide icon in top level menu in WordPress backend. The number of submissions is being counted for past 24 hours.', 'cleantalk-spam-protect'),
|
361 |
-
'childrens' => array('
|
362 |
),
|
363 |
-
'
|
364 |
'title' => __('Show All-time counter', 'cleantalk-spam-protect'),
|
365 |
'description' => __('Display all-time requests counter in the admin bar. Counter displays number of requests since plugin installation.', 'cleantalk-spam-protect'),
|
366 |
-
'parent' => '
|
367 |
'class' => 'apbct_settings-field_wrapper--sub',
|
368 |
),
|
369 |
-
'
|
370 |
'title' => __('Show 24 hours counter', 'cleantalk-spam-protect'),
|
371 |
'description' => __('Display daily requests counter in the admin bar. Counter displays number of requests of the past 24 hours.', 'cleantalk-spam-protect'),
|
372 |
-
'parent' => '
|
373 |
'class' => 'apbct_settings-field_wrapper--sub',
|
374 |
),
|
375 |
-
'
|
376 |
'title' => __('SpamFireWall counter', 'cleantalk-spam-protect'),
|
377 |
'description' => __('Display SpamFireWall requests in the admin bar. Counter displays number of requests since plugin installation.', 'cleantalk-spam-protect'),
|
378 |
-
'parent' => '
|
379 |
'class' => 'apbct_settings-field_wrapper--sub',
|
380 |
),
|
381 |
),
|
@@ -385,57 +385,57 @@ function apbct_settings__set_fileds( $fields ){
|
|
385 |
'misc' => array(
|
386 |
'html_after' => '</div><br>',
|
387 |
'fields' => array(
|
388 |
-
'
|
389 |
'type' => 'checkbox',
|
390 |
'title' => __('Collect details about browsers', 'cleantalk-spam-protect'),
|
391 |
'description' => __("Checking this box you allow plugin store information about screen size and browser plugins of website visitors. The option in a beta state.", 'cleantalk-spam-protect'),
|
392 |
),
|
393 |
-
'
|
394 |
'type' => 'checkbox',
|
395 |
'title' => __('Send connection reports', 'cleantalk-spam-protect'),
|
396 |
'description' => __("Checking this box you allow plugin to send the information about your connection. The option in a beta state.", 'cleantalk-spam-protect'),
|
397 |
),
|
398 |
-
'
|
399 |
'type' => 'checkbox',
|
400 |
'title' => __('Async JavaScript loading', 'cleantalk-spam-protect'),
|
401 |
'description' => __('Use async loading for scripts. Warning: This could reduce filtration quality.', 'cleantalk-spam-protect'),
|
402 |
),
|
403 |
-
'
|
404 |
'type' => 'checkbox',
|
405 |
'title' => __('Allow to add GDPR notice via shortcode', 'cleantalk-spam-protect'),
|
406 |
'description' => __(' Adds small checkbox under your website form. To add it you should use the shortcode on the form\'s page: [cleantalk_gdpr_form id="FORM_ID"]', 'cleantalk-spam-protect'),
|
407 |
-
'childrens' => array('
|
408 |
),
|
409 |
-
'
|
410 |
'type' => 'text',
|
411 |
'title' => __('GDPR text notice', 'cleantalk-spam-protect'),
|
412 |
'description' => __('This text will be added as a description to the GDPR checkbox.', 'cleantalk-spam-protect'),
|
413 |
-
'parent' => '
|
414 |
'class' => 'apbct_settings-field_wrapper--sub',
|
415 |
),
|
416 |
-
'
|
417 |
'type' => 'checkbox',
|
418 |
'title' => __('Store visited URLs', 'cleantalk-spam-protect'),
|
419 |
'description' => __("Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits form on the site. You can see stored visited URLS for each visitor in your Dashboard. Turn the option on to improve Anti-Spam protection.", 'cleantalk-spam-protect'),
|
420 |
-
'childrens' => array('
|
421 |
),
|
422 |
-
'
|
423 |
'type' => 'checkbox',
|
424 |
'title' => __('Use cookies less sessions', 'cleantalk-spam-protect'),
|
425 |
'description' => __('Doesn\'t use cookie or PHP sessions. Collect data for all types of bots.', 'cleantalk-spam-protect'),
|
426 |
-
'parent' => '
|
427 |
'class' => 'apbct_settings-field_wrapper--sub',
|
428 |
),
|
429 |
-
'
|
430 |
'type' => 'checkbox',
|
431 |
'title' => __('Notify users with selected roles about new approved comments. Hold CTRL to select multiple roles.', 'cleantalk-spam-protect'),
|
432 |
'description' => sprintf(__("If enabled, overrides similar Wordpress %sdiscussion settings%s.", 'cleantalk-spam-protect'), '<a href="options-discussion.php">','</a>'),
|
433 |
-
'childrens' => array('
|
434 |
),
|
435 |
-
'
|
436 |
'type' => 'select',
|
437 |
'multiple' => true,
|
438 |
-
'parent' => '
|
439 |
'options_callback' => 'apbct_get_all_roles',
|
440 |
'options_callback_params' => array(true),
|
441 |
'class' => 'apbct_settings-field_wrapper--sub',
|
@@ -444,7 +444,7 @@ function apbct_settings__set_fileds( $fields ){
|
|
444 |
'type' => 'checkbox',
|
445 |
'title' => __('Anti-Flood', 'cleantalk-spam-protect'),
|
446 |
'class' => 'apbct_settings-field_wrapper',
|
447 |
-
'parent' => '
|
448 |
'childrens' => array('sfw__anti_flood__view_limit',),
|
449 |
'description' => __('Shows the SpamFireWall page for bots trying to crawl your site. Look at the page limit setting below.', 'cleantalk-spam-protect'),
|
450 |
),
|
@@ -455,11 +455,11 @@ function apbct_settings__set_fileds( $fields ){
|
|
455 |
'parent' => 'sfw__anti_flood',
|
456 |
'description' => __('Count of page view per 1 minute before plugin shows SpamFireWall page. SpamFireWall page active for 30 second after that valid visitor (with JavaScript) passes the page to the demanded page of the site.', 'cleantalk-spam-protect'),
|
457 |
),
|
458 |
-
'
|
459 |
'type' => 'checkbox',
|
460 |
'title' => __('Show Dashboard Widget', 'cleantalk-spam-protect'),
|
461 |
),
|
462 |
-
'
|
463 |
'type' => 'checkbox',
|
464 |
'title' => __('Complete deactivation', 'cleantalk-spam-protect'),
|
465 |
'description' => __('Leave no trace in the system after deactivation.', 'cleantalk-spam-protect'),
|
@@ -477,33 +477,33 @@ function apbct_settings__set_fileds__network( $fields ){
|
|
477 |
$additional_fields = array(
|
478 |
'main' => array(
|
479 |
'fields' => array(
|
480 |
-
'
|
481 |
'type' => 'checkbox',
|
482 |
'title' => __('Enable White Label Mode', 'cleantalk-spam-protect'),
|
483 |
'description' => sprintf(__("Learn more information %shere%s.", 'cleantalk-spam-protect'), '<a target="_blank" href="https://cleantalk.org/ru/help/hosting-white-label">', '</a>'),
|
484 |
-
'childrens' => array( '
|
485 |
'disabled' => defined('CLEANTALK_ACCESS_KEY'),
|
486 |
'network' => true,
|
487 |
),
|
488 |
-
'
|
489 |
'title' => __('Hoster API Key', 'cleantalk-spam-protect'),
|
490 |
'description' => sprintf(__("You can get it in %sCleantalk's Control Panel%s", 'cleantalk-spam-protect'), '<a target="_blank" href="https://cleantalk.org/my/profile">', '</a>'),
|
491 |
'type' => 'text',
|
492 |
-
'parent' => '
|
493 |
'class' => 'apbct_settings-field_wrapper--sub',
|
494 |
'network' => true,
|
495 |
'required' => true,
|
496 |
),
|
497 |
-
'
|
498 |
'title' => __('Plugin name', 'cleantalk-spam-protect'),
|
499 |
'description' => sprintf(__("Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s", 'cleantalk-spam-protect'), '<b>', '</b>'),
|
500 |
'type' => 'text',
|
501 |
-
'parent' => '
|
502 |
'class' => 'apbct_settings-field_wrapper--sub',
|
503 |
'network' => true,
|
504 |
'required' => true,
|
505 |
),
|
506 |
-
'
|
507 |
'type' => 'checkbox',
|
508 |
'title' => __('Allow users to use other key', 'cleantalk-spam-protect'),
|
509 |
'description' => __('Allow users to use different Access key in their plugin settings on child blogs. They could use different CleanTalk account.', 'cleantalk-spam-protect')
|
@@ -516,47 +516,47 @@ function apbct_settings__set_fileds__network( $fields ){
|
|
516 |
: ''
|
517 |
),
|
518 |
'display' => APBCT_WPMS && is_main_site(),
|
519 |
-
'disabled' => $apbct->network_settings['
|
520 |
'network' => true,
|
521 |
),
|
522 |
-
'
|
523 |
'type' => 'checkbox',
|
524 |
'title' => __('Allow users to manage plugin settings', 'cleantalk-spam-protect'),
|
525 |
'description' => __('Allow to change settings on child sites.', 'cleantalk-spam-protect'),
|
526 |
'display' => APBCT_WPMS && is_main_site(),
|
527 |
'network' => true,
|
528 |
),
|
529 |
-
'
|
530 |
'type' => 'checkbox',
|
531 |
'title' => __('Use settings template', 'cleantalk-spam-protect'),
|
532 |
'description' => __("Use the current settings template for child sites.", 'cleantalk-spam-protect'),
|
533 |
-
'childrens' => array( '
|
534 |
'network' => true,
|
535 |
),
|
536 |
-
'
|
537 |
'type' => 'checkbox',
|
538 |
'title' => __('Apply for newly added sites.', 'cleantalk-spam-protect'),
|
539 |
'description' => __("The newly added site will have the same preset settings template.", 'cleantalk-spam-protect'),
|
540 |
-
'parent' => '
|
541 |
'class' => 'apbct_settings-field_wrapper--sub',
|
542 |
'network' => true,
|
543 |
),
|
544 |
-
'
|
545 |
'type' => 'checkbox',
|
546 |
'title' => __('Apply for current sites.', 'cleantalk-spam-protect'),
|
547 |
'description' => __("Apply current settings template for selected sites.", 'cleantalk-spam-protect'),
|
548 |
-
'parent' => '
|
549 |
-
'childrens' => array( '
|
550 |
'class' => 'apbct_settings-field_wrapper--sub',
|
551 |
'network' => true,
|
552 |
),
|
553 |
-
'
|
554 |
'type' => 'select',
|
555 |
'multiple' => true,
|
556 |
'options_callback' => 'apbct_get_all_child_domains',
|
557 |
'options_callback_params' => array(true),
|
558 |
'class' => 'apbct_settings-field_wrapper--sub',
|
559 |
-
'parent' => '
|
560 |
'description' => __('Sites to apply settings. Hold CTRL to select multiple sites.', 'cleantalk-spam-protect'),
|
561 |
'network' => true,
|
562 |
),
|
@@ -642,7 +642,7 @@ function apbct_settings__add_groups_and_fields( $fields ){
|
|
642 |
function apbct_settings__display() {
|
643 |
|
644 |
global $apbct;
|
645 |
-
|
646 |
// Title
|
647 |
echo '<h2 class="apbct_settings-title">'.__($apbct->plugin_name, 'cleantalk-spam-protect').'</h2>';
|
648 |
|
@@ -913,10 +913,10 @@ function apbct_settings__field__state(){
|
|
913 |
|
914 |
print '<h2>'.__('Protection is active', 'cleantalk-spam-protect').'</h2>';
|
915 |
|
916 |
-
echo '<img class="apbct_status_icon" src="'.($apbct->settings['
|
917 |
-
echo '<img class="apbct_status_icon" src="'.($apbct->settings['
|
918 |
-
echo '<img class="apbct_status_icon" src="'.($apbct->settings['
|
919 |
-
echo '<img class="apbct_status_icon" src="'.($apbct->settings['
|
920 |
if(!$apbct->white_label || is_main_site())
|
921 |
echo '<img class="apbct_status_icon" src="'.($apbct->data['moderate'] == 1 ? $img : $img_no).'"/>'
|
922 |
.'<a style="color: black" href="https://blog.cleantalk.org/real-time-email-address-existence-validation/">'.__('Validate email for existence', 'cleantalk-spam-protect').'</a>';
|
@@ -928,10 +928,9 @@ function apbct_settings__field__state(){
|
|
928 |
|
929 |
// WooCommerce
|
930 |
if(class_exists('WooCommerce'))
|
931 |
-
echo '<img class="apbct_status_icon" src="'.($apbct->settings['
|
932 |
-
|
933 |
-
|
934 |
-
print "<br /><br />The anti-spam service is paid by your hosting provider. License #".$apbct->data['ip_license'].".<br />";
|
935 |
|
936 |
print "</div>";
|
937 |
}
|
@@ -988,11 +987,13 @@ function apbct_settings__field__apikey(){
|
|
988 |
}else{
|
989 |
|
990 |
echo '<br /><br />';
|
991 |
-
|
992 |
// Auto get key
|
993 |
if(!$apbct->ip_license){
|
994 |
-
echo '<button class="cleantalk_link cleantalk_link-manual apbct_setting---get_key_auto" name="submit" type="
|
995 |
.__('Get Access Key Automatically', 'cleantalk-spam-protect')
|
|
|
|
|
996 |
.'</button>';
|
997 |
echo '<input type="hidden" id="ct_admin_timezone" name="ct_admin_timezone" value="null" />';
|
998 |
echo '<br />';
|
@@ -1131,11 +1132,11 @@ function apbct_settings__field__statistics() {
|
|
1131 |
. ' name="submit"'
|
1132 |
. ' class="cleantalk_link cleantalk_link-manual"'
|
1133 |
. ' value="ct_send_connection_report"'
|
1134 |
-
. (!$apbct->settings['
|
1135 |
. '>'
|
1136 |
.__('Send report', 'cleantalk-spam-protect')
|
1137 |
.'</button>';
|
1138 |
-
if (!$apbct->settings['
|
1139 |
echo '<br><br>';
|
1140 |
_e('Please, enable "Send connection reports" setting to be able to send reports', 'cleantalk-spam-protect');
|
1141 |
}
|
@@ -1147,6 +1148,7 @@ function apbct_settings__field__statistics() {
|
|
1147 |
echo 'Plugin version: ' . APBCT_VERSION;
|
1148 |
|
1149 |
echo '</div>';
|
|
|
1150 |
}
|
1151 |
function apbct_get_all_child_domains($except_main_site = false) {
|
1152 |
global $wpdb;
|
@@ -1198,7 +1200,7 @@ function apbct_settings__field__draw($params = array()){
|
|
1198 |
$disabled = $params['parent'] && !$value_parent ? ' disabled="disabled"' : ''; // Strait
|
1199 |
$disabled = $params['parent'] && $params['reverse_trigger'] && !$value_parent ? ' disabled="disabled"' : $disabled; // Reverse logic
|
1200 |
$disabled = $params['disabled'] ? ' disabled="disabled"' : $disabled; // Direct disable from params
|
1201 |
-
$disabled = ! is_main_site() && $apbct->network_settings && ! $apbct->network_settings['
|
1202 |
|
1203 |
$childrens = $params['childrens'] ? 'apbct_setting---' . implode(",apbct_setting---",$params['childrens']) : '';
|
1204 |
$hide = $params['hide'] ? implode(",",$params['hide']) : '';
|
@@ -1377,7 +1379,7 @@ function apbct_settings__validate($settings) {
|
|
1377 |
global $apbct;
|
1378 |
|
1379 |
// If user is not allowed to manage settings. Get settings from the storage
|
1380 |
-
if( ! is_main_site() && ( ! $apbct->network_settings['
|
1381 |
foreach ($apbct->settings as $key => $setting){
|
1382 |
$settings[ $key ] = $setting;
|
1383 |
}
|
@@ -1403,54 +1405,7 @@ function apbct_settings__validate($settings) {
|
|
1403 |
$settings['sfw__anti_flood__view_limit'] = floor( intval( $settings['sfw__anti_flood__view_limit'] ) );
|
1404 |
$settings['sfw__anti_flood__view_limit'] = ( $settings['sfw__anti_flood__view_limit'] == 0 ? 20 : $settings['sfw__anti_flood__view_limit'] ); // Default if 0 passed
|
1405 |
$settings['sfw__anti_flood__view_limit'] = ( $settings['sfw__anti_flood__view_limit'] < 5 ? 5 : $settings['sfw__anti_flood__view_limit'] ); //
|
1406 |
-
|
1407 |
-
// Auto getting key
|
1408 |
-
if (isset($_POST['submit']) && $_POST['submit'] == 'get_key_auto'){
|
1409 |
-
|
1410 |
-
$website = parse_url(get_option('siteurl'), PHP_URL_HOST).parse_url(get_option('siteurl'), PHP_URL_PATH);
|
1411 |
-
$platform = 'wordpress';
|
1412 |
-
$user_ip = \Cleantalk\ApbctWP\Helper::ip__get('real', false);
|
1413 |
-
$timezone = filter_input(INPUT_POST, 'ct_admin_timezone');
|
1414 |
-
$language = apbct_get_server_variable( 'HTTP_ACCEPT_LANGUAGE' );
|
1415 |
-
$wpms = APBCT_WPMS && defined('SUBDOMAIN_INSTALL') && !SUBDOMAIN_INSTALL ? true : false;
|
1416 |
-
$white_label = $apbct->network_settings['white_label'] ? 1 : 0;
|
1417 |
-
$hoster_api_key = $apbct->network_settings['white_label__hoster_key'] ? $apbct->network_settings['white_label__hoster_key'] : '';
|
1418 |
-
|
1419 |
-
$result = \Cleantalk\ApbctWP\API::method__get_api_key(
|
1420 |
-
! is_main_site() && $apbct->white_label ? 'anti-spam-hosting' : 'antispam',
|
1421 |
-
ct_get_admin_email(),
|
1422 |
-
$website,
|
1423 |
-
$platform,
|
1424 |
-
$timezone,
|
1425 |
-
$language,
|
1426 |
-
$user_ip,
|
1427 |
-
$wpms,
|
1428 |
-
$white_label,
|
1429 |
-
$hoster_api_key
|
1430 |
-
);
|
1431 |
-
|
1432 |
-
if(empty($result['error'])){
|
1433 |
-
|
1434 |
-
if(isset($result['user_token'])){
|
1435 |
-
$apbct->data['user_token'] = $result['user_token'];
|
1436 |
-
}
|
1437 |
-
|
1438 |
-
if(!empty($result['auth_key'])){
|
1439 |
-
$settings['apikey'] = $result['auth_key'];
|
1440 |
-
}
|
1441 |
-
|
1442 |
-
}else{
|
1443 |
-
$apbct->error_add(
|
1444 |
-
'key_get',
|
1445 |
-
$result['error']
|
1446 |
-
. ($apbct->white_label
|
1447 |
-
? ' <button name="submit" type="submit" class="cleantalk_link cleantalk_link-manual" value="get_key_auto">'
|
1448 |
-
: ''
|
1449 |
-
)
|
1450 |
-
);
|
1451 |
-
}
|
1452 |
-
}
|
1453 |
-
|
1454 |
// Validating API key
|
1455 |
$settings['apikey'] = strpos($settings['apikey'], '*') === false ? $settings['apikey'] : $apbct->settings['apikey'];
|
1456 |
|
@@ -1460,7 +1415,7 @@ function apbct_settings__validate($settings) {
|
|
1460 |
$settings['apikey'] = defined( 'CLEANTALK_ACCESS_KEY') ? CLEANTALK_ACCESS_KEY : $settings['apikey'];
|
1461 |
$settings['apikey'] = ! is_main_site() && $apbct->white_label ? $apbct->settings['apikey'] : $settings['apikey'];
|
1462 |
$settings['apikey'] = is_main_site() || $apbct->allow_custom_key || $apbct->white_label ? $settings['apikey'] : $apbct->network_settings['apikey'];
|
1463 |
-
$settings['apikey'] = is_main_site() || !$settings['
|
1464 |
|
1465 |
// Sanitize setting values
|
1466 |
foreach ($settings as &$setting ){
|
@@ -1486,17 +1441,17 @@ function apbct_settings__validate($settings) {
|
|
1486 |
// WPMS Logic.
|
1487 |
if(APBCT_WPMS && is_main_site()){
|
1488 |
$network_settings = array(
|
1489 |
-
'
|
1490 |
-
'
|
1491 |
-
'
|
1492 |
-
'
|
1493 |
-
'
|
1494 |
-
'
|
1495 |
-
'
|
1496 |
-
'
|
1497 |
-
'
|
1498 |
);
|
1499 |
-
unset( $settings['
|
1500 |
}
|
1501 |
|
1502 |
// Drop debug data
|
@@ -1533,8 +1488,8 @@ function apbct_settings__validate($settings) {
|
|
1533 |
'service_id' => $apbct->data['service_id'],
|
1534 |
);
|
1535 |
$apbct->saveNetworkData();
|
1536 |
-
if (isset($settings['
|
1537 |
-
apbct_update_blogs_options($settings['
|
1538 |
}
|
1539 |
}
|
1540 |
if(!$apbct->white_label && !is_main_site() && !$apbct->allow_custom_key){
|
@@ -1543,8 +1498,8 @@ function apbct_settings__validate($settings) {
|
|
1543 |
}
|
1544 |
|
1545 |
// Alt sessions table clearing
|
1546 |
-
if( empty( $settings['
|
1547 |
-
if( empty( $settings['
|
1548 |
apbct_alt_sessions__clear();
|
1549 |
} else {
|
1550 |
apbct_alt_sessions__clear( false );
|
@@ -1580,7 +1535,7 @@ function apbct_settings__sync( $direct_call = false ){
|
|
1580 |
$apbct->error_delete( 'key_invalid key_get', 'save' );
|
1581 |
|
1582 |
// SFW actions
|
1583 |
-
if( $apbct->settings['
|
1584 |
|
1585 |
if( get_option( 'sfw_update_first' ) ) {
|
1586 |
add_option( 'sfw_sync_first', true );
|
@@ -1625,8 +1580,8 @@ function apbct_settings__sync( $direct_call = false ){
|
|
1625 |
'service_id' => $apbct->data['service_id'],
|
1626 |
);
|
1627 |
$apbct->saveNetworkData();
|
1628 |
-
if (isset($settings['
|
1629 |
-
apbct_update_blogs_options($settings['
|
1630 |
}
|
1631 |
}
|
1632 |
if(!$apbct->white_label && !is_main_site() && !$apbct->allow_custom_key){
|
@@ -1668,6 +1623,90 @@ function apbct_settings__sync( $direct_call = false ){
|
|
1668 |
die( json_encode( $out ) );
|
1669 |
}
|
1670 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1671 |
function apbct_update_blogs_options ($blog_names = array(), $settings) {
|
1672 |
global $wpdb;
|
1673 |
|
@@ -1759,15 +1798,15 @@ function apbct_settings__get__long_description(){
|
|
1759 |
$setting_id = $_POST['setting_id'] ? $_POST['setting_id'] : '';
|
1760 |
|
1761 |
$descriptions = array(
|
1762 |
-
'
|
1763 |
'title' => __( 'XSS check', 'cleantalk-spam-protect'),
|
1764 |
'desc' => __( 'Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to any user. As a result malicious scripts can not get access to the cookie files, session tokens and any other confidential information browsers use and store. Such scripts can even overwrite content of HTML pages. CleanTalk WAF monitors for patterns of these parameters and block them.', 'cleantalk-spam-protect'),
|
1765 |
),
|
1766 |
-
'
|
1767 |
'title' => __( 'SQL-injection check', 'cleantalk-spam-protect'),
|
1768 |
'desc' => __( 'SQL Injection — one of the most popular ways to hack websites and programs that work with databases. It is based on injection of a custom SQL code into database queries. It could transmit data through GET, POST requests or cookie files in an SQL code. If a website is vulnerable and execute such injections then it would allow attackers to apply changes to the website\'s MySQL database.', 'cleantalk-spam-protect'),
|
1769 |
),
|
1770 |
-
'
|
1771 |
'title' => __( 'Check uploaded files', 'cleantalk-spam-protect'),
|
1772 |
'desc' => __( 'The option checks each uploaded file to a website for malicious code. If it\'s possible for visitors to upload files to a website, for instance a work resume, then attackers could abuse it and upload an infected file to execute it later and get access to your website.', 'cleantalk-spam-protect'),
|
1773 |
),
|
98 |
'html_before' => '<hr>',
|
99 |
'html_after' => '',
|
100 |
'fields' => array(
|
101 |
+
'sfw__enabled' => array(
|
102 |
'type' => 'checkbox',
|
103 |
'title' => __('SpamFireWall', 'cleantalk-spam-protect'),
|
104 |
'description' => __("This option allows to filter spam bots before they access website. Also reduces CPU usage on hosting server and accelerates pages load time.", 'cleantalk-spam-protect'),
|
108 |
'type' => 'checkbox',
|
109 |
'title' => __('Anti-Crawler', 'cleantalk-spam-protect') . $additional_ac_title,
|
110 |
'class' => 'apbct_settings-field_wrapper--sub',
|
111 |
+
'parent' => 'sfw__enabled',
|
112 |
'description' => __('Plugin shows SpamFireWall stop page for any bot, except allowed bots (Google, Yahoo and etc).', 'cleantalk-spam-protect')
|
113 |
. '<br>'
|
114 |
. __( 'Anti-Crawler includes blocking bots by the User-Agent. Use Personal lists in the Dashboard to filter specific User-Agents.', 'cleantalk-spam-protect' ),
|
130 |
.'<div id="apbct_settings__davanced_settings" style="display: none;">',
|
131 |
'html_after' => '',
|
132 |
'fields' => array(
|
133 |
+
'forms__registrations_test' => array(
|
134 |
'title' => __('Registration Forms', 'cleantalk-spam-protect'),
|
135 |
'description' => __('WordPress, BuddyPress, bbPress, S2Member, WooCommerce.', 'cleantalk-spam-protect'),
|
136 |
),
|
137 |
+
'forms__comments_test' => array(
|
138 |
'title' => __('Comments form', 'cleantalk-spam-protect'),
|
139 |
'description' => __('WordPress, JetPack, WooCommerce.', 'cleantalk-spam-protect'),
|
140 |
),
|
141 |
+
'forms__contact_forms_test' => array(
|
142 |
'title' => __('Contact forms', 'cleantalk-spam-protect'),
|
143 |
'description' => __('Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, WordPress Landing Pages, Gravity Forms.', 'cleantalk-spam-protect'),
|
144 |
),
|
145 |
+
'forms__general_contact_forms_test' => array(
|
146 |
'title' => __('Custom contact forms', 'cleantalk-spam-protect'),
|
147 |
'description' => __('Anti spam test for any WordPress themes or contacts forms.', 'cleantalk-spam-protect'),
|
148 |
),
|
149 |
+
'forms__search_test' => array(
|
150 |
'title' => __('Test default Wordpress search form for spam', 'cleantalk-spam-protect'),
|
151 |
'description' => __('Spam protection for Search form.', 'cleantalk-spam-protect')
|
152 |
. (!$apbct->white_label || is_main_site()
|
157 |
: ''
|
158 |
)
|
159 |
),
|
160 |
+
'forms__check_external' => array(
|
161 |
'title' => __('Protect external forms', 'cleantalk-spam-protect'),
|
162 |
'description' => __('Turn this option on to protect forms on your WordPress that send data to third-part servers (like MailChimp).', 'cleantalk-spam-protect'),
|
163 |
+
'childrens' => array('forms__check_external__capture_buffer'),
|
164 |
),
|
165 |
+
'forms__check_external__capture_buffer' => array(
|
166 |
'title' => __('Capture buffer', 'cleantalk-spam-protect'),
|
167 |
'description' => __('This setting gives you more sophisticated and strengthened protection for external forms. But it could break plugins which use a buffer like Ninja Forms.', 'cleantalk-spam-protect'),
|
168 |
'class' => 'apbct_settings-field_wrapper--sub',
|
169 |
+
'parent' => 'forms__check_external',
|
170 |
),
|
171 |
+
'forms__check_internal' => array(
|
172 |
'title' => __('Protect internal forms', 'cleantalk-spam-protect'),
|
173 |
'description' => __('This option will enable protection for custom (hand-made) AJAX forms with PHP scripts handlers on your WordPress.', 'cleantalk-spam-protect'),
|
174 |
),
|
179 |
'wc' => array(
|
180 |
'title' => __('WooCommerce', 'cleantalk-spam-protect'),
|
181 |
'fields' => array(
|
182 |
+
'forms__wc_checkout_test' => array(
|
183 |
'title' => __('WooCommerce checkout form', 'cleantalk-spam-protect'),
|
184 |
'description' => __('Anti spam test for WooCommerce checkout form.', 'cleantalk-spam-protect'),
|
185 |
+
'childrens' => array('forms__wc_register_from_order')
|
186 |
),
|
187 |
+
'forms__wc_register_from_order' => array(
|
188 |
'title' => __('Spam test for registration during checkout', 'cleantalk-spam-protect'),
|
189 |
'description' => __('Enable anti spam test for registration process which during woocommerce\'s checkout.', 'cleantalk-spam-protect'),
|
190 |
+
'parent' => 'forms__wc_checkout_test',
|
191 |
'class' => 'apbct_settings-field_wrapper--sub',
|
192 |
'reverse_trigger' => true
|
193 |
),
|
198 |
'comments_and_messages' => array(
|
199 |
'title' => __('Comments and Messages', 'cleantalk-spam-protect'),
|
200 |
'fields' => array(
|
201 |
+
'comments__disable_comments__all' => array(
|
202 |
'title' => __( 'Disable all comments', 'cleantalk-spam-protect'),
|
203 |
'description' => __( 'Disabling comments for all types of content.', 'cleantalk-spam-protect'),
|
204 |
'childrens' => array(
|
205 |
+
'comments__disable_comments__posts',
|
206 |
+
'comments__disable_comments__pages',
|
207 |
+
'comments__disable_comments__media',
|
208 |
),
|
209 |
'options' => array(
|
210 |
array( 'val' => 1, 'label' => __( 'On' ), 'childrens_enable' => 0, ),
|
211 |
array( 'val' => 0, 'label' => __( 'Off' ), 'childrens_enable' => 1, ),
|
212 |
),
|
213 |
),
|
214 |
+
'comments__disable_comments__posts' => array(
|
215 |
'title' => __( 'Disable comments for all posts', 'cleantalk-spam-protect'),
|
216 |
'class' => 'apbct_settings-field_wrapper--sub',
|
217 |
+
'parent' => 'comments__disable_comments__all',
|
218 |
'reverse_trigger' => true,
|
219 |
),
|
220 |
+
'comments__disable_comments__pages' => array(
|
221 |
'title' => __( 'Disable comments for all pages', 'cleantalk-spam-protect'),
|
222 |
'class' => 'apbct_settings-field_wrapper--sub',
|
223 |
+
'parent' => 'comments__disable_comments__all',
|
224 |
'reverse_trigger' => true,
|
225 |
),
|
226 |
+
'comments__disable_comments__media' => array(
|
227 |
'title' => __( 'Disable comments for all media', 'cleantalk-spam-protect'),
|
228 |
'class' => 'apbct_settings-field_wrapper--sub',
|
229 |
+
'parent' => 'comments__disable_comments__all',
|
230 |
'reverse_trigger' => true,
|
231 |
),
|
232 |
+
'comments__bp_private_messages' => array(
|
233 |
'title' => __('BuddyPress Private Messages', 'cleantalk-spam-protect'),
|
234 |
'description' => __('Check buddyPress private messages.', 'cleantalk-spam-protect'),
|
235 |
),
|
236 |
+
'comments__remove_old_spam' => array(
|
237 |
'title' => __('Automatically delete spam comments', 'cleantalk-spam-protect'),
|
238 |
'description' => sprintf(__('Delete spam comments older than %d days.', 'cleantalk-spam-protect'), $apbct->data['spam_store_days']),
|
239 |
),
|
240 |
+
'comments__remove_comments_links' => array(
|
241 |
'title' => __('Remove links from approved comments', 'cleantalk-spam-protect'),
|
242 |
'description' => __('Remove links from approved comments. Replace it with "[Link deleted]"', 'cleantalk-spam-protect'),
|
243 |
),
|
244 |
+
'comments__show_check_links' => array(
|
245 |
'title' => __('Show links to check Emails, IPs for spam', 'cleantalk-spam-protect'),
|
246 |
'description' => __('Shows little icon near IP addresses and Emails allowing you to check it via CleanTalk\'s database.', 'cleantalk-spam-protect'),
|
247 |
'display' => !$apbct->white_label,
|
248 |
),
|
249 |
+
'comments__manage_comments_on_public_page' => array(
|
250 |
'title' => __('Manage comments on public pages', 'cleantalk-spam-protect'),
|
251 |
'description' => __('Allows administrators to manage comments on public post\'s pages with small interactive menu.', 'cleantalk-spam-protect'),
|
252 |
'display' => !$apbct->white_label,
|
258 |
'data_processing' => array(
|
259 |
'title' => __('Data Processing', 'cleantalk-spam-protect'),
|
260 |
'fields' => array(
|
261 |
+
'data__protect_logged_in' => array(
|
262 |
'title' => __("Protect logged in Users", 'cleantalk-spam-protect'),
|
263 |
'description' => __('Turn this option on to check for spam any submissions (comments, contact forms and etc.) from registered Users.', 'cleantalk-spam-protect'),
|
264 |
),
|
265 |
+
'comments__check_comments_number' => array(
|
266 |
'title' => __("Don't check trusted user's comments", 'cleantalk-spam-protect'),
|
267 |
'description' => sprintf(__("Don't check comments for users with above %d comments.", 'cleantalk-spam-protect'), defined('CLEANTALK_CHECK_COMMENTS_NUMBER') ? CLEANTALK_CHECK_COMMENTS_NUMBER : 3),
|
268 |
),
|
269 |
+
'data__use_ajax' => array(
|
270 |
'title' => __('Use AJAX for JavaScript check', 'cleantalk-spam-protect'),
|
271 |
'description' => __('Options helps protect WordPress against spam with any caching plugins. Turn this option on to avoid issues with caching plugins. Turn off this option and SpamFireWall to be compatible with Accelerated mobile pages (AMP).', 'cleantalk-spam-protect'),
|
272 |
),
|
273 |
+
'data__use_static_js_key' => array(
|
274 |
'title' => __('Use static keys for JS check.', 'cleantalk-spam-protect'),
|
275 |
'description' => __('Could help if you have cache for AJAX requests and you are dealing with false positives. Slightly decreases protection quality. Auto - Static key will be used if caching plugin is spotted.', 'cleantalk-spam-protect'),
|
276 |
'options' => array(
|
279 |
array('val' => -1, 'label' => __('Auto'),),
|
280 |
),
|
281 |
),
|
282 |
+
'data__general_postdata_test' => array(
|
283 |
'title' => __('Check all post data', 'cleantalk-spam-protect'),
|
284 |
'description' => __('Check all POST submissions from website visitors. Enable this option if you have spam misses on website.', 'cleantalk-spam-protect')
|
285 |
.(!$apbct->white_label
|
288 |
)
|
289 |
.'<br />' . __('СAUTION! Option can catch POST requests in WordPress backend', 'cleantalk-spam-protect'),
|
290 |
),
|
291 |
+
'data__set_cookies' => array(
|
292 |
'title' => __("Set cookies", 'cleantalk-spam-protect'),
|
293 |
'description' => __('Turn this option off to deny plugin generates any cookies on website front-end. This option is helpful if you use Varnish. But most of contact forms will not be protected if the option is turned off! <b>Warning: We strongly recommend you to enable this otherwise it could cause false positives spam detection.</b>', 'cleantalk-spam-protect'),
|
294 |
+
'childrens' => array('data__set_cookies__sessions'),
|
295 |
),
|
296 |
+
'data__set_cookies__sessions' => array(
|
297 |
'title' => __('Use alternative mechanism for cookies', 'cleantalk-spam-protect'),
|
298 |
'description' => __('Doesn\'t use cookie or PHP sessions. Collect data for all types of bots.', 'cleantalk-spam-protect'),
|
299 |
+
'parent' => 'data__set_cookies',
|
300 |
'class' => 'apbct_settings-field_wrapper--sub',
|
301 |
),
|
302 |
+
'data__ssl_on' => array(
|
303 |
'title' => __("Use SSL", 'cleantalk-spam-protect'),
|
304 |
'description' => __('Turn this option on to use encrypted (SSL) connection with servers.', 'cleantalk-spam-protect'),
|
305 |
),
|
306 |
+
'wp__use_builtin_http_api' => array(
|
307 |
'title' => __("Use Wordpress HTTP API", 'cleantalk-spam-protect'),
|
308 |
'description' => __('Alternative way to connect the Cloud. Use this if you have connection problems.', 'cleantalk-spam-protect'),
|
309 |
),
|
310 |
'sfw__use_delete_to_clear_table' => array(
|
311 |
'title' => __("Use DELETE SQL-command instead TRUNCATE to clear tables", 'cleantalk-spam-protect'),
|
312 |
'description' => __('Could help if you have blocked SpamFireWall tables in your database.', 'cleantalk-spam-protect'),
|
313 |
+
'parent' => 'sfw__enabled',
|
314 |
),
|
315 |
),
|
316 |
),
|
355 |
'html_before' => '',
|
356 |
'html_after' => '',
|
357 |
'fields' => array(
|
358 |
+
'admin_bar__show' => array(
|
359 |
'title' => __('Show statistics in admin bar', 'cleantalk-spam-protect'),
|
360 |
'description' => __('Show/hide icon in top level menu in WordPress backend. The number of submissions is being counted for past 24 hours.', 'cleantalk-spam-protect'),
|
361 |
+
'childrens' => array('admin_bar__all_time_counter','admin_bar__daily_counter','admin_bar__sfw_counter'),
|
362 |
),
|
363 |
+
'admin_bar__all_time_counter' => array(
|
364 |
'title' => __('Show All-time counter', 'cleantalk-spam-protect'),
|
365 |
'description' => __('Display all-time requests counter in the admin bar. Counter displays number of requests since plugin installation.', 'cleantalk-spam-protect'),
|
366 |
+
'parent' => 'admin_bar__show',
|
367 |
'class' => 'apbct_settings-field_wrapper--sub',
|
368 |
),
|
369 |
+
'admin_bar__daily_counter' => array(
|
370 |
'title' => __('Show 24 hours counter', 'cleantalk-spam-protect'),
|
371 |
'description' => __('Display daily requests counter in the admin bar. Counter displays number of requests of the past 24 hours.', 'cleantalk-spam-protect'),
|
372 |
+
'parent' => 'admin_bar__show',
|
373 |
'class' => 'apbct_settings-field_wrapper--sub',
|
374 |
),
|
375 |
+
'admin_bar__sfw_counter' => array(
|
376 |
'title' => __('SpamFireWall counter', 'cleantalk-spam-protect'),
|
377 |
'description' => __('Display SpamFireWall requests in the admin bar. Counter displays number of requests since plugin installation.', 'cleantalk-spam-protect'),
|
378 |
+
'parent' => 'admin_bar__show',
|
379 |
'class' => 'apbct_settings-field_wrapper--sub',
|
380 |
),
|
381 |
),
|
385 |
'misc' => array(
|
386 |
'html_after' => '</div><br>',
|
387 |
'fields' => array(
|
388 |
+
'misc__collect_details' => array(
|
389 |
'type' => 'checkbox',
|
390 |
'title' => __('Collect details about browsers', 'cleantalk-spam-protect'),
|
391 |
'description' => __("Checking this box you allow plugin store information about screen size and browser plugins of website visitors. The option in a beta state.", 'cleantalk-spam-protect'),
|
392 |
),
|
393 |
+
'misc__send_connection_reports' => array(
|
394 |
'type' => 'checkbox',
|
395 |
'title' => __('Send connection reports', 'cleantalk-spam-protect'),
|
396 |
'description' => __("Checking this box you allow plugin to send the information about your connection. The option in a beta state.", 'cleantalk-spam-protect'),
|
397 |
),
|
398 |
+
'misc__async_js' => array(
|
399 |
'type' => 'checkbox',
|
400 |
'title' => __('Async JavaScript loading', 'cleantalk-spam-protect'),
|
401 |
'description' => __('Use async loading for scripts. Warning: This could reduce filtration quality.', 'cleantalk-spam-protect'),
|
402 |
),
|
403 |
+
'gdpr__enabled' => array(
|
404 |
'type' => 'checkbox',
|
405 |
'title' => __('Allow to add GDPR notice via shortcode', 'cleantalk-spam-protect'),
|
406 |
'description' => __(' Adds small checkbox under your website form. To add it you should use the shortcode on the form\'s page: [cleantalk_gdpr_form id="FORM_ID"]', 'cleantalk-spam-protect'),
|
407 |
+
'childrens' => array('gdpr__text'),
|
408 |
),
|
409 |
+
'gdpr__text' => array(
|
410 |
'type' => 'text',
|
411 |
'title' => __('GDPR text notice', 'cleantalk-spam-protect'),
|
412 |
'description' => __('This text will be added as a description to the GDPR checkbox.', 'cleantalk-spam-protect'),
|
413 |
+
'parent' => 'gdpr__enabled',
|
414 |
'class' => 'apbct_settings-field_wrapper--sub',
|
415 |
),
|
416 |
+
'misc__store_urls' => array(
|
417 |
'type' => 'checkbox',
|
418 |
'title' => __('Store visited URLs', 'cleantalk-spam-protect'),
|
419 |
'description' => __("Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits form on the site. You can see stored visited URLS for each visitor in your Dashboard. Turn the option on to improve Anti-Spam protection.", 'cleantalk-spam-protect'),
|
420 |
+
'childrens' => array('misc__store_urls__sessions'),
|
421 |
),
|
422 |
+
'misc__store_urls__sessions' => array(
|
423 |
'type' => 'checkbox',
|
424 |
'title' => __('Use cookies less sessions', 'cleantalk-spam-protect'),
|
425 |
'description' => __('Doesn\'t use cookie or PHP sessions. Collect data for all types of bots.', 'cleantalk-spam-protect'),
|
426 |
+
'parent' => 'misc__store_urls',
|
427 |
'class' => 'apbct_settings-field_wrapper--sub',
|
428 |
),
|
429 |
+
'wp__comment_notify' => array(
|
430 |
'type' => 'checkbox',
|
431 |
'title' => __('Notify users with selected roles about new approved comments. Hold CTRL to select multiple roles.', 'cleantalk-spam-protect'),
|
432 |
'description' => sprintf(__("If enabled, overrides similar Wordpress %sdiscussion settings%s.", 'cleantalk-spam-protect'), '<a href="options-discussion.php">','</a>'),
|
433 |
+
'childrens' => array('wp__comment_notify__roles'),
|
434 |
),
|
435 |
+
'wp__comment_notify__roles' => array(
|
436 |
'type' => 'select',
|
437 |
'multiple' => true,
|
438 |
+
'parent' => 'wp__comment_notify',
|
439 |
'options_callback' => 'apbct_get_all_roles',
|
440 |
'options_callback_params' => array(true),
|
441 |
'class' => 'apbct_settings-field_wrapper--sub',
|
444 |
'type' => 'checkbox',
|
445 |
'title' => __('Anti-Flood', 'cleantalk-spam-protect'),
|
446 |
'class' => 'apbct_settings-field_wrapper',
|
447 |
+
'parent' => 'sfw__enabled',
|
448 |
'childrens' => array('sfw__anti_flood__view_limit',),
|
449 |
'description' => __('Shows the SpamFireWall page for bots trying to crawl your site. Look at the page limit setting below.', 'cleantalk-spam-protect'),
|
450 |
),
|
455 |
'parent' => 'sfw__anti_flood',
|
456 |
'description' => __('Count of page view per 1 minute before plugin shows SpamFireWall page. SpamFireWall page active for 30 second after that valid visitor (with JavaScript) passes the page to the demanded page of the site.', 'cleantalk-spam-protect'),
|
457 |
),
|
458 |
+
'wp__dashboard_widget__show' => array(
|
459 |
'type' => 'checkbox',
|
460 |
'title' => __('Show Dashboard Widget', 'cleantalk-spam-protect'),
|
461 |
),
|
462 |
+
'misc__complete_deactivation' => array(
|
463 |
'type' => 'checkbox',
|
464 |
'title' => __('Complete deactivation', 'cleantalk-spam-protect'),
|
465 |
'description' => __('Leave no trace in the system after deactivation.', 'cleantalk-spam-protect'),
|
477 |
$additional_fields = array(
|
478 |
'main' => array(
|
479 |
'fields' => array(
|
480 |
+
'multisite__white_label' => array(
|
481 |
'type' => 'checkbox',
|
482 |
'title' => __('Enable White Label Mode', 'cleantalk-spam-protect'),
|
483 |
'description' => sprintf(__("Learn more information %shere%s.", 'cleantalk-spam-protect'), '<a target="_blank" href="https://cleantalk.org/ru/help/hosting-white-label">', '</a>'),
|
484 |
+
'childrens' => array( 'multisite__white_label__hoster_key', 'multisite__white_label__plugin_name', 'multisite__allow_custom_key', ),
|
485 |
'disabled' => defined('CLEANTALK_ACCESS_KEY'),
|
486 |
'network' => true,
|
487 |
),
|
488 |
+
'multisite__white_label__hoster_key' => array(
|
489 |
'title' => __('Hoster API Key', 'cleantalk-spam-protect'),
|
490 |
'description' => sprintf(__("You can get it in %sCleantalk's Control Panel%s", 'cleantalk-spam-protect'), '<a target="_blank" href="https://cleantalk.org/my/profile">', '</a>'),
|
491 |
'type' => 'text',
|
492 |
+
'parent' => 'multisite__white_label',
|
493 |
'class' => 'apbct_settings-field_wrapper--sub',
|
494 |
'network' => true,
|
495 |
'required' => true,
|
496 |
),
|
497 |
+
'multisite__white_label__plugin_name' => array(
|
498 |
'title' => __('Plugin name', 'cleantalk-spam-protect'),
|
499 |
'description' => sprintf(__("Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s", 'cleantalk-spam-protect'), '<b>', '</b>'),
|
500 |
'type' => 'text',
|
501 |
+
'parent' => 'multisite__white_label',
|
502 |
'class' => 'apbct_settings-field_wrapper--sub',
|
503 |
'network' => true,
|
504 |
'required' => true,
|
505 |
),
|
506 |
+
'multisite__allow_custom_key' => array(
|
507 |
'type' => 'checkbox',
|
508 |
'title' => __('Allow users to use other key', 'cleantalk-spam-protect'),
|
509 |
'description' => __('Allow users to use different Access key in their plugin settings on child blogs. They could use different CleanTalk account.', 'cleantalk-spam-protect')
|
516 |
: ''
|
517 |
),
|
518 |
'display' => APBCT_WPMS && is_main_site(),
|
519 |
+
'disabled' => $apbct->network_settings['multisite__white_label'],
|
520 |
'network' => true,
|
521 |
),
|
522 |
+
'multisite__allow_custom_settings' => array(
|
523 |
'type' => 'checkbox',
|
524 |
'title' => __('Allow users to manage plugin settings', 'cleantalk-spam-protect'),
|
525 |
'description' => __('Allow to change settings on child sites.', 'cleantalk-spam-protect'),
|
526 |
'display' => APBCT_WPMS && is_main_site(),
|
527 |
'network' => true,
|
528 |
),
|
529 |
+
'multisite__use_settings_template' => array(
|
530 |
'type' => 'checkbox',
|
531 |
'title' => __('Use settings template', 'cleantalk-spam-protect'),
|
532 |
'description' => __("Use the current settings template for child sites.", 'cleantalk-spam-protect'),
|
533 |
+
'childrens' => array( 'multisite__use_settings_template_apply_for_new', 'multisite__use_settings_template_apply_for_current'),
|
534 |
'network' => true,
|
535 |
),
|
536 |
+
'multisite__use_settings_template_apply_for_new' => array(
|
537 |
'type' => 'checkbox',
|
538 |
'title' => __('Apply for newly added sites.', 'cleantalk-spam-protect'),
|
539 |
'description' => __("The newly added site will have the same preset settings template.", 'cleantalk-spam-protect'),
|
540 |
+
'parent' => 'multisite__use_settings_template',
|
541 |
'class' => 'apbct_settings-field_wrapper--sub',
|
542 |
'network' => true,
|
543 |
),
|
544 |
+
'multisite__use_settings_template_apply_for_current' => array(
|
545 |
'type' => 'checkbox',
|
546 |
'title' => __('Apply for current sites.', 'cleantalk-spam-protect'),
|
547 |
'description' => __("Apply current settings template for selected sites.", 'cleantalk-spam-protect'),
|
548 |
+
'parent' => 'multisite__use_settings_template',
|
549 |
+
'childrens' => array( 'multisite__use_settings_template_apply_for_current_list_sites'),
|
550 |
'class' => 'apbct_settings-field_wrapper--sub',
|
551 |
'network' => true,
|
552 |
),
|
553 |
+
'multisite__use_settings_template_apply_for_current_list_sites' => array(
|
554 |
'type' => 'select',
|
555 |
'multiple' => true,
|
556 |
'options_callback' => 'apbct_get_all_child_domains',
|
557 |
'options_callback_params' => array(true),
|
558 |
'class' => 'apbct_settings-field_wrapper--sub',
|
559 |
+
'parent' => 'multisite__use_settings_template_apply_for_current',
|
560 |
'description' => __('Sites to apply settings. Hold CTRL to select multiple sites.', 'cleantalk-spam-protect'),
|
561 |
'network' => true,
|
562 |
),
|
642 |
function apbct_settings__display() {
|
643 |
|
644 |
global $apbct;
|
645 |
+
|
646 |
// Title
|
647 |
echo '<h2 class="apbct_settings-title">'.__($apbct->plugin_name, 'cleantalk-spam-protect').'</h2>';
|
648 |
|
913 |
|
914 |
print '<h2>'.__('Protection is active', 'cleantalk-spam-protect').'</h2>';
|
915 |
|
916 |
+
echo '<img class="apbct_status_icon" src="'.($apbct->settings['forms__registrations_test'] == 1 ? $img : $img_no).'"/>'.__('Registration forms', 'cleantalk-spam-protect');
|
917 |
+
echo '<img class="apbct_status_icon" src="'.($apbct->settings['forms__comments_test'] == 1 ? $img : $img_no).'"/>'.__('Comments forms', 'cleantalk-spam-protect');
|
918 |
+
echo '<img class="apbct_status_icon" src="'.($apbct->settings['forms__contact_forms_test'] == 1 ? $img : $img_no).'"/>'.__('Contact forms', 'cleantalk-spam-protect');
|
919 |
+
echo '<img class="apbct_status_icon" src="'.($apbct->settings['forms__general_contact_forms_test'] == 1 ? $img : $img_no).'"/>'.__('Custom contact forms', 'cleantalk-spam-protect');
|
920 |
if(!$apbct->white_label || is_main_site())
|
921 |
echo '<img class="apbct_status_icon" src="'.($apbct->data['moderate'] == 1 ? $img : $img_no).'"/>'
|
922 |
.'<a style="color: black" href="https://blog.cleantalk.org/real-time-email-address-existence-validation/">'.__('Validate email for existence', 'cleantalk-spam-protect').'</a>';
|
928 |
|
929 |
// WooCommerce
|
930 |
if(class_exists('WooCommerce'))
|
931 |
+
echo '<img class="apbct_status_icon" src="'.($apbct->settings['forms__wc_checkout_test'] == 1 ? $img : $img_no).'"/>'.__('WooCommerce checkout form', 'cleantalk-spam-protect');
|
932 |
+
if($apbct->moderate_ip)
|
933 |
+
print "<br /><br />The anti-spam service is paid by your hosting provider. License #".$apbct->data['ip_license'].".<br />";
|
|
|
934 |
|
935 |
print "</div>";
|
936 |
}
|
987 |
}else{
|
988 |
|
989 |
echo '<br /><br />';
|
990 |
+
|
991 |
// Auto get key
|
992 |
if(!$apbct->ip_license){
|
993 |
+
echo '<button class="cleantalk_link cleantalk_link-manual apbct_setting---get_key_auto" id="apbct_button__get_key_auto" name="submit" type="button" value="get_key_auto">'
|
994 |
.__('Get Access Key Automatically', 'cleantalk-spam-protect')
|
995 |
+
. '<img style="margin-left: 10px;" class="apbct_preloader_button" src="' . APBCT_URL_PATH . '/inc/images/preloader2.gif" />'
|
996 |
+
. '<img style="margin-left: 10px;" class="apbct_success --hide" src="' . APBCT_URL_PATH . '/inc/images/yes.png" />'
|
997 |
.'</button>';
|
998 |
echo '<input type="hidden" id="ct_admin_timezone" name="ct_admin_timezone" value="null" />';
|
999 |
echo '<br />';
|
1132 |
. ' name="submit"'
|
1133 |
. ' class="cleantalk_link cleantalk_link-manual"'
|
1134 |
. ' value="ct_send_connection_report"'
|
1135 |
+
. (!$apbct->settings['misc__send_connection_reports'] ? ' disabled="disabled"' : '')
|
1136 |
. '>'
|
1137 |
.__('Send report', 'cleantalk-spam-protect')
|
1138 |
.'</button>';
|
1139 |
+
if (!$apbct->settings['misc__send_connection_reports']){
|
1140 |
echo '<br><br>';
|
1141 |
_e('Please, enable "Send connection reports" setting to be able to send reports', 'cleantalk-spam-protect');
|
1142 |
}
|
1148 |
echo 'Plugin version: ' . APBCT_VERSION;
|
1149 |
|
1150 |
echo '</div>';
|
1151 |
+
|
1152 |
}
|
1153 |
function apbct_get_all_child_domains($except_main_site = false) {
|
1154 |
global $wpdb;
|
1200 |
$disabled = $params['parent'] && !$value_parent ? ' disabled="disabled"' : ''; // Strait
|
1201 |
$disabled = $params['parent'] && $params['reverse_trigger'] && !$value_parent ? ' disabled="disabled"' : $disabled; // Reverse logic
|
1202 |
$disabled = $params['disabled'] ? ' disabled="disabled"' : $disabled; // Direct disable from params
|
1203 |
+
$disabled = ! is_main_site() && $apbct->network_settings && ! $apbct->network_settings['multisite__allow_custom_settings'] ? ' disabled="disabled"' : $disabled; // Disabled by super admin on sub-sites
|
1204 |
|
1205 |
$childrens = $params['childrens'] ? 'apbct_setting---' . implode(",apbct_setting---",$params['childrens']) : '';
|
1206 |
$hide = $params['hide'] ? implode(",",$params['hide']) : '';
|
1379 |
global $apbct;
|
1380 |
|
1381 |
// If user is not allowed to manage settings. Get settings from the storage
|
1382 |
+
if( ! is_main_site() && ( ! $apbct->network_settings['multisite__allow_custom_settings'] ) ){
|
1383 |
foreach ($apbct->settings as $key => $setting){
|
1384 |
$settings[ $key ] = $setting;
|
1385 |
}
|
1405 |
$settings['sfw__anti_flood__view_limit'] = floor( intval( $settings['sfw__anti_flood__view_limit'] ) );
|
1406 |
$settings['sfw__anti_flood__view_limit'] = ( $settings['sfw__anti_flood__view_limit'] == 0 ? 20 : $settings['sfw__anti_flood__view_limit'] ); // Default if 0 passed
|
1407 |
$settings['sfw__anti_flood__view_limit'] = ( $settings['sfw__anti_flood__view_limit'] < 5 ? 5 : $settings['sfw__anti_flood__view_limit'] ); //
|
1408 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1409 |
// Validating API key
|
1410 |
$settings['apikey'] = strpos($settings['apikey'], '*') === false ? $settings['apikey'] : $apbct->settings['apikey'];
|
1411 |
|
1415 |
$settings['apikey'] = defined( 'CLEANTALK_ACCESS_KEY') ? CLEANTALK_ACCESS_KEY : $settings['apikey'];
|
1416 |
$settings['apikey'] = ! is_main_site() && $apbct->white_label ? $apbct->settings['apikey'] : $settings['apikey'];
|
1417 |
$settings['apikey'] = is_main_site() || $apbct->allow_custom_key || $apbct->white_label ? $settings['apikey'] : $apbct->network_settings['apikey'];
|
1418 |
+
$settings['apikey'] = is_main_site() || !$settings['multisite__white_label'] ? $settings['apikey'] : $apbct->settings['apikey'];
|
1419 |
|
1420 |
// Sanitize setting values
|
1421 |
foreach ($settings as &$setting ){
|
1441 |
// WPMS Logic.
|
1442 |
if(APBCT_WPMS && is_main_site()){
|
1443 |
$network_settings = array(
|
1444 |
+
'multisite__allow_custom_key' => $settings['multisite__allow_custom_key'],
|
1445 |
+
'multisite__allow_custom_settings' => $settings['multisite__allow_custom_settings'],
|
1446 |
+
'multisite__white_label' => $settings['multisite__white_label'],
|
1447 |
+
'multisite__white_label__hoster_key' => $settings['multisite__white_label__hoster_key'],
|
1448 |
+
'multisite__white_label__plugin_name' => $settings['multisite__white_label__plugin_name'],
|
1449 |
+
'multisite__use_settings_template' => $settings['multisite__use_settings_template'],
|
1450 |
+
'multisite__use_settings_template_apply_for_new' => $settings['multisite__use_settings_template_apply_for_new'],
|
1451 |
+
'multisite__use_settings_template_apply_for_current' => $settings['multisite__use_settings_template_apply_for_current'],
|
1452 |
+
'multisite__use_settings_template_apply_for_current_list_sites' => $settings['multisite__use_settings_template_apply_for_current_list_sites'],
|
1453 |
);
|
1454 |
+
unset( $settings['multisite__allow_custom_key'], $settings['multisite__white_label'], $settings['multisite__white_label__hoster_key'], $settings['multisite__white_label__plugin_name'] );
|
1455 |
}
|
1456 |
|
1457 |
// Drop debug data
|
1488 |
'service_id' => $apbct->data['service_id'],
|
1489 |
);
|
1490 |
$apbct->saveNetworkData();
|
1491 |
+
if (isset($settings['multisite__use_settings_template_apply_for_current_list_sites']) && !empty($settings['multisite__use_settings_template_apply_for_current_list_sites'])) {
|
1492 |
+
apbct_update_blogs_options($settings['multisite__use_settings_template_apply_for_current_list_sites'], $settings);
|
1493 |
}
|
1494 |
}
|
1495 |
if(!$apbct->white_label && !is_main_site() && !$apbct->allow_custom_key){
|
1498 |
}
|
1499 |
|
1500 |
// Alt sessions table clearing
|
1501 |
+
if( empty( $settings['data__set_cookies__sessions'] ) ) {
|
1502 |
+
if( empty( $settings['misc__store_urls__sessions'] ) ) {
|
1503 |
apbct_alt_sessions__clear();
|
1504 |
} else {
|
1505 |
apbct_alt_sessions__clear( false );
|
1535 |
$apbct->error_delete( 'key_invalid key_get', 'save' );
|
1536 |
|
1537 |
// SFW actions
|
1538 |
+
if( $apbct->settings['sfw__enabled'] == 1 ){
|
1539 |
|
1540 |
if( get_option( 'sfw_update_first' ) ) {
|
1541 |
add_option( 'sfw_sync_first', true );
|
1580 |
'service_id' => $apbct->data['service_id'],
|
1581 |
);
|
1582 |
$apbct->saveNetworkData();
|
1583 |
+
if (isset($settings['multisite__use_settings_template_apply_for_current_list_sites']) && !empty($settings['multisite__use_settings_template_apply_for_current_list_sites'])) {
|
1584 |
+
apbct_update_blogs_options($settings['multisite__use_settings_template_apply_for_current_list_sites'], $settings);
|
1585 |
}
|
1586 |
}
|
1587 |
if(!$apbct->white_label && !is_main_site() && !$apbct->allow_custom_key){
|
1623 |
die( json_encode( $out ) );
|
1624 |
}
|
1625 |
|
1626 |
+
function apbct_settings__get_key_auto( $direct_call = false ) {
|
1627 |
+
|
1628 |
+
if( ! $direct_call )
|
1629 |
+
check_ajax_referer('ct_secret_nonce' );
|
1630 |
+
|
1631 |
+
global $apbct;
|
1632 |
+
|
1633 |
+
$website = parse_url(get_option('siteurl'), PHP_URL_HOST).parse_url(get_option('siteurl'), PHP_URL_PATH);
|
1634 |
+
$platform = 'wordpress';
|
1635 |
+
$user_ip = \Cleantalk\ApbctWP\Helper::ip__get(array('real'), false);
|
1636 |
+
$timezone = filter_input(INPUT_POST, 'ct_admin_timezone');
|
1637 |
+
$language = apbct_get_server_variable( 'HTTP_ACCEPT_LANGUAGE' );
|
1638 |
+
$wpms = APBCT_WPMS && defined('SUBDOMAIN_INSTALL') && !SUBDOMAIN_INSTALL ? true : false;
|
1639 |
+
$white_label = $apbct->network_settings['multisite__white_label'] ? 1 : 0;
|
1640 |
+
$hoster_api_key = $apbct->network_settings['multisite__white_label__hoster_key'] ? $apbct->network_settings['multisite__white_label__hoster_key'] : '';
|
1641 |
+
|
1642 |
+
$result = \Cleantalk\ApbctWP\API::method__get_api_key(
|
1643 |
+
! is_main_site() && $apbct->white_label ? 'anti-spam-hosting' : 'antispam',
|
1644 |
+
ct_get_admin_email(),
|
1645 |
+
$website,
|
1646 |
+
$platform,
|
1647 |
+
$timezone,
|
1648 |
+
$language,
|
1649 |
+
$user_ip,
|
1650 |
+
$wpms,
|
1651 |
+
$white_label,
|
1652 |
+
$hoster_api_key
|
1653 |
+
);
|
1654 |
+
|
1655 |
+
if(empty($result['error'])){
|
1656 |
+
|
1657 |
+
if(isset($result['user_token'])){
|
1658 |
+
$apbct->data['user_token'] = $result['user_token'];
|
1659 |
+
}
|
1660 |
+
|
1661 |
+
if(!empty($result['auth_key'])){
|
1662 |
+
// @ToDo we have to sanitize only api key. Not need to sanitize every settings here.
|
1663 |
+
$settings = apbct_settings__validate(array(
|
1664 |
+
'apikey' => $result['auth_key'],
|
1665 |
+
));
|
1666 |
+
$apbct->settings['apikey'] = $settings['apikey'];
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
$templates = \Cleantalk\ApbctWP\CleantalkSettingsTemplates::get_options_template( $result['auth_key'] );
|
1670 |
+
|
1671 |
+
if( ! empty( $templates ) ) {
|
1672 |
+
$templatesObj = new \Cleantalk\ApbctWP\CleantalkSettingsTemplates( $result['auth_key'] );
|
1673 |
+
$out = array(
|
1674 |
+
'success' => true,
|
1675 |
+
'getTemplates' => $templatesObj->getHtmlContent( true ),
|
1676 |
+
);
|
1677 |
+
} else {
|
1678 |
+
$out = array(
|
1679 |
+
'success' => true,
|
1680 |
+
'reload' => true,
|
1681 |
+
);
|
1682 |
+
}
|
1683 |
+
|
1684 |
+
}else{
|
1685 |
+
$apbct->error_add(
|
1686 |
+
'key_get',
|
1687 |
+
$result['error']
|
1688 |
+
. ($apbct->white_label
|
1689 |
+
? ' <button name="submit" type="button" id="apbct_button__get_key_auto" class="cleantalk_link cleantalk_link-manual" value="get_key_auto">'
|
1690 |
+
: ''
|
1691 |
+
)
|
1692 |
+
);
|
1693 |
+
$apbct->saveErrors();
|
1694 |
+
$out = array(
|
1695 |
+
'success' => true,
|
1696 |
+
'reload' => false,
|
1697 |
+
);
|
1698 |
+
}
|
1699 |
+
|
1700 |
+
$apbct->saveSettings();
|
1701 |
+
$apbct->saveData();
|
1702 |
+
|
1703 |
+
if( $direct_call ) {
|
1704 |
+
return $result;
|
1705 |
+
} else {
|
1706 |
+
die( json_encode( $out ) );
|
1707 |
+
}
|
1708 |
+
}
|
1709 |
+
|
1710 |
function apbct_update_blogs_options ($blog_names = array(), $settings) {
|
1711 |
global $wpdb;
|
1712 |
|
1798 |
$setting_id = $_POST['setting_id'] ? $_POST['setting_id'] : '';
|
1799 |
|
1800 |
$descriptions = array(
|
1801 |
+
'multisite__white_label' => array(
|
1802 |
'title' => __( 'XSS check', 'cleantalk-spam-protect'),
|
1803 |
'desc' => __( 'Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to any user. As a result malicious scripts can not get access to the cookie files, session tokens and any other confidential information browsers use and store. Such scripts can even overwrite content of HTML pages. CleanTalk WAF monitors for patterns of these parameters and block them.', 'cleantalk-spam-protect'),
|
1804 |
),
|
1805 |
+
'multisite__white_label__hoster_key' => array(
|
1806 |
'title' => __( 'SQL-injection check', 'cleantalk-spam-protect'),
|
1807 |
'desc' => __( 'SQL Injection — one of the most popular ways to hack websites and programs that work with databases. It is based on injection of a custom SQL code into database queries. It could transmit data through GET, POST requests or cookie files in an SQL code. If a website is vulnerable and execute such injections then it would allow attackers to apply changes to the website\'s MySQL database.', 'cleantalk-spam-protect'),
|
1808 |
),
|
1809 |
+
'multisite__white_label__plugin_name' => array(
|
1810 |
'title' => __( 'Check uploaded files', 'cleantalk-spam-protect'),
|
1811 |
'desc' => __( 'The option checks each uploaded file to a website for malicious code. If it\'s possible for visitors to upload files to a website, for instance a work resume, then attackers could abuse it and upload an infected file to execute it later and get access to your website.', 'cleantalk-spam-protect'),
|
1812 |
),
|
@@ -171,8 +171,8 @@ function apbct_update_to_5_116_0(){
|
|
171 |
|
172 |
global $apbct, $wpdb;
|
173 |
|
174 |
-
$apbct->settings['
|
175 |
-
$apbct->settings['
|
176 |
$apbct->saveSettings();
|
177 |
|
178 |
$wpdb->query('CREATE TABLE IF NOT EXISTS `'. APBCT_TBL_SESSIONS .'` (
|
@@ -292,8 +292,8 @@ function apbct_update_to_5_124_0(){
|
|
292 |
function apbct_update_to_5_126_0(){
|
293 |
global $apbct;
|
294 |
// Enable storing URLs
|
295 |
-
$apbct->settings['
|
296 |
-
$apbct->settings['
|
297 |
$apbct->saveSettings();
|
298 |
}
|
299 |
|
@@ -345,10 +345,10 @@ function apbct_update_to_5_127_0(){
|
|
345 |
switch_to_blog( $blog );
|
346 |
|
347 |
$settings = get_option( 'cleantalk_settings' );
|
348 |
-
if( isset( $settings['
|
349 |
-
$settings['
|
350 |
? - 1
|
351 |
-
: $settings['
|
352 |
update_option( 'cleantalk_settings', $settings );
|
353 |
|
354 |
$data = get_option( 'cleantalk_data' );
|
@@ -361,13 +361,13 @@ function apbct_update_to_5_127_0(){
|
|
361 |
|
362 |
if( defined( 'APBCT_WHITELABEL' ) ){
|
363 |
$apbct->network_settings = array(
|
364 |
-
'
|
365 |
-
'
|
366 |
-
'
|
367 |
);
|
368 |
}elseif( defined( 'CLEANTALK_ACCESS_KEY' ) ){
|
369 |
$apbct->network_settings = array(
|
370 |
-
'
|
371 |
'apikey' => CLEANTALK_ACCESS_KEY,
|
372 |
);
|
373 |
}
|
@@ -375,9 +375,9 @@ function apbct_update_to_5_127_0(){
|
|
375 |
}
|
376 |
}else{
|
377 |
// Switch use_static_js_key to Auto if it was disabled
|
378 |
-
$apbct->settings['
|
379 |
? -1
|
380 |
-
: $apbct->settings['
|
381 |
$apbct->saveSettings();
|
382 |
}
|
383 |
}
|
@@ -386,11 +386,11 @@ function apbct_update_to_5_127_1(){
|
|
386 |
if(APBCT_WPMS && is_main_site()){
|
387 |
global $apbct;
|
388 |
$network_settings = get_site_option( 'cleantalk_network_settings' );
|
389 |
-
if( $network_settings !== false && empty( $network_settings['
|
390 |
-
$network_settings['
|
391 |
update_site_option( 'cleantalk_network_settings', $network_settings );
|
392 |
}
|
393 |
-
if( $network_settings !== false && $network_settings['
|
394 |
ct_account_status_check( $network_settings['apikey'] ? $network_settings['apikey'] : $apbct->settings['apikey'], false);
|
395 |
}
|
396 |
}
|
@@ -468,7 +468,7 @@ function apbct_update_to_5_138_0() {
|
|
468 |
apbct_activation__create_tables($sqls);
|
469 |
|
470 |
// Getting key
|
471 |
-
$settings = $net_settings['
|
472 |
? get_option('cleantalk_settings')
|
473 |
: $main_blog_settings;
|
474 |
|
@@ -480,7 +480,7 @@ function apbct_update_to_5_138_0() {
|
|
480 |
$result = \Cleantalk\ApbctWP\API::method__notice_paid_till(
|
481 |
$settings['api_key'],
|
482 |
preg_replace('/http[s]?:\/\//', '', get_option('siteurl'), 1),
|
483 |
-
! is_main_site() && $net_settings['
|
484 |
);
|
485 |
|
486 |
if( empty( $result['error'] ) || ! empty( $result['valid'] ) ){
|
@@ -748,4 +748,145 @@ function apbct_update_to_5_153_4(){
|
|
748 |
$apbct->stats['sfw']['sending_logs__timestamp'] = 0;
|
749 |
$apbct->save('stats');
|
750 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
751 |
}
|
171 |
|
172 |
global $apbct, $wpdb;
|
173 |
|
174 |
+
$apbct->settings['misc__store_urls'] = 0;
|
175 |
+
$apbct->settings['misc__store_urls__sessions'] = 0;
|
176 |
$apbct->saveSettings();
|
177 |
|
178 |
$wpdb->query('CREATE TABLE IF NOT EXISTS `'. APBCT_TBL_SESSIONS .'` (
|
292 |
function apbct_update_to_5_126_0(){
|
293 |
global $apbct;
|
294 |
// Enable storing URLs
|
295 |
+
$apbct->settings['misc__store_urls'] = 1;
|
296 |
+
$apbct->settings['misc__store_urls__sessions'] = 1;
|
297 |
$apbct->saveSettings();
|
298 |
}
|
299 |
|
345 |
switch_to_blog( $blog );
|
346 |
|
347 |
$settings = get_option( 'cleantalk_settings' );
|
348 |
+
if( isset( $settings['data__use_static_js_key'] ) ){
|
349 |
+
$settings['data__use_static_js_key'] = $settings['data__use_static_js_key'] === 0
|
350 |
? - 1
|
351 |
+
: $settings['data__use_static_js_key'];
|
352 |
update_option( 'cleantalk_settings', $settings );
|
353 |
|
354 |
$data = get_option( 'cleantalk_data' );
|
361 |
|
362 |
if( defined( 'APBCT_WHITELABEL' ) ){
|
363 |
$apbct->network_settings = array(
|
364 |
+
'multisite__white_label' => defined( 'APBCT_WHITELABEL' ) && APBCT_WHITELABEL == true ? 1 : 0,
|
365 |
+
'multisite__white_label__hoster_key' => defined( 'APBCT_HOSTER_API_KEY' ) ? APBCT_HOSTER_API_KEY : '',
|
366 |
+
'multisite__white_label__plugin_name' => defined( 'APBCT_WHITELABEL_NAME' ) ? APBCT_WHITELABEL_NAME : APBCT_NAME,
|
367 |
);
|
368 |
}elseif( defined( 'CLEANTALK_ACCESS_KEY' ) ){
|
369 |
$apbct->network_settings = array(
|
370 |
+
'multisite__allow_custom_key' => 0,
|
371 |
'apikey' => CLEANTALK_ACCESS_KEY,
|
372 |
);
|
373 |
}
|
375 |
}
|
376 |
}else{
|
377 |
// Switch use_static_js_key to Auto if it was disabled
|
378 |
+
$apbct->settings['data__use_static_js_key'] = $apbct->settings['data__use_static_js_key'] === 0
|
379 |
? -1
|
380 |
+
: $apbct->settings['data__use_static_js_key'];
|
381 |
$apbct->saveSettings();
|
382 |
}
|
383 |
}
|
386 |
if(APBCT_WPMS && is_main_site()){
|
387 |
global $apbct;
|
388 |
$network_settings = get_site_option( 'cleantalk_network_settings' );
|
389 |
+
if( $network_settings !== false && empty( $network_settings['multisite__allow_custom_key'] ) && empty( $network_settings['multisite__white_label'] ) ){
|
390 |
+
$network_settings['multisite__allow_custom_key'] = 1;
|
391 |
update_site_option( 'cleantalk_network_settings', $network_settings );
|
392 |
}
|
393 |
+
if( $network_settings !== false && $network_settings['multisite__white_label'] == 1 && $apbct->data['moderate'] == 0 ){
|
394 |
ct_account_status_check( $network_settings['apikey'] ? $network_settings['apikey'] : $apbct->settings['apikey'], false);
|
395 |
}
|
396 |
}
|
468 |
apbct_activation__create_tables($sqls);
|
469 |
|
470 |
// Getting key
|
471 |
+
$settings = $net_settings['multisite__allow_custom_key']
|
472 |
? get_option('cleantalk_settings')
|
473 |
: $main_blog_settings;
|
474 |
|
480 |
$result = \Cleantalk\ApbctWP\API::method__notice_paid_till(
|
481 |
$settings['api_key'],
|
482 |
preg_replace('/http[s]?:\/\//', '', get_option('siteurl'), 1),
|
483 |
+
! is_main_site() && $net_settings['multisite__white_label'] ? 'anti-spam-hosting' : 'antispam'
|
484 |
);
|
485 |
|
486 |
if( empty( $result['error'] ) || ! empty( $result['valid'] ) ){
|
748 |
$apbct->stats['sfw']['sending_logs__timestamp'] = 0;
|
749 |
$apbct->save('stats');
|
750 |
|
751 |
+
}
|
752 |
+
|
753 |
+
function apbct_update_to_5_154_0(){
|
754 |
+
|
755 |
+
global $apbct, $wpdb;
|
756 |
+
|
757 |
+
// Old setting name => New setting name
|
758 |
+
$keys_map = array(
|
759 |
+
'spam_firewall' => 'sfw__enabled',
|
760 |
+
'registrations_test' => 'forms__registrations_test',
|
761 |
+
'comments_test' => 'forms__comments_test',
|
762 |
+
'contact_forms_test' => 'forms__contact_forms_test',
|
763 |
+
'general_contact_forms_test' => 'forms__general_contact_forms_test',
|
764 |
+
'wc_checkout_test' => 'forms__wc_checkout_test',
|
765 |
+
'wc_register_from_order' => 'forms__wc_register_from_order',
|
766 |
+
'search_test' => 'forms__search_test',
|
767 |
+
'check_external' => 'forms__check_external',
|
768 |
+
'check_external__capture_buffer' => 'forms__check_external__capture_buffer',
|
769 |
+
'check_internal' => 'forms__check_internal',
|
770 |
+
'disable_comments__all' => 'comments__disable_comments__all',
|
771 |
+
'disable_comments__posts' => 'comments__disable_comments__posts',
|
772 |
+
'disable_comments__pages' => 'comments__disable_comments__pages',
|
773 |
+
'disable_comments__media' => 'comments__disable_comments__media',
|
774 |
+
'bp_private_messages' => 'comments__bp_private_messages',
|
775 |
+
'check_comments_number' => 'comments__check_comments_number',
|
776 |
+
'remove_old_spam' => 'comments__remove_old_spam',
|
777 |
+
'remove_comments_links' => 'comments__remove_comments_links',
|
778 |
+
'show_check_links' => 'comments__show_check_links',
|
779 |
+
'manage_comments_on_public_page' => 'comments__manage_comments_on_public_page',
|
780 |
+
'protect_logged_in' => 'data__protect_logged_in',
|
781 |
+
'use_ajax' => 'data__use_ajax',
|
782 |
+
'use_static_js_key' => 'data__use_static_js_key',
|
783 |
+
'general_postdata_test' => 'data__general_postdata_test',
|
784 |
+
'set_cookies' => 'data__set_cookies',
|
785 |
+
'set_cookies__sessions' => 'data__set_cookies__sessions',
|
786 |
+
'ssl_on' => 'data__ssl_on',
|
787 |
+
'show_adminbar' => 'admin_bar__show',
|
788 |
+
'all_time_counter' => 'admin_bar__all_time_counter',
|
789 |
+
'daily_counter' => 'admin_bar__daily_counter',
|
790 |
+
'sfw_counter' => 'admin_bar__sfw_counter',
|
791 |
+
'gdpr_enabled' => 'gdpr__enabled',
|
792 |
+
'gdpr_text' => 'gdpr__text',
|
793 |
+
'collect_details' => 'misc__collect_details',
|
794 |
+
'send_connection_reports' => 'misc__send_connection_reports',
|
795 |
+
'async_js' => 'misc__async_js',
|
796 |
+
'debug_ajax' => 'misc__debug_ajax',
|
797 |
+
'store_urls' => 'misc__store_urls',
|
798 |
+
'store_urls__sessions' => 'misc__store_urls__sessions',
|
799 |
+
'complete_deactivation' => 'misc__complete_deactivation',
|
800 |
+
'use_buitin_http_api' => 'wp__use_builtin_http_api',
|
801 |
+
'comment_notify' => 'wp__comment_notify',
|
802 |
+
'comment_notify__roles' => 'wp__comment_notify__roles',
|
803 |
+
'dashboard_widget__show' => 'wp__dashboard_widget__show',
|
804 |
+
'allow_custom_key' => 'multisite__allow_custom_key',
|
805 |
+
'allow_custom_settings' => 'multisite__allow_custom_settings',
|
806 |
+
'white_label' => 'multisite__white_label',
|
807 |
+
'white_label__hoster_key' => 'multisite__white_label__hoster_key',
|
808 |
+
'white_label__plugin_name' => 'multisite__white_label__plugin_name',
|
809 |
+
'use_settings_template' => 'multisite__use_settings_template',
|
810 |
+
'use_settings_template_apply_for_new' => 'multisite__use_settings_template_apply_for_new',
|
811 |
+
'use_settings_template_apply_for_current' => 'multisite__use_settings_template_apply_for_current',
|
812 |
+
'use_settings_template_apply_for_current_list_sites' => 'multisite__use_settings_template_apply_for_current_list_sites',
|
813 |
+
);
|
814 |
+
|
815 |
+
if( is_multisite() ){
|
816 |
+
|
817 |
+
$network_settings = get_site_option( 'cleantalk_network_settings' );
|
818 |
+
|
819 |
+
if( $network_settings ) {
|
820 |
+
// replacing old key to new keys
|
821 |
+
foreach( $network_settings as $key => $value ){
|
822 |
+
if( array_key_exists( $key, $keys_map ) ) {
|
823 |
+
$_network_settings[$keys_map[$key]] = $value;
|
824 |
+
} else {
|
825 |
+
$_network_settings[$key] = $value;
|
826 |
+
}
|
827 |
+
}
|
828 |
+
update_site_option( 'cleantalk_network_settings', $_network_settings );
|
829 |
+
}
|
830 |
+
|
831 |
+
$initial_blog = get_current_blog_id();
|
832 |
+
$blogs = array_keys( $wpdb->get_results( 'SELECT blog_id FROM '. $wpdb->blogs, OBJECT_K ) );
|
833 |
+
foreach ( $blogs as $blog ) {
|
834 |
+
switch_to_blog( $blog );
|
835 |
+
|
836 |
+
$settings = get_option( 'cleantalk_settings' );
|
837 |
+
|
838 |
+
if( $settings ) {
|
839 |
+
// replacing old key to new keys
|
840 |
+
foreach( $settings as $key => $value ){
|
841 |
+
if( array_key_exists( $key, $keys_map ) ) {
|
842 |
+
$_settings[$keys_map[$key]] = $value;
|
843 |
+
} else {
|
844 |
+
$_settings[$key] = $value;
|
845 |
+
}
|
846 |
+
}
|
847 |
+
update_option( 'cleantalk_settings', $_settings );
|
848 |
+
}
|
849 |
+
|
850 |
+
}
|
851 |
+
switch_to_blog( $initial_blog );
|
852 |
+
|
853 |
+
} else {
|
854 |
+
|
855 |
+
$apbct->data['current_settings_template_id'] = null;
|
856 |
+
$apbct->data['current_settings_template_name'] = null;
|
857 |
+
$apbct->saveData();
|
858 |
+
|
859 |
+
$settings = (array) $apbct->settings;
|
860 |
+
|
861 |
+
if( $settings ) {
|
862 |
+
// replacing old key to new keys
|
863 |
+
foreach( $settings as $key => $value ){
|
864 |
+
if( array_key_exists( $key, $keys_map ) ) {
|
865 |
+
$_settings[$keys_map[$key]] = $value;
|
866 |
+
} else {
|
867 |
+
$_settings[$key] = $value;
|
868 |
+
}
|
869 |
+
}
|
870 |
+
|
871 |
+
$apbct->settings = $_settings;
|
872 |
+
$apbct->saveSettings();
|
873 |
+
}
|
874 |
+
|
875 |
+
}
|
876 |
+
|
877 |
+
$sqls[] = 'DROP TABLE IF EXISTS `%scleantalk_sfw_logs`;';
|
878 |
+
|
879 |
+
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw_logs` (
|
880 |
+
`id` VARCHAR(40) NOT NULL,
|
881 |
+
`ip` VARCHAR(15) NOT NULL,
|
882 |
+
`status` ENUM(\'PASS_SFW\',\'DENY_SFW\',\'PASS_SFW__BY_WHITELIST\',\'PASS_SFW__BY_COOKIE\',\'DENY_ANTICRAWLER\',\'PASS_ANTICRAWLER\',\'DENY_ANTICRAWLER_UA\',\'PASS_ANTICRAWLER_UA\',\'DENY_ANTIFLOOD\',\'PASS_ANTIFLOOD\',\'DENY_ANTIFLOOD_UA\',\'PASS_ANTIFLOOD_UA\') NULL DEFAULT NULL,
|
883 |
+
`all_entries` INT NOT NULL,
|
884 |
+
`blocked_entries` INT NOT NULL,
|
885 |
+
`entries_timestamp` INT NOT NULL,
|
886 |
+
`ua_id` INT(11) NULL DEFAULT NULL,
|
887 |
+
`ua_name` VARCHAR(1024) NOT NULL,
|
888 |
+
PRIMARY KEY (`id`));';
|
889 |
+
|
890 |
+
apbct_activation__create_tables( $sqls, $apbct->db_prefix );
|
891 |
+
|
892 |
}
|
@@ -1,2 +1,2 @@
|
|
1 |
-
function ctSetCookie(e,t){document.cookie=e+"="+encodeURIComponent(t)+"; path=/; samesite=lax"}function apbct_collect_visible_fields(e){var t
|
2 |
//# sourceMappingURL=apbct-public.min.js.map
|
1 |
+
function ctSetCookie(e,t){document.cookie=e+"="+encodeURIComponent(t)+"; path=/; samesite=lax"}function apbct_collect_visible_fields(e){var t=[],o="",n=0,i=[];for(var a in e.elements)isNaN(+a)||(t[a]=e.elements[a]);return(t=t.filter(function(e){return"none"!==getComputedStyle(e).display&&"hidden"!==getComputedStyle(e).visibility&&"0"!==getComputedStyle(e).opacity&&"hidden"!==e.getAttribute("type")&&"submit"!==e.getAttribute("type")&&null!==e.getAttribute("name")&&-1===i.indexOf(e.getAttribute("name"))&&(n++,-1===["radio","checkbox"].indexOf(e.getAttribute("type"))||(i.push(e.getAttribute("name")),!1))})).forEach(function(e,t,n){o+=" "+e.getAttribute("name")}),{visible_fields:o=o.trim(),visible_fields_count:n}}function apbct_visible_fields_set_cookie(e){var t="object"==typeof e&&null!==e?e:{};ctSetCookie("apbct_visible_fields",JSON.stringify(t))}function apbct_js_keys__set_input_value(e,t,n,o){var i;null!==document.getElementById(n.input_name)&&(i=document.getElementById(n.input_name).value,document.getElementById(n.input_name).value=document.getElementById(n.input_name).value.replace(i,e.js_key))}function apbct_public_sendAJAX(t,n,o){var i=n.callback||null,a=n.callback_context||null,c=n.callback_params||null,e=n.async||!0,s=n.notJson||null,l=n.timeout||15e3,o=o||null,r=n.button||null,u=n.spinner||null,p=n.progressbar||null,d=n.silent||null,m=n.no_nonce||null;"string"==typeof t?(m||(t=t+"&_ajax_nonce="+ctPublic._ajax_nonce),t=t+"&no_cache="+Math.random()):(m||(t._ajax_nonce=ctPublic._ajax_nonce),t.no_cache=Math.random()),r&&(r.setAttribute("disabled","disabled"),r.style.cursor="not-allowed"),u&&jQuery(u).css("display","inline"),jQuery.ajax({type:"POST",url:ctPublic._ajax_url,data:t,async:e,success:function(e){r&&(r.removeAttribute("disabled"),r.style.cursor="pointer"),u&&jQuery(u).css("display","none"),s||(e=JSON.parse(e)),e.error?(setTimeout(function(){p&&p.fadeOut("slow")},1e3),alert("Error happens: "+(e.error||"Unkown"))):i&&(c?i.apply(a,c.concat(e,t,n,o)):i(e,t,n,o))},error:function(e,t,n){r&&(r.removeAttribute("disabled"),r.style.cursor="pointer"),u&&jQuery(u).css("display","none"),n&&!d&&(console.log("APBCT_AJAX_ERROR"),console.log(e),console.log(t),console.log("Anti-spam by Cleantalk plugin error: "+n+"Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/"),alert("Anti-spam by Cleantalk plugin error: "+n+"Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/"))},timeout:l})}!function(){var e=new Date,t=(new Date).getTime(),n=!0,o=[],i=0;function a(e,t,n){"function"==typeof window.addEventListener?e.addEventListener(t,n):e.attachEvent(t,n)}function c(e,t,n){"function"==typeof window.removeEventListener?e.removeEventListener(t,n):e.detachEvent(t,n)}ctSetCookie("ct_ps_timestamp",Math.floor((new Date).getTime()/1e3)),ctSetCookie("ct_fkp_timestamp","0"),ctSetCookie("ct_pointer_data","0"),ctSetCookie("ct_timezone","0"),setTimeout(function(){ctSetCookie("ct_timezone",e.getTimezoneOffset()/60*-1)},1e3);var s=function(){ctSetCookie("ct_fkp_timestamp",Math.floor((new Date).getTime()/1e3)),c(window,"mousedown",s),c(window,"keydown",s)},l=setInterval(function(){n=!0},150),r=setInterval(function(){ctSetCookie("ct_pointer_data",JSON.stringify(o))},1200),u=function(e){!0===n&&(o.push([Math.round(e.clientY),Math.round(e.clientX),Math.round((new Date).getTime()-t)]),n=!1,50<=++i&&(c(window,"mousemove",u),clearInterval(l),clearInterval(r)))};a(window,"mousemove",u),a(window,"mousedown",s),a(window,"keydown",s),a(window,"DOMContentLoaded",function(){ctSetCookie("apbct_visible_fields",0),setTimeout(function(){for(var e={},t=0;t<document.forms.length;t++){var n=document.forms[t];n.classList.contains("slp_search_form")||n.parentElement.classList.contains("mec-booking")||-1!==n.action.toString().indexOf("activehosted.com")||n.id&&"caspioform"==n.id||n.name.classList&&n.name.classList.contains("tinkoffPayRow")||(e[t]=apbct_collect_visible_fields(n),n.onsubmit_prev=n.onsubmit,n.onsubmit=function(e){var t={};t[0]=apbct_collect_visible_fields(this),apbct_visible_fields_set_cookie(t),e.target.onsubmit_prev instanceof Function&&setTimeout(function(){e.target.onsubmit_prev.call(e.target,e)},500)})}apbct_visible_fields_set_cookie(e)},1e3)})}();var accessor=Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype,"responseText");Object.defineProperty(XMLHttpRequest.prototype,"responseText",{get:function(){return apbct_showBlockedResponse(this.response),accessor.get.call(this)},configurable:!0}),apbct_parseJSON=function(e){try{var t=JSON.parse(e)}catch(e){return!1}return t},apbct_showBlockedResponse=function(e){return(e=apbct_parseJSON(e))&&void 0!==e.apbct&&(e=e.apbct).blocked&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:e.comment}})),cleantalkModal.loaded=e.comment,cleantalkModal.open(),1==+e.stop_script&&window.stop()),!0};
|
2 |
//# sourceMappingURL=apbct-public.min.js.map
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"apbct-public.min.js","sources":["apbct-public.js"],"sourcesContent":["(function() {\n\n\tvar ct_date = new Date(),\n\t\tctTimeMs = new Date().getTime(),\n\t\tctMouseEventTimerFlag = true, //Reading interval flag\n\t\tctMouseData = [],\n\t\tctMouseDataCounter = 0;\n\n\tfunction apbct_attach_event_handler(elem, event, callback){\n\t\tif(typeof window.addEventListener === \"function\") elem.addEventListener(event, callback);\n\t\telse elem.attachEvent(event, callback);\n\t}\n\n\tfunction apbct_remove_event_handler(elem, event, callback){\n\t\tif(typeof window.removeEventListener === \"function\") elem.removeEventListener(event, callback);\n\t\telse elem.detachEvent(event, callback);\n\t}\n\n\tctSetCookie(\"ct_ps_timestamp\", Math.floor(new Date().getTime()/1000));\n\tctSetCookie(\"ct_fkp_timestamp\", \"0\");\n\tctSetCookie(\"ct_pointer_data\", \"0\");\n\tctSetCookie(\"ct_timezone\", \"0\");\n\n\tsetTimeout(function(){\n\t\tctSetCookie(\"ct_timezone\", ct_date.getTimezoneOffset()/60*(-1));\n\t},1000);\n\n\t//Writing first key press timestamp\n\tvar ctFunctionFirstKey = function output(event){\n\t\tvar KeyTimestamp = Math.floor(new Date().getTime()/1000);\n\t\tctSetCookie(\"ct_fkp_timestamp\", KeyTimestamp);\n\t\tctKeyStopStopListening();\n\t};\n\n\t//Reading interval\n\tvar ctMouseReadInterval = setInterval(function(){\n\t\tctMouseEventTimerFlag = true;\n\t}, 150);\n\n\t//Writting interval\n\tvar ctMouseWriteDataInterval = setInterval(function(){\n\t\tctSetCookie(\"ct_pointer_data\", JSON.stringify(ctMouseData));\n\t}, 1200);\n\n\t//Logging mouse position each 150 ms\n\tvar ctFunctionMouseMove = function output(event){\n\t\tif(ctMouseEventTimerFlag === true){\n\n\t\t\tctMouseData.push([\n\t\t\t\tMath.round(event.clientY),\n\t\t\t\tMath.round(event.clientX),\n\t\t\t\tMath.round(new Date().getTime() - ctTimeMs)\n\t\t\t]);\n\n\t\t\tctMouseDataCounter++;\n\t\t\tctMouseEventTimerFlag = false;\n\t\t\tif(ctMouseDataCounter >= 50){\n\t\t\t\tctMouseStopData();\n\t\t\t}\n\t\t}\n\t};\n\n\t//Stop mouse observing function\n\tfunction ctMouseStopData(){\n\t\tapbct_remove_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\t\tclearInterval(ctMouseReadInterval);\n\t\tclearInterval(ctMouseWriteDataInterval);\n\t}\n\n\t//Stop key listening function\n\tfunction ctKeyStopStopListening(){\n\t\tapbct_remove_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\t\tapbct_remove_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\t}\n\n\tapbct_attach_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\tapbct_attach_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\tapbct_attach_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\n\t// Ready function\n\tfunction apbct_ready(){\n\n\t\tctSetCookie(\"apbct_visible_fields\", 0);\n\n\t\tsetTimeout(function(){\n\n\t\t\tvar visible_fields_collection = {};\n\n\t\t\tfor(var i = 0; i < document.forms.length; i++){\n\t\t\t\tvar form = document.forms[i];\n\n\t\t\t\t//Exclusion for forms\n\t\t\t\tif (\n\t\t\t\t\tform.classList.contains('slp_search_form') || //StoreLocatorPlus form\n\t\t\t\t\tform.parentElement.classList.contains('mec-booking') ||\n\t\t\t\t\tform.action.toString().indexOf('activehosted.com') !== -1 || // Active Campaign\n\t\t\t\t\t(form.id && form.id == 'caspioform') || //Caspio Form\n\t\t\t\t\tform.name.classList && form.name.classList.contains('tinkoffPayRow') //TinkoffPayForm\n\t\t\t\t)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tvisible_fields_collection[i] = apbct_collect_visible_fields( form );\n\n\t\t\t\tform.onsubmit_prev = form.onsubmit;\n\t\t\t\tform.onsubmit = function (event) {\n\n\t\t\t\t\tvar visible_fields = {};\n\t\t\t\t\tvisible_fields[0] = apbct_collect_visible_fields(this);\n\t\t\t\t\tapbct_visible_fields_set_cookie( visible_fields );\n\n\t\t\t\t\t// Call previous submit action\n\t\t\t\t\tif (event.target.onsubmit_prev instanceof Function) {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tevent.target.onsubmit_prev.call(event.target, event);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tapbct_visible_fields_set_cookie( visible_fields_collection );\n\n\t\t}, 1000);\n\t}\n\tapbct_attach_event_handler(window, \"DOMContentLoaded\", apbct_ready);\n\n}());\n\nfunction ctSetCookie(c_name, value) {\n\tdocument.cookie = c_name + \"=\" + encodeURIComponent(value) + \"; path=/; samesite=lax\";\n}\n\nfunction apbct_collect_visible_fields( form ) {\n\n\t// Get only fields\n\tvar inputs = [],\n\t\tinputs_visible = '',\n\t\tinputs_visible_count = 0,\n\t\tinputs_with_duplicate_names = [];\n\n\tfor(var key in form.elements){\n\t\tif(!isNaN(+key))\n\t\t\tinputs[key] = form.elements[key];\n\t}\n\n\t// Filter fields\n\tinputs = inputs.filter(function(elem){\n\n\t\t// Filter fields\n\t\tif( getComputedStyle(elem).display === \"none\" || // hidden\n\t\t\tgetComputedStyle(elem).visibility === \"hidden\" || // hidden\n\t\t\tgetComputedStyle(elem).opacity === \"0\" || // hidden\n\t\t\telem.getAttribute(\"type\") === \"hidden\" || // type == hidden\n\t\t\telem.getAttribute(\"type\") === \"submit\" || // type == submit\n\t\t\t//elem.value === \"\" || // empty value\n\t\t\telem.getAttribute('name') === null ||\n\t\t\tinputs_with_duplicate_names.indexOf( elem.getAttribute('name') ) !== -1 // name already added\n\t\t){\n\t\t\treturn false;\n\t\t}\n\n\t\t// Visible fields count\n\t\tinputs_visible_count++;\n\n\t\t// Filter inputs with same names for type == radio\n\t\tif( -1 !== ['radio', 'checkbox'].indexOf( elem.getAttribute(\"type\") )){\n\t\t\tinputs_with_duplicate_names.push( elem.getAttribute('name') );\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t});\n\n\t// Visible fields\n\tinputs.forEach(function(elem, i, elements){\n\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t});\n\tinputs_visible = inputs_visible.trim();\n\n\treturn {\n\t\tvisible_fields : inputs_visible,\n\t\tvisible_fields_count : inputs_visible_count,\n\t}\n\n}\n\nfunction apbct_visible_fields_set_cookie( visible_fields_collection ) {\n\n\tvar collection = typeof visible_fields_collection === 'object' && visible_fields_collection !== null ? visible_fields_collection : {};\n\n\tctSetCookie(\"apbct_visible_fields\", JSON.stringify( collection ) );\n\n}\n\nfunction apbct_js_keys__set_input_value(result, data, params, obj){\n\tif (document.getElementById(params.input_name) !== null) {\n\t\tvar ct_input_value = document.getElementById(params.input_name).value;\n\t\tdocument.getElementById(params.input_name).value = document.getElementById(params.input_name).value.replace(ct_input_value, result.js_key);\n\t}\n}\nfunction apbct_public_sendAJAX(data, params, obj){\n\n\t// Default params\n\tvar callback = params.callback || null;\n\tvar callback_context = params.callback_context || null;\n\tvar callback_params = params.callback_params || null;\n\tvar async = params.async || true;\n\tvar notJson = params.notJson || null;\n\tvar timeout = params.timeout || 15000;\n\tvar obj = obj || null;\n\tvar button = params.button || null;\n\tvar spinner = params.spinner || null;\n\tvar progressbar = params.progressbar || null;\n\tvar silent = params.silent || null;\n\tvar no_nonce = params.no_nonce || null;\n\n\tif(typeof (data) === 'string') {\n\t\tif( ! no_nonce )\n\t\t\tdata = data + '&_ajax_nonce=' + ctPublic._ajax_nonce;\n\t\tdata = data + '&no_cache=' + Math.random()\n\t} else {\n\t\tif( ! no_nonce )\n\t\t\tdata._ajax_nonce = ctPublic._ajax_nonce;\n\t\tdata.no_cache = Math.random();\n\t}\n\t// Button and spinner\n\tif(button) {button.setAttribute('disabled', 'disabled'); button.style.cursor = 'not-allowed'; }\n\tif(spinner) jQuery(spinner).css('display', 'inline');\n\n\tjQuery.ajax({\n\t\ttype: \"POST\",\n\t\turl: ctPublic._ajax_url,\n\t\tdata: data,\n\t\tasync: async,\n\t\tsuccess: function(result){\n\t\t\tif(button){ button.removeAttribute('disabled'); button.style.cursor = 'pointer'; }\n\t\t\tif(spinner) jQuery(spinner).css('display', 'none');\n\t\t\tif(!notJson) result = JSON.parse(result);\n\t\t\tif(result.error){\n\t\t\t\tsetTimeout(function(){ if(progressbar) progressbar.fadeOut('slow'); }, 1000);\n\t\t\t\talert('Error happens: ' + (result.error || 'Unkown'));\n\t\t\t}else{\n\t\t\t\tif(callback) {\n\t\t\t\t\tif (callback_params)\n\t\t\t\t\t\tcallback.apply( callback_context, callback_params.concat( result, data, params, obj ) );\n\t\t\t\t\telse\n\t\t\t\t\t\tcallback(result, data, params, obj);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\terror: function(jqXHR, textStatus, errorThrown){\n\t\t\tif(button){ button.removeAttribute('disabled'); button.style.cursor = 'pointer'; }\n\t\t\tif(spinner) jQuery(spinner).css('display', 'none');\n\t\t\tif( errorThrown && ! silent ) {\n\t\t\t\tconsole.log('APBCT_AJAX_ERROR');\n\t\t\t\tconsole.log(jqXHR);\n\t\t\t\tconsole.log(textStatus);\n\t\t\t\tconsole.log('Anti-spam by Cleantalk plugin error: ' + errorThrown + 'Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/');\n\t\t\t\talert('Anti-spam by Cleantalk plugin error: ' + errorThrown + 'Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/');\n\t\t\t}\n\t\t},\n\t\ttimeout: timeout,\n\t});\n}\n\n// Capturing responses and output block message for unknown AJAX forms\nvar accessor = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'responseText');\nObject.defineProperty(XMLHttpRequest.prototype, 'responseText', {\n\n\tget: function(){\n\t\tapbct_showBlockedResponse( this.response );\n\t\treturn accessor.get.call(this);\n\t},\n\tconfigurable: true\n\n});\n\napbct_parseJSON = function( string ){\n\ttry{\n\t\tvar result = JSON.parse( string );\n\t}catch( e ){\n\t\treturn false;\n\t}\n\treturn result;\n};\n\napbct_showBlockedResponse = function( response ){\n\n\tvar response = apbct_parseJSON( response );\n\n\tif ( response && typeof response.apbct !== 'undefined' ) {\n\t\tresponse = response.apbct;\n\t\tif (response.blocked) {\n\t\t\tdocument.dispatchEvent(\n\t\t\t\tnew CustomEvent( \"apbctAjaxBockAlert\", {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tdetail: { message: response.comment }\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\t// Create hidden element contains result.\n\t\t\tvar apbct_result = document.createElement( 'div' );\n\t\t\tapbct_result.setAttribute( 'id', 'apbct-result' );\n\t\t\tapbct_result.style.display = 'none';\n\t\t\tapbct_result.innerHTML = response.comment;\n\t\t\tdocument.body.append( apbct_result );\n\n\t\t\t// Show the element\n\t\t\tcleantalkModal.open('apbct-result');\n\n\t\t\tif(+response.stop_script == 1)\n\t\t\t\twindow.stop();\n\t\t}\n\t}\n\n\treturn true;\n\n};"],"names":["ctSetCookie","c_name","value","document","cookie","encodeURIComponent","apbct_collect_visible_fields","form","key","inputs","inputs_visible","inputs_visible_count","inputs_with_duplicate_names","elements","isNaN","filter","elem","getComputedStyle","display","visibility","opacity","getAttribute","indexOf","push","forEach","i","visible_fields","trim","visible_fields_count","apbct_visible_fields_set_cookie","visible_fields_collection","collection","JSON","stringify","apbct_js_keys__set_input_value","result","data","params","obj","ct_input_value","getElementById","input_name","replace","js_key","apbct_public_sendAJAX","callback","callback_context","callback_params","async","notJson","timeout","button","spinner","progressbar","silent","no_nonce","ctPublic","_ajax_nonce","Math","random","no_cache","setAttribute","style","cursor","jQuery","css","ajax","type","url","_ajax_url","success","removeAttribute","parse","error","setTimeout","fadeOut","alert","apply","concat","jqXHR","textStatus","errorThrown","console","log","ct_date","Date","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","apbct_attach_event_handler","event","window","addEventListener","attachEvent","apbct_remove_event_handler","removeEventListener","detachEvent","floor","getTimezoneOffset","ctFunctionFirstKey","ctMouseReadInterval","setInterval","ctMouseWriteDataInterval","ctFunctionMouseMove","round","clientY","clientX","clearInterval","forms","length","classList","contains","parentElement","action","toString","id","name","onsubmit_prev","onsubmit","this","target","Function","call","accessor","Object","getOwnPropertyDescriptor","XMLHttpRequest","prototype","defineProperty","get","apbct_showBlockedResponse","response","configurable","apbct_parseJSON","string","e","apbct_result","apbct","blocked","dispatchEvent","CustomEvent","bubbles","detail","message","comment","createElement","innerHTML","body","append","cleantalkModal","open","stop_script","stop"],"mappings":"AA+HA,SAASA,YAAYC,EAAQC,GAC5BC,SAASC,OAASH,EAAS,IAAMI,mBAAmBH,GAAS,yBAG9D,SAASI,6BAA8BC,GAGtC,IAKQC,EALJC,EAAS,GACZC,EAAiB,GACjBC,EAAuB,EACvBC,EAA8B,GAE/B,IAAQJ,KAAOD,EAAKM,SACfC,OAAON,KACVC,EAAOD,GAAOD,EAAKM,SAASL,IAqC9B,OAjCAC,EAASA,EAAOM,OAAO,SAASC,GAG/B,MAA0C,SAAtCC,iBAAiBD,GAAME,SACY,WAAtCD,iBAAiBD,GAAMG,YACe,MAAtCF,iBAAiBD,GAAMI,SACe,WAAtCJ,EAAKK,aAAa,SACoB,WAAtCL,EAAKK,aAAa,SAEoB,OAAtCL,EAAKK,aAAa,UACoD,IAAtET,EAA4BU,QAASN,EAAKK,aAAa,WAMxDV,KAGK,IAAM,CAAC,QAAS,YAAYW,QAASN,EAAKK,aAAa,WAC3DT,EAA4BW,KAAMP,EAAKK,aAAa,UAC7C,OAOFG,QAAQ,SAASR,EAAMS,EAAGZ,GAChCH,GAAkB,IAAMM,EAAKK,aAAa,UAIpC,CACNK,eAHDhB,EAAiBA,EAAeiB,OAI/BC,qBAAuBjB,GAKzB,SAASkB,gCAAiCC,GAErCC,EAAkD,iBAA9BD,GAAwE,OAA9BA,EAAsCA,EAA4B,GAEpI9B,YAAY,uBAAwBgC,KAAKC,UAAWF,IAIrD,SAASG,+BAA+BC,EAAQC,EAAMC,EAAQC,GAC7D,IACKC,EAD8C,OAA/CpC,SAASqC,eAAeH,EAAOI,cAC9BF,EAAiBpC,SAASqC,eAAeH,EAAOI,YAAYvC,MAChEC,SAASqC,eAAeH,EAAOI,YAAYvC,MAAQC,SAASqC,eAAeH,EAAOI,YAAYvC,MAAMwC,QAAQH,EAAgBJ,EAAOQ,SAGrI,SAASC,sBAAsBR,EAAMC,EAAQC,GAG5C,IAAIO,EAAcR,EAAOQ,UAAe,KACpCC,EAAmBT,EAAOS,kBAAoB,KAC9CC,EAAkBV,EAAOU,iBAAmB,KAC5CC,EAAQX,EAAOW,QAAS,EACxBC,EAAcZ,EAAOY,SAAe,KACpCC,EAAcb,EAAOa,SAAe,KACpCZ,EAAcA,GAAsB,KACpCa,EAAcd,EAAOc,QAAe,KACpCC,EAAcf,EAAOe,SAAe,KACpCC,EAAchB,EAAOgB,aAAe,KACpCC,EAAcjB,EAAOiB,QAAe,KACpCC,EAAclB,EAAOkB,UAAe,KAEnB,iBAAX,EAGTnB,GADCA,GADKmB,EACEnB,EAAO,gBAAkBoB,SAASC,YACnCrB,GAAO,aAAesB,KAAKC,UAE5BJ,IACLnB,EAAKqB,YAAcD,SAASC,aAC7BrB,EAAKwB,SAAWF,KAAKC,UAGnBR,IAAUA,EAAOU,aAAa,WAAY,YAAaV,EAAOW,MAAMC,OAAS,eAC7EX,GAASY,OAAOZ,GAASa,IAAI,UAAW,UAE3CD,OAAOE,KAAK,CACXC,KAAM,OACNC,IAAKZ,SAASa,UACdjC,KAAMA,EACNY,MAAOA,EACPsB,QAAS,SAASnC,GACdgB,IAAUA,EAAOoB,gBAAgB,YAAapB,EAAOW,MAAMC,OAAS,WACpEX,GAAUY,OAAOZ,GAASa,IAAI,UAAW,SAC/B9B,GAATc,EAAkBjB,KAAKwC,MAAMrC,GAC9BA,GAAOsC,OACTC,WAAW,WAAerB,GAAaA,EAAYsB,QAAQ,SAAY,KACvEC,MAAM,mBAAqBzC,EAAOsC,OAAS,YAExC5B,IACEE,EACHF,EAASgC,MAAO/B,EAAkBC,EAAgB+B,OAAQ3C,EAAQC,EAAMC,EAAQC,IAEhFO,EAASV,EAAQC,EAAMC,EAAQC,KAInCmC,MAAO,SAASM,EAAOC,EAAYC,GAC/B9B,IAAUA,EAAOoB,gBAAgB,YAAapB,EAAOW,MAAMC,OAAS,WACpEX,GAASY,OAAOZ,GAASa,IAAI,UAAW,QACvCgB,IAAiB3B,IACpB4B,QAAQC,IAAI,oBACZD,QAAQC,IAAIJ,GACZG,QAAQC,IAAIH,GACZE,QAAQC,IAAI,wCAA0CF,EAAc,uGACpEL,MAAM,wCAA0CK,EAAc,yGAGhE/B,QAASA,KApQV,WAEA,IAAIkC,EAAU,IAAIC,KACjBC,GAAW,IAAID,MAAOE,UACtBC,GAAwB,EACxBC,EAAc,GACdC,EAAqB,EAEtB,SAASC,EAA2B3E,EAAM4E,EAAO/C,GACV,mBAA5BgD,OAAOC,iBAAiC9E,EAAK8E,iBAAiBF,EAAO/C,GAC7B7B,EAAK+E,YAAYH,EAAO/C,GAG3E,SAASmD,EAA2BhF,EAAM4E,EAAO/C,GACP,mBAA/BgD,OAAOI,oBAAoCjF,EAAKiF,oBAAoBL,EAAO/C,GAChC7B,EAAKkF,YAAYN,EAAO/C,GAG9E7C,YAAY,kBAAmB0D,KAAKyC,OAAM,IAAId,MAAOE,UAAU,MAC/DvF,YAAY,mBAAoB,KAChCA,YAAY,kBAAmB,KAC/BA,YAAY,cAAe,KAE3B0E,WAAW,WACV1E,YAAY,cAAeoF,EAAQgB,oBAAoB,IAAK,IAC3D,KAGF,IAAIC,EAAqB,SAAgBT,GAExC5F,YAAY,mBADO0D,KAAKyC,OAAM,IAAId,MAAOE,UAAU,MA0CnDS,EAA2BH,OAAQ,YAAaQ,GAChDL,EAA2BH,OAAQ,UAAWQ,IArC3CC,EAAsBC,YAAY,WACrCf,GAAwB,GACtB,KAGCgB,EAA2BD,YAAY,WAC1CvG,YAAY,kBAAmBgC,KAAKC,UAAUwD,KAC5C,MAGCgB,EAAsB,SAAgBb,IACZ,IAA1BJ,IAEFC,EAAYlE,KAAK,CAChBmC,KAAKgD,MAAMd,EAAMe,SACjBjD,KAAKgD,MAAMd,EAAMgB,SACjBlD,KAAKgD,OAAM,IAAIrB,MAAOE,UAAYD,KAInCE,GAAwB,EACC,MAFzBE,IAUDM,EAA2BH,OAAQ,YAAaY,GAChDI,cAAcP,GACdO,cAAcL,MASfb,EAA2BE,OAAQ,YAAaY,GAChDd,EAA2BE,OAAQ,YAAaQ,GAChDV,EAA2BE,OAAQ,UAAWQ,GA8C9CV,EAA2BE,OAAQ,mBA3CnC,WAEC7F,YAAY,uBAAwB,GAEpC0E,WAAW,WAIV,IAFA,IAAI5C,EAA4B,GAExBL,EAAI,EAAGA,EAAItB,SAAS2G,MAAMC,OAAQtF,IAAI,CAC7C,IAAIlB,EAAOJ,SAAS2G,MAAMrF,GAIzBlB,EAAKyG,UAAUC,SAAS,oBACxB1G,EAAK2G,cAAcF,UAAUC,SAAS,iBACkB,IAAxD1G,EAAK4G,OAAOC,WAAW9F,QAAQ,qBAC9Bf,EAAK8G,IAAiB,cAAX9G,EAAK8G,IACjB9G,EAAK+G,KAAKN,WAAazG,EAAK+G,KAAKN,UAAUC,SAAS,mBAIrDnF,EAA0BL,GAAKnB,6BAA8BC,GAE7DA,EAAKgH,cAAgBhH,EAAKiH,SAC1BjH,EAAKiH,SAAW,SAAU5B,GAEzB,IAAIlE,EAAiB,GACrBA,EAAe,GAAKpB,6BAA6BmH,MACjD5F,gCAAiCH,GAG7BkE,EAAM8B,OAAOH,yBAAyBI,UACzCjD,WAAW,WACVkB,EAAM8B,OAAOH,cAAcK,KAAKhC,EAAM8B,OAAQ9B,IAC5C,OAKN/D,gCAAiCC,IAE/B,OAzHL,GAyQA,IAAI+F,SAAWC,OAAOC,yBAAyBC,eAAeC,UAAW,gBACzEH,OAAOI,eAAeF,eAAeC,UAAW,eAAgB,CAE/DE,IAAK,WAEJ,OADAC,0BAA2BX,KAAKY,UACzBR,SAASM,IAAIP,KAAKH,OAE1Ba,cAAc,IAIfC,gBAAkB,SAAUC,GAC3B,IACC,IAAIrG,EAASH,KAAKwC,MAAOgE,GACzB,MAAOC,GACP,OAAO,EAER,OAAOtG,GAGRiG,0BAA4B,SAAUC,GAErC,IAaMK,EAcN,OA3BIL,EAAWE,gBAAiBF,UAEW,IAAnBA,EAASM,QAChCN,EAAWA,EAASM,OACPC,UACZzI,SAAS0I,cACR,IAAIC,YAAa,qBAAsB,CACtCC,SAAS,EACTC,OAAQ,CAAEC,QAASZ,EAASa,aAK1BR,EAAevI,SAASgJ,cAAe,QAC9BtF,aAAc,KAAM,gBACjC6E,EAAa5E,MAAM5C,QAAU,OAC7BwH,EAAaU,UAAYf,EAASa,QAClC/I,SAASkJ,KAAKC,OAAQZ,GAGtBa,eAAeC,KAAK,gBAEQ,IAAxBnB,EAASoB,aACZ5D,OAAO6D,SAIH"}
|
1 |
+
{"version":3,"file":"apbct-public.min.js","sources":["apbct-public.js"],"sourcesContent":["(function() {\n\n\tvar ct_date = new Date(),\n\t\tctTimeMs = new Date().getTime(),\n\t\tctMouseEventTimerFlag = true, //Reading interval flag\n\t\tctMouseData = [],\n\t\tctMouseDataCounter = 0;\n\n\tfunction apbct_attach_event_handler(elem, event, callback){\n\t\tif(typeof window.addEventListener === \"function\") elem.addEventListener(event, callback);\n\t\telse elem.attachEvent(event, callback);\n\t}\n\n\tfunction apbct_remove_event_handler(elem, event, callback){\n\t\tif(typeof window.removeEventListener === \"function\") elem.removeEventListener(event, callback);\n\t\telse elem.detachEvent(event, callback);\n\t}\n\n\tctSetCookie(\"ct_ps_timestamp\", Math.floor(new Date().getTime()/1000));\n\tctSetCookie(\"ct_fkp_timestamp\", \"0\");\n\tctSetCookie(\"ct_pointer_data\", \"0\");\n\tctSetCookie(\"ct_timezone\", \"0\");\n\n\tsetTimeout(function(){\n\t\tctSetCookie(\"ct_timezone\", ct_date.getTimezoneOffset()/60*(-1));\n\t},1000);\n\n\t//Writing first key press timestamp\n\tvar ctFunctionFirstKey = function output(event){\n\t\tvar KeyTimestamp = Math.floor(new Date().getTime()/1000);\n\t\tctSetCookie(\"ct_fkp_timestamp\", KeyTimestamp);\n\t\tctKeyStopStopListening();\n\t};\n\n\t//Reading interval\n\tvar ctMouseReadInterval = setInterval(function(){\n\t\tctMouseEventTimerFlag = true;\n\t}, 150);\n\n\t//Writting interval\n\tvar ctMouseWriteDataInterval = setInterval(function(){\n\t\tctSetCookie(\"ct_pointer_data\", JSON.stringify(ctMouseData));\n\t}, 1200);\n\n\t//Logging mouse position each 150 ms\n\tvar ctFunctionMouseMove = function output(event){\n\t\tif(ctMouseEventTimerFlag === true){\n\n\t\t\tctMouseData.push([\n\t\t\t\tMath.round(event.clientY),\n\t\t\t\tMath.round(event.clientX),\n\t\t\t\tMath.round(new Date().getTime() - ctTimeMs)\n\t\t\t]);\n\n\t\t\tctMouseDataCounter++;\n\t\t\tctMouseEventTimerFlag = false;\n\t\t\tif(ctMouseDataCounter >= 50){\n\t\t\t\tctMouseStopData();\n\t\t\t}\n\t\t}\n\t};\n\n\t//Stop mouse observing function\n\tfunction ctMouseStopData(){\n\t\tapbct_remove_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\t\tclearInterval(ctMouseReadInterval);\n\t\tclearInterval(ctMouseWriteDataInterval);\n\t}\n\n\t//Stop key listening function\n\tfunction ctKeyStopStopListening(){\n\t\tapbct_remove_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\t\tapbct_remove_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\t}\n\n\tapbct_attach_event_handler(window, \"mousemove\", ctFunctionMouseMove);\n\tapbct_attach_event_handler(window, \"mousedown\", ctFunctionFirstKey);\n\tapbct_attach_event_handler(window, \"keydown\", ctFunctionFirstKey);\n\n\t// Ready function\n\tfunction apbct_ready(){\n\n\t\tctSetCookie(\"apbct_visible_fields\", 0);\n\n\t\tsetTimeout(function(){\n\n\t\t\tvar visible_fields_collection = {};\n\n\t\t\tfor(var i = 0; i < document.forms.length; i++){\n\t\t\t\tvar form = document.forms[i];\n\n\t\t\t\t//Exclusion for forms\n\t\t\t\tif (\n\t\t\t\t\tform.classList.contains('slp_search_form') || //StoreLocatorPlus form\n\t\t\t\t\tform.parentElement.classList.contains('mec-booking') ||\n\t\t\t\t\tform.action.toString().indexOf('activehosted.com') !== -1 || // Active Campaign\n\t\t\t\t\t(form.id && form.id == 'caspioform') || //Caspio Form\n\t\t\t\t\tform.name.classList && form.name.classList.contains('tinkoffPayRow') //TinkoffPayForm\n\t\t\t\t)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tvisible_fields_collection[i] = apbct_collect_visible_fields( form );\n\n\t\t\t\tform.onsubmit_prev = form.onsubmit;\n\t\t\t\tform.onsubmit = function (event) {\n\n\t\t\t\t\tvar visible_fields = {};\n\t\t\t\t\tvisible_fields[0] = apbct_collect_visible_fields(this);\n\t\t\t\t\tapbct_visible_fields_set_cookie( visible_fields );\n\n\t\t\t\t\t// Call previous submit action\n\t\t\t\t\tif (event.target.onsubmit_prev instanceof Function) {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tevent.target.onsubmit_prev.call(event.target, event);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tapbct_visible_fields_set_cookie( visible_fields_collection );\n\n\t\t}, 1000);\n\t}\n\tapbct_attach_event_handler(window, \"DOMContentLoaded\", apbct_ready);\n\n}());\n\nfunction ctSetCookie(c_name, value) {\n\tdocument.cookie = c_name + \"=\" + encodeURIComponent(value) + \"; path=/; samesite=lax\";\n}\n\nfunction apbct_collect_visible_fields( form ) {\n\n\t// Get only fields\n\tvar inputs = [],\n\t\tinputs_visible = '',\n\t\tinputs_visible_count = 0,\n\t\tinputs_with_duplicate_names = [];\n\n\tfor(var key in form.elements){\n\t\tif(!isNaN(+key))\n\t\t\tinputs[key] = form.elements[key];\n\t}\n\n\t// Filter fields\n\tinputs = inputs.filter(function(elem){\n\n\t\t// Filter fields\n\t\tif( getComputedStyle(elem).display === \"none\" || // hidden\n\t\t\tgetComputedStyle(elem).visibility === \"hidden\" || // hidden\n\t\t\tgetComputedStyle(elem).opacity === \"0\" || // hidden\n\t\t\telem.getAttribute(\"type\") === \"hidden\" || // type == hidden\n\t\t\telem.getAttribute(\"type\") === \"submit\" || // type == submit\n\t\t\t//elem.value === \"\" || // empty value\n\t\t\telem.getAttribute('name') === null ||\n\t\t\tinputs_with_duplicate_names.indexOf( elem.getAttribute('name') ) !== -1 // name already added\n\t\t){\n\t\t\treturn false;\n\t\t}\n\n\t\t// Visible fields count\n\t\tinputs_visible_count++;\n\n\t\t// Filter inputs with same names for type == radio\n\t\tif( -1 !== ['radio', 'checkbox'].indexOf( elem.getAttribute(\"type\") )){\n\t\t\tinputs_with_duplicate_names.push( elem.getAttribute('name') );\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t});\n\n\t// Visible fields\n\tinputs.forEach(function(elem, i, elements){\n\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t});\n\tinputs_visible = inputs_visible.trim();\n\n\treturn {\n\t\tvisible_fields : inputs_visible,\n\t\tvisible_fields_count : inputs_visible_count,\n\t}\n\n}\n\nfunction apbct_visible_fields_set_cookie( visible_fields_collection ) {\n\n\tvar collection = typeof visible_fields_collection === 'object' && visible_fields_collection !== null ? visible_fields_collection : {};\n\n\tctSetCookie(\"apbct_visible_fields\", JSON.stringify( collection ) );\n\n}\n\nfunction apbct_js_keys__set_input_value(result, data, params, obj){\n\tif (document.getElementById(params.input_name) !== null) {\n\t\tvar ct_input_value = document.getElementById(params.input_name).value;\n\t\tdocument.getElementById(params.input_name).value = document.getElementById(params.input_name).value.replace(ct_input_value, result.js_key);\n\t}\n}\nfunction apbct_public_sendAJAX(data, params, obj){\n\n\t// Default params\n\tvar callback = params.callback || null;\n\tvar callback_context = params.callback_context || null;\n\tvar callback_params = params.callback_params || null;\n\tvar async = params.async || true;\n\tvar notJson = params.notJson || null;\n\tvar timeout = params.timeout || 15000;\n\tvar obj = obj || null;\n\tvar button = params.button || null;\n\tvar spinner = params.spinner || null;\n\tvar progressbar = params.progressbar || null;\n\tvar silent = params.silent || null;\n\tvar no_nonce = params.no_nonce || null;\n\n\tif(typeof (data) === 'string') {\n\t\tif( ! no_nonce )\n\t\t\tdata = data + '&_ajax_nonce=' + ctPublic._ajax_nonce;\n\t\tdata = data + '&no_cache=' + Math.random()\n\t} else {\n\t\tif( ! no_nonce )\n\t\t\tdata._ajax_nonce = ctPublic._ajax_nonce;\n\t\tdata.no_cache = Math.random();\n\t}\n\t// Button and spinner\n\tif(button) {button.setAttribute('disabled', 'disabled'); button.style.cursor = 'not-allowed'; }\n\tif(spinner) jQuery(spinner).css('display', 'inline');\n\n\tjQuery.ajax({\n\t\ttype: \"POST\",\n\t\turl: ctPublic._ajax_url,\n\t\tdata: data,\n\t\tasync: async,\n\t\tsuccess: function(result){\n\t\t\tif(button){ button.removeAttribute('disabled'); button.style.cursor = 'pointer'; }\n\t\t\tif(spinner) jQuery(spinner).css('display', 'none');\n\t\t\tif(!notJson) result = JSON.parse(result);\n\t\t\tif(result.error){\n\t\t\t\tsetTimeout(function(){ if(progressbar) progressbar.fadeOut('slow'); }, 1000);\n\t\t\t\talert('Error happens: ' + (result.error || 'Unkown'));\n\t\t\t}else{\n\t\t\t\tif(callback) {\n\t\t\t\t\tif (callback_params)\n\t\t\t\t\t\tcallback.apply( callback_context, callback_params.concat( result, data, params, obj ) );\n\t\t\t\t\telse\n\t\t\t\t\t\tcallback(result, data, params, obj);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\terror: function(jqXHR, textStatus, errorThrown){\n\t\t\tif(button){ button.removeAttribute('disabled'); button.style.cursor = 'pointer'; }\n\t\t\tif(spinner) jQuery(spinner).css('display', 'none');\n\t\t\tif( errorThrown && ! silent ) {\n\t\t\t\tconsole.log('APBCT_AJAX_ERROR');\n\t\t\t\tconsole.log(jqXHR);\n\t\t\t\tconsole.log(textStatus);\n\t\t\t\tconsole.log('Anti-spam by Cleantalk plugin error: ' + errorThrown + 'Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/');\n\t\t\t\talert('Anti-spam by Cleantalk plugin error: ' + errorThrown + 'Please, contact Cleantalk tech support https://wordpress.org/support/plugin/cleantalk-spam-protect/');\n\t\t\t}\n\t\t},\n\t\ttimeout: timeout,\n\t});\n}\n\n// Capturing responses and output block message for unknown AJAX forms\nvar accessor = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'responseText');\nObject.defineProperty(XMLHttpRequest.prototype, 'responseText', {\n\n\tget: function(){\n\t\tapbct_showBlockedResponse( this.response );\n\t\treturn accessor.get.call(this);\n\t},\n\tconfigurable: true\n\n});\n\napbct_parseJSON = function( string ){\n\ttry{\n\t\tvar result = JSON.parse( string );\n\t}catch( e ){\n\t\treturn false;\n\t}\n\treturn result;\n};\n\napbct_showBlockedResponse = function( response ){\n\n\tvar response = apbct_parseJSON( response );\n\n\tif ( response && typeof response.apbct !== 'undefined' ) {\n\t\tresponse = response.apbct;\n\t\tif (response.blocked) {\n\t\t\tdocument.dispatchEvent(\n\t\t\t\tnew CustomEvent( \"apbctAjaxBockAlert\", {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tdetail: { message: response.comment }\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\t// Show the result by modal\n\t\t\tcleantalkModal.loaded = response.comment;\n\t\t\tcleantalkModal.open();\n\n\t\t\tif(+response.stop_script == 1)\n\t\t\t\twindow.stop();\n\t\t}\n\t}\n\n\treturn true;\n\n};"],"names":["ctSetCookie","c_name","value","document","cookie","encodeURIComponent","apbct_collect_visible_fields","form","inputs","inputs_visible","inputs_visible_count","inputs_with_duplicate_names","key","elements","isNaN","filter","elem","getComputedStyle","display","visibility","opacity","getAttribute","indexOf","push","forEach","i","visible_fields","trim","visible_fields_count","apbct_visible_fields_set_cookie","visible_fields_collection","collection","JSON","stringify","apbct_js_keys__set_input_value","result","data","params","obj","ct_input_value","getElementById","input_name","replace","js_key","apbct_public_sendAJAX","callback","callback_context","callback_params","async","notJson","timeout","button","spinner","progressbar","silent","no_nonce","ctPublic","_ajax_nonce","Math","random","no_cache","setAttribute","style","cursor","jQuery","css","ajax","type","url","_ajax_url","success","removeAttribute","parse","error","setTimeout","fadeOut","alert","apply","concat","jqXHR","textStatus","errorThrown","console","log","ct_date","Date","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","apbct_attach_event_handler","event","window","addEventListener","attachEvent","apbct_remove_event_handler","removeEventListener","detachEvent","floor","getTimezoneOffset","ctFunctionFirstKey","ctMouseReadInterval","setInterval","ctMouseWriteDataInterval","ctFunctionMouseMove","round","clientY","clientX","clearInterval","forms","length","classList","contains","parentElement","action","toString","id","name","onsubmit_prev","onsubmit","this","target","Function","call","accessor","Object","getOwnPropertyDescriptor","XMLHttpRequest","prototype","defineProperty","get","apbct_showBlockedResponse","response","configurable","apbct_parseJSON","string","e","apbct","blocked","dispatchEvent","CustomEvent","bubbles","detail","message","comment","cleantalkModal","loaded","open","stop_script","stop"],"mappings":"AA+HA,SAASA,YAAYC,EAAQC,GAC5BC,SAASC,OAASH,EAAS,IAAMI,mBAAmBH,GAAS,yBAG9D,SAASI,6BAA8BC,GAGtC,IAAIC,EAAS,GACZC,EAAiB,GACjBC,EAAuB,EACvBC,EAA8B,GAE/B,IAAI,IAAIC,KAAOL,EAAKM,SACfC,OAAOF,KACVJ,EAAOI,GAAOL,EAAKM,SAASD,IAqC9B,OAjCAJ,EAASA,EAAOO,OAAO,SAASC,GAG/B,MAA0C,SAAtCC,iBAAiBD,GAAME,SACY,WAAtCD,iBAAiBD,GAAMG,YACe,MAAtCF,iBAAiBD,GAAMI,SACe,WAAtCJ,EAAKK,aAAa,SACoB,WAAtCL,EAAKK,aAAa,SAEoB,OAAtCL,EAAKK,aAAa,UACoD,IAAtEV,EAA4BW,QAASN,EAAKK,aAAa,WAMxDX,KAGK,IAAM,CAAC,QAAS,YAAYY,QAASN,EAAKK,aAAa,WAC3DV,EAA4BY,KAAMP,EAAKK,aAAa,UAC7C,OAOFG,QAAQ,SAASR,EAAMS,EAAGZ,GAChCJ,GAAkB,IAAMO,EAAKK,aAAa,UAIpC,CACNK,eAHDjB,EAAiBA,EAAekB,OAI/BC,qBAAuBlB,GAKzB,SAASmB,gCAAiCC,GAEzC,IAAIC,EAAkD,iBAA9BD,GAAwE,OAA9BA,EAAsCA,EAA4B,GAEpI9B,YAAY,uBAAwBgC,KAAKC,UAAWF,IAIrD,SAASG,+BAA+BC,EAAQC,EAAMC,EAAQC,GAC7D,IACKC,EAD8C,OAA/CpC,SAASqC,eAAeH,EAAOI,cAC9BF,EAAiBpC,SAASqC,eAAeH,EAAOI,YAAYvC,MAChEC,SAASqC,eAAeH,EAAOI,YAAYvC,MAAQC,SAASqC,eAAeH,EAAOI,YAAYvC,MAAMwC,QAAQH,EAAgBJ,EAAOQ,SAGrI,SAASC,sBAAsBR,EAAMC,EAAQC,GAG5C,IAAIO,EAAcR,EAAOQ,UAAe,KACpCC,EAAmBT,EAAOS,kBAAoB,KAC9CC,EAAkBV,EAAOU,iBAAmB,KAC5CC,EAAQX,EAAOW,QAAS,EACxBC,EAAcZ,EAAOY,SAAe,KACpCC,EAAcb,EAAOa,SAAe,KACpCZ,EAAcA,GAAsB,KACpCa,EAAcd,EAAOc,QAAe,KACpCC,EAAcf,EAAOe,SAAe,KACpCC,EAAchB,EAAOgB,aAAe,KACpCC,EAAcjB,EAAOiB,QAAe,KACpCC,EAAclB,EAAOkB,UAAe,KAEnB,iBAAX,GACHA,IACLnB,EAAOA,EAAO,gBAAkBoB,SAASC,aAC1CrB,EAAOA,EAAO,aAAesB,KAAKC,WAE5BJ,IACLnB,EAAKqB,YAAcD,SAASC,aAC7BrB,EAAKwB,SAAWF,KAAKC,UAGnBR,IAAUA,EAAOU,aAAa,WAAY,YAAaV,EAAOW,MAAMC,OAAS,eAC7EX,GAASY,OAAOZ,GAASa,IAAI,UAAW,UAE3CD,OAAOE,KAAK,CACXC,KAAM,OACNC,IAAKZ,SAASa,UACdjC,KAAMA,EACNY,MAAOA,EACPsB,QAAS,SAASnC,GACdgB,IAAUA,EAAOoB,gBAAgB,YAAapB,EAAOW,MAAMC,OAAS,WACpEX,GAAUY,OAAOZ,GAASa,IAAI,UAAW,QACxChB,IAASd,EAASH,KAAKwC,MAAMrC,IAC9BA,EAAOsC,OACTC,WAAW,WAAerB,GAAaA,EAAYsB,QAAQ,SAAY,KACvEC,MAAM,mBAAqBzC,EAAOsC,OAAS,YAExC5B,IACEE,EACHF,EAASgC,MAAO/B,EAAkBC,EAAgB+B,OAAQ3C,EAAQC,EAAMC,EAAQC,IAEhFO,EAASV,EAAQC,EAAMC,EAAQC,KAInCmC,MAAO,SAASM,EAAOC,EAAYC,GAC/B9B,IAAUA,EAAOoB,gBAAgB,YAAapB,EAAOW,MAAMC,OAAS,WACpEX,GAASY,OAAOZ,GAASa,IAAI,UAAW,QACvCgB,IAAiB3B,IACpB4B,QAAQC,IAAI,oBACZD,QAAQC,IAAIJ,GACZG,QAAQC,IAAIH,GACZE,QAAQC,IAAI,wCAA0CF,EAAc,uGACpEL,MAAM,wCAA0CK,EAAc,yGAGhE/B,QAASA,KApQV,WAEA,IAAIkC,EAAU,IAAIC,KACjBC,GAAW,IAAID,MAAOE,UACtBC,GAAwB,EACxBC,EAAc,GACdC,EAAqB,EAEtB,SAASC,EAA2B3E,EAAM4E,EAAO/C,GACV,mBAA5BgD,OAAOC,iBAAiC9E,EAAK8E,iBAAiBF,EAAO/C,GAC7B7B,EAAK+E,YAAYH,EAAO/C,GAG3E,SAASmD,EAA2BhF,EAAM4E,EAAO/C,GACP,mBAA/BgD,OAAOI,oBAAoCjF,EAAKiF,oBAAoBL,EAAO/C,GAChC7B,EAAKkF,YAAYN,EAAO/C,GAG9E7C,YAAY,kBAAmB0D,KAAKyC,OAAM,IAAId,MAAOE,UAAU,MAC/DvF,YAAY,mBAAoB,KAChCA,YAAY,kBAAmB,KAC/BA,YAAY,cAAe,KAE3B0E,WAAW,WACV1E,YAAY,cAAeoF,EAAQgB,oBAAoB,IAAK,IAC3D,KAGF,IAAIC,EAAqB,WAExBrG,YAAY,mBADO0D,KAAKyC,OAAM,IAAId,MAAOE,UAAU,MA0CnDS,EAA2BH,OAAQ,YAAaQ,GAChDL,EAA2BH,OAAQ,UAAWQ,IArC3CC,EAAsBC,YAAY,WACrCf,GAAwB,GACtB,KAGCgB,EAA2BD,YAAY,WAC1CvG,YAAY,kBAAmBgC,KAAKC,UAAUwD,KAC5C,MAGCgB,EAAsB,SAAgBb,IACZ,IAA1BJ,IAEFC,EAAYlE,KAAK,CAChBmC,KAAKgD,MAAMd,EAAMe,SACjBjD,KAAKgD,MAAMd,EAAMgB,SACjBlD,KAAKgD,OAAM,IAAIrB,MAAOE,UAAYD,KAInCE,GAAwB,EACC,MAFzBE,IAUDM,EAA2BH,OAAQ,YAAaY,GAChDI,cAAcP,GACdO,cAAcL,MASfb,EAA2BE,OAAQ,YAAaY,GAChDd,EAA2BE,OAAQ,YAAaQ,GAChDV,EAA2BE,OAAQ,UAAWQ,GA8C9CV,EAA2BE,OAAQ,mBA3CnC,WAEC7F,YAAY,uBAAwB,GAEpC0E,WAAW,WAIV,IAFA,IAAI5C,EAA4B,GAExBL,EAAI,EAAGA,EAAItB,SAAS2G,MAAMC,OAAQtF,IAAI,CAC7C,IAAIlB,EAAOJ,SAAS2G,MAAMrF,GAIzBlB,EAAKyG,UAAUC,SAAS,oBACxB1G,EAAK2G,cAAcF,UAAUC,SAAS,iBACkB,IAAxD1G,EAAK4G,OAAOC,WAAW9F,QAAQ,qBAC9Bf,EAAK8G,IAAiB,cAAX9G,EAAK8G,IACjB9G,EAAK+G,KAAKN,WAAazG,EAAK+G,KAAKN,UAAUC,SAAS,mBAIrDnF,EAA0BL,GAAKnB,6BAA8BC,GAE7DA,EAAKgH,cAAgBhH,EAAKiH,SAC1BjH,EAAKiH,SAAW,SAAU5B,GAEzB,IAAIlE,EAAiB,GACrBA,EAAe,GAAKpB,6BAA6BmH,MACjD5F,gCAAiCH,GAG7BkE,EAAM8B,OAAOH,yBAAyBI,UACzCjD,WAAW,WACVkB,EAAM8B,OAAOH,cAAcK,KAAKhC,EAAM8B,OAAQ9B,IAC5C,OAKN/D,gCAAiCC,IAE/B,OAzHL,GAyQA,IAAI+F,SAAWC,OAAOC,yBAAyBC,eAAeC,UAAW,gBACzEH,OAAOI,eAAeF,eAAeC,UAAW,eAAgB,CAE/DE,IAAK,WAEJ,OADAC,0BAA2BX,KAAKY,UACzBR,SAASM,IAAIP,KAAKH,OAE1Ba,cAAc,IAIfC,gBAAkB,SAAUC,GAC3B,IACC,IAAIrG,EAASH,KAAKwC,MAAOgE,GACzB,MAAOC,GACP,OAAO,EAER,OAAOtG,GAGRiG,0BAA4B,SAAUC,GAuBrC,OArBIA,EAAWE,gBAAiBF,UAEW,IAAnBA,EAASK,QAChCL,EAAWA,EAASK,OACPC,UACZxI,SAASyI,cACR,IAAIC,YAAa,qBAAsB,CACtCC,SAAS,EACTC,OAAQ,CAAEC,QAASX,EAASY,YAK9BC,eAAeC,OAASd,EAASY,QACjCC,eAAeE,OAEa,IAAxBf,EAASgB,aACZxD,OAAOyD,SAIH"}
|
@@ -1,2 +1,2 @@
|
|
1 |
-
function apbct_banner_check(){var
|
2 |
//# sourceMappingURL=cleantalk-admin-settings-page.min.js.map
|
1 |
+
function apbct_banner_check(){var c=setInterval(function(){apbct_admin_sendAJAX({action:"apbct_settings__check_renew_banner"},{callback:function(t,e,n,a){t.close_renew_banner&&(jQuery("#apbct_renew_notice").length&&jQuery("#apbct_renew_notice").hide("slow"),jQuery("#apbct_trial_notice").length&&jQuery("#apbct_trial_notice").hide("slow"),clearInterval(c))}})},9e5)}function apbct_get_elems(t){for(var e,n=0,a=(t=t.split(",")).length;n<a;n++)e=jQuery("#"+t[n]),t[n]=0===e.length?jQuery("."+t[n]):e;return t}function apbct_get_elems__native(t){"string"==typeof t&&(t=t.split(","));var c=[];return t.forEach(function(t,e,n){var a=document.getElementById(t);if(null===a){if(null!==(a=document.getElementsByClassName(t))&&0!==a.length)for(key in a)0<=+key&&c.push(a[key])}else c.push(a[key])}),c}function apbct_show_hide_elem(t){for(var e=0,n=(t=apbct_get_elems(t)).length;e<n;e++)t[e].each(function(t,e){var n=(e=jQuery(e)).next("label")||e.prev("label")||null;e.is(":visible")?(e.hide(),n&&n.hide()):(e.show(),n&&n.show())})}function apbctSettingsDependencies(t,c){c=isNaN(c)?null:c,apbct_get_elems__native(t).forEach(function(t,e,n){console.log(t.getAttribute("id"));var a;null===c&&(c=null===t.getAttribute("disabled")?0:1),1===c?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled"),null===t.getAttribute("apbct_children")||null!==(a=apbctSettingsDependencies_getState(t)&&c)&&apbctSettingsDependencies(t.getAttribute("apbct_children"),a)})}function apbctSettingsDependencies_getState(t){var e;switch(t.getAttribute("type")){case"checkbox":e=+t.checked;break;case"radio":e=+(1==+t.getAttribute("value"));break;default:e=null}return e}function apbct_settings__showDescription(t,e){var c=function(t){void 0!==t&&(0!=jQuery(t.target).parent(".apbct_long_desc").length&&!jQuery(t.target).hasClass("apbct_long_desc__cancel")||jQuery(t.target).hasClass("apbct_long_description__show"))||(jQuery(".apbct_long_desc").remove(),jQuery(document).off("click",c))};c(),t.after("<div id='apbct_long_desc__"+e+"' class='apbct_long_desc'></div>");var n=jQuery("#apbct_long_desc__"+e);n.append("<i class='icon-spin1 animate-spin'></i>").append("<div class='apbct_long_desc__angle'></div>").css({top:t.position().top-5,left:t.position().left+25}),apbct_admin_sendAJAX({action:"apbct_settings__get_description",setting_id:e},{spinner:n.children("img"),callback:function(t,e,n,a){a.empty().append("<div class='apbct_long_desc__angle'></div>").append("<i class='apbct_long_desc__cancel icon-cancel'></i>").append("<h3 class='apbct_long_desc__title'>"+t.title+"</h3>").append("<p>"+t.desc+"</p>"),jQuery(document).on("click",c)}},n)}jQuery(document).ready(function(){document.getElementsByClassName("apbct_settings-title")[0]&&"rtl"===getComputedStyle(document.getElementsByClassName("apbct_settings-title")[0]).direction&&jQuery(".apbct_switchers").css("text-align","right"),jQuery("#apbct_showApiKey").on("click",function(){jQuery(".apbct_setting---apikey").val(jQuery(".apbct_setting---apikey").attr("key")),jQuery(".apbct_setting---apikey+div").show(),jQuery(this).fadeOut(300)});var t=new Date;jQuery("#ct_admin_timezone").val(t.getTimezoneOffset()/60*-1),jQuery("#apbct_gdpr_open_modal").on("click",function(){jQuery("#gdpr_dialog").dialog({modal:!0,show:!0,position:{my:"center",at:"center",of:window},width:+jQuery("#wpbody").width()/100*70,height:"auto",title:"GDPR compliance",draggable:!1,resizable:!1,closeText:"Close"})}),jQuery("#apbct_button__get_key_auto").on("click",function(){apbct_admin_sendAJAX({action:"apbct_get_key_auto"},{timeout:25e3,button:document.getElementById("apbct_button__get_key_auto"),spinner:jQuery("#apbct_button__get_key_auto .apbct_preloader_button"),callback:function(t,e,n,a){jQuery("#apbct_button__get_key_auto .apbct_success").show(300),setTimeout(function(){jQuery("#apbct_button__get_key_auto .apbct_success").hide(300)},2e3),t.reload&&document.location.reload(),t.getTemplates&&(cleantalkModal.loaded=t.getTemplates,cleantalkModal.open(),document.addEventListener("cleantalkModalClosed",function(t){document.location.reload()}))}})}),jQuery(document).on("click","#apbct_settings_templates_import_button",function(){jQuery("#apbct-ajax-result").remove();var t,c,e=jQuery("option:selected",jQuery("#apbct_settings_templates_import"));jQuery("#apbct_settings_templates_import_name").css("border-color","inherit"),void 0!==e.data("id")?(t={template_id:e.data("id"),template_name:e.data("name"),settings:e.data("settings")},c=this,apbct_admin_sendAJAX({action:"settings_templates_import",data:t},{timeout:25e3,button:c,spinner:jQuery("#apbct_settings_templates_import_button .apbct_preloader_button"),notJson:!0,callback:function(t,e,n,a){t.success?(jQuery("<p id='apbct-ajax-result' class='success'>"+t.data+"</p>").insertAfter(jQuery(c)),jQuery("#apbct_settings_templates_import_button .apbct_success").show(300),setTimeout(function(){jQuery("#apbct_settings_templates_import_button .apbct_success").hide(300)},2e3),document.addEventListener("cleantalkModalClosed",function(t){document.location.reload()}),setTimeout(function(){cleantalkModal.close()},2e3)):jQuery("<p id='apbct-ajax-result' class='error'>"+t.data+"</p>").insertAfter(jQuery(c))}})):console.log('Attribute "data-id" not set for the option.')}),jQuery(document).on("click","#apbct_settings_templates_export_button",function(){jQuery("#apbct-ajax-result").remove();var t=jQuery("option:selected",jQuery("#apbct_settings_templates_export")),e=jQuery("#apbct_settings_templates_export_name");if(e.css("border-color","inherit"),void 0!==t.data("id")){if("new_template"===t.data("id")){var n=e.val();if(""===n)return void e.css("border-color","red");var a={template_name:n}}else a={template_id:t.data("id")};var c=this;apbct_admin_sendAJAX({action:"settings_templates_export",data:a},{timeout:25e3,button:c,spinner:jQuery("#apbct_settings_templates_export_button .apbct_preloader_button"),notJson:!0,callback:function(t,e,n,a){t.success?(jQuery("<p id='apbct-ajax-result' class='success'>"+t.data+"</p>").insertAfter(jQuery(c)),jQuery("#apbct_settings_templates_export_button .apbct_success").show(300),setTimeout(function(){jQuery("#apbct_settings_templates_export_button .apbct_success").hide(300)},2e3),document.addEventListener("cleantalkModalClosed",function(t){document.location.reload()}),setTimeout(function(){cleantalkModal.close()},2e3)):jQuery("<p id='apbct-ajax-result' class='error'>"+t.data+"</p>").insertAfter(jQuery(c))}})}else console.log('Attribute "data-id" not set for the option.')}),jQuery(document).on("click","#apbct_settings_templates_reset_button",function(){var c=this;apbct_admin_sendAJAX({action:"settings_templates_reset"},{timeout:25e3,button:c,spinner:jQuery("#apbct_settings_templates_reset_button .apbct_preloader_button"),notJson:!0,callback:function(t,e,n,a){t.success?(jQuery("<p id='apbct-ajax-result' class='success'>"+t.data+"</p>").insertAfter(jQuery(c)),jQuery("#apbct_settings_templates_reset_button .apbct_success").show(300),setTimeout(function(){jQuery("#apbct_settings_templates_reset_button .apbct_success").hide(300)},2e3),document.addEventListener("cleantalkModalClosed",function(t){document.location.reload()}),setTimeout(function(){cleantalkModal.close()},2e3)):jQuery("<p id='apbct-ajax-result' class='error'>"+t.data+"</p>").insertAfter(jQuery(c))}})}),jQuery("#apbct_button__sync").on("click",function(){apbct_admin_sendAJAX({action:"apbct_sync"},{timeout:25e3,button:document.getElementById("apbct_button__sync"),spinner:jQuery("#apbct_button__sync .apbct_preloader_button"),callback:function(t,e,n,a){jQuery(".apbct_success").show(300),setTimeout(function(){jQuery(".apbct_success").hide(300)},2e3),t.reload&&document.location.reload()}})}),ctSettingsPage.key_changed&&jQuery("#apbct_button__sync").click(),jQuery(document).on("click",".apbct_settings-long_description---show",function(){self=jQuery(this),apbct_settings__showDescription(self,self.attr("setting"))}),(jQuery("#apbct_renew_notice").length||jQuery("#apbct_trial_notice").length)&&apbct_banner_check(),jQuery(document).on("change","#apbct_settings_templates_export",function(){"new_template"===jQuery("option:selected",this).data("id")?jQuery(this).parent().parent().find("#apbct_settings_templates_export_name").show():jQuery(this).parent().parent().find("#apbct_settings_templates_export_name").hide()})});
|
2 |
//# sourceMappingURL=cleantalk-admin-settings-page.min.js.map
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["cleantalk-admin-settings-page.js"],"names":["apbct_banner_check","bannerChecker","setInterval","apbct_admin_sendAJAX","action","callback","result","data","params","obj","close_renew_banner","jQuery","length","hide","clearInterval","apbct_get_elems","elems","tmp","i","len","split","apbct_get_elems__native","out","forEach","elem","arr","document","getElementById","getElementsByClassName","key","push","apbct_show_hide_elem","each","label","next","prev","is","show","apbctSettingsDependencies","ids","enable","isNaN","console","log","getAttribute","removeAttribute","setAttribute","state","apbctSettingsDependencies_getState","checked","apbct_settings__showDescription","setting_id","remove_desc_func","e","target","parent","hasClass","remove","off","after","append","css","top","position","left","spinner","children","empty","title","desc","on","ready","getComputedStyle","direction","val","attr","this","fadeOut","d","Date","getTimezoneOffset","dialog","modal","my","at","of","window","width","height","draggable","resizable","closeText","timeout","button","setTimeout","reload","location","ctSettingsPage","key_changed","click","self"],"mappings":"AAoEA,SAASA,qBACR,IAAIC,EAAgBC,YAAa,WAChCC,qBACC,CAACC,OAAQ,sCACT,CACCC,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACpCH,EAAOI,qBACNC,OAAO,uBAAuBC,QACjCD,OAAO,uBAAuBE,KAAK,QAChCF,OAAO,uBAAuBC,QACjCD,OAAO,uBAAuBE,KAAK,QACpCC,cAAcb,QAKhB,KAUJ,SAASc,gBAAgBC,GAErB,IAAK,IAA6BC,EAAzBC,EAAE,EAAGC,GADdH,EAAQA,EAAMI,MAAM,MACMR,OAAaM,EAAIC,EAAKD,IAC5CD,EAAMN,OAAO,IAAIK,EAAME,IACvBF,EAAME,GAAoB,IAAfD,EAAIL,OAAeD,OAAO,IAAIK,EAAME,IAAMD,EAEzD,OAAOD,EAUX,SAASK,wBAAwBL,GAGZ,iBAAVA,IACTA,EAAQA,EAAMI,MAAM,MAErB,IAAIE,EAAM,GAuBV,OArBAN,EAAMO,QAAQ,SAASC,EAAMN,EAAGO,GAG/B,IAAIR,EAAMS,SAASC,eAAeH,GAClC,GAAY,OAARP,GAQJ,GAAY,QADZA,EAAMS,SAASE,uBAAuBJ,KACJ,IAAdP,EAAIL,OACvB,IAAIiB,OAAOZ,EACE,IAAPY,KACJP,EAAIQ,KAAMb,EAAIY,WAVhBP,EAAIQ,KAAMb,EAAIY,QAgBTP,EAGR,SAASS,qBAAqBf,GAE1B,IAAK,IAAIE,EAAE,EAAGC,GADjBH,EAAQD,gBAAgBC,IACKJ,OAAQM,EAAIC,EAAKD,IACvCF,EAAME,GAAGc,KAAK,SAAUd,EAAGM,GAEvB,IAAIS,GADJT,EAAOb,OAAOa,IACGU,KAAK,UAAYV,EAAKW,KAAK,UAAY,KACpDX,EAAKY,GAAG,aACRZ,EAAKX,OACDoB,GAAOA,EAAMpB,SAEjBW,EAAKa,OACDJ,GAAOA,EAAMI,UAajC,SAASC,0BAA0BC,EAAKC,GAGvCA,EAAWC,MAAMD,GAAmB,KAATA,EAGfnB,wBAAyBkB,GAE/BhB,QAAQ,SAASC,EAAMN,EAAGO,GAE/BiB,QAAQC,IAAKnB,EAAKoB,aAAa,OAW/B,GALc,OAAXJ,IACFA,EAA2C,OAAlChB,EAAKoB,aAAa,YAAuB,EAAI,GAE5C,IAAXJ,EANyBhB,EAAKqB,gBAAgB,YADlBrB,EAAKsB,aAAa,WAAY,YASd,OAAxCtB,EAAKoB,aAAa,kBAA2B,CAChD,IAAIG,EAAQC,mCAAoCxB,IAAUgB,EAC5C,OAAVO,GACHT,0BAA2Bd,EAAKoB,aAAa,kBAAmBG,MAOpE,SAASC,mCAAoCxB,GAE5C,IAAIuB,EAEJ,OAASvB,EAAKoB,aAAc,SAC3B,IAAK,WACJG,GAASvB,EAAKyB,QACd,MACD,IAAK,QACJF,IAA0C,IAA/BvB,EAAKoB,aAAa,UAC7B,MACD,QACCG,EAAQ,KAGV,OAAOA,EAGR,SAASG,gCAAgCjB,EAAOkB,GAE/C,IAAIC,EAAmB,SAASC,QACf,IAANA,IAA6E,GAAtD1C,OAAO0C,EAAEC,QAAQC,OAAO,oBAAoB3C,SAAeD,OAAO0C,EAAEC,QAAQE,SAAS,4BAAgC7C,OAAO0C,EAAEC,QAAQE,SAAS,mCAC/K7C,OAAO,oBAAoB8C,SAC3B9C,OAAOe,UAAUgC,IAAI,QAASN,KAIhCA,IAEAnB,EAAM0B,MAAM,6BAA6BR,EAAW,oCACpD,IAAI1C,EAAME,OAAO,qBAAqBwC,GACtC1C,EAAImD,OAAO,2CACTA,OAAO,8CACPC,IAAI,CACJC,IAAK7B,EAAM8B,WAAWD,IAAM,EAC5BE,KAAM/B,EAAM8B,WAAWC,KAAO,KAIhC7D,qBACC,CAACC,OAAQ,kCAAmC+C,WAAYA,GACxD,CACCc,QAASxD,EAAIyD,SAAS,OACtB7D,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GAExCA,EAAI0D,QACFP,OAAO,8CACPA,OAAO,uDACPA,OAAO,sCAAsCtD,EAAO8D,MAAM,SAC1DR,OAAO,MAAMtD,EAAO+D,KAAK,QAE3B1D,OAAOe,UAAU4C,GAAG,QAASlB,KAG/B3C,GA3PFE,OAAOe,UAAU6C,MAAM,WAGnB7C,SAASE,uBAAuB,wBAAwB,IACoC,QAA3F4C,iBAAiB9C,SAASE,uBAAuB,wBAAwB,IAAI6C,WAC/E9D,OAAO,oBAAoBkD,IAAI,aAAc,SAK5ClD,OAAO,qBAAqB2D,GAAG,QAAS,WACpC3D,OAAO,2BAA2B+D,IAAI/D,OAAO,2BAA2BgE,KAAK,QAC7EhE,OAAO,+BAA+B0B,OACtC1B,OAAOiE,MAAMC,QAAQ,OAG5B,IAAIC,EAAI,IAAIC,KACZpE,OAAO,sBAAsB+D,IAAII,EAAEE,oBAAoB,IAAK,GAG5DrE,OAAO,0BAA0B2D,GAAG,QAAS,WAC5C3D,OAAO,gBAAgBsE,OAAO,CAC7BC,OAAM,EACN7C,MAAM,EACN0B,SAAU,CAAEoB,GAAI,SAAUC,GAAI,SAAUC,GAAIC,QAC5CC,OAAS5E,OAAO,WAAW4E,QAAU,IAAM,GAC3CC,OAAQ,OACRpB,MAAO,kBACPqB,WAAW,EACXC,WAAW,EACXC,UAAW,YAKbhF,OAAO,uBAAuB2D,GAAG,QAAS,WACzCnE,qBACC,CAACC,OAAQ,cACT,CACCwF,QAAS,KACTC,OAAQnE,SAASC,eAAe,sBAChCsC,QAAStD,OAAO,+CAChBN,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACxCE,OAAO,kBAAkB0B,KAAK,KAC9ByD,WAAW,WAAWnF,OAAO,kBAAkBE,KAAK,MAAQ,KACzDP,EAAOyF,QACTrE,SAASsE,SAASD,cAMnBE,eAAeC,aAClBvF,OAAO,uBAAuBwF,QAE/BxF,OAAOe,UAAU4C,GAAG,QAAS,0CAA2C,WACvE8B,KAAOzF,OAAOiE,MACd1B,gCAAgCkD,KAAMA,KAAKzB,KAAK,eAG7ChE,OAAO,uBAAuBC,QAAUD,OAAO,uBAAuBC,SACzEZ","file":"cleantalk-admin-settings-page.min.js","sourcesContent":["jQuery(document).ready(function(){\n\n\t// Crunch for Right to Left direction languages\n\tif(document.getElementsByClassName('apbct_settings-title')[0]) {\n\t\tif(getComputedStyle(document.getElementsByClassName('apbct_settings-title')[0]).direction === 'rtl'){\n\t\t\tjQuery('.apbct_switchers').css('text-align', 'right');\n\t\t}\n\t}\n\n\t// Show/Hide access key\n jQuery('#apbct_showApiKey').on('click', function(){\n jQuery('.apbct_setting---apikey').val(jQuery('.apbct_setting---apikey').attr('key'));\n jQuery('.apbct_setting---apikey+div').show();\n jQuery(this).fadeOut(300);\n });\n\n\tvar d = new Date();\n\tjQuery('#ct_admin_timezone').val(d.getTimezoneOffset()/60*(-1));\n\t\n\t// GDPR modal window\n\tjQuery('#apbct_gdpr_open_modal').on('click', function(){\n\t\tjQuery('#gdpr_dialog').dialog({\n\t\t\tmodal:true, \n\t\t\tshow: true,\n\t\t\tposition: { my: \"center\", at: \"center\", of: window },\n\t\t\twidth: +(jQuery('#wpbody').width() / 100 * 70), // 70% of #wpbody\n\t\t\theight: 'auto',\n\t\t\ttitle: 'GDPR compliance',\n\t\t\tdraggable: false,\n\t\t\tresizable: false,\n\t\t\tcloseText: \"Close\",\n\t\t});\n\t});\n\n\t// Sync button\n\tjQuery('#apbct_button__sync').on('click', function(){\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'apbct_sync'},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: document.getElementById('apbct_button__sync' ),\n\t\t\t\tspinner: jQuery('#apbct_button__sync .apbct_preloader_button' ),\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tjQuery('.apbct_success').show(300);\n\t\t\t\t\tsetTimeout(function(){jQuery('.apbct_success').hide(300);}, 2000)\n\t\t\t\t\tif(result.reload)\n\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\tif( ctSettingsPage.key_changed )\n\t\tjQuery('#apbct_button__sync').click();\n\n\tjQuery(document).on('click', '.apbct_settings-long_description---show', function(){\n\t\tself = jQuery(this);\n\t\tapbct_settings__showDescription(self, self.attr('setting'));\n\t});\n\n\tif (jQuery('#apbct_renew_notice').length || jQuery('#apbct_trial_notice').length) \n\t\tapbct_banner_check();\n\t\n});\n\n/**\n * Checking current account status for renew notice\n */\nfunction apbct_banner_check() {\n\tvar bannerChecker = setInterval( function() {\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'apbct_settings__check_renew_banner'},\n\t\t\t{\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tif (result.close_renew_banner) {\n\t\t\t\t\t\tif (jQuery('#apbct_renew_notice').length)\n\t\t\t\t\t\t\tjQuery('#apbct_renew_notice').hide('slow');\n\t\t\t\t\t\tif (jQuery('#apbct_trial_notice').length)\n\t\t\t\t\t\t\tjQuery('#apbct_trial_notice').hide('slow');\n\t\t\t\t\t\tclearInterval(bannerChecker);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}, 900000);\n}\n\n/**\n * Select elems like #{selector} or .{selector}\n * Selector passed in string separated by ,\n *\n * @param elems\n * @returns {*}\n */\nfunction apbct_get_elems(elems){\n elems = elems.split(',');\n for( var i=0, len = elems.length, tmp; i < len; i++){\n tmp = jQuery('#'+elems[i]);\n elems[i] = tmp.length === 0 ? jQuery('.'+elems[i]) : tmp;\n }\n return elems;\n}\n\n/**\n * Select elems like #{selector} or .{selector}\n * Selector could be passed in a string ( separated by comma ) or in array ( [ elem1, elem2, ... ] )\n *\n * @param elems string|array\n * @returns array\n */\nfunction apbct_get_elems__native(elems){\n\n\t// Make array from a string\n\tif(typeof elems === 'string')\n\t\telems = elems.split(',');\n\n\tvar out = [];\n\n\telems.forEach(function(elem, i, arr) {\n\n\t\t// try to get elements with such IDs\n\t\tvar tmp = document.getElementById(elem);\n\t\tif (tmp !== null){\n\t\t\tout.push( tmp[key] );\n\t\t\treturn;\n\t\t}\n\n\t\t// try to get elements with such class name\n\t\t// write each elem from collection to new element of output array\n\t\ttmp = document.getElementsByClassName(elem);\n\t\tif (tmp !== null && tmp.length !==0 ){\n\t\t\tfor(key in tmp){\n\t\t\t\tif( +key >= 0 ){\n\t\t\t\t\tout.push( tmp[key] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn out;\n}\n\nfunction apbct_show_hide_elem(elems){\n\telems = apbct_get_elems(elems);\n for( var i=0, len = elems.length; i < len; i++){\n elems[i].each(function (i, elem) {\n elem = jQuery(elem);\n var label = elem.next('label') || elem.prev('label') || null;\n if (elem.is(\":visible\")) {\n elem.hide();\n if (label) label.hide();\n } else {\n elem.show();\n if (label) label.show();\n }\n });\n }\n}\n\n/**\n * Settings dependences. Switch|toggle depended elements state (disabled|enabled)\n * Recieve list of selectors ( without class mark (.) or id mark (#) )\n *\n * @param ids string|array Selectors\n * @param enable\n */\nfunction apbctSettingsDependencies(ids, enable){\n\n\n\tenable = ! isNaN(enable) ? enable : null;\n\n\t// Get elements\n\tvar elems = apbct_get_elems__native( ids );\n\n\telems.forEach(function(elem, i, arr){\n\n\t\tconsole.log( elem.getAttribute('id') );\n\n\t\tvar do_disable = function(){elem.setAttribute('disabled', 'disabled');},\n\t\t\tdo_enable = function(){elem.removeAttribute('disabled');};\n\n\t\t// Set defined state\n\t\tif(enable === null) // Set\n\t\t\tenable = elem.getAttribute('disabled') === null ? 0 : 1;\n\n\t\tenable === 1 ? do_enable() : do_disable();\n\n\t\tif( elem.getAttribute('apbct_children') !== null){\n\t\t\tvar state = apbctSettingsDependencies_getState( elem ) && enable;\n\t\t\tif( state !== null ) {\n\t\t\t\tapbctSettingsDependencies( elem.getAttribute('apbct_children'), state );\n\t\t\t}\n\t\t}\n\n\t});\n}\n\nfunction apbctSettingsDependencies_getState( elem ){\n\n\tvar state;\n\n\tswitch ( elem.getAttribute( 'type' ) ){\n\t\tcase 'checkbox':\n\t\t\tstate = +elem.checked;\n\t\t\tbreak;\n\t\tcase 'radio':\n\t\t\tstate = +(+elem.getAttribute('value') === 1);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tstate = null;\n\t}\n\n\treturn state;\n}\n\nfunction apbct_settings__showDescription(label, setting_id){\n\n\tvar remove_desc_func = function(e){\n\t\tif(typeof e === 'undefined' || ((jQuery(e.target).parent('.apbct_long_desc').length == 0 || jQuery(e.target).hasClass('apbct_long_desc__cancel')) && !jQuery(e.target).hasClass('apbct_long_description__show'))){\n\t\t\tjQuery('.apbct_long_desc').remove();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tlabel.after(\"<div id='apbct_long_desc__\"+setting_id+\"' class='apbct_long_desc'></div>\");\n\tvar obj = jQuery('#apbct_long_desc__'+setting_id);\n\tobj.append(\"<i class='icon-spin1 animate-spin'></i>\")\n\t\t.append(\"<div class='apbct_long_desc__angle'></div>\")\n\t\t.css({\n\t\t\ttop: label.position().top - 5,\n\t\t\tleft: label.position().left + 25\n\t\t});\n\n\n\tapbct_admin_sendAJAX(\n\t\t{action: 'apbct_settings__get_description', setting_id: setting_id},\n\t\t{\n\t\t\tspinner: obj.children('img'),\n\t\t\tcallback: function(result, data, params, obj){\n\n\t\t\t\tobj.empty()\n\t\t\t\t\t.append(\"<div class='apbct_long_desc__angle'></div>\")\n\t\t\t\t\t.append(\"<i class='apbct_long_desc__cancel icon-cancel'></i>\")\n\t\t\t\t\t.append(\"<h3 class='apbct_long_desc__title'>\"+result.title+\"</h3>\")\n\t\t\t\t\t.append(\"<p>\"+result.desc+\"</p>\");\n\n\t\t\t\tjQuery(document).on('click', remove_desc_func);\n\t\t\t}\n\t\t},\n\t\tobj\n\t);\n}"]}
|
1 |
+
{"version":3,"file":"cleantalk-admin-settings-page.min.js","sources":["cleantalk-admin-settings-page.js"],"sourcesContent":["jQuery(document).ready(function(){\n\n\t// Crunch for Right to Left direction languages\n\tif(document.getElementsByClassName('apbct_settings-title')[0]) {\n\t\tif(getComputedStyle(document.getElementsByClassName('apbct_settings-title')[0]).direction === 'rtl'){\n\t\t\tjQuery('.apbct_switchers').css('text-align', 'right');\n\t\t}\n\t}\n\n\t// Show/Hide access key\n jQuery('#apbct_showApiKey').on('click', function(){\n jQuery('.apbct_setting---apikey').val(jQuery('.apbct_setting---apikey').attr('key'));\n jQuery('.apbct_setting---apikey+div').show();\n jQuery(this).fadeOut(300);\n });\n\n\tvar d = new Date();\n\tjQuery('#ct_admin_timezone').val(d.getTimezoneOffset()/60*(-1));\n\t\n\t// GDPR modal window\n\tjQuery('#apbct_gdpr_open_modal').on('click', function(){\n\t\tjQuery('#gdpr_dialog').dialog({\n\t\t\tmodal:true, \n\t\t\tshow: true,\n\t\t\tposition: { my: \"center\", at: \"center\", of: window },\n\t\t\twidth: +(jQuery('#wpbody').width() / 100 * 70), // 70% of #wpbody\n\t\t\theight: 'auto',\n\t\t\ttitle: 'GDPR compliance',\n\t\t\tdraggable: false,\n\t\t\tresizable: false,\n\t\t\tcloseText: \"Close\",\n\t\t});\n\t});\n\n\t// Key KEY automatically\n\tjQuery('#apbct_button__get_key_auto').on('click', function(){\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'apbct_get_key_auto'},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: document.getElementById('apbct_button__get_key_auto' ),\n\t\t\t\tspinner: jQuery('#apbct_button__get_key_auto .apbct_preloader_button' ),\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tjQuery('#apbct_button__get_key_auto .apbct_success').show(300);\n\t\t\t\t\tsetTimeout(function(){jQuery('#apbct_button__get_key_auto .apbct_success').hide(300);}, 2000);\n\t\t\t\t\tif(result.reload)\n\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t\tif(result.getTemplates) {\n\t\t\t\t\t\tcleantalkModal.loaded = result.getTemplates;\n\t\t\t\t\t\tcleantalkModal.open();\n\t\t\t\t\t\tdocument.addEventListener(\"cleantalkModalClosed\", function( e ) {\n\t\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\t// Import settings\n\tjQuery( document ).on('click', '#apbct_settings_templates_import_button', function(){\n\t\tjQuery('#apbct-ajax-result').remove();\n\t\tvar optionSelected = jQuery('option:selected', jQuery('#apbct_settings_templates_import'));\n\t\tvar templateNameInput = jQuery('#apbct_settings_templates_import_name');\n\t\ttemplateNameInput.css('border-color', 'inherit');\n\t\tif( typeof optionSelected.data('id') === \"undefined\" ) {\n\t\t\tconsole.log( 'Attribute \"data-id\" not set for the option.' );\n\t\t\treturn;\n\t\t}\n\t\tvar data = {\n\t\t\t'template_id' : optionSelected.data('id'),\n\t\t\t'template_name' : optionSelected.data('name'),\n\t\t\t'settings' : optionSelected.data('settings')\n\t\t};\n\t\tvar button = this;\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'settings_templates_import', data: data},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: button,\n\t\t\t\tspinner: jQuery('#apbct_settings_templates_import_button .apbct_preloader_button' ),\n\t\t\t\tnotJson: true,\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tif(result.success) {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='success'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t\tjQuery('#apbct_settings_templates_import_button .apbct_success').show(300);\n\t\t\t\t\t\tsetTimeout(function(){jQuery('#apbct_settings_templates_import_button .apbct_success').hide(300);}, 2000);\n\t\t\t\t\t\tdocument.addEventListener(\"cleantalkModalClosed\", function( e ) {\n\t\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetTimeout(function(){cleantalkModal.close()}, 2000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='error'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\t// Export settings\n\tjQuery( document ).on('click', '#apbct_settings_templates_export_button', function(){\n\t\tjQuery('#apbct-ajax-result').remove();\n\t\tvar optionSelected = jQuery('option:selected', jQuery('#apbct_settings_templates_export'));\n\t\tvar templateNameInput = jQuery('#apbct_settings_templates_export_name');\n\t\ttemplateNameInput.css('border-color', 'inherit');\n\t\tif( typeof optionSelected.data('id') === \"undefined\" ) {\n\t\t\tconsole.log( 'Attribute \"data-id\" not set for the option.' );\n\t\t\treturn;\n\t\t}\n\t\tif( optionSelected.data('id') === 'new_template' ) {\n\t\t\tvar templateName = templateNameInput.val();\n\t\t\tif( templateName === '' ) {\n\t\t\t\ttemplateNameInput.css('border-color', 'red');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\t'template_name' : templateName\n\t\t\t}\n\t\t} else {\n\t\t\tvar data = {\n\t\t\t\t'template_id' : optionSelected.data('id')\n\t\t\t}\n\t\t}\n\t\tvar button = this;\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'settings_templates_export', data: data},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: button,\n\t\t\t\tspinner: jQuery('#apbct_settings_templates_export_button .apbct_preloader_button' ),\n\t\t\t\tnotJson: true,\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tif(result.success) {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='success'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t\tjQuery('#apbct_settings_templates_export_button .apbct_success').show(300);\n\t\t\t\t\t\tsetTimeout(function(){jQuery('#apbct_settings_templates_export_button .apbct_success').hide(300);}, 2000);\n\t\t\t\t\t\tdocument.addEventListener(\"cleantalkModalClosed\", function( e ) {\n\t\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetTimeout(function(){cleantalkModal.close()}, 2000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='error'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\t// Reset settings\n\tjQuery( document ).on('click', '#apbct_settings_templates_reset_button', function(){\n\t\tvar button = this;\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'settings_templates_reset'},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: button,\n\t\t\t\tspinner: jQuery('#apbct_settings_templates_reset_button .apbct_preloader_button' ),\n\t\t\t\tnotJson: true,\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tif(result.success) {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='success'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t\tjQuery('#apbct_settings_templates_reset_button .apbct_success').show(300);\n\t\t\t\t\t\tsetTimeout(function(){jQuery('#apbct_settings_templates_reset_button .apbct_success').hide(300);}, 2000);\n\t\t\t\t\t\tdocument.addEventListener(\"cleantalkModalClosed\", function( e ) {\n\t\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetTimeout(function(){cleantalkModal.close()}, 2000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tjQuery( \"<p id='apbct-ajax-result' class='error'>\" + result.data + \"</p>\" ).insertAfter( jQuery(button) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\t// Sync button\n\tjQuery('#apbct_button__sync').on('click', function(){\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'apbct_sync'},\n\t\t\t{\n\t\t\t\ttimeout: 25000,\n\t\t\t\tbutton: document.getElementById('apbct_button__sync' ),\n\t\t\t\tspinner: jQuery('#apbct_button__sync .apbct_preloader_button' ),\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tjQuery('.apbct_success').show(300);\n\t\t\t\t\tsetTimeout(function(){jQuery('.apbct_success').hide(300);}, 2000);\n\t\t\t\t\tif(result.reload)\n\t\t\t\t\t\tdocument.location.reload();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n\n\tif( ctSettingsPage.key_changed )\n\t\tjQuery('#apbct_button__sync').click();\n\n\tjQuery(document).on('click', '.apbct_settings-long_description---show', function(){\n\t\tself = jQuery(this);\n\t\tapbct_settings__showDescription(self, self.attr('setting'));\n\t});\n\n\tif (jQuery('#apbct_renew_notice').length || jQuery('#apbct_trial_notice').length) \n\t\tapbct_banner_check();\n\n\tjQuery(document).on('change', '#apbct_settings_templates_export',function(){\n\t\tvar optionSelected = jQuery(\"option:selected\", this);\n\t\tif ( optionSelected.data(\"id\") === 'new_template' ) {\n\t\t\tjQuery(this).parent().parent().find('#apbct_settings_templates_export_name').show();\n\t\t} else {\n\t\t\tjQuery(this).parent().parent().find('#apbct_settings_templates_export_name').hide();\n\t\t}\n\t});\n\t\n});\n\n/**\n * Checking current account status for renew notice\n */\nfunction apbct_banner_check() {\n\tvar bannerChecker = setInterval( function() {\n\t\tapbct_admin_sendAJAX(\n\t\t\t{action: 'apbct_settings__check_renew_banner'},\n\t\t\t{\n\t\t\t\tcallback: function(result, data, params, obj){\n\t\t\t\t\tif (result.close_renew_banner) {\n\t\t\t\t\t\tif (jQuery('#apbct_renew_notice').length)\n\t\t\t\t\t\t\tjQuery('#apbct_renew_notice').hide('slow');\n\t\t\t\t\t\tif (jQuery('#apbct_trial_notice').length)\n\t\t\t\t\t\t\tjQuery('#apbct_trial_notice').hide('slow');\n\t\t\t\t\t\tclearInterval(bannerChecker);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}, 900000);\n}\n\n/**\n * Select elems like #{selector} or .{selector}\n * Selector passed in string separated by ,\n *\n * @param elems\n * @returns {*}\n */\nfunction apbct_get_elems(elems){\n elems = elems.split(',');\n for( var i=0, len = elems.length, tmp; i < len; i++){\n tmp = jQuery('#'+elems[i]);\n elems[i] = tmp.length === 0 ? jQuery('.'+elems[i]) : tmp;\n }\n return elems;\n}\n\n/**\n * Select elems like #{selector} or .{selector}\n * Selector could be passed in a string ( separated by comma ) or in array ( [ elem1, elem2, ... ] )\n *\n * @param elems string|array\n * @returns array\n */\nfunction apbct_get_elems__native(elems){\n\n\t// Make array from a string\n\tif(typeof elems === 'string')\n\t\telems = elems.split(',');\n\n\tvar out = [];\n\n\telems.forEach(function(elem, i, arr) {\n\n\t\t// try to get elements with such IDs\n\t\tvar tmp = document.getElementById(elem);\n\t\tif (tmp !== null){\n\t\t\tout.push( tmp[key] );\n\t\t\treturn;\n\t\t}\n\n\t\t// try to get elements with such class name\n\t\t// write each elem from collection to new element of output array\n\t\ttmp = document.getElementsByClassName(elem);\n\t\tif (tmp !== null && tmp.length !==0 ){\n\t\t\tfor(key in tmp){\n\t\t\t\tif( +key >= 0 ){\n\t\t\t\t\tout.push( tmp[key] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn out;\n}\n\nfunction apbct_show_hide_elem(elems){\n\telems = apbct_get_elems(elems);\n for( var i=0, len = elems.length; i < len; i++){\n elems[i].each(function (i, elem) {\n elem = jQuery(elem);\n var label = elem.next('label') || elem.prev('label') || null;\n if (elem.is(\":visible\")) {\n elem.hide();\n if (label) label.hide();\n } else {\n elem.show();\n if (label) label.show();\n }\n });\n }\n}\n\n/**\n * Settings dependences. Switch|toggle depended elements state (disabled|enabled)\n * Recieve list of selectors ( without class mark (.) or id mark (#) )\n *\n * @param ids string|array Selectors\n * @param enable\n */\nfunction apbctSettingsDependencies(ids, enable){\n\n\n\tenable = ! isNaN(enable) ? enable : null;\n\n\t// Get elements\n\tvar elems = apbct_get_elems__native( ids );\n\n\telems.forEach(function(elem, i, arr){\n\n\t\tconsole.log( elem.getAttribute('id') );\n\n\t\tvar do_disable = function(){elem.setAttribute('disabled', 'disabled');},\n\t\t\tdo_enable = function(){elem.removeAttribute('disabled');};\n\n\t\t// Set defined state\n\t\tif(enable === null) // Set\n\t\t\tenable = elem.getAttribute('disabled') === null ? 0 : 1;\n\n\t\tenable === 1 ? do_enable() : do_disable();\n\n\t\tif( elem.getAttribute('apbct_children') !== null){\n\t\t\tvar state = apbctSettingsDependencies_getState( elem ) && enable;\n\t\t\tif( state !== null ) {\n\t\t\t\tapbctSettingsDependencies( elem.getAttribute('apbct_children'), state );\n\t\t\t}\n\t\t}\n\n\t});\n}\n\nfunction apbctSettingsDependencies_getState( elem ){\n\n\tvar state;\n\n\tswitch ( elem.getAttribute( 'type' ) ){\n\t\tcase 'checkbox':\n\t\t\tstate = +elem.checked;\n\t\t\tbreak;\n\t\tcase 'radio':\n\t\t\tstate = +(+elem.getAttribute('value') === 1);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tstate = null;\n\t}\n\n\treturn state;\n}\n\nfunction apbct_settings__showDescription(label, setting_id){\n\n\tvar remove_desc_func = function(e){\n\t\tif(typeof e === 'undefined' || ((jQuery(e.target).parent('.apbct_long_desc').length == 0 || jQuery(e.target).hasClass('apbct_long_desc__cancel')) && !jQuery(e.target).hasClass('apbct_long_description__show'))){\n\t\t\tjQuery('.apbct_long_desc').remove();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tlabel.after(\"<div id='apbct_long_desc__\"+setting_id+\"' class='apbct_long_desc'></div>\");\n\tvar obj = jQuery('#apbct_long_desc__'+setting_id);\n\tobj.append(\"<i class='icon-spin1 animate-spin'></i>\")\n\t\t.append(\"<div class='apbct_long_desc__angle'></div>\")\n\t\t.css({\n\t\t\ttop: label.position().top - 5,\n\t\t\tleft: label.position().left + 25\n\t\t});\n\n\n\tapbct_admin_sendAJAX(\n\t\t{action: 'apbct_settings__get_description', setting_id: setting_id},\n\t\t{\n\t\t\tspinner: obj.children('img'),\n\t\t\tcallback: function(result, data, params, obj){\n\n\t\t\t\tobj.empty()\n\t\t\t\t\t.append(\"<div class='apbct_long_desc__angle'></div>\")\n\t\t\t\t\t.append(\"<i class='apbct_long_desc__cancel icon-cancel'></i>\")\n\t\t\t\t\t.append(\"<h3 class='apbct_long_desc__title'>\"+result.title+\"</h3>\")\n\t\t\t\t\t.append(\"<p>\"+result.desc+\"</p>\");\n\n\t\t\t\tjQuery(document).on('click', remove_desc_func);\n\t\t\t}\n\t\t},\n\t\tobj\n\t);\n}"],"names":["apbct_banner_check","bannerChecker","setInterval","apbct_admin_sendAJAX","action","callback","result","data","params","obj","close_renew_banner","jQuery","length","hide","clearInterval","apbct_get_elems","elems","tmp","i","len","split","apbct_get_elems__native","out","forEach","elem","arr","document","getElementById","getElementsByClassName","key","push","apbct_show_hide_elem","each","label","next","prev","is","show","apbctSettingsDependencies","ids","enable","isNaN","console","log","getAttribute","state","removeAttribute","setAttribute","apbctSettingsDependencies_getState","checked","apbct_settings__showDescription","setting_id","remove_desc_func","e","target","parent","hasClass","remove","off","after","append","css","top","position","left","spinner","children","empty","title","desc","on","ready","getComputedStyle","direction","val","attr","this","fadeOut","d","Date","getTimezoneOffset","dialog","modal","my","at","of","window","width","height","draggable","resizable","closeText","timeout","button","setTimeout","reload","location","getTemplates","cleantalkModal","loaded","open","addEventListener","optionSelected","template_id","template_name","settings","notJson","success","insertAfter","close","templateNameInput","templateName","ctSettingsPage","key_changed","click","self","find"],"mappings":"AA0NA,SAASA,qBACR,IAAIC,EAAgBC,YAAa,WAChCC,qBACC,CAACC,OAAQ,sCACT,CACCC,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACpCH,EAAOI,qBACNC,OAAO,uBAAuBC,QACjCD,OAAO,uBAAuBE,KAAK,QAChCF,OAAO,uBAAuBC,QACjCD,OAAO,uBAAuBE,KAAK,QACpCC,cAAcb,QAKhB,KAUJ,SAASc,gBAAgBC,GAErB,IAAK,IAA6BC,EAAzBC,EAAE,EAAGC,GADdH,EAAQA,EAAMI,MAAM,MACMR,OAAaM,EAAIC,EAAKD,IAC5CD,EAAMN,OAAO,IAAIK,EAAME,IACvBF,EAAME,GAAoB,IAAfD,EAAIL,OAAeD,OAAO,IAAIK,EAAME,IAAMD,EAEzD,OAAOD,EAUX,SAASK,wBAAwBL,GAGZ,iBAAVA,IACTA,EAAQA,EAAMI,MAAM,MAErB,IAAIE,EAAM,GAuBV,OArBAN,EAAMO,QAAQ,SAASC,EAAMN,EAAGO,GAG/B,IAAIR,EAAMS,SAASC,eAAeH,GAClC,GAAY,OAARP,GAQJ,GAAY,QADZA,EAAMS,SAASE,uBAAuBJ,KACJ,IAAdP,EAAIL,OACvB,IAAIiB,OAAOZ,EACE,IAAPY,KACJP,EAAIQ,KAAMb,EAAIY,WAVhBP,EAAIQ,KAAMb,EAAIY,QAgBTP,EAGR,SAASS,qBAAqBf,GAE1B,IAAK,IAAIE,EAAE,EAAGC,GADjBH,EAAQD,gBAAgBC,IACKJ,OAAQM,EAAIC,EAAKD,IACvCF,EAAME,GAAGc,KAAK,SAAUd,EAAGM,GAEvB,IAAIS,GADJT,EAAOb,OAAOa,IACGU,KAAK,UAAYV,EAAKW,KAAK,UAAY,KACpDX,EAAKY,GAAG,aACRZ,EAAKX,OACDoB,GAAOA,EAAMpB,SAEjBW,EAAKa,OACDJ,GAAOA,EAAMI,UAajC,SAASC,0BAA0BC,EAAKC,GAGvCA,EAAWC,MAAMD,GAAmB,KAATA,EAGfnB,wBAAyBkB,GAE/BhB,QAAQ,SAASC,EAAMN,EAAGO,GAE/BiB,QAAQC,IAAKnB,EAAKoB,aAAa,OAE/B,IAUKC,EANS,OAAXL,IACFA,EAA2C,OAAlChB,EAAKoB,aAAa,YAAuB,EAAI,GAE5C,IAAXJ,EANyBhB,EAAKsB,gBAAgB,YADlBtB,EAAKuB,aAAa,WAAY,YASd,OAAxCvB,EAAKoB,aAAa,mBAEP,QADVC,EAAQG,mCAAoCxB,IAAUgB,IAEzDF,0BAA2Bd,EAAKoB,aAAa,kBAAmBC,KAOpE,SAASG,mCAAoCxB,GAE5C,IAAIqB,EAEJ,OAASrB,EAAKoB,aAAc,SAC3B,IAAK,WACJC,GAASrB,EAAKyB,QACd,MACD,IAAK,QACJJ,IAA0C,IAA/BrB,EAAKoB,aAAa,UAC7B,MACD,QACCC,EAAQ,KAGV,OAAOA,EAGR,SAASK,gCAAgCjB,EAAOkB,GAE/C,IAAIC,EAAmB,SAASC,QACf,IAANA,IAA6E,GAAtD1C,OAAO0C,EAAEC,QAAQC,OAAO,oBAAoB3C,SAAeD,OAAO0C,EAAEC,QAAQE,SAAS,4BAAgC7C,OAAO0C,EAAEC,QAAQE,SAAS,mCAC/K7C,OAAO,oBAAoB8C,SAC3B9C,OAAOe,UAAUgC,IAAI,QAASN,KAIhCA,IAEAnB,EAAM0B,MAAM,6BAA6BR,EAAW,oCACpD,IAAI1C,EAAME,OAAO,qBAAqBwC,GACtC1C,EAAImD,OAAO,2CACTA,OAAO,8CACPC,IAAI,CACJC,IAAK7B,EAAM8B,WAAWD,IAAM,EAC5BE,KAAM/B,EAAM8B,WAAWC,KAAO,KAIhC7D,qBACC,CAACC,OAAQ,kCAAmC+C,WAAYA,GACxD,CACCc,QAASxD,EAAIyD,SAAS,OACtB7D,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GAExCA,EAAI0D,QACFP,OAAO,8CACPA,OAAO,uDACPA,OAAO,sCAAsCtD,EAAO8D,MAAM,SAC1DR,OAAO,MAAMtD,EAAO+D,KAAK,QAE3B1D,OAAOe,UAAU4C,GAAG,QAASlB,KAG/B3C,GAjZFE,OAAOe,UAAU6C,MAAM,WAGnB7C,SAASE,uBAAuB,wBAAwB,IACoC,QAA3F4C,iBAAiB9C,SAASE,uBAAuB,wBAAwB,IAAI6C,WAC/E9D,OAAO,oBAAoBkD,IAAI,aAAc,SAK5ClD,OAAO,qBAAqB2D,GAAG,QAAS,WACpC3D,OAAO,2BAA2B+D,IAAI/D,OAAO,2BAA2BgE,KAAK,QAC7EhE,OAAO,+BAA+B0B,OACtC1B,OAAOiE,MAAMC,QAAQ,OAG5B,IAAIC,EAAI,IAAIC,KACZpE,OAAO,sBAAsB+D,IAAII,EAAEE,oBAAoB,IAAK,GAG5DrE,OAAO,0BAA0B2D,GAAG,QAAS,WAC5C3D,OAAO,gBAAgBsE,OAAO,CAC7BC,OAAM,EACN7C,MAAM,EACN0B,SAAU,CAAEoB,GAAI,SAAUC,GAAI,SAAUC,GAAIC,QAC5CC,OAAS5E,OAAO,WAAW4E,QAAU,IAAM,GAC3CC,OAAQ,OACRpB,MAAO,kBACPqB,WAAW,EACXC,WAAW,EACXC,UAAW,YAKbhF,OAAO,+BAA+B2D,GAAG,QAAS,WACjDnE,qBACC,CAACC,OAAQ,sBACT,CACCwF,QAAS,KACTC,OAAQnE,SAASC,eAAe,8BAChCsC,QAAStD,OAAO,uDAChBN,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACxCE,OAAO,8CAA8C0B,KAAK,KAC1DyD,WAAW,WAAWnF,OAAO,8CAA8CE,KAAK,MAAQ,KACrFP,EAAOyF,QACTrE,SAASsE,SAASD,SAChBzF,EAAO2F,eACTC,eAAeC,OAAS7F,EAAO2F,aAC/BC,eAAeE,OACf1E,SAAS2E,iBAAiB,uBAAwB,SAAUhD,GAC3D3B,SAASsE,SAASD,iBASxBpF,OAAQe,UAAW4C,GAAG,QAAS,0CAA2C,WACzE3D,OAAO,sBAAsB8C,SAC7B,IAOIlD,EAKAsF,EAZAS,EAAiB3F,OAAO,kBAAmBA,OAAO,qCAC9BA,OAAO,yCACbkD,IAAI,eAAgB,gBACG,IAA9ByC,EAAe/F,KAAK,OAI3BA,EAAO,CACVgG,YAAgBD,EAAe/F,KAAK,MACpCiG,cAAkBF,EAAe/F,KAAK,QACtCkG,SAAaH,EAAe/F,KAAK,aAE9BsF,EAASjB,KACbzE,qBACC,CAACC,OAAQ,4BAA6BG,KAAMA,GAC5C,CACCqF,QAAS,KACTC,OAAQA,EACR5B,QAAStD,OAAO,mEAChB+F,SAAS,EACTrG,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACrCH,EAAOqG,SACThG,OAAQ,6CAA+CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,IAClGlF,OAAO,0DAA0D0B,KAAK,KACtEyD,WAAW,WAAWnF,OAAO,0DAA0DE,KAAK,MAAQ,KACpGa,SAAS2E,iBAAiB,uBAAwB,SAAUhD,GAC3D3B,SAASsE,SAASD,WAEnBD,WAAW,WAAWI,eAAeW,SAAU,MAE/ClG,OAAQ,2CAA6CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,QA1BnGnD,QAAQC,IAAK,iDAkCfhC,OAAQe,UAAW4C,GAAG,QAAS,0CAA2C,WACzE3D,OAAO,sBAAsB8C,SAC7B,IAAI6C,EAAiB3F,OAAO,kBAAmBA,OAAO,qCAClDmG,EAAoBnG,OAAO,yCAE/B,GADAmG,EAAkBjD,IAAI,eAAgB,gBACG,IAA9ByC,EAAe/F,KAAK,MAA/B,CAIA,GAAkC,iBAA9B+F,EAAe/F,KAAK,MAA2B,CAClD,IAAIwG,EAAeD,EAAkBpC,MACrC,GAAqB,KAAjBqC,EAEH,YADAD,EAAkBjD,IAAI,eAAgB,OAGvC,IAAItD,EAAO,CACViG,cAAkBO,QAGfxG,EAAO,CACVgG,YAAgBD,EAAe/F,KAAK,OAGtC,IAAIsF,EAASjB,KACbzE,qBACC,CAACC,OAAQ,4BAA6BG,KAAMA,GAC5C,CACCqF,QAAS,KACTC,OAAQA,EACR5B,QAAStD,OAAO,mEAChB+F,SAAS,EACTrG,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACrCH,EAAOqG,SACThG,OAAQ,6CAA+CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,IAClGlF,OAAO,0DAA0D0B,KAAK,KACtEyD,WAAW,WAAWnF,OAAO,0DAA0DE,KAAK,MAAQ,KACpGa,SAAS2E,iBAAiB,uBAAwB,SAAUhD,GAC3D3B,SAASsE,SAASD,WAEnBD,WAAW,WAAWI,eAAeW,SAAU,MAE/ClG,OAAQ,2CAA6CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,YAnCnGnD,QAAQC,IAAK,iDA2CfhC,OAAQe,UAAW4C,GAAG,QAAS,yCAA0C,WACxE,IAAIuB,EAASjB,KACbzE,qBACC,CAACC,OAAQ,4BACT,CACCwF,QAAS,KACTC,OAAQA,EACR5B,QAAStD,OAAO,kEAChB+F,SAAS,EACTrG,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACrCH,EAAOqG,SACThG,OAAQ,6CAA+CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,IAClGlF,OAAO,yDAAyD0B,KAAK,KACrEyD,WAAW,WAAWnF,OAAO,yDAAyDE,KAAK,MAAQ,KACnGa,SAAS2E,iBAAiB,uBAAwB,SAAUhD,GAC3D3B,SAASsE,SAASD,WAEnBD,WAAW,WAAWI,eAAeW,SAAU,MAE/ClG,OAAQ,2CAA6CL,EAAOC,KAAO,QAASqG,YAAajG,OAAOkF,SAQrGlF,OAAO,uBAAuB2D,GAAG,QAAS,WACzCnE,qBACC,CAACC,OAAQ,cACT,CACCwF,QAAS,KACTC,OAAQnE,SAASC,eAAe,sBAChCsC,QAAStD,OAAO,+CAChBN,SAAU,SAASC,EAAQC,EAAMC,EAAQC,GACxCE,OAAO,kBAAkB0B,KAAK,KAC9ByD,WAAW,WAAWnF,OAAO,kBAAkBE,KAAK,MAAQ,KACzDP,EAAOyF,QACTrE,SAASsE,SAASD,cAMnBiB,eAAeC,aAClBtG,OAAO,uBAAuBuG,QAE/BvG,OAAOe,UAAU4C,GAAG,QAAS,0CAA2C,WACvE6C,KAAOxG,OAAOiE,MACd1B,gCAAgCiE,KAAMA,KAAKxC,KAAK,eAG7ChE,OAAO,uBAAuBC,QAAUD,OAAO,uBAAuBC,SACzEZ,qBAEDW,OAAOe,UAAU4C,GAAG,SAAU,mCAAmC,WAE7B,iBADd3D,OAAO,kBAAmBiE,MAC3BrE,KAAK,MACxBI,OAAOiE,MAAMrB,SAASA,SAAS6D,KAAK,yCAAyC/E,OAE7E1B,OAAOiE,MAAMrB,SAASA,SAAS6D,KAAK,yCAAyCvG"}
|
@@ -1,2 +1,2 @@
|
|
1 |
-
cleantalkModal={
|
2 |
//# sourceMappingURL=cleantalk-modal.min.js.map
|
1 |
+
cleantalkModal={loaded:!1,loading:!1,opened:!1,opening:!1,load:function(e){this.loaded||(this.loading=!0,callback=function(e,t,a,n){cleantalkModal.loading=!1,cleantalkModal.loaded=e,document.dispatchEvent(new CustomEvent("cleantalkModalContentLoaded",{bubbles:!0}))},("function"==typeof apbct_admin_sendAJAX?apbct_admin_sendAJAX:apbct_public_sendAJAX)({action:e},{callback:callback,notJson:!0}))},open:function(){function e(){var e="";for(key in this.styles)e+=key+":"+this.styles[key]+";";return e}var t={styles:{"z-index":"9999",position:"fixed",top:"0",left:"0",width:"100%",height:"100%",background:"rgba(0,0,0,0.5)",display:"flex","justify-content":"center","align-items":"center"},toString:e},a={styles:{position:"relative",padding:"30px",background:"#FFF",border:"1px solid rgba(0,0,0,0.75)","border-radius":"4px","box-shadow":"7px 7px 5px 0px rgba(50,50,50,0.75)"},toString:e},n={styles:{position:"absolute",background:"#FFF",width:"20px",height:"20px",border:"2px solid rgba(0,0,0,0.75)","border-radius":"15px",cursor:"pointer",top:"-8px",right:"-8px"},toString:e},o={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(45deg)"},toString:e},l={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(-45deg)"},toString:e},d={styles:{overflow:"hidden"},toString:e},i=document.createElement("style");i.setAttribute("id","cleantalk-modal-styles"),i.innerHTML="body.cleantalk-modal-opened{"+d+"}",i.innerHTML+="#cleantalk-modal-overlay{"+t+"}",i.innerHTML+="#cleantalk-modal-close{"+n+"}",i.innerHTML+="#cleantalk-modal-close:before{"+o+"}",i.innerHTML+="#cleantalk-modal-close:after{"+l+"}",document.body.append(i);var c=document.createElement("div");c.setAttribute("id","cleantalk-modal-overlay"),document.body.append(c),document.body.classList.add("cleantalk-modal-opened");var r=document.createElement("div");r.setAttribute("id","cleantalk-modal-inner"),r.setAttribute("style",a),c.append(r);var s=document.createElement("div");s.setAttribute("id","cleantalk-modal-close"),r.append(s);var p=document.createElement("div");this.loaded?p.innerHTML=this.loaded:(p.innerHTML="Loading...",this.load("get_options_template")),p.setAttribute("id","cleantalk-modal-content"),r.append(p),this.opened=!0},close:function(){document.body.classList.remove("cleantalk-modal-opened"),document.getElementById("cleantalk-modal-overlay").remove(),document.getElementById("cleantalk-modal-styles").remove(),document.dispatchEvent(new CustomEvent("cleantalkModalClosed",{bubbles:!0}))}},document.addEventListener("click",function(e){(e.target&&"cleantalk-modal-overlay"===e.target.id||"cleantalk-modal-close"===e.target.id)&&cleantalkModal.close()}),document.addEventListener("cleantalkModalContentLoaded",function(e){cleantalkModal.opened&&cleantalkModal.loaded&&(document.getElementById("cleantalk-modal-content").innerHTML=cleantalkModal.loaded)});
|
2 |
//# sourceMappingURL=cleantalk-modal.min.js.map
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"cleantalk-modal.min.js","sources":["cleantalk-modal.js"],"sourcesContent":["/* Cleantalk Modal object */\ncleantalkModal = {\n\n
|
1 |
+
{"version":3,"file":"cleantalk-modal.min.js","sources":["cleantalk-modal.js"],"sourcesContent":["/* Cleantalk Modal object */\ncleantalkModal = {\n\n // Flags\n loaded: false,\n loading: false,\n opened: false,\n opening: false,\n\n // Methods\n load: function( action ) {\n if( ! this.loaded ) {\n this.loading = true;\n callback = function( result, data, params, obj ) {\n cleantalkModal.loading = false;\n cleantalkModal.loaded = result;\n document.dispatchEvent(\n new CustomEvent( \"cleantalkModalContentLoaded\", {\n bubbles: true,\n } )\n );\n };\n if( typeof apbct_admin_sendAJAX === \"function\" ) {\n apbct_admin_sendAJAX( { 'action' : action }, { 'callback': callback, 'notJson': true } );\n } else {\n apbct_public_sendAJAX( { 'action' : action }, { 'callback': callback, 'notJson': true } );\n }\n\n }\n },\n\n open: function () {\n /* Cleantalk Modal CSS start */\n var renderCss = function () {\n var cssStr = '';\n for ( key in this.styles ) {\n cssStr += key + ':' + this.styles[key] + ';';\n }\n return cssStr;\n };\n var overlayCss = {\n styles: {\n \"z-index\": \"9999\",\n \"position\": \"fixed\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"background\": \"rgba(0,0,0,0.5)\",\n \"display\": \"flex\",\n \"justify-content\" : \"center\",\n \"align-items\" : \"center\",\n },\n toString: renderCss\n };\n var innerCss = {\n styles: {\n \"position\" : \"relative\",\n \"padding\" : \"30px\",\n \"background\" : \"#FFF\",\n \"border\" : \"1px solid rgba(0,0,0,0.75)\",\n \"border-radius\" : \"4px\",\n \"box-shadow\" : \"7px 7px 5px 0px rgba(50,50,50,0.75)\",\n },\n toString: renderCss\n };\n var closeCss = {\n styles: {\n \"position\" : \"absolute\",\n \"background\" : \"#FFF\",\n \"width\" : \"20px\",\n \"height\" : \"20px\",\n \"border\" : \"2px solid rgba(0,0,0,0.75)\",\n \"border-radius\" : \"15px\",\n \"cursor\" : \"pointer\",\n \"top\" : \"-8px\",\n \"right\" : \"-8px\",\n },\n toString: renderCss\n };\n var closeCssBefore = {\n styles: {\n \"content\" : \"\\\"\\\"\",\n \"display\" : \"block\",\n \"position\" : \"absolute\",\n \"background\" : \"#000\",\n \"border-radius\" : \"1px\",\n \"width\" : \"2px\",\n \"height\" : \"16px\",\n \"top\" : \"2px\",\n \"left\" : \"9px\",\n \"transform\" : \"rotate(45deg)\",\n },\n toString: renderCss\n };\n var closeCssAfter = {\n styles: {\n \"content\" : \"\\\"\\\"\",\n \"display\" : \"block\",\n \"position\" : \"absolute\",\n \"background\" : \"#000\",\n \"border-radius\" : \"1px\",\n \"width\" : \"2px\",\n \"height\" : \"16px\",\n \"top\" : \"2px\",\n \"left\" : \"9px\",\n \"transform\" : \"rotate(-45deg)\",\n },\n toString: renderCss\n };\n var bodyCss = {\n styles: {\n \"overflow\" : \"hidden\",\n },\n toString: renderCss\n };\n var cleantalkModalStyle = document.createElement( 'style' );\n cleantalkModalStyle.setAttribute( 'id', 'cleantalk-modal-styles' );\n cleantalkModalStyle.innerHTML = 'body.cleantalk-modal-opened{' + bodyCss + '}';\n cleantalkModalStyle.innerHTML += '#cleantalk-modal-overlay{' + overlayCss + '}';\n cleantalkModalStyle.innerHTML += '#cleantalk-modal-close{' + closeCss + '}';\n cleantalkModalStyle.innerHTML += '#cleantalk-modal-close:before{' + closeCssBefore + '}';\n cleantalkModalStyle.innerHTML += '#cleantalk-modal-close:after{' + closeCssAfter + '}';\n document.body.append( cleantalkModalStyle );\n /* Cleantalk Modal CSS end */\n\n var overlay = document.createElement( 'div' );\n overlay.setAttribute( 'id', 'cleantalk-modal-overlay' );\n document.body.append( overlay );\n\n document.body.classList.add( 'cleantalk-modal-opened' );\n\n var inner = document.createElement( 'div' );\n inner.setAttribute( 'id', 'cleantalk-modal-inner' );\n inner.setAttribute( 'style', innerCss );\n overlay.append( inner );\n\n var close = document.createElement( 'div' );\n close.setAttribute( 'id', 'cleantalk-modal-close' );\n inner.append( close );\n\n var content = document.createElement( 'div' );\n if ( this.loaded ) {\n content.innerHTML = this.loaded;\n } else {\n content.innerHTML = 'Loading...';\n // @ToDo Here is hardcoded parameter. Have to get this from a 'data-' attribute.\n this.load( 'get_options_template' );\n }\n content.setAttribute( 'id', 'cleantalk-modal-content' );\n inner.append( content );\n\n this.opened = true;\n },\n\n close: function () {\n document.body.classList.remove( 'cleantalk-modal-opened' );\n document.getElementById( 'cleantalk-modal-overlay' ).remove();\n document.getElementById( 'cleantalk-modal-styles' ).remove();\n document.dispatchEvent(\n new CustomEvent( \"cleantalkModalClosed\", {\n bubbles: true,\n } )\n );\n }\n\n};\n\n/* Cleantalk Modal helpers */\ndocument.addEventListener('click',function( e ){\n if( e.target && e.target.id === 'cleantalk-modal-overlay' || e.target.id === 'cleantalk-modal-close' ){\n cleantalkModal.close();\n }\n});\ndocument.addEventListener(\"cleantalkModalContentLoaded\", function( e ) {\n if( cleantalkModal.opened && cleantalkModal.loaded ) {\n document.getElementById( 'cleantalk-modal-content' ).innerHTML = cleantalkModal.loaded;\n }\n});"],"names":["cleantalkModal","loaded","loading","opened","opening","load","action","this","callback","result","data","params","obj","document","dispatchEvent","CustomEvent","bubbles","apbct_admin_sendAJAX","apbct_public_sendAJAX","notJson","open","renderCss","cssStr","key","styles","overlayCss","z-index","position","top","left","width","height","background","display","justify-content","align-items","toString","innerCss","padding","border","border-radius","box-shadow","closeCss","cursor","right","closeCssBefore","content","transform","closeCssAfter","bodyCss","overflow","cleantalkModalStyle","createElement","setAttribute","innerHTML","body","append","overlay","classList","add","inner","close","remove","getElementById","addEventListener","e","target","id"],"mappings":"AACAA,eAAiB,CAGbC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,SAAS,EAGTC,KAAM,SAAUC,GACNC,KAAKN,SACPM,KAAKL,SAAU,EACfM,SAAW,SAAUC,EAAQC,EAAMC,EAAQC,GACvCZ,eAAeE,SAAU,EACzBF,eAAeC,OAASQ,EACxBI,SAASC,cACL,IAAIC,YAAa,8BAA+B,CAC5CC,SAAS,OAIe,mBAAzBC,qBACPA,qBAEAC,uBAFsB,CAAEZ,OAAWA,GAAU,CAAEE,SAAYA,SAAUW,SAAW,MAQ5FC,KAAM,WAEc,SAAZC,IACA,IAAIC,EAAS,GACb,IAAMC,OAAOhB,KAAKiB,OACdF,GAAUC,IAAM,IAAMhB,KAAKiB,OAAOD,KAAO,IAE7C,OAAOD,EALX,IAOIG,EAAa,CACbD,OAAQ,CACJE,UAAW,OACXC,SAAY,QACZC,IAAO,IACPC,KAAQ,IACRC,MAAS,OACTC,OAAU,OACVC,WAAc,kBACdC,QAAW,OACXC,kBAAoB,SACpBC,cAAgB,UAEpBC,SAAUf,GAEVgB,EAAW,CACXb,OAAQ,CACJG,SAAa,WACbW,QAAY,OACZN,WAAe,OACfO,OAAW,6BACXC,gBAAkB,MAClBC,aAAe,uCAEnBL,SAAUf,GAEVqB,EAAW,CACXlB,OAAQ,CACJG,SAAa,WACbK,WAAe,OACfF,MAAU,OACVC,OAAW,OACXQ,OAAW,6BACXC,gBAAkB,OAClBG,OAAW,UACXf,IAAQ,OACRgB,MAAU,QAEdR,SAAUf,GAEVwB,EAAiB,CACjBrB,OAAQ,CACJsB,QAAY,KACZb,QAAY,QACZN,SAAa,WACbK,WAAe,OACfQ,gBAAkB,MAClBV,MAAU,MACVC,OAAW,OACXH,IAAQ,MACRC,KAAS,MACTkB,UAAc,iBAElBX,SAAUf,GAEV2B,EAAgB,CAChBxB,OAAQ,CACJsB,QAAY,KACZb,QAAY,QACZN,SAAa,WACbK,WAAe,OACfQ,gBAAkB,MAClBV,MAAU,MACVC,OAAW,OACXH,IAAQ,MACRC,KAAS,MACTkB,UAAc,kBAElBX,SAAUf,GAEV4B,EAAU,CACVzB,OAAQ,CACJ0B,SAAa,UAEjBd,SAAUf,GAEV8B,EAAsBtC,SAASuC,cAAe,SAClDD,EAAoBE,aAAc,KAAM,0BACxCF,EAAoBG,UAAY,+BAAiCL,EAAU,IAC3EE,EAAoBG,WAAa,4BAA8B7B,EAAa,IAC5E0B,EAAoBG,WAAa,0BAA4BZ,EAAW,IACxES,EAAoBG,WAAa,iCAAmCT,EAAiB,IACrFM,EAAoBG,WAAa,gCAAkCN,EAAgB,IACnFnC,SAAS0C,KAAKC,OAAQL,GAGtB,IAAIM,EAAU5C,SAASuC,cAAe,OACtCK,EAAQJ,aAAc,KAAM,2BAC5BxC,SAAS0C,KAAKC,OAAQC,GAEtB5C,SAAS0C,KAAKG,UAAUC,IAAK,0BAE7B,IAAIC,EAAQ/C,SAASuC,cAAe,OACpCQ,EAAMP,aAAc,KAAM,yBAC1BO,EAAMP,aAAc,QAAShB,GAC7BoB,EAAQD,OAAQI,GAEhB,IAAIC,EAAQhD,SAASuC,cAAe,OACpCS,EAAMR,aAAc,KAAM,yBAC1BO,EAAMJ,OAAQK,GAEd,IAAIf,EAAUjC,SAASuC,cAAe,OACjC7C,KAAKN,OACN6C,EAAQQ,UAAY/C,KAAKN,QAEzB6C,EAAQQ,UAAY,aAEpB/C,KAAKF,KAAM,yBAEfyC,EAAQO,aAAc,KAAM,2BAC5BO,EAAMJ,OAAQV,GAEdvC,KAAKJ,QAAS,GAGlB0D,MAAO,WACHhD,SAAS0C,KAAKG,UAAUI,OAAQ,0BAChCjD,SAASkD,eAAgB,2BAA4BD,SACrDjD,SAASkD,eAAgB,0BAA2BD,SACpDjD,SAASC,cACL,IAAIC,YAAa,uBAAwB,CACrCC,SAAS,OAQzBH,SAASmD,iBAAiB,QAAQ,SAAUC,IACpCA,EAAEC,QAA0B,4BAAhBD,EAAEC,OAAOC,IAAoD,0BAAhBF,EAAEC,OAAOC,KAClEnE,eAAe6D,UAGvBhD,SAASmD,iBAAiB,8BAA+B,SAAUC,GAC3DjE,eAAeG,QAAUH,eAAeC,SACxCY,SAASkD,eAAgB,2BAA4BT,UAAYtD,eAAeC"}
|
@@ -46,14 +46,14 @@ class DisableComments{
|
|
46 |
|
47 |
$types_to_disable = array();
|
48 |
|
49 |
-
if( $this->apbct->settings['
|
50 |
$types_to_disable = array( 'page', 'post', 'media' );
|
51 |
}else{
|
52 |
-
if( $this->apbct->settings['
|
53 |
$types_to_disable[] = 'post';
|
54 |
-
if( $this->apbct->settings['
|
55 |
$types_to_disable[] = 'page';
|
56 |
-
if( $this->apbct->settings['
|
57 |
$types_to_disable[] = 'media';
|
58 |
}
|
59 |
|
@@ -97,7 +97,7 @@ class DisableComments{
|
|
97 |
|
98 |
if( is_admin() ){
|
99 |
|
100 |
-
if( $this->apbct->settings['
|
101 |
add_action( 'admin_menu', array( $this, 'admin__filter_menu' ), 999 );
|
102 |
add_action( 'admin_print_styles-index.php', array( $this, 'admin__filter_css' ) );
|
103 |
add_action( 'admin_print_styles-profile.php', array( $this, 'admin__filter_css' ) );
|
46 |
|
47 |
$types_to_disable = array();
|
48 |
|
49 |
+
if( $this->apbct->settings['comments__disable_comments__all'] ){
|
50 |
$types_to_disable = array( 'page', 'post', 'media' );
|
51 |
}else{
|
52 |
+
if( $this->apbct->settings['comments__disable_comments__posts'] )
|
53 |
$types_to_disable[] = 'post';
|
54 |
+
if( $this->apbct->settings['comments__disable_comments__pages'] )
|
55 |
$types_to_disable[] = 'page';
|
56 |
+
if( $this->apbct->settings['comments__disable_comments__media'] )
|
57 |
$types_to_disable[] = 'media';
|
58 |
}
|
59 |
|
97 |
|
98 |
if( is_admin() ){
|
99 |
|
100 |
+
if( $this->apbct->settings['comments__disable_comments__all'] ){
|
101 |
add_action( 'admin_menu', array( $this, 'admin__filter_menu' ), 999 );
|
102 |
add_action( 'admin_print_styles-index.php', array( $this, 'admin__filter_css' ) );
|
103 |
add_action( 'admin_print_styles-profile.php', array( $this, 'admin__filter_css' ) );
|
@@ -37,7 +37,7 @@ class API extends \Cleantalk\Common\API
|
|
37 |
// Adding agent version to data
|
38 |
$data['agent'] = APBCT_AGENT;
|
39 |
|
40 |
-
if($apbct->settings['
|
41 |
|
42 |
$args = array(
|
43 |
'body' => $data,
|
37 |
// Adding agent version to data
|
38 |
$data['agent'] = APBCT_AGENT;
|
39 |
|
40 |
+
if($apbct->settings['wp__use_builtin_http_api']){
|
41 |
|
42 |
$args = array(
|
43 |
'body' => $data,
|
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
namespace Cleantalk\ApbctWP;
|
5 |
+
|
6 |
+
|
7 |
+
class CleantalkSettingsTemplates {
|
8 |
+
|
9 |
+
private $api_key;
|
10 |
+
|
11 |
+
private static $templates;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* CleantalkDefaultSettings constructor.
|
15 |
+
*
|
16 |
+
* @param $api_key
|
17 |
+
*/
|
18 |
+
public function __construct( $api_key )
|
19 |
+
{
|
20 |
+
$this->api_key = $api_key;
|
21 |
+
add_filter( 'apbct_settings_action_buttons', array( $this, 'add_action_button' ), 10, 1 );
|
22 |
+
add_action( 'wp_ajax_get_options_template', array( $this, 'get_options_template_ajax' ) );
|
23 |
+
add_action( 'wp_ajax_settings_templates_export', array( $this, 'settings_templates_export_ajax' ) );
|
24 |
+
add_action( 'wp_ajax_settings_templates_import', array( $this, 'settings_templates_import_ajax' ) );
|
25 |
+
add_action( 'wp_ajax_settings_templates_reset', array( $this, 'settings_templates_reset_ajax' ) );
|
26 |
+
add_action( 'apbct_settings_template_get', array( $this, 'open_templates_dialog' ) );
|
27 |
+
}
|
28 |
+
|
29 |
+
public function add_action_button( $links )
|
30 |
+
{
|
31 |
+
$link = '<a href="#" class="ct_support_link" onclick="cleantalkModal.open()" data-content-action="get_options_template">' . __('Import/Export settings', 'cleantalk-spam-protect') . '</a>';
|
32 |
+
$links[] = $link;
|
33 |
+
return $links;
|
34 |
+
}
|
35 |
+
|
36 |
+
public function get_options_template_ajax()
|
37 |
+
{
|
38 |
+
check_ajax_referer('ct_secret_nonce', 'security');
|
39 |
+
echo $this->getHtmlContent();
|
40 |
+
die();
|
41 |
+
}
|
42 |
+
|
43 |
+
public function settings_templates_export_ajax()
|
44 |
+
{
|
45 |
+
check_ajax_referer('ct_secret_nonce', 'security');
|
46 |
+
$error_text = 'Export handler error.';
|
47 |
+
if( isset( $_POST['data'] ) && is_array( $_POST['data'] ) ) {
|
48 |
+
$template_info = $_POST['data'];
|
49 |
+
if( isset( $template_info['template_id'] ) ) {
|
50 |
+
$template_id = sanitize_text_field( $template_info['template_id'] );
|
51 |
+
$res = \Cleantalk\Common\API::method__services_templates_update( $this->api_key, $template_id );
|
52 |
+
if( is_array( $res ) && array_key_exists( 'operation_status', $res ) ) {
|
53 |
+
if( $res['operation_status'] === 'SUCCESS' ) {
|
54 |
+
wp_send_json_success( esc_html__('Success. Reloading...', 'cleantalk-spam-protect' ) );
|
55 |
+
}
|
56 |
+
if ( $res['operation_status'] === 'FAILED' ) {
|
57 |
+
wp_send_json_error( 'Error: ' . $res['operation_message'] );
|
58 |
+
}
|
59 |
+
}
|
60 |
+
$error_text = 'Template updating response is wrong.';
|
61 |
+
}
|
62 |
+
if( isset( $template_info['template_name'] ) ) {
|
63 |
+
$template_name = sanitize_text_field( $template_info['template_name'] );
|
64 |
+
$res = \Cleantalk\Common\API::method__services_templates_add( $this->api_key, $template_name );
|
65 |
+
if( is_array( $res ) && array_key_exists( 'operation_status', $res ) ) {
|
66 |
+
if( $res['operation_status'] === 'SUCCESS' ) {
|
67 |
+
wp_send_json_success( esc_html__('Success. Reloading...', 'cleantalk-spam-protect' ) );
|
68 |
+
}
|
69 |
+
if ( $res['operation_status'] === 'FAILED' ) {
|
70 |
+
wp_send_json_error( 'Error: ' . $res['operation_message'] );
|
71 |
+
}
|
72 |
+
}
|
73 |
+
$error_text = 'Template adding response is wrong.';
|
74 |
+
}
|
75 |
+
}
|
76 |
+
wp_send_json_error( 'Error: ' . $error_text );
|
77 |
+
}
|
78 |
+
|
79 |
+
public function settings_templates_import_ajax()
|
80 |
+
{
|
81 |
+
check_ajax_referer('ct_secret_nonce', 'security');
|
82 |
+
if( isset( $_POST['data'] ) && is_array( $_POST['data'] ) ) {
|
83 |
+
$template_info = $_POST['data'];
|
84 |
+
if( isset( $template_info['template_id'], $template_info['template_name'], $template_info['settings'] ) ) {
|
85 |
+
$res = apbct_set_plugin_options( $template_info['template_id'], $template_info['template_name'], $template_info['settings'] );
|
86 |
+
if( empty( $res['error'] ) ) {
|
87 |
+
wp_send_json_success( esc_html__('Success. Reloading...', 'cleantalk-spam-protect' ) );
|
88 |
+
} else {
|
89 |
+
wp_send_json_error( $res['error'] );
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
wp_send_json_error( 'Import handler error.' );
|
94 |
+
}
|
95 |
+
|
96 |
+
public function settings_templates_reset_ajax()
|
97 |
+
{
|
98 |
+
check_ajax_referer('ct_secret_nonce', 'security');
|
99 |
+
$res = apbct_reset_plugin_options();
|
100 |
+
if( empty( $res['error'] ) ) {
|
101 |
+
wp_send_json_success( esc_html__('Success. Reloading...', 'cleantalk-spam-protect' ) );
|
102 |
+
} else {
|
103 |
+
wp_send_json_error( $res['error'] );
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
public static function get_options_template( $api_key )
|
108 |
+
{
|
109 |
+
$res = \Cleantalk\Common\API::method__services_templates_get( $api_key );
|
110 |
+
if( is_array( $res ) ) {
|
111 |
+
if( array_key_exists( 'error', $res ) ) {
|
112 |
+
$templates = array();
|
113 |
+
} else {
|
114 |
+
$templates = $res;
|
115 |
+
}
|
116 |
+
} else {
|
117 |
+
$templates = array();
|
118 |
+
}
|
119 |
+
if( ! self::$templates ) {
|
120 |
+
self::$templates = $templates;
|
121 |
+
}
|
122 |
+
return self::$templates;
|
123 |
+
}
|
124 |
+
|
125 |
+
public function getHtmlContent( $import_only = false )
|
126 |
+
{
|
127 |
+
$templates = self::get_options_template( $this->api_key );
|
128 |
+
$title = $this->getTitle();
|
129 |
+
$out = $this->getHtmlContentImport( $templates );
|
130 |
+
if( ! $import_only ) {
|
131 |
+
$out .= $this->getHtmlContentExport( $templates );
|
132 |
+
$out .= $this->getHtmlContentReset();
|
133 |
+
}
|
134 |
+
return $title . '<br>' . $out;
|
135 |
+
}
|
136 |
+
|
137 |
+
private function getHtmlContentImport( $templates )
|
138 |
+
{
|
139 |
+
$templatesSet = '<h3>' . esc_html__( 'Import settings.', 'cleantalk-spam-protect' ) . '</h3>';
|
140 |
+
|
141 |
+
//Check available option_site parameter
|
142 |
+
if( count( $templates ) > 0 ) {
|
143 |
+
foreach( $templates as $key => $template ) {
|
144 |
+
if( empty( $template['options_site'] ) ) {
|
145 |
+
unset( $templates[$key] );
|
146 |
+
}
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
if( count( $templates ) === 0 ) {
|
151 |
+
$templatesSet .= esc_html__( 'There are no settings templates.', 'cleantalk-spam-protect' );
|
152 |
+
return $templatesSet . '<br><hr>';
|
153 |
+
}
|
154 |
+
|
155 |
+
$templatesSet .= '<p><select id="apbct_settings_templates_import" >';
|
156 |
+
foreach( $templates as $template ) {
|
157 |
+
$templatesSet .= "<option
|
158 |
+
data-id='" . $template['template_id'] . "'
|
159 |
+
data-name='" . $template['name'] . "''
|
160 |
+
data-settings='" . $template['options_site'] . "'>"
|
161 |
+
. $template['name']
|
162 |
+
. "</option>";
|
163 |
+
}
|
164 |
+
$templatesSet .= '</select></p>';
|
165 |
+
$button = $this->getImportButton();
|
166 |
+
|
167 |
+
return $templatesSet . '<br>' . $button . '<br><hr>';
|
168 |
+
}
|
169 |
+
|
170 |
+
public function getHtmlContentExport( $templates )
|
171 |
+
{
|
172 |
+
$templatesSet = '<h3>' . esc_html__( 'Export settings.', 'cleantalk-spam-protect' ) . '</h3>';
|
173 |
+
$templatesSet .= '<p><select id="apbct_settings_templates_export" >';
|
174 |
+
$templatesSet .= '<option data-id="new_template" checked="true">New template</option>';
|
175 |
+
foreach( $templates as $template ) {
|
176 |
+
$templatesSet .= '<option data-id="' . $template['template_id'] . '">' . $template['name'] . '</option>';
|
177 |
+
}
|
178 |
+
$templatesSet .= '</select></p>';
|
179 |
+
$templatesSet .= '<p><input type="text" id="apbct_settings_templates_export_name" name="apbct_settings_template_name" placeholder="' . esc_html__( 'Enter a template name.', 'cleantalk-spam-protect' ) . '" required /></p>';
|
180 |
+
$button = $this->getExportButton();
|
181 |
+
return $templatesSet . '<br>' . $button . '<br>';
|
182 |
+
}
|
183 |
+
|
184 |
+
public function getHtmlContentReset()
|
185 |
+
{
|
186 |
+
$content = '<h3>' . esc_html__( 'Reset settings.', 'cleantalk-spam-protect' ) . '</h3>';
|
187 |
+
return '<br><br><hr><br>' . $content . '<br>' . $this->getResetButton() . '<br>';
|
188 |
+
}
|
189 |
+
|
190 |
+
private function getTitle()
|
191 |
+
{
|
192 |
+
global $apbct;
|
193 |
+
if( isset( $apbct->data['current_settings_template_name'] ) && $apbct->data['current_settings_template_name'] ) {
|
194 |
+
$current_template_name = $apbct->data['current_settings_template_name'];
|
195 |
+
} else {
|
196 |
+
$current_template_name = 'default';
|
197 |
+
}
|
198 |
+
$content = '<h2>' . esc_html__( 'CleanTalk settings templates.', 'cleantalk-spam-protect' ) . '</h2>';
|
199 |
+
$content .= '<p>' . esc_html__( 'You are currently using:', 'cleantalk-spam-protect' ) . ' ' . $current_template_name . '</p>';
|
200 |
+
return $content;
|
201 |
+
}
|
202 |
+
|
203 |
+
private function getExportButton()
|
204 |
+
{
|
205 |
+
return '<button id="apbct_settings_templates_export_button" class="cleantalk_link cleantalk_link-manual">'
|
206 |
+
. esc_html__( 'Export settings to selected template.', 'cleantalk-spam-protect' )
|
207 |
+
. '<img alt="Preloader ico" style="margin-left: 10px;" class="apbct_preloader_button" src="' . APBCT_URL_PATH . '/inc/images/preloader2.gif" />'
|
208 |
+
. '<img alt="Success ico" style="margin-left: 10px;" class="apbct_success --hide" src="' . APBCT_URL_PATH . '/inc/images/yes.png" />'
|
209 |
+
. '</button>';
|
210 |
+
}
|
211 |
+
|
212 |
+
private function getImportButton(){
|
213 |
+
return '<button id="apbct_settings_templates_import_button" class="cleantalk_link cleantalk_link-manual">'
|
214 |
+
. esc_html__( 'Import settings from selected template.', 'cleantalk-spam-protect' )
|
215 |
+
. '<img alt="Preloader ico" style="margin-left: 10px;" class="apbct_preloader_button" src="' . APBCT_URL_PATH . '/inc/images/preloader2.gif" />'
|
216 |
+
. '<img alt="Success ico" style="margin-left: 10px;" class="apbct_success --hide" src="' . APBCT_URL_PATH . '/inc/images/yes.png" />'
|
217 |
+
. '</button>';
|
218 |
+
}
|
219 |
+
|
220 |
+
private function getResetButton(){
|
221 |
+
return '<button id="apbct_settings_templates_reset_button" class="cleantalk_link cleantalk_link-auto">'
|
222 |
+
. esc_html__( 'Reset settings to defaults.', 'cleantalk-spam-protect' )
|
223 |
+
. '<img alt="Preloader ico" style="margin-left: 10px;" class="apbct_preloader_button" src="' . APBCT_URL_PATH . '/inc/images/preloader2.gif" />'
|
224 |
+
. '<img alt="Success ico" style="margin-left: 10px;" class="apbct_success --hide" src="' . APBCT_URL_PATH . '/inc/images/yes.png" />'
|
225 |
+
. '</button>';
|
226 |
+
}
|
227 |
+
|
228 |
+
}
|
@@ -160,4 +160,9 @@ class DB extends \Cleantalk\Common\DB
|
|
160 |
|
161 |
return $this->result;
|
162 |
}
|
|
|
|
|
|
|
|
|
|
|
163 |
}
|
160 |
|
161 |
return $this->result;
|
162 |
}
|
163 |
+
|
164 |
+
public function get_last_error() {
|
165 |
+
global $wpdb;
|
166 |
+
return $wpdb->last_error;
|
167 |
+
}
|
168 |
}
|
@@ -241,7 +241,7 @@ class AntiCrawler extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
241 |
}else{
|
242 |
|
243 |
if( ! Cookie::get('apbct_antibot') ) {
|
244 |
-
$this
|
245 |
}
|
246 |
|
247 |
add_action( 'wp_head', array( '\Cleantalk\ApbctWP\Firewall\AntiCrawler', 'set_cookie' ) );
|
@@ -255,8 +255,7 @@ class AntiCrawler extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
255 |
|
256 |
}
|
257 |
|
258 |
-
|
259 |
-
|
260 |
$interval_time = Helper::time__get_interval_start( $this->store_interval );
|
261 |
|
262 |
// @todo Rename ip column to sign. Use IP + UserAgent for it.
|
241 |
}else{
|
242 |
|
243 |
if( ! Cookie::get('apbct_antibot') ) {
|
244 |
+
add_action( 'template_redirect', array( & $this, 'update_ac_log' ), 999 );
|
245 |
}
|
246 |
|
247 |
add_action( 'wp_head', array( '\Cleantalk\ApbctWP\Firewall\AntiCrawler', 'set_cookie' ) );
|
255 |
|
256 |
}
|
257 |
|
258 |
+
public function update_ac_log() {
|
|
|
259 |
$interval_time = Helper::time__get_interval_start( $this->store_interval );
|
260 |
|
261 |
// @todo Rename ip column to sign. Use IP + UserAgent for it.
|
@@ -11,6 +11,7 @@ class AntiFlood extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
11 |
public $module_name = 'ANTIFLOOD';
|
12 |
|
13 |
private $db__table__ac_logs;
|
|
|
14 |
|
15 |
private $api_key = '';
|
16 |
private $view_limit = 20;
|
@@ -20,7 +21,7 @@ class AntiFlood extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
20 |
private $chance_to_clean = 20;
|
21 |
|
22 |
public $isExcluded = false;
|
23 |
-
|
24 |
/**
|
25 |
* AntiCrawler constructor.
|
26 |
*
|
@@ -32,6 +33,7 @@ class AntiFlood extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
32 |
|
33 |
$this->db__table__logs = $log_table ?: null;
|
34 |
$this->db__table__ac_logs = $ac_logs_table ?: null;
|
|
|
35 |
|
36 |
foreach( $params as $param_name => $param ){
|
37 |
$this->$param_name = isset( $this->$param_name ) ? $param : false;
|
@@ -53,6 +55,32 @@ class AntiFlood extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
53 |
$time = time() - $this->store_interval;
|
54 |
|
55 |
foreach( $this->ip_array as $ip_origin => $current_ip ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
// Passed
|
58 |
if( Cookie::get( 'apbct_antiflood_passed' ) === md5( $current_ip . $this->api_key ) ){
|
@@ -88,14 +116,14 @@ class AntiFlood extends \Cleantalk\Common\Firewall\FirewallModule{
|
|
88 |
return $results;
|
89 |
} else{
|
90 |
// Do logging entries
|
91 |
-
$this
|
92 |
}
|
93 |
|
94 |
return $results;
|
95 |
|
96 |
}
|
97 |
|
98 |
-
|
99 |
|
100 |
$interval_time = Helper::time__get_interval_start( $this->store_interval );
|
101 |
|
11 |
public $module_name = 'ANTIFLOOD';
|
12 |
|
13 |
private $db__table__ac_logs;
|
14 |
+
private $db__table__ac_ua_bl;
|
15 |
|
16 |
private $api_key = '';
|
17 |
private $view_limit = 20;
|
21 |
private $chance_to_clean = 20;
|
22 |
|
23 |
public $isExcluded = false;
|
24 |
+
|
25 |
/**
|
26 |
* AntiCrawler constructor.
|
27 |
*
|
33 |
|
34 |
$this->db__table__logs = $log_table ?: null;
|
35 |
$this->db__table__ac_logs = $ac_logs_table ?: null;
|
36 |
+
$this->db__table__ac_ua_bl= defined('APBCT_TBL_AC_UA_BL') ? APBCT_TBL_AC_UA_BL : null;
|
37 |
|
38 |
foreach( $params as $param_name => $param ){
|
39 |
$this->$param_name = isset( $this->$param_name ) ? $param : false;
|
55 |
$time = time() - $this->store_interval;
|
56 |
|
57 |
foreach( $this->ip_array as $ip_origin => $current_ip ){
|
58 |
+
|
59 |
+
// UA check
|
60 |
+
$ua_bl_results = $this->db->fetch_all(
|
61 |
+
"SELECT * FROM " . $this->db__table__ac_ua_bl . " ORDER BY `ua_status` DESC;"
|
62 |
+
);
|
63 |
+
|
64 |
+
if( ! empty( $ua_bl_results ) ){
|
65 |
+
|
66 |
+
foreach( $ua_bl_results as $ua_bl_result ){
|
67 |
+
|
68 |
+
if( ! empty( $ua_bl_result['ua_template'] ) && preg_match( "%". str_replace( '"', '', $ua_bl_result['ua_template'] ) ."%i", Server::get('HTTP_USER_AGENT') ) ) {
|
69 |
+
|
70 |
+
$this->ua_id = $ua_bl_result['id'];
|
71 |
+
|
72 |
+
if( $ua_bl_result['ua_status'] == 1 ) {
|
73 |
+
// Whitelisted
|
74 |
+
$results[] = array('ip' => $current_ip, 'is_personal' => false, 'status' => 'PASS_ANTIFLOOD_UA',);
|
75 |
+
return $results;
|
76 |
+
break;
|
77 |
+
}
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
}
|
82 |
+
|
83 |
+
}
|
84 |
|
85 |
// Passed
|
86 |
if( Cookie::get( 'apbct_antiflood_passed' ) === md5( $current_ip . $this->api_key ) ){
|
116 |
return $results;
|
117 |
} else{
|
118 |
// Do logging entries
|
119 |
+
add_action( 'template_redirect', array( & $this, 'update_ac_log' ), 999 );
|
120 |
}
|
121 |
|
122 |
return $results;
|
123 |
|
124 |
}
|
125 |
|
126 |
+
public function update_ac_log() {
|
127 |
|
128 |
$interval_time = Helper::time__get_interval_start( $this->store_interval );
|
129 |
|
@@ -95,7 +95,7 @@ class SFW extends \Cleantalk\Common\Firewall\FirewallModule {
|
|
95 |
$this->update_log( $current_ip, 'PASS_SFW' );
|
96 |
|
97 |
if( $this->sfw_counter ){
|
98 |
-
$this->apbct->data['
|
99 |
$this->apbct->saveData();
|
100 |
}
|
101 |
|
@@ -191,7 +191,7 @@ class SFW extends \Cleantalk\Common\Firewall\FirewallModule {
|
|
191 |
public function actions_for_denied( $result ){
|
192 |
|
193 |
if( $this->sfw_counter ){
|
194 |
-
$this->apbct->data['
|
195 |
$this->apbct->saveData();
|
196 |
}
|
197 |
|
@@ -328,6 +328,8 @@ class SFW extends \Cleantalk\Common\Firewall\FirewallModule {
|
|
328 |
|
329 |
$value['status'] = $value['status'] === 'DENY_ANTIFLOOD' ? 'FLOOD_PROTECTION' : $value['status'];
|
330 |
$value['status'] = $value['status'] === 'PASS_ANTIFLOOD' ? 'FLOOD_PROTECTION' : $value['status'];
|
|
|
|
|
331 |
|
332 |
$value['status'] = $value['status'] === 'PASS_SFW__BY_COOKIE' ? null : $value['status'];
|
333 |
$value['status'] = $value['status'] === 'PASS_SFW' ? null : $value['status'];
|
@@ -399,7 +401,7 @@ class SFW extends \Cleantalk\Common\Firewall\FirewallModule {
|
|
399 |
if( empty( $result['error'] ) ){
|
400 |
|
401 |
// User-Agents blacklist
|
402 |
-
if( ! empty( $result['file_ua_url'] ) && $apbct->settings['sfw__anti_crawler'] ){
|
403 |
$ua_bl_res = AntiCrawler::update( trim( $result['file_ua_url'] ) );
|
404 |
if( ! empty( $ua_bl_res['error'] ) )
|
405 |
$apbct->error_add( 'sfw_update', $ua_bl_res['error'] );
|
@@ -541,6 +543,41 @@ class SFW extends \Cleantalk\Common\Firewall\FirewallModule {
|
|
541 |
}
|
542 |
}
|
543 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
544 |
/**
|
545 |
* Creatin a temporary updating table
|
546 |
*
|
95 |
$this->update_log( $current_ip, 'PASS_SFW' );
|
96 |
|
97 |
if( $this->sfw_counter ){
|
98 |
+
$this->apbct->data['admin_bar__sfw_counter']['all'] ++;
|
99 |
$this->apbct->saveData();
|
100 |
}
|
101 |
|
191 |
public function actions_for_denied( $result ){
|
192 |
|
193 |
if( $this->sfw_counter ){
|
194 |
+
$this->apbct->data['admin_bar__sfw_counter']['blocked']++;
|
195 |
$this->apbct->saveData();
|
196 |
}
|
197 |
|
328 |
|
329 |
$value['status'] = $value['status'] === 'DENY_ANTIFLOOD' ? 'FLOOD_PROTECTION' : $value['status'];
|
330 |
$value['status'] = $value['status'] === 'PASS_ANTIFLOOD' ? 'FLOOD_PROTECTION' : $value['status'];
|
331 |
+
$value['status'] = $value['status'] === 'DENY_ANTIFLOOD_UA' ? 'FLOOD_PROTECTION' : $value['status'];
|
332 |
+
$value['status'] = $value['status'] === 'PASS_ANTIFLOOD_UA' ? 'FLOOD_PROTECTION' : $value['status'];
|
333 |
|
334 |
$value['status'] = $value['status'] === 'PASS_SFW__BY_COOKIE' ? null : $value['status'];
|
335 |
$value['status'] = $value['status'] === 'PASS_SFW' ? null : $value['status'];
|
401 |
if( empty( $result['error'] ) ){
|
402 |
|
403 |
// User-Agents blacklist
|
404 |
+
if( ! empty( $result['file_ua_url'] ) && ( $apbct->settings['sfw__anti_crawler'] || $apbct->settings['sfw__anti_flood'] ) ){
|
405 |
$ua_bl_res = AntiCrawler::update( trim( $result['file_ua_url'] ) );
|
406 |
if( ! empty( $ua_bl_res['error'] ) )
|
407 |
$apbct->error_add( 'sfw_update', $ua_bl_res['error'] );
|
543 |
}
|
544 |
}
|
545 |
|
546 |
+
public static function firewall_update__write_to_db__exclusions( $db, $db__table__data ) {
|
547 |
+
|
548 |
+
$query = 'INSERT INTO `' . $db__table__data . '` (network, mask, status) VALUES ';
|
549 |
+
|
550 |
+
$exclusions = array();
|
551 |
+
|
552 |
+
//Exclusion for servers IP (SERVER_ADDR)
|
553 |
+
if ( Server::get('HTTP_HOST') ) {
|
554 |
+
|
555 |
+
// Exceptions for local hosts
|
556 |
+
if( ! in_array( Server::get_domain(), array( 'lc', 'loc', 'lh' ) ) ){
|
557 |
+
$exclusions[] = Helper::dns__resolve( Server::get( 'HTTP_HOST' ) );
|
558 |
+
$exclusions[] = '127.0.0.1';
|
559 |
+
}
|
560 |
+
}
|
561 |
+
|
562 |
+
foreach ( $exclusions as $exclusion ) {
|
563 |
+
if ( Helper::ip__validate( $exclusion ) && sprintf( '%u', ip2long( $exclusion ) ) ) {
|
564 |
+
$query .= '(' . sprintf( '%u', ip2long( $exclusion ) ) . ', ' . sprintf( '%u', bindec( str_repeat( '1', 32 ) ) ) . ', 1),';
|
565 |
+
}
|
566 |
+
}
|
567 |
+
|
568 |
+
if( $exclusions ){
|
569 |
+
|
570 |
+
$sql_result = $db->execute( substr( $query, 0, - 1 ) . ';' );
|
571 |
+
|
572 |
+
return $sql_result === false
|
573 |
+
? array( 'error' => 'COULD_NOT_WRITE_TO_DB 4: ' . $db->get_last_error() )
|
574 |
+
: count( $exclusions );
|
575 |
+
}
|
576 |
+
|
577 |
+
return 0;
|
578 |
+
|
579 |
+
}
|
580 |
+
|
581 |
/**
|
582 |
* Creatin a temporary updating table
|
583 |
*
|
@@ -85,7 +85,7 @@ class Helper extends \Cleantalk\Common\Helper
|
|
85 |
$result__rc_check_website = static::http__request(
|
86 |
get_option( 'siteurl' ),
|
87 |
array_merge( $request_params__default, $request_params, array( 'test' => 'test' ) ),
|
88 |
-
array( 'get', )
|
89 |
);
|
90 |
|
91 |
if( empty( $result__rc_check_website['error'] ) ){
|
85 |
$result__rc_check_website = static::http__request(
|
86 |
get_option( 'siteurl' ),
|
87 |
array_merge( $request_params__default, $request_params, array( 'test' => 'test' ) ),
|
88 |
+
array( 'get', 'dont_split_to_array' )
|
89 |
);
|
90 |
|
91 |
if( empty( $result__rc_check_website['error'] ) ){
|
@@ -9,7 +9,7 @@ use ArrayObject;
|
|
9 |
*
|
10 |
* @package Antiospam Plugin by CleanTalk
|
11 |
* @subpackage State
|
12 |
-
* @Version 2.
|
13 |
* @author Cleantalk team (welcome@cleantalk.org)
|
14 |
* @copyright (C) 2014 CleanTalk team (http://cleantalk.org)
|
15 |
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
@@ -56,81 +56,81 @@ class State
|
|
56 |
public $storage = array();
|
57 |
public $integrations = array();
|
58 |
public $def_settings = array(
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
61 |
'sfw__anti_flood' => 0,
|
62 |
'sfw__anti_flood__view_limit' => 20,
|
63 |
'sfw__anti_crawler' => 1,
|
64 |
'sfw__use_delete_to_clear_table' => 0,
|
65 |
|
66 |
-
'apikey' => '',
|
67 |
-
'autoPubRevelantMess' => 0,
|
68 |
-
|
69 |
/* Forms for protection */
|
70 |
-
'
|
71 |
-
'
|
72 |
-
'
|
73 |
-
'
|
74 |
-
'
|
75 |
-
'
|
76 |
-
'
|
77 |
-
'
|
78 |
-
'
|
79 |
-
'
|
80 |
|
81 |
/* Comments and messages */
|
82 |
-
'
|
83 |
-
'
|
84 |
-
'
|
85 |
-
'
|
86 |
-
'
|
87 |
-
'
|
88 |
-
'
|
89 |
-
'
|
90 |
-
'
|
91 |
-
'
|
92 |
|
93 |
-
|
94 |
-
'
|
95 |
-
'
|
96 |
-
'
|
97 |
-
'
|
98 |
-
'
|
99 |
-
'
|
100 |
-
'
|
101 |
-
'use_buitin_http_api' => 1, // Using Wordpress HTTP built in API
|
102 |
|
103 |
// Exclusions
|
104 |
'exclusions__urls' => '',
|
105 |
'exclusions__urls__use_regexp' => 0,
|
106 |
'exclusions__fields' => '',
|
107 |
'exclusions__fields__use_regexp' => 0,
|
108 |
-
'exclusions__roles'
|
109 |
|
110 |
// Administrator Panel
|
111 |
-
'
|
112 |
-
'
|
113 |
-
'
|
114 |
-
'
|
115 |
-
|
116 |
-
//Others
|
117 |
-
'user_token' => '',
|
118 |
-
'collect_details' => 0, // Collect details about browser of the visitor.
|
119 |
-
'send_connection_reports' => 0, //Send connection reports to Cleantalk servers
|
120 |
-
'async_js' => 0,
|
121 |
-
'debug_ajax' => 0,
|
122 |
|
123 |
// GDPR
|
124 |
-
'
|
125 |
-
'
|
126 |
|
127 |
// Msic
|
128 |
-
'
|
129 |
-
'
|
130 |
-
'
|
131 |
-
'
|
132 |
-
'
|
133 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
);
|
135 |
|
136 |
public $def_data = array(
|
@@ -141,6 +141,8 @@ class State
|
|
141 |
'js_keys_store_days' => 14, // JavaScript keys store days - 8 days now
|
142 |
'js_key_lifetime' => 86400, // JavaScript key life time in seconds - 1 day now
|
143 |
'last_remote_call' => 0, //Timestam of last remote call
|
|
|
|
|
144 |
|
145 |
// Antispam
|
146 |
'spam_store_days' => 15, // Days before delete comments from folder Spam
|
@@ -173,11 +175,11 @@ class State
|
|
173 |
'array_accepted' => array(),
|
174 |
'array_blocked' => array(),
|
175 |
'current_hour' => '',
|
176 |
-
'
|
177 |
'all' => 0,
|
178 |
'blocked' => 0,
|
179 |
),
|
180 |
-
'
|
181 |
'accepted' => 0,
|
182 |
'blocked' => 0,
|
183 |
),
|
@@ -209,17 +211,17 @@ class State
|
|
209 |
|
210 |
// Key
|
211 |
'apikey' => '',
|
212 |
-
'
|
213 |
-
'
|
214 |
|
215 |
// White label settings
|
216 |
-
'
|
217 |
-
'
|
218 |
-
'
|
219 |
-
'
|
220 |
-
'
|
221 |
-
'
|
222 |
-
'
|
223 |
);
|
224 |
|
225 |
public $def_network_data = array(
|
@@ -378,7 +380,7 @@ class State
|
|
378 |
*/
|
379 |
public function saveSettings()
|
380 |
{
|
381 |
-
update_option($this->option_prefix.'_settings', (array)$this->settings);
|
382 |
}
|
383 |
|
384 |
/**
|
9 |
*
|
10 |
* @package Antiospam Plugin by CleanTalk
|
11 |
* @subpackage State
|
12 |
+
* @Version 2.1
|
13 |
* @author Cleantalk team (welcome@cleantalk.org)
|
14 |
* @copyright (C) 2014 CleanTalk team (http://cleantalk.org)
|
15 |
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
56 |
public $storage = array();
|
57 |
public $integrations = array();
|
58 |
public $def_settings = array(
|
59 |
+
|
60 |
+
'apikey' => '',
|
61 |
+
|
62 |
+
/* SpamFireWall settings */
|
63 |
+
'sfw__enabled' => 1,
|
64 |
'sfw__anti_flood' => 0,
|
65 |
'sfw__anti_flood__view_limit' => 20,
|
66 |
'sfw__anti_crawler' => 1,
|
67 |
'sfw__use_delete_to_clear_table' => 0,
|
68 |
|
|
|
|
|
|
|
69 |
/* Forms for protection */
|
70 |
+
'forms__registrations_test' => 1,
|
71 |
+
'forms__comments_test' => 1,
|
72 |
+
'forms__contact_forms_test' => 1,
|
73 |
+
'forms__general_contact_forms_test' => 1, // Antispam test for unsupported and untested contact forms
|
74 |
+
'forms__wc_checkout_test' => 1, // WooCommerce checkout default test
|
75 |
+
'forms__wc_register_from_order' => 1, // Woocommerce registration during checkout
|
76 |
+
'forms__search_test' => 1, // Test deafult Wordpress form
|
77 |
+
'forms__check_external' => 0,
|
78 |
+
'forms__check_external__capture_buffer' => 0,
|
79 |
+
'forms__check_internal' => 0,
|
80 |
|
81 |
/* Comments and messages */
|
82 |
+
'comments__disable_comments__all' => 0,
|
83 |
+
'comments__disable_comments__posts' => 0,
|
84 |
+
'comments__disable_comments__pages' => 0,
|
85 |
+
'comments__disable_comments__media' => 0,
|
86 |
+
'comments__bp_private_messages' => 1, //buddyPress private messages test => ON
|
87 |
+
'comments__check_comments_number' => 1,
|
88 |
+
'comments__remove_old_spam' => 0,
|
89 |
+
'comments__remove_comments_links' => 0, // Removes links from approved comments
|
90 |
+
'comments__show_check_links' => 1, // Shows check link to Cleantalk's DB.
|
91 |
+
'comments__manage_comments_on_public_page' => 0, // Allows to control comments on public page.
|
92 |
|
93 |
+
/* Data processing */
|
94 |
+
'data__protect_logged_in' => 1, // Do anti-spam tests to for logged in users.
|
95 |
+
'data__use_ajax' => 1,
|
96 |
+
'data__use_static_js_key' => -1,
|
97 |
+
'data__general_postdata_test' => 0, //CAPD
|
98 |
+
'data__set_cookies' => 1, // Disable cookies generatation to be compatible with Varnish.
|
99 |
+
'data__set_cookies__sessions' => 0, // Use alt sessions for cookies.
|
100 |
+
'data__ssl_on' => 0, // Secure connection to servers
|
|
|
101 |
|
102 |
// Exclusions
|
103 |
'exclusions__urls' => '',
|
104 |
'exclusions__urls__use_regexp' => 0,
|
105 |
'exclusions__fields' => '',
|
106 |
'exclusions__fields__use_regexp' => 0,
|
107 |
+
'exclusions__roles' => array('Administrator'),
|
108 |
|
109 |
// Administrator Panel
|
110 |
+
'admin_bar__show' => 1, // Show the admin bar.
|
111 |
+
'admin_bar__all_time_counter' => 0,
|
112 |
+
'admin_bar__daily_counter' => 0,
|
113 |
+
'admin_bar__sfw_counter' => 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
// GDPR
|
116 |
+
'gdpr__enabled' => 0,
|
117 |
+
'gdpr__text' => 'By using this form you agree with the storage and processing of your data by using the Privacy Policy on this website.',
|
118 |
|
119 |
// Msic
|
120 |
+
'misc__collect_details' => 0, // Collect details about browser of the visitor.
|
121 |
+
'misc__send_connection_reports' => 0, // Send connection reports to Cleantalk servers
|
122 |
+
'misc__async_js' => 0,
|
123 |
+
'misc__store_urls' => 1,
|
124 |
+
'misc__store_urls__sessions' => 1,
|
125 |
+
'misc__complete_deactivation' => 0,
|
126 |
+
'misc__debug_ajax' => 0,
|
127 |
+
|
128 |
+
/* WordPress */
|
129 |
+
'wp__use_builtin_http_api' => 1, // Using Wordpress HTTP built in API
|
130 |
+
'wp__comment_notify' => 1,
|
131 |
+
'wp__comment_notify__roles' => array( 'administrator' ),
|
132 |
+
'wp__dashboard_widget__show' => 1,
|
133 |
+
|
134 |
);
|
135 |
|
136 |
public $def_data = array(
|
141 |
'js_keys_store_days' => 14, // JavaScript keys store days - 8 days now
|
142 |
'js_key_lifetime' => 86400, // JavaScript key life time in seconds - 1 day now
|
143 |
'last_remote_call' => 0, //Timestam of last remote call
|
144 |
+
'current_settings_template_id' => null, // Loaded settings template id
|
145 |
+
'current_settings_template_name' => null, // Loaded settings template name
|
146 |
|
147 |
// Antispam
|
148 |
'spam_store_days' => 15, // Days before delete comments from folder Spam
|
175 |
'array_accepted' => array(),
|
176 |
'array_blocked' => array(),
|
177 |
'current_hour' => '',
|
178 |
+
'admin_bar__sfw_counter' => array(
|
179 |
'all' => 0,
|
180 |
'blocked' => 0,
|
181 |
),
|
182 |
+
'admin_bar__all_time_counter' => array(
|
183 |
'accepted' => 0,
|
184 |
'blocked' => 0,
|
185 |
),
|
211 |
|
212 |
// Key
|
213 |
'apikey' => '',
|
214 |
+
'multisite__allow_custom_key' => 1,
|
215 |
+
'multisite__allow_custom_settings' => 1,
|
216 |
|
217 |
// White label settings
|
218 |
+
'multisite__white_label' => 0,
|
219 |
+
'multisite__white_label__hoster_key' => '',
|
220 |
+
'multisite__white_label__plugin_name' => 'Anti-Spam by CleanTalk',
|
221 |
+
'multisite__use_settings_template' => 0,
|
222 |
+
'multisite__use_settings_template_apply_for_new' => 0,
|
223 |
+
'multisite__use_settings_template_apply_for_current' => 0,
|
224 |
+
'multisite__use_settings_template_apply_for_current_list_sites' => '',
|
225 |
);
|
226 |
|
227 |
public $def_network_data = array(
|
380 |
*/
|
381 |
public function saveSettings()
|
382 |
{
|
383 |
+
return update_option($this->option_prefix.'_settings', (array)$this->settings);
|
384 |
}
|
385 |
|
386 |
/**
|
@@ -596,6 +596,78 @@ class API
|
|
596 |
|
597 |
return $result;
|
598 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
599 |
|
600 |
/**
|
601 |
* Function sends raw request to API server
|
@@ -768,6 +840,13 @@ class API
|
|
768 |
return $out;
|
769 |
|
770 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
771 |
|
772 |
default:
|
773 |
return isset($result['data']) && is_array($result['data'])
|
596 |
|
597 |
return $result;
|
598 |
}
|
599 |
+
|
600 |
+
/**
|
601 |
+
* Settings tempaltes get API method wrapper
|
602 |
+
*
|
603 |
+
* @param string $api_key
|
604 |
+
* @param bool $do_check
|
605 |
+
*
|
606 |
+
* @return array|bool|mixed
|
607 |
+
*/
|
608 |
+
static public function method__services_templates_get( $api_key, $do_check = true)
|
609 |
+
{
|
610 |
+
$request = array(
|
611 |
+
'method_name' => 'services_templates_get',
|
612 |
+
'auth_key' => $api_key,
|
613 |
+
'mode' => 'site',
|
614 |
+
);
|
615 |
+
|
616 |
+
$result = static::send_request( $request );
|
617 |
+
$result = $do_check ? static::check_response($result, 'services_templates_get') : $result;
|
618 |
+
|
619 |
+
return $result;
|
620 |
+
}
|
621 |
+
|
622 |
+
/**
|
623 |
+
* Settings tempaltes add API method wrapper
|
624 |
+
*
|
625 |
+
* @param string $api_key
|
626 |
+
* @param null $template_name
|
627 |
+
* @param bool $do_check
|
628 |
+
*
|
629 |
+
* @return array|bool|mixed
|
630 |
+
*/
|
631 |
+
static public function method__services_templates_add( $api_key, $template_name = null, $do_check = true)
|
632 |
+
{
|
633 |
+
$request = array(
|
634 |
+
'method_name' => 'services_templates_add',
|
635 |
+
'auth_key' => $api_key,
|
636 |
+
'name' => $template_name,
|
637 |
+
'options_site'=> apbct_get_plugin_options(),
|
638 |
+
);
|
639 |
+
|
640 |
+
$result = static::send_request( $request );
|
641 |
+
$result = $do_check ? static::check_response($result, 'services_templates_add') : $result;
|
642 |
+
|
643 |
+
return $result;
|
644 |
+
}
|
645 |
+
|
646 |
+
/**
|
647 |
+
* Settings tempaltes add API method wrapper
|
648 |
+
*
|
649 |
+
* @param string $api_key
|
650 |
+
* @param int $template_id
|
651 |
+
* @param null $template_name
|
652 |
+
* @param bool $do_check
|
653 |
+
*
|
654 |
+
* @return array|bool|mixed
|
655 |
+
*/
|
656 |
+
static public function method__services_templates_update( $api_key, $template_id, $template_name = null, $do_check = true)
|
657 |
+
{
|
658 |
+
$request = array(
|
659 |
+
'method_name' => 'services_templates_update',
|
660 |
+
'auth_key' => $api_key,
|
661 |
+
'template_id' => $template_id,
|
662 |
+
'name' => $template_name,
|
663 |
+
'options_site'=> apbct_get_plugin_options(),
|
664 |
+
);
|
665 |
+
|
666 |
+
$result = static::send_request( $request );
|
667 |
+
$result = $do_check ? static::check_response($result, 'services_templates_update') : $result;
|
668 |
+
|
669 |
+
return $result;
|
670 |
+
}
|
671 |
|
672 |
/**
|
673 |
* Function sends raw request to API server
|
840 |
return $out;
|
841 |
|
842 |
break;
|
843 |
+
|
844 |
+
case 'services_templates_add' :
|
845 |
+
case 'services_templates_update' :
|
846 |
+
return isset( $result['data'] ) && is_array( $result['data'] ) && count( $result['data'] ) === 1
|
847 |
+
? $result['data'][0]
|
848 |
+
: array('error' => 'NO_DATA');
|
849 |
+
break;
|
850 |
|
851 |
default:
|
852 |
return isset($result['data']) && is_array($result['data'])
|
@@ -35,9 +35,11 @@ class Firewall
|
|
35 |
// Lowest
|
36 |
'PASS_SFW',
|
37 |
'PASS_SFW__BY_COOKIE',
|
|
|
38 |
'PASS_ANTIFLOOD',
|
39 |
'PASS_ANTICRAWLER_UA',
|
40 |
'PASS_ANTICRAWLER',
|
|
|
41 |
'DENY_ANTIFLOOD',
|
42 |
'DENY_ANTICRAWLER_UA',
|
43 |
'DENY_ANTICRAWLER',
|
@@ -128,7 +130,7 @@ class Firewall
|
|
128 |
foreach ( $this->fw_modules as $module ) {
|
129 |
if( array_key_exists( $module->module_name, $results ) ){
|
130 |
foreach ( $results[$module->module_name] as $result ) {
|
131 |
-
if( in_array( $result['status'], array( 'PASS_SFW__BY_WHITELIST', 'PASS_SFW', 'PASS_ANTIFLOOD', 'PASS_ANTICRAWLER', 'PASS_ANTICRAWLER_UA' ) ) ){
|
132 |
continue;
|
133 |
}
|
134 |
$module->update_log( $result['ip'], $result['status'] );
|
35 |
// Lowest
|
36 |
'PASS_SFW',
|
37 |
'PASS_SFW__BY_COOKIE',
|
38 |
+
'PASS_ANTIFLOOD_UA',
|
39 |
'PASS_ANTIFLOOD',
|
40 |
'PASS_ANTICRAWLER_UA',
|
41 |
'PASS_ANTICRAWLER',
|
42 |
+
'DENY_ANTIFLOOD_UA',
|
43 |
'DENY_ANTIFLOOD',
|
44 |
'DENY_ANTICRAWLER_UA',
|
45 |
'DENY_ANTICRAWLER',
|
130 |
foreach ( $this->fw_modules as $module ) {
|
131 |
if( array_key_exists( $module->module_name, $results ) ){
|
132 |
foreach ( $results[$module->module_name] as $result ) {
|
133 |
+
if( in_array( $result['status'], array( 'PASS_SFW__BY_WHITELIST', 'PASS_SFW', 'PASS_ANTIFLOOD', 'PASS_ANTICRAWLER', 'PASS_ANTICRAWLER_UA', 'PASS_ANTIFLOOD_UA' ) ) ){
|
134 |
continue;
|
135 |
}
|
136 |
$module->update_log( $result['ip'], $result['status'] );
|
@@ -81,6 +81,22 @@ class FirewallModule extends FirewallModule_abstract {
|
|
81 |
header('Pragma: no-cache');
|
82 |
header("HTTP/1.0 403 Forbidden");
|
83 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
|
85 |
}
|
86 |
}
|
81 |
header('Pragma: no-cache');
|
82 |
header("HTTP/1.0 403 Forbidden");
|
83 |
}
|
84 |
+
|
85 |
+
if(! defined('DONOTCACHEPAGE') ){
|
86 |
+
define('DONOTCACHEPAGE', true);
|
87 |
+
}
|
88 |
+
if(! defined('DONOTCACHEDB')){
|
89 |
+
define('DONOTCACHEDB', true);
|
90 |
+
}
|
91 |
+
if(! defined('DONOTCDN')){
|
92 |
+
define('DONOTCDN', true);
|
93 |
+
}
|
94 |
+
if(! defined('DONOTCACHEOBJECT')){
|
95 |
+
define('DONOTCACHEOBJECT', true);
|
96 |
+
}
|
97 |
+
if( function_exists( 'wpfc_exclude_current_page' ) ) {
|
98 |
+
wpfc_exclude_current_page();
|
99 |
+
}
|
100 |
|
101 |
}
|
102 |
}
|
@@ -26,7 +26,7 @@ class Schema
|
|
26 |
'sfw_logs' => 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw_logs` (
|
27 |
`id` VARCHAR(40) NOT NULL,
|
28 |
`ip` VARCHAR(15) NOT NULL,
|
29 |
-
`status` ENUM(\'PASS_SFW\',\'DENY_SFW\',\'PASS_SFW__BY_WHITELIST\',\'PASS_SFW__BY_COOKIE\',\'DENY_ANTICRAWLER\',\'PASS_ANTICRAWLER\',\'DENY_ANTICRAWLER_UA\',\'PASS_ANTICRAWLER_UA\',\'DENY_ANTIFLOOD\',\'PASS_ANTIFLOOD\') NULL DEFAULT NULL,
|
30 |
`all_entries` INT NOT NULL,
|
31 |
`blocked_entries` INT NOT NULL,
|
32 |
`entries_timestamp` INT NOT NULL,
|
26 |
'sfw_logs' => 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw_logs` (
|
27 |
`id` VARCHAR(40) NOT NULL,
|
28 |
`ip` VARCHAR(15) NOT NULL,
|
29 |
+
`status` ENUM(\'PASS_SFW\',\'DENY_SFW\',\'PASS_SFW__BY_WHITELIST\',\'PASS_SFW__BY_COOKIE\',\'DENY_ANTICRAWLER\',\'PASS_ANTICRAWLER\',\'DENY_ANTICRAWLER_UA\',\'PASS_ANTICRAWLER_UA\',\'DENY_ANTIFLOOD\',\'PASS_ANTIFLOOD\',\'DENY_ANTIFLOOD_UA\',\'PASS_ANTIFLOOD_UA\') NULL DEFAULT NULL,
|
30 |
`all_entries` INT NOT NULL,
|
31 |
`blocked_entries` INT NOT NULL,
|
32 |
`entries_timestamp` INT NOT NULL,
|
@@ -1,23 +1,23 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Autoloader for \Cleantalk\* classes
|
5 |
-
*
|
6 |
-
* @param string $class
|
7 |
-
*
|
8 |
-
* @return void
|
9 |
-
*/
|
10 |
-
spl_autoload_register( function( $class ){
|
11 |
-
|
12 |
-
// Register class auto loader
|
13 |
-
// Custom modules1
|
14 |
-
if(strpos($class, 'Cleantalk') !== false){
|
15 |
-
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
|
16 |
-
$class_file = __DIR__ . DIRECTORY_SEPARATOR . $class . '.php';
|
17 |
-
if(file_exists($class_file)){
|
18 |
-
require_once($class_file);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
});
|
22 |
-
|
23 |
-
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Autoloader for \Cleantalk\* classes
|
5 |
+
*
|
6 |
+
* @param string $class
|
7 |
+
*
|
8 |
+
* @return void
|
9 |
+
*/
|
10 |
+
spl_autoload_register( function( $class ){
|
11 |
+
|
12 |
+
// Register class auto loader
|
13 |
+
// Custom modules1
|
14 |
+
if(strpos($class, 'Cleantalk') !== false){
|
15 |
+
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
|
16 |
+
$class_file = __DIR__ . DIRECTORY_SEPARATOR . $class . '.php';
|
17 |
+
if(file_exists($class_file)){
|
18 |
+
require_once($class_file);
|
19 |
+
}
|
20 |
+
}
|
21 |
+
});
|
22 |
+
|
23 |
+
|
@@ -1,91 +1,91 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
* Patch for apache_request_headers()
|
5 |
-
* If Apache web server is missing then making
|
6 |
-
*/
|
7 |
-
if( !function_exists('apache_request_headers') ){
|
8 |
-
function apache_request_headers(){
|
9 |
-
|
10 |
-
$headers = array();
|
11 |
-
foreach($_SERVER as $key => $val){
|
12 |
-
if(preg_match('/\AHTTP_/', $key)){
|
13 |
-
$server_key = preg_replace('/\AHTTP_/', '', $key);
|
14 |
-
$key_parts = explode('_', $server_key);
|
15 |
-
if(count($key_parts) > 0 and strlen($server_key) > 2){
|
16 |
-
foreach($key_parts as $part_index => $part){
|
17 |
-
$key_parts[$part_index] = function_exists('mb_strtolower') ? mb_strtolower($part) : strtolower($part);
|
18 |
-
$key_parts[$part_index][0] = strtoupper($key_parts[$part_index][0]);
|
19 |
-
}
|
20 |
-
$server_key = implode('-', $key_parts);
|
21 |
-
}
|
22 |
-
$headers[$server_key] = $val;
|
23 |
-
}
|
24 |
-
}
|
25 |
-
return $headers;
|
26 |
-
}
|
27 |
-
}
|
28 |
-
|
29 |
-
/*
|
30 |
-
* Patch for locale_get_display_region()
|
31 |
-
* For old PHP versions
|
32 |
-
*/
|
33 |
-
if( !function_exists('locale_get_display_region') ){
|
34 |
-
function locale_get_display_region($locale, $in_locale = 'EN'){
|
35 |
-
|
36 |
-
return 'Unkonwn' . ($locale ? ': ' . $locale : '');
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
/*
|
41 |
-
* Patch for utf8_decode()
|
42 |
-
* If PHP complied without XML support
|
43 |
-
* From getID3() by James Heinrich <info@getid3.org> under GNU GPL
|
44 |
-
*/
|
45 |
-
if(!function_exists('utf8_decode')){
|
46 |
-
function utf8_decode($string){
|
47 |
-
|
48 |
-
$newcharstring = '';
|
49 |
-
$offset = 0;
|
50 |
-
$stringlength = strlen($string);
|
51 |
-
while ($offset < $stringlength) {
|
52 |
-
if ((ord($string[$offset]) | 0x07) == 0xF7) {
|
53 |
-
$charval = ((ord($string[($offset + 0)]) & 0x07) << 18) &
|
54 |
-
((ord($string[($offset + 1)]) & 0x3F) << 12) &
|
55 |
-
((ord($string[($offset + 2)]) & 0x3F) << 6) &
|
56 |
-
(ord($string[($offset + 3)]) & 0x3F);
|
57 |
-
$offset += 4;
|
58 |
-
} elseif ((ord($string[$offset]) | 0x0F) == 0xEF) {
|
59 |
-
$charval = ((ord($string[($offset + 0)]) & 0x0F) << 12) &
|
60 |
-
((ord($string[($offset + 1)]) & 0x3F) << 6) &
|
61 |
-
(ord($string[($offset + 2)]) & 0x3F);
|
62 |
-
$offset += 3;
|
63 |
-
} elseif ((ord($string[$offset]) | 0x1F) == 0xDF) {
|
64 |
-
$charval = ((ord($string[($offset + 0)]) & 0x1F) << 6) &
|
65 |
-
(ord($string[($offset + 1)]) & 0x3F);
|
66 |
-
$offset += 2;
|
67 |
-
} elseif ((ord($string[$offset]) | 0x7F) == 0x7F) {
|
68 |
-
$charval = ord($string[$offset]);
|
69 |
-
$offset += 1;
|
70 |
-
} else {
|
71 |
-
$charval = false;
|
72 |
-
$offset += 1;
|
73 |
-
}
|
74 |
-
if ($charval !== false) {
|
75 |
-
$newcharstring .= (($charval < 256) ? chr($charval) : '?');
|
76 |
-
}
|
77 |
-
}
|
78 |
-
return $newcharstring;
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
-
if( ! function_exists( "array_column" ) ){
|
83 |
-
|
84 |
-
function array_column($array,$column_name){
|
85 |
-
|
86 |
-
return array_map( function ( $element ) use ( $column_name ){
|
87 |
-
return $element[ $column_name ];
|
88 |
-
}, $array );
|
89 |
-
|
90 |
-
}
|
91 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* Patch for apache_request_headers()
|
5 |
+
* If Apache web server is missing then making
|
6 |
+
*/
|
7 |
+
if( !function_exists('apache_request_headers') ){
|
8 |
+
function apache_request_headers(){
|
9 |
+
|
10 |
+
$headers = array();
|
11 |
+
foreach($_SERVER as $key => $val){
|
12 |
+
if(preg_match('/\AHTTP_/', $key)){
|
13 |
+
$server_key = preg_replace('/\AHTTP_/', '', $key);
|
14 |
+
$key_parts = explode('_', $server_key);
|
15 |
+
if(count($key_parts) > 0 and strlen($server_key) > 2){
|
16 |
+
foreach($key_parts as $part_index => $part){
|
17 |
+
$key_parts[$part_index] = function_exists('mb_strtolower') ? mb_strtolower($part) : strtolower($part);
|
18 |
+
$key_parts[$part_index][0] = strtoupper($key_parts[$part_index][0]);
|
19 |
+
}
|
20 |
+
$server_key = implode('-', $key_parts);
|
21 |
+
}
|
22 |
+
$headers[$server_key] = $val;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
return $headers;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
/*
|
30 |
+
* Patch for locale_get_display_region()
|
31 |
+
* For old PHP versions
|
32 |
+
*/
|
33 |
+
if( !function_exists('locale_get_display_region') ){
|
34 |
+
function locale_get_display_region($locale, $in_locale = 'EN'){
|
35 |
+
|
36 |
+
return 'Unkonwn' . ($locale ? ': ' . $locale : '');
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
/*
|
41 |
+
* Patch for utf8_decode()
|
42 |
+
* If PHP complied without XML support
|
43 |
+
* From getID3() by James Heinrich <info@getid3.org> under GNU GPL
|
44 |
+
*/
|
45 |
+
if(!function_exists('utf8_decode')){
|
46 |
+
function utf8_decode($string){
|
47 |
+
|
48 |
+
$newcharstring = '';
|
49 |
+
$offset = 0;
|
50 |
+
$stringlength = strlen($string);
|
51 |
+
while ($offset < $stringlength) {
|
52 |
+
if ((ord($string[$offset]) | 0x07) == 0xF7) {
|
53 |
+
$charval = ((ord($string[($offset + 0)]) & 0x07) << 18) &
|
54 |
+
((ord($string[($offset + 1)]) & 0x3F) << 12) &
|
55 |
+
((ord($string[($offset + 2)]) & 0x3F) << 6) &
|
56 |
+
(ord($string[($offset + 3)]) & 0x3F);
|
57 |
+
$offset += 4;
|
58 |
+
} elseif ((ord($string[$offset]) | 0x0F) == 0xEF) {
|
59 |
+
$charval = ((ord($string[($offset + 0)]) & 0x0F) << 12) &
|
60 |
+
((ord($string[($offset + 1)]) & 0x3F) << 6) &
|
61 |
+
(ord($string[($offset + 2)]) & 0x3F);
|
62 |
+
$offset += 3;
|
63 |
+
} elseif ((ord($string[$offset]) | 0x1F) == 0xDF) {
|
64 |
+
$charval = ((ord($string[($offset + 0)]) & 0x1F) << 6) &
|
65 |
+
(ord($string[($offset + 1)]) & 0x3F);
|
66 |
+
$offset += 2;
|
67 |
+
} elseif ((ord($string[$offset]) | 0x7F) == 0x7F) {
|
68 |
+
$charval = ord($string[$offset]);
|
69 |
+
$offset += 1;
|
70 |
+
} else {
|
71 |
+
$charval = false;
|
72 |
+
$offset += 1;
|
73 |
+
}
|
74 |
+
if ($charval !== false) {
|
75 |
+
$newcharstring .= (($charval < 256) ? chr($charval) : '?');
|
76 |
+
}
|
77 |
+
}
|
78 |
+
return $newcharstring;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
if( ! function_exists( "array_column" ) ){
|
83 |
+
|
84 |
+
function array_column($array,$column_name){
|
85 |
+
|
86 |
+
return array_map( function ( $element ) use ( $column_name ){
|
87 |
+
return $element[ $column_name ];
|
88 |
+
}, $array );
|
89 |
+
|
90 |
+
}
|
91 |
}
|
@@ -4,14 +4,14 @@ Tags: spam, antispam, anti-spam, comments, firewall
|
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.7
|
6 |
Requires PHP: 5.4
|
7 |
-
Stable tag: 5.
|
8 |
License: GPLv2
|
9 |
|
10 |
Spam protection, anti-spam, firewall, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
**Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, ConvertKit, ActiveCampaign, any WordPress registrations & contact forms and themes. Just set up and forget the spam!**
|
15 |
|
16 |
No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
|
17 |
|
@@ -60,7 +60,7 @@ Native spam protection for WordPress, JetPack comments and any other comment plu
|
|
60 |
Filters spam bots on registration forms of WordPress, BuddyPress, bbPress, S2Member, WooCommerce, Profile builder, Login with AJAX and any other registration plugins.
|
61 |
|
62 |
= Spam filter for contact forms =
|
63 |
-
The plugin is tested and ready to protect from spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing Page Builder, Gravity forms, Contact Form by BestWebSoft, Simple Contact Form Plugin - PirateForms, Visual Form Builder, Contact Form by WebDorado, Contact Form Email, MW WP Form, Contact Form by Jeff Bulllins, Contact Us Form, WCP Contact Form, WPForms Lite, Custom Contact, Forms, Caldera Forms, Visual Form Builder, Contact Form Clean and Simple, Divi by Elegant Themes, The7 theme and any other themes or custom contact forms, amoForms, Ultimate Form Builder, Contact Bank - Contact Forms Builder, Forms easily built with Smart Forms, Usernoise contact form, Contact Form by Web-Settler, HubSpot Marketing Free, QuForm, Form Maker by 10Web, WP User Frontend, NEX-Forms.
|
64 |
|
65 |
= WooCommerce spam filter =
|
66 |
Anti-spam by CleanTalk filters spam registrations and spam reviews for WooCommerce. The plugin is fully compatible with WooCommerce 2.1 and higher.
|
@@ -580,6 +580,24 @@ If your website has forms that send data to external sources, you can enable opt
|
|
580 |
|
581 |
== Changelog ==
|
582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
583 |
= 5.153.7 Mar 15 2021 =
|
584 |
* Fix: SFW. Updating fixed.
|
585 |
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.7
|
6 |
Requires PHP: 5.4
|
7 |
+
Stable tag: 5.154
|
8 |
License: GPLv2
|
9 |
|
10 |
Spam protection, anti-spam, firewall, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
**Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, ConvertKit, ActiveCampaign, Events Manager, Avada Theme Form Builder, any WordPress registrations & contact forms and themes. Just set up and forget the spam!**
|
15 |
|
16 |
No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
|
17 |
|
60 |
Filters spam bots on registration forms of WordPress, BuddyPress, bbPress, S2Member, WooCommerce, Profile builder, Login with AJAX and any other registration plugins.
|
61 |
|
62 |
= Spam filter for contact forms =
|
63 |
+
The plugin is tested and ready to protect from spam emails via Formidable forms, Contact form 7, JetPack Contact form, Fast Secure Contact form, Ninja forms, Landing Page Builder, Gravity forms, Contact Form by BestWebSoft, Simple Contact Form Plugin - PirateForms, Visual Form Builder, Contact Form by WebDorado, Contact Form Email, MW WP Form, Contact Form by Jeff Bulllins, Contact Us Form, WCP Contact Form, WPForms Lite, Custom Contact, Forms, Caldera Forms, Visual Form Builder, Contact Form Clean and Simple, Divi by Elegant Themes, The7 theme and any other themes or custom contact forms, amoForms, Ultimate Form Builder, Contact Bank - Contact Forms Builder, Forms easily built with Smart Forms, Usernoise contact form, Contact Form by Web-Settler, HubSpot Marketing Free, QuForm, Form Maker by 10Web, WP User Frontend, NEX-Forms, Avada Theme Form Builder.
|
64 |
|
65 |
= WooCommerce spam filter =
|
66 |
Anti-spam by CleanTalk filters spam registrations and spam reviews for WooCommerce. The plugin is fully compatible with WooCommerce 2.1 and higher.
|
580 |
|
581 |
== Changelog ==
|
582 |
|
583 |
+
= 5.154 Mar 17 2021 =
|
584 |
+
* New: Settings Templates functionality implemented.
|
585 |
+
* New: SFW. Anti-flood protection uses UA lists for filtration.
|
586 |
+
* Fix: Forms. Getting check_js delay removed.
|
587 |
+
* Fix: Forms. Rotation check_js fixed.
|
588 |
+
* Fix: Integration. Newspaper-theme login form protection skipped.
|
589 |
+
* Fix: Integration. Newspaper-theme reset password form protection skipped.
|
590 |
+
* Fix: Forms. Gravity Forms paypal addon processing skipped.
|
591 |
+
* Fix: Exclusion for wpDiscuz - Online Users Addon.
|
592 |
+
* Fix: Remote Calls. Wrapper http__request__rc_to_host() don't get an array
|
593 |
+
* Fix: JS. Modal window fixed.
|
594 |
+
* Fix: JS. Show AJAX result fixed.
|
595 |
+
* Fix: Skip. Save abandoned cart checking skip.
|
596 |
+
* Fix: Skip. SUMODISCOUNT discout request skip.
|
597 |
+
* Fix: Skip. WP eMember login form skip.
|
598 |
+
* Fix: SFW. Do not cache constants added.
|
599 |
+
* Fix: SFW. AC/AF logging fixed.
|
600 |
+
|
601 |
= 5.153.7 Mar 15 2021 =
|
602 |
* Fix: SFW. Updating fixed.
|
603 |
|