Version Description
Jan 13 2022 =
One integration added, CleanTalk pixel functionality fixed and minor issues fixed.
- Mod: Added Ova Login Integration. Registrations under protection
- Fix. Common. is_trackback() notice fixed.
- Fix: Removed the exeption for Quick Contact Form from ct_contact_form_validate()
- Fix: Moved the function apbct_settings__get_ajax_type() to cleantalk-pluggable.php to fix the plugin activation error via the CLI
- Fix: Fixed errors in apbct-public.js
- Fix: Cleared notice_incompatibility if SFW disabled
- Fix. AC. Antibot cookie fixed.
- Fix. Pixel. Auto mode fixed.
- Fix. JS. Checking JS via ajax fixed.
- Fix. Pixel. Getting pixel url from backend fixed.
Download this release
Release Info
Developer | glomberg |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.170 |
Comparing to | |
See all releases |
Code changes from version 5.169.1 to 5.170
- changelog.txt +842 -0
- cleantalk.php +11 -2
- inc/cleantalk-ajax-handlers.php +8 -0
- inc/cleantalk-common.php +22 -1
- inc/cleantalk-pluggable.php +46 -0
- inc/cleantalk-public-validate.php +0 -1
- inc/cleantalk-public.php +4 -13
- inc/cleantalk-settings.php +0 -29
- js/apbct-public.min.js +1 -1
- js/apbct-public.min.js.map +1 -1
- lib/Cleantalk/Antispam/Integrations/OvaLogin.php +39 -0
- lib/Cleantalk/ApbctWP/AdminNotices.php +4 -0
- lib/Cleantalk/ApbctWP/Ajax.php +3 -0
- lib/Cleantalk/ApbctWP/Firewall/AntiCrawler.php +8 -4
- lib/Cleantalk/ApbctWP/RestController.php +8 -0
- readme.txt +14 -844
changelog.txt
CHANGED
@@ -1,5 +1,847 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
= 5.151.2 Dec 30 2020 =
|
5 |
* Fix: Prevent skip checking UltimateMember register.
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 5.169.1 Dec 29 2021 =
|
4 |
+
#### Comments protection fixed.
|
5 |
+
* Fix. Comments. Comments form without email field protection fixed.
|
6 |
+
* Fix. Pluggable. Is trackback checking function added.
|
7 |
+
* Fix. Exception arg. Not set the flag to the comments and trackbacks.
|
8 |
+
* Fix. Forms protection. Prevent handle the trackback request by contact_form_validate.
|
9 |
+
|
10 |
+
= 5.169 Dec 28 2021 =
|
11 |
+
#### Improved compatibility with Varnish cache, visible_fields cookies fixed and some minor issues fixed.
|
12 |
+
* New. Options. Set cookie option "Auto" mode added.
|
13 |
+
* New. State. New property data[cookies_type] added.
|
14 |
+
* Fix. State. Set cookie option set on "Auto" by default.
|
15 |
+
* Fix. Activation. Select ajax handler during the plugin activation.
|
16 |
+
* Fix. API. Async logic added.
|
17 |
+
* Fix. State. Varnish cache detection fixed.
|
18 |
+
* Fix. API. Method calling service_update_local_settings is async now.
|
19 |
+
* Fix. Visible fields. Prevent generating more than 10 visible fields cookies.
|
20 |
+
* Fix: Disabling the cache when activating the plugin
|
21 |
+
* Fix: Setting the parameter of ipMaskLongToNumber to an integer
|
22 |
+
* Fix: fixed error in js script
|
23 |
+
|
24 |
+
= 5.168.1 Dec 22 2021 =
|
25 |
+
#### Direct integrations protection fixed.
|
26 |
+
* Fix: Prevent logging excluded requests on the direct integrations.
|
27 |
+
* Fix: Integration. Comment type The7 integration fixed.
|
28 |
+
* Fix. Log excluded. Skip logging PopUp Builder service action.
|
29 |
+
* Fix. Log excluded. Skip logging Cleantalk Security service action.
|
30 |
+
|
31 |
+
= 5.168 Dec 16 2021 =
|
32 |
+
#### One integrations added, some skipped requests will be logged, cookies optimized and minor issues fixed.
|
33 |
+
* New. Get key. A filter to changing an email to get the key implemented.
|
34 |
+
* New. Log exclusions. Option for logging excluded request implemented.
|
35 |
+
* New. Integration. Formidable Pro integration added.
|
36 |
+
* New. Integration. Smart forms integration added.
|
37 |
+
* Upd. Get key. email_filtered parameter added.
|
38 |
+
* Upd: Antispam. Prevent skip requests without emails.
|
39 |
+
* Upd: Antispam. Prevent skip requests trusted users.
|
40 |
+
* Mod: Implementation of sending plugin settings to service_update_local_settings
|
41 |
+
* Fix. Antispam. Exception action argument fixed.
|
42 |
+
* Fix. Antispam. Preventing catch RC requests.
|
43 |
+
* Fix. Antispam. Preventing catch website search requests.
|
44 |
+
* Fix. Setting templates. Get templates only after manual getting key.
|
45 |
+
* Fix. Admin notices. Notice about getting key removed.
|
46 |
+
* Fix. Getting key. Get the right email for gathering the key.
|
47 |
+
* Fix. Exception action. Send ajax requests without email to the cloud.
|
48 |
+
* Fix. Exception action. Prevent catching admin-side requests.
|
49 |
+
* Fix. Exception action. Send ajax requests without email to the cloud.
|
50 |
+
* Fix. Exception action. Prevent catching admin-side requests.
|
51 |
+
* Fix. Log exclusions. Skip checking excepted requests if the "Log excluded requests" option is disabled.
|
52 |
+
* Fix. Antispam. Remove unnecessary cookie from requests.
|
53 |
+
* Fix. Visible fields. Collecting visible fields only for unique forms on the page.
|
54 |
+
* Fix: excluded some action for Ninja Form from spamtest.
|
55 |
+
|
56 |
+
= 5.167 Dec 06 2021 =
|
57 |
+
* Fix. Comment scanner. Scanning loop fixed.
|
58 |
+
* Fix. Comment scanner. Scan only not spam comments.
|
59 |
+
* Mod: Launching a suitable ajax handler for checking email before POST
|
60 |
+
* Upd. RC. Remote calls checking moved to the root of the main file.
|
61 |
+
* New. Activation. Hook for getting key auto added.
|
62 |
+
* Fix. Admin notices. Errors about getting key fixed.
|
63 |
+
* Fix. Visible fields. Getting visible fields collection method moved to the Cookie class
|
64 |
+
* Fix. Visible fields. Getting visible fields collection method moved
|
65 |
+
* Fix. Settings. Getting key button fixed.
|
66 |
+
* Fix: Removed ajax_type from apbct_email_check_before_post
|
67 |
+
* Fixed Ajax.php errors with apbct_email_check_before_post
|
68 |
+
* Fix: Add integration for CalculatedFieldsForm and fixed scripts
|
69 |
+
|
70 |
+
= 5.166 Nov 18 2021 =
|
71 |
+
* Fix: skip ult-forgot-password action.
|
72 |
+
* Fix: Uncanny toolkit skip.
|
73 |
+
* Fix: SFW. Clearing FW stats fixed.
|
74 |
+
* Fix: SFW. Updating fallback fixed.
|
75 |
+
* Fix: SFW. Updating FW stats fixed.
|
76 |
+
* Mod: Changed the type of verification on check_message during registration in BuddyPress
|
77 |
+
* Fix: register_settings for wp < 4.7.
|
78 |
+
* Fix: Comment scanners. Getting cookie fixed.
|
79 |
+
* Fix: check if errors exists in state.
|
80 |
+
* Fix: update sfw after enabled.
|
81 |
+
* Fix: WPMS. Settings validating fixed.
|
82 |
+
* Fix: wpforms skip remove token validation.
|
83 |
+
* Fix. Text. Feedback description fixed.
|
84 |
+
* Fix: WPMS. Delete api key from settings template used.
|
85 |
+
* Fix. Updater. Notice fixed.
|
86 |
+
* Fix: WPMS. Setting transferring to the sub sites fixed.
|
87 |
+
|
88 |
+
= 5.165.1 Nov 09 2021 =
|
89 |
+
* Fix. Settings. Saving settings fixed.
|
90 |
+
|
91 |
+
= 5.165 Nov 08 2021 =
|
92 |
+
* New: Public. Mouse moved flag implemented.
|
93 |
+
* Upd: State. Errors adding method updated.
|
94 |
+
* Upd: Settings. Errors show function updated.
|
95 |
+
* Upd: Updater. Clean errors options for new errors structure.
|
96 |
+
* Upd: Public. Cookies aggregation.
|
97 |
+
* Mod: Improving the functionality of checking comments for spam.
|
98 |
+
* Mod: CommentsChecker - updated functionality and refactoring
|
99 |
+
* Mod: merged inc/cleantalk-updater.php
|
100 |
+
* Mod: merged UpdatePlugin dir
|
101 |
+
* Mod: merged Schema.php
|
102 |
+
* Mod: merged SchemaTest.php
|
103 |
+
* Mod: merged cleantalk.php
|
104 |
+
* Mod: merged State.php, Activator.php
|
105 |
+
* Fix: SFW. Directory for FW files moved to wordpress uploads directory.
|
106 |
+
* Fix: Settings. GDPR link fixed.
|
107 |
+
* Fix: testrequesttohost error handle.
|
108 |
+
* Fix: check ctsetcookie before call.
|
109 |
+
* Fix: Settings. Save button padding fixed.
|
110 |
+
* Fix: add console.log if ctSetcookie is not defined.
|
111 |
+
* Fix: SFW. Skip if sfw not updated yet.
|
112 |
+
* Fix: change console output if apbct-public-functions.js is not loaded.
|
113 |
+
* Fix: Added secure and samesite in cookie
|
114 |
+
* Fix: Renamed field apbct_wc_honeypot to wc_apbct_email_id
|
115 |
+
* Fix.Users.Feedback about deleting user implemented.
|
116 |
+
* Fix. SFW. Deleting table fixed.
|
117 |
+
* Fix: set buffer type to string if epico theme is active.
|
118 |
+
* Fix: Integration. Jetpack contact forms hooks fixed.
|
119 |
+
* Fix: SFW. Separating the end of update stage into several stages.
|
120 |
+
* Fix: SFW. Fallback function on SFW updating errors implemented.
|
121 |
+
* Fix. Integration. WP Forms hooks fixed.
|
122 |
+
* Fix. SFW. Auto updating for new users fixed.
|
123 |
+
* Fix. Comment. Set meta fixed.
|
124 |
+
* Fix: WPMS. Settings saving fixed.
|
125 |
+
|
126 |
+
= 5.164.1 Oct 21 2021 =
|
127 |
+
* Fix. SFW. Incompatibility WP-Rocket notice removed.
|
128 |
+
|
129 |
+
= 5.164 Oct 21 2021 =
|
130 |
+
* New: Integration. UsersWP plugin integration implemented.
|
131 |
+
* New. SFW. Incompatibility WP-Rocket notice added.
|
132 |
+
* New: Settings. Advanced settings navigation implemented.
|
133 |
+
* New: Server variables. isSSL method added.
|
134 |
+
* Mod: Added the functionality of changing the mail when receiving the key during the initial installation.
|
135 |
+
* Mod: Custom admin email. Added minified js and css files
|
136 |
+
* Mod: validate api key before save settings for new accounts
|
137 |
+
* Mod: Antispam. Comments check. Send feedback with hash:01:url data only if post_info->post_url is empty.
|
138 |
+
* Fix: State. Option prefix field is public now.
|
139 |
+
* Fix: Using get_option('home') for getting the blog url instead get_option('siteurl').
|
140 |
+
* Fix: State. Magic __get notice fixed.
|
141 |
+
* Fix. State. Exclamation mark fixed.
|
142 |
+
* Fix. Common. Getting REST url fixed.
|
143 |
+
* Fix: SFW. Update percents fixed.
|
144 |
+
* Fix: DB. isTableExists method fixed.
|
145 |
+
* Fix. State. $errors field added.
|
146 |
+
* Fix: Server::getDomain(). Fixed regexp.
|
147 |
+
* Fix: skip log-in request wpstg.
|
148 |
+
* Fix: SFW. Work on hosting licenses fixed.
|
149 |
+
* Fix: set prefix_name for cleantalk-icons css.
|
150 |
+
* Fix: Helper. Hard use https for the curl requests.
|
151 |
+
* Fix: Helper. Home url slash added.
|
152 |
+
* Fix: SFW. Using direct updating if remote calls not working.
|
153 |
+
* Fix: Settings. Save button z-index added.
|
154 |
+
* Fix: Admin bar. Exclamation mark style fixed.
|
155 |
+
* Fix: Settings. Api key description on active IP license added.
|
156 |
+
* Fix: Sender info. Getting page_url on ajax/rest requests fixed.
|
157 |
+
|
158 |
+
= 5.163.1 Oct 12 2021 =
|
159 |
+
* Fix: Queue. Errors of each try fixed.
|
160 |
+
* Fix: SFW. Sleep before deleting tables was reduced.
|
161 |
+
* Fix: Queue. Accepted tries argument implemented.
|
162 |
+
|
163 |
+
= 5.163 Oct 07 2021 =
|
164 |
+
* New: State. errorExists method implemented.
|
165 |
+
* New: SFW. Disabling SFW when the database was outdated.
|
166 |
+
* New: Settings templates. Saving template to the several blogs implemented.
|
167 |
+
* New: Settings. WPMS settings always show now.
|
168 |
+
* New: WPMS. No show any sub-sites errors on wpms mode 2.
|
169 |
+
* New: WPMS. Plugin settings are disabled on sub-sites on wpms mode 2.
|
170 |
+
* Mod: Remote Calls using POST instead of GET request type.
|
171 |
+
* Mod: Helper. No cache GET parameter renamed.
|
172 |
+
* Mod: Cron. Transactions implemented #2.
|
173 |
+
* Mod: Settings. "URL Exclusions" description updated.
|
174 |
+
* Upd: Getting JS. AJAX handler type selecting updated.
|
175 |
+
* Fix: Added lost info about total comments in CommentChecker::ctAjaxInfo
|
176 |
+
* Fix: add subscriber to skip list.
|
177 |
+
* Fix: Changed the plugin name in the list of plugins when enabling White Label
|
178 |
+
* Fix: Changed the plugin name in the admin bar when enabling White Label
|
179 |
+
* Fix: Feedback. Comments feedback description fixed.
|
180 |
+
* Fix: Hide information about Security in admin bar if it is not main site.
|
181 |
+
* Fix: SFW. Error toggle used instead of error add/delete.
|
182 |
+
* Fix: Alt cookies. Selecting type of alt cookies bug fixed.
|
183 |
+
* Fix: protect logged users in gravity.
|
184 |
+
* Fix: Updated the condition for showing a link to the security installation in the admin bar.
|
185 |
+
* Fix: reverse condition for WL security link.
|
186 |
+
* Fix: WPMS. Addition WL info link fixed.
|
187 |
+
* Changed plugin name in plugin settings multisite__white_label__plugin_name.
|
188 |
+
* Fix: rename plugin name after search plugins if WL is on.
|
189 |
+
* Fix: Renamed Antispam by Cleantalk to Anti-spam by Cleantalk
|
190 |
+
* Fix: add elementor-pro to skip save action.
|
191 |
+
* Fix: WPMS. Sanitize api key during getting key fixed.
|
192 |
+
* Fix: Cron. Cron results errors handling fixed.
|
193 |
+
* Fix: WPMS. Migrate old WPMS to the new wpms mode.
|
194 |
+
* Fix: WPMS. Using main site data on wpms_mode=2.
|
195 |
+
* Fix: Helper. Hard use https for the curl requests.
|
196 |
+
* Fix: WPMS. Sanitize network settings fixed.
|
197 |
+
* Fix: WPMS. Applying settings for selected blogs fixed.
|
198 |
+
* Fix: Getting key. Sync after getting key fixed.
|
199 |
+
|
200 |
+
= 5.162 Sep 23 2021 =
|
201 |
+
* New. SFW. Fall back updating system implemented.
|
202 |
+
* New: Integration. Added honeypot wc.
|
203 |
+
* New: SFW. Added new status PASS_SFW__BY_STATUS for showing die_page.
|
204 |
+
* Upd: Cookies. Alternative cookies types was updated.
|
205 |
+
* Upd: Ajax. Finding the right WP directory implemented.
|
206 |
+
* Fix: Updater fixed.
|
207 |
+
* Fix: Firewall update. Not existing FW table.
|
208 |
+
* Fix: State. DB prefix fixed.
|
209 |
+
* Fix: WPForms. Excluding from the custom contact forms check.
|
210 |
+
* Fix. State. DB prefix definition fixed.
|
211 |
+
* Fix: SpamFirewall update. Increasing delay in queue transactions, adding time of the queue task start
|
212 |
+
* Fix: State. Show notices fixed.
|
213 |
+
* Fix: State. Some logic moved from a loop.
|
214 |
+
* Fix: Adding a error if Common/Helper::http_request() couldn't get HTTP code via get_headers().
|
215 |
+
* Fix: SFW. Do not AC checking, if cookies were disabled.
|
216 |
+
* Fix: http_request() with preset 'get_code' using GET HTTP method instead of HEAD now.
|
217 |
+
* Fix: SFW. Direct update DB errors handled.
|
218 |
+
* Fix: SFW. Direct update creating temp table errors handled.
|
219 |
+
* Fix: SpamFirewall update. SFW_IS_DISABLED is not a error. apbct_sfw_update__init() returns false in this case.
|
220 |
+
* Fix: Extended header. Cache-Control: max-age=0 in the /Common/Helper::httpRequest()
|
221 |
+
* Fix: Updater. Fixed data__use_static_js_key settings name.
|
222 |
+
* Fix: Updater. start ct_account_status_check() if main site in 5.127+ versions
|
223 |
+
* Fix: Adding error handling to DB::execute() in ApbctWP\SFW.
|
224 |
+
* Fix: Cron. Cron last start flag improved.
|
225 |
+
* Fix: Cron. Cron execution cooldown decreased to 2 min.
|
226 |
+
* Fix: Adding more info in 'Unknown' type error.
|
227 |
+
* Fix: Exclude Forminator double requests on multipage form.
|
228 |
+
* Fix: Settings. Alt cookies types validating fixed.
|
229 |
+
* Fix: Ajax. WP core dir parsing fixed.
|
230 |
+
* Fix: Settings. Ajax handler title fixed.
|
231 |
+
|
232 |
+
= 5.161.1 Sep 14 2021 =
|
233 |
+
* Fix. State. Checking empty errors fixed.
|
234 |
+
|
235 |
+
= 5.161 Sep 09 2021 =
|
236 |
+
* Fix: Cleantalk.php. dns_get_record() error handling.
|
237 |
+
* Fix: Search form integration. PHP Notice.
|
238 |
+
* Fix: Default value for "Alternative Cookie Type" setting.
|
239 |
+
* Fix: SpamFirewall. Updating percent output.
|
240 |
+
* Fix: SpamFirewall. Omit SFW_IS_DISABLED error.
|
241 |
+
* Mod: Admin-bar.
|
242 |
+
* Fix: SpamFirewall update.
|
243 |
+
* Fix: apbct_log(). Log time.
|
244 |
+
* Mod: Debug RC. Servers_connection item added.
|
245 |
+
* Mod: apbct_test_connection() moved to cleantalk.php.
|
246 |
+
* Fix: skip elementor save template.
|
247 |
+
* Fix: skip formidable base check.
|
248 |
+
* Fix: remove limit for request in delete all spam users.
|
249 |
+
* Mod: apbct_test_connection() improvements.
|
250 |
+
* Fix: Helper::http__request() timeout is 15 seconds.
|
251 |
+
* New: Helper::http__request() low speed time is 10 seconds.
|
252 |
+
* Fix: decbin int type in helper.
|
253 |
+
* Fix: add apbct_get_rest_url func.
|
254 |
+
* Fix: Error report form Cleantalk.php.
|
255 |
+
* Fix: skip sfw check if sfw not updated.
|
256 |
+
* Fix. Integration. Enfold theme saving options skip protection.
|
257 |
+
* Fix. Integration. Cartflows saving cart skip protection.
|
258 |
+
* Fix: getOption return variable.
|
259 |
+
* Fix: skip sfw if last_update_time is zero.
|
260 |
+
* Fix: skip last_update_time sfw check.
|
261 |
+
* Fix: add priority to comment_form_default_fields hook.
|
262 |
+
* New. Helper. IP detecting improved.
|
263 |
+
* Fix. Helper. Multi-curl timeout added.
|
264 |
+
* Upd. SFW. SFW block page updated.
|
265 |
+
* Upd. SFW. AC block page updated.
|
266 |
+
* Upd. Settings. SFW features settings moved to the separated block.
|
267 |
+
* Fix. SFW. Random get parameter for redirecting block page updated.
|
268 |
+
* Fix. Settings. SFW features settings description fixed.
|
269 |
+
* New: Queue. Transaction system.
|
270 |
+
* Fix: skip siteorigin pagebuilder save widget.
|
271 |
+
* New: Readme. Hide «Website» field for comments added.
|
272 |
+
* Fix. Helper. Async curl timeout increased.
|
273 |
+
* Fix. Integration. Blogvault requests skipped.
|
274 |
+
* Fix: skip classfields check_email action.
|
275 |
+
* Mod: Show real HTTP code in a error during downloading GZ file.
|
276 |
+
* Mod: Debug call extended.
|
277 |
+
* Mod: Admin notices. Added the ability to hide a banner with notifications for each individual administrator for two weeks.
|
278 |
+
* Fix. Settings. Long description output fixed.
|
279 |
+
* Fix. Settings. JS debug data removed.
|
280 |
+
* Fix. SFW. Deleting fw files folder.
|
281 |
+
* Fix: api error handle.
|
282 |
+
* Fix: SFW. Added update mode if sfw-updater works with tables.
|
283 |
+
* New. WPMS. New multisite logic implemented.
|
284 |
+
* Fix: Setting. Select field type fixed.
|
285 |
+
* Fix: Сhanged the function delete_all_options() of removing plugin options when fully uninstalled.
|
286 |
+
* Fix. WPMS. Hoster API key description fixed.
|
287 |
+
* Fix: Admin notices. get_option expression is checking more strictly.
|
288 |
+
* New: Helper. Added method for validate date format as 'Y-m-d'.
|
289 |
+
* Fix: SFW. Default FW folder fixed.
|
290 |
+
* Fix: SFW. FW folder on the first sync fixed.
|
291 |
+
* Fix: SFW. Remove wrong FW folders.
|
292 |
+
* Fix: SFW. Refactoring apbct_sfw_update__end_of_update().
|
293 |
+
* Mod: apbct_test_connection().
|
294 |
+
* Fix: /ApbctWP/API::send_request() with empty result.
|
295 |
+
|
296 |
+
= 5.160.3 Aug 31 2021 =
|
297 |
+
* New: Queue. Transaction system.
|
298 |
+
* Fix. SFW. Updating for the new clients fixed.
|
299 |
+
* Fix. SFW. Deleting UA file fixed.
|
300 |
+
* Fix. SFW. Updating via cron fixed.
|
301 |
+
* Fix. SFW. Updating process for multisite fixed.
|
302 |
+
|
303 |
+
= 5.160.2 Aug 26 2021 =
|
304 |
+
* Fix. Pixel. Auto mode fixed.
|
305 |
+
|
306 |
+
= 5.160.1 Aug 6 2021 =
|
307 |
+
* Fix: SpamFirewall update.
|
308 |
+
|
309 |
+
= 5.160 Jul 29 2021 =
|
310 |
+
* New: SFW. SFW alternative cookie implemented.
|
311 |
+
* New: SFW. AC alternative cookie implemented.
|
312 |
+
* New: SFW. AF alternative cookie implemented.
|
313 |
+
* New: Helper. Curl multi wrapper added.
|
314 |
+
* New: Queue class implemented.
|
315 |
+
* Mod: Changed the processing of the honeypot_field for standard comment.
|
316 |
+
* Mod: Added integration for Wishlist Members registration form.
|
317 |
+
* Mod: Store visited URLs amount reduces to 5 with 128 symbols by URL.
|
318 |
+
* Upd: Public js scripts separated.
|
319 |
+
* Upd: SFW. Updating process modified.
|
320 |
+
* Fix: Moderate rotating fixed.
|
321 |
+
* Fix: SFW. Process file errors handling fixed.
|
322 |
+
* Fix: Pluggable. Expression fixed.
|
323 |
+
* Fix: Ajax. User detection fixed..
|
324 |
+
* Fix: Ajax. Ajax handlers fixed.
|
325 |
+
* Fix: IP-detection for Cloudflare CDN.
|
326 |
+
* Fix: Skip test for ajax alt_session request.
|
327 |
+
* Fix: Set cookies on dashboard pages even if the setting is off.
|
328 |
+
* Fix: Ajax. Ajax class fixed.
|
329 |
+
* Fix: Users scanner. Remove redundant menu.
|
330 |
+
* Fix: Added an exception for the action edd_process_checkout Easy Didgital Downloads plugi
|
331 |
+
* Fix: SFW. Changed method for getting addr ip.
|
332 |
+
* Fix: Integration. WPForms names gathering fixed.
|
333 |
+
* Fix: SFW. Min update interval decreased to 14400 seconds.
|
334 |
+
* Fix: Integration. WPForms names gathering fixed.
|
335 |
+
* Fix: Cleantalk.php. dns_get_record() error handling.
|
336 |
+
* Fix: Search form integration. PHP Notice.
|
337 |
+
* Fix: Default value for "Alternative Cookie Type" setting.
|
338 |
+
* Fix: SpamFirewall. Omit SFW_IS_DISABLED error.
|
339 |
+
* Fix: SpamFirewall. Updating percent output.
|
340 |
+
* Fix. Settings templates. Sync after template loading.
|
341 |
+
* Fix. SFW. Updating process percents fixed.
|
342 |
+
* Fix. Antispam. All headers parameter fixed.
|
343 |
+
|
344 |
+
= 5.159.9 Jul 15 2021 =
|
345 |
+
* Fix. SFW. Updating cooldown increased up to 15 min.
|
346 |
+
* Fix. Cron. Next call time set by task updating fixed.
|
347 |
+
* Fix. SFW. Reset blacklist array before processing.
|
348 |
+
* Fix. SFW. Some errors handling fixed.
|
349 |
+
* Fix. SFW. Getting update period from dns fixed.
|
350 |
+
* Fix. Ajax. Checking nonce for logged in users fixed.
|
351 |
+
|
352 |
+
= 5.159.8 Jul 07 2021 =
|
353 |
+
* Fix: Fixed the connection error Ajax.php when the site files are in a subfolder.
|
354 |
+
* Fix. SFW. Anticrawler redirect detection fixed.
|
355 |
+
* Fix. Checking sql before the tables creating.
|
356 |
+
* Fix. Updater fixed.
|
357 |
+
* Fix: Set alt cookies if sg optimizer is enabled.
|
358 |
+
* Fix: Exclusion for GiveWP plugin in apbct-public.js. #2
|
359 |
+
|
360 |
+
= 5.159.7 Jul 01 2021 =
|
361 |
+
* Fix. Updater fixed.
|
362 |
+
|
363 |
+
= 5.159.6 Jun 30 2021 =
|
364 |
+
* New. Rest API request detecting implemented.
|
365 |
+
* Upd. SFW. AntiCrawler was disabled for the new installations.
|
366 |
+
* Upd. SFW. AntiCrawler option moved to the advanced settings section.
|
367 |
+
* Mod: email is taken only from visible fields
|
368 |
+
* Mod: remove error message about firewall updating
|
369 |
+
* Mod: excluded for test WC_Gateway_Tpay_Basic
|
370 |
+
* Fix: Added exclude for happyforms.php in apbct_is_skip_request.
|
371 |
+
* Fix: Added an error message in the form response
|
372 |
+
* Fix: Skip wpforms general requests because of direct integration.
|
373 |
+
* Fix. Integration. Autonami Marketing Automations service request kipped.
|
374 |
+
* Fix. Cron. Update task method fixed.
|
375 |
+
* Fix. SFW. Prevent updating while SFW is disabled.
|
376 |
+
* Fix. Cron. Restoring cron tasks during plugin updating.
|
377 |
+
* Fix. SFW. Logs sending used limit.
|
378 |
+
* Fix: set correct api_key value for ajax calls.
|
379 |
+
* Fix. Frontend widget. The widget layout fixed.
|
380 |
+
* Fix. Integration. Formidable preparing data for checking.
|
381 |
+
|
382 |
+
= 5.159.5 Jun 24 2021 =
|
383 |
+
* New: Admin bar. Attention mark added.
|
384 |
+
* Upd: Admin notices have been rebuilt.
|
385 |
+
* Upd: Integrations with HappyForms updated.
|
386 |
+
* Fix: Skip fluentform multistep request.
|
387 |
+
* Fix: Correct fluent_form skip name.
|
388 |
+
* Fix: Admin notices. Trial and renew notices ID attributes renamed.
|
389 |
+
* Fix: Admin bar. Trial notice font color changed.
|
390 |
+
* Fix: Admin bar. Show admin bar without api key.
|
391 |
+
* Fix: Admin bar. Show attention badge if the api key is empty.
|
392 |
+
* Fix: AC. Skip checking on 302 redirects.
|
393 |
+
* Fix: Added IF NOT EXISTS after ADD COLUMN in cleantalk-updater.php
|
394 |
+
* Fix: Removed ADD PRIMARY KEY from apbct_update_to_5_146_4
|
395 |
+
* Fix: Removed apbct_update_to_5_146_4
|
396 |
+
* Fix: Checking output parameters of API-method get_2s_blacklists_db.
|
397 |
+
* Fix: SFW. Writing exclusions fixed.
|
398 |
+
* Fix: Integration. GF names detection fixed.
|
399 |
+
* Fix: Integration. WPForms nicknames detecting fixed.
|
400 |
+
* Fix. SFW. Updating fixed.
|
401 |
+
* Fix: Excluding REST API requests from check.
|
402 |
+
* Fix. Admin notices. Incompatibility notice fixed.
|
403 |
+
* Fix. Compatibility. Notice saving fixed.
|
404 |
+
* Fix. Compatibility. Prevent disabling SFW on incompatibility detected.
|
405 |
+
* Fix. Compatibility. SFW option is no longer disabled on incompatibility detected.
|
406 |
+
* Fix. Admin bar. Reset counters fixed.
|
407 |
+
|
408 |
+
= 5.159.4 Jun 17 2021 =
|
409 |
+
* Fix: Admin bar. PHP error.
|
410 |
+
|
411 |
+
= 5.159.3 Jun 15 2021 =
|
412 |
+
* Fix: Admin bar. Conflict with previous version of Security by Cleantalk.
|
413 |
+
|
414 |
+
= 5.159.2 Jun 15 2021 =
|
415 |
+
* Fix. Renew notice banner shows only on cleantalk pages.
|
416 |
+
* Fix. SFW updating. Getting remote data error handling fixed.
|
417 |
+
* Upd. Readme updated.
|
418 |
+
* Fix. SFW. Auto-updating fixed.
|
419 |
+
* Fix: Admin bar style. Install link is no longer highlighted.
|
420 |
+
* Fix: Admin bar style. Style for security icon.
|
421 |
+
* Fix: Admin bar. Reset buttons counters leads to the same page.
|
422 |
+
* Fix. Manual register link fixed.
|
423 |
+
* Fix: do not display errors on subsites when wl is enabled.
|
424 |
+
* Fix: Admin bar. Rapid fix.
|
425 |
+
* Fix. Skipping. WPForms check restricted email request skipped.
|
426 |
+
* Fix. Helper. CURL request timeout increased.
|
427 |
+
* Fix. Comments/users checker. Description fixed.
|
428 |
+
* Fix. Get fields any. Preset nickname parameter fixed.
|
429 |
+
* Fix: wpms settings.
|
430 |
+
|
431 |
+
= 5.159.1 Jun 10 2021 =
|
432 |
+
* Fix: Cron. Cron calling in cleantalk-updater.php fixed.
|
433 |
+
|
434 |
+
= 5.159 Jun 10 2021 =
|
435 |
+
* New. Admin Bar. Common admin bar implemented.
|
436 |
+
* New: email check before post.
|
437 |
+
* New: New admin bar style.
|
438 |
+
* New. SFW. Updating integrity control implemented.
|
439 |
+
* New. Custom Ajax. Email checking before post.
|
440 |
+
* New. Custom Ajax. Getting JS key.
|
441 |
+
* New. Custom Ajax. Alternative cookies.
|
442 |
+
* Upd. Integrations. Support multiple non-ajax hooks.
|
443 |
+
* Upd. Cron. Cron class and cron usage updated.
|
444 |
+
* Upd. Pixel. Pixel setting is "auto" for the new installations.
|
445 |
+
* Upd. Users checker. Users with completed WC orders no checked.
|
446 |
+
* Upd. WPMS settings.
|
447 |
+
* Mod. limiting the size of an array top5_spam_ip to five elements in widget.
|
448 |
+
* Mod. update data__pixel title.
|
449 |
+
* Mod. Update data__use_static_js_key title.
|
450 |
+
* Mod. add 'relative' parameter in admin_url() for getting ajaxurl.
|
451 |
+
* Mod. update field name honeypot_field, reverse logic
|
452 |
+
* Mod. changed website field from comments form: type text, display none.
|
453 |
+
* Fix. resolve conflict with wiloke theme and unknown plugin, that removes standard authorization cookies.
|
454 |
+
* Fix. moved the wiloke_theme options_ajax_save_skip check to apbct_is_skip_request function.
|
455 |
+
* Fix. added a theme check along with a hook wiloke_themeoptions_ajax_save_skip.
|
456 |
+
* Fix. Integration. Essentials addons for elementor integration fixed.
|
457 |
+
* Fix. AC/AF. Clearing AC table via cron fixed.
|
458 |
+
* Fix. SFW. Obtaining the count of the networks was fixed.
|
459 |
+
* Fix. Cron. Last cron start fixed.
|
460 |
+
* Fix. cookies for login page.
|
461 |
+
* Fix. Firewall. Update. Filtering bad data.
|
462 |
+
* Fix. Custom Ajax. Localized login scripts.
|
463 |
+
* Fix. API. Cleantalk\ApbctWP\API fixed to work on SHORTINIT mode.
|
464 |
+
* Fix. Custom Ajax. Getting JS key - removed WP ajax hooks.
|
465 |
+
* Fix. GetFieldsAny. Bypassing collecting email and names logic fixed.
|
466 |
+
* Fix. New admin bar style. Sorting plugins by Alphabet.
|
467 |
+
* Fix. ct_get_admin_email return network email if set.
|
468 |
+
* Fix. Fixed the name of the key containing the file address to check the number of records.
|
469 |
+
* Fix. Comments checker. Non-checkable users tab removed.
|
470 |
+
* Fix. Visible fields. Formidable visible fields collecting fixed.
|
471 |
+
* Fix. Get fields any fixed.
|
472 |
+
* Fix. empty key error for hosting.
|
473 |
+
* Fix. WPMS. Api key saving fixed.
|
474 |
+
* Fix. WPMS. Network settings saving fixed.
|
475 |
+
* Fix. WPMS. Plugin name setting field is not required now.
|
476 |
+
* Fix. Alt sessions js fixed.
|
477 |
+
|
478 |
+
= 5.158 May 27 2021 =
|
479 |
+
* Fix: Firewall. SQL-request error.
|
480 |
+
|
481 |
+
= 5.158 May 26 2021 =
|
482 |
+
* New. Integration. WP Foro register system integration.
|
483 |
+
* New. Integration. Elementor essentials LoginRegister integration implemented.
|
484 |
+
* New: SQL-schema and updater for extended SpamFirewall logs.
|
485 |
+
* New: Extended SpamFirewall logs.
|
486 |
+
* New: Pixel.
|
487 |
+
* Mod: Few improvements to SFW update.
|
488 |
+
* Mod: add settings for hidding website field from comment form.
|
489 |
+
* Mod: Few improvements to SFW update #2.
|
490 |
+
* Mod: Possibility to send empty JSON object in API.
|
491 |
+
* Mod: Extended SpamFirewall logs for AntiCrawler module.
|
492 |
+
* Upd: SFW. Direct updating method implemented.
|
493 |
+
* Upd. Settings. Network settings templates updated.
|
494 |
+
* Upd: Firewall. Improvements to update system.
|
495 |
+
* Upd: Firewall. Improvements to update system.
|
496 |
+
* Fix: replace wp_die to die in ct_die(), refactoring ct_die()
|
497 |
+
* Fix. Forms. Exclude field wp-editor-area from collecting visible fields.
|
498 |
+
* Fix. Widget. Widget content logic fixed.
|
499 |
+
* Fix: Forms. Nicknames detecting fixed #2.
|
500 |
+
* Fix: Forms. Getting check_js key fixed.
|
501 |
+
* Fix: update ct_die_extended() as ct_die().
|
502 |
+
* Fix. Code. Getting delay before js code get if async option enabled.
|
503 |
+
* Fix. WPMU. Blog id added in settings templates list.
|
504 |
+
* Fix. Integration. Elementor essentials LoginRegister login form protection skipped.
|
505 |
+
* Fix. WPMU. Blog id added in settings templates list.
|
506 |
+
* Fix. Readme. Required PHP version increased to 5.6.
|
507 |
+
* Fix. Updater. 5_157_10 updating fixed #2.
|
508 |
+
* Fix. JS. DOMContentLoaded used instead jQuery(document).ready().
|
509 |
+
* Fix: SpamFirewall. Update. "FW UPDATE INIT: KEY_EMPTY", "SFW UPDATE INIT: KEY_IS_NOT_VALID" errors.
|
510 |
+
* Fix. Users checker. Export to the csv fixed.
|
511 |
+
* Fix: SpamFirewall. Update. Error "WRONG_UPDATE_ID".
|
512 |
+
* Fix: SpamFirewall. Update. "FW UPDATE INIT: KEY_EMPTY", "SFW UPDATE INIT: KEY_IS_NOT_VALID" errors.
|
513 |
+
* Fix: SpamFirewall. Update. Error "WRONG_UPDATE_ID".
|
514 |
+
* Fix: \Cleantalk\Common\Helper::http__request() consider only boolean false (empty string '' considering as good) as bad response.
|
515 |
+
* Fix: SpamFirewall. Update.
|
516 |
+
* Fix: SpamFirewall. Update #2.
|
517 |
+
* Fix: WPMS empty apikey in options
|
518 |
+
* Fix: "Mod: add settings for hidding website field from comment form".
|
519 |
+
* Fix: Common/Helper::http__get_headers() fixed.
|
520 |
+
* Fix: SpamFirewall admin bar counter.
|
521 |
+
* Fix: "Fix: Common/Helper::http__get_headers() fixed."
|
522 |
+
* Fix: Pixel.
|
523 |
+
* Fix: "Pixel" setting description.
|
524 |
+
* Fix: Extended SpamFirewall logs for AntiCrawler module.
|
525 |
+
* Fix: Extended SpamFirewall logs for AntiCrawler module #2.
|
526 |
+
* Fix: WPFroms. PHP notice.
|
527 |
+
* Fix: Gravity Forms. PHP notice.
|
528 |
+
* Revert: Fix: Code. get_fields_any() notice fixed.
|
529 |
+
|
530 |
+
= 5.157.2 May 05 2021 =
|
531 |
+
* Fix: Code. get_fields_any() notice fixed.
|
532 |
+
* Fix: Integration. Gravity Forms integration fixed.
|
533 |
+
* Fix: Forms. Nicknames detecting fixed.
|
534 |
+
|
535 |
+
= 5.157.1 Apr 29 2021 =
|
536 |
+
* Mod: \Cleantalk\ApbctWP\Variables\Cookie::get() now has 'cast_to' param. If defined trying to cast to a given type.
|
537 |
+
* Fix: \Cleantalk\ApbctWP\Variables\Cookie::get() calls using 'cast_to' param if needed.
|
538 |
+
|
539 |
+
= 5.157 Apr 28 2021 =
|
540 |
+
* New: Invisible fields collecting implemented.
|
541 |
+
* New: A dev and a fix version suffix support.
|
542 |
+
* New: Variables. Cookie::set() method added.
|
543 |
+
* New: Split Cleantalk\Common\DB::method__private_list_add__sfw_wl() in two Cleantalk\Common\DB::method__private_list_add() and Cleantalk\ApbctWP\DB::method__private_list_add__sfw_wl().
|
544 |
+
* New: Split Cleantalk\ApbctWP\Helper::http__request__rc_to_host() in two Cleantalk\ApbctWP\Helper::http__request__rc_to_host() and Cleantalk\ApbctWP\Helper::http__request__rc_to_host__test().
|
545 |
+
* New: Updater script for 5.157.
|
546 |
+
* New: Update/delete SpamFireWall database when it enable/disable. Improvements.
|
547 |
+
* New: \Cleantalk\ApbctWP\Variables::AltSessions class.
|
548 |
+
* New: "Set cookies" setting now has 3 options "On", "Off" and "Use alternative mechanism for cookies".
|
549 |
+
* New: REST API route '/alt_sessions' and callbacks.
|
550 |
+
* Mod: Compatibility with Thrive Leads - remove deleted the modal window about successful sending when blocking the user.
|
551 |
+
* Mod: changed the handling of gravityform fields, added a check for the visibility of the field when processing the name.
|
552 |
+
* Mod: Added a setting for Woocommerce, which includes checking the un-logged user when adding an item to the cart. If the user does not pass the verification, the product is not added to the cart.
|
553 |
+
* Mod: Added a settings for Woocommerce - correction.
|
554 |
+
* Mod: WC add to cart - change settings description.
|
555 |
+
* Mod: Cleantalk\ApbctWP\RemoteCalls::debug() improved.
|
556 |
+
* Mod: SpaFirewall update.
|
557 |
+
* Mod: add buddypress integration for user account personal data.
|
558 |
+
* Mod: Moving \Cleantalk\Common\Helper::apbct_cookie__set() to \Cleantalk\ApbctWP\Variables::set() function.
|
559 |
+
* Mod: Using \Cleantalk\ApbctWP\Variables::set() instead of \Cleantalk\Common\Helper::apbct_cookie__set().
|
560 |
+
* Mod: Extend \Cleantalk\ApbctWP\Variables to use alternative sessions.
|
561 |
+
* Mod: Using \Cleantalk\ApbctWP\Variables\AltSessions class instead of set of "apbct_alt_sessions__" functions.
|
562 |
+
* Mod: added loading of country flags from the plugin.
|
563 |
+
* Mod: added styles for the widget with anti-spam statistics.
|
564 |
+
* Mod: Improving ct_enqueue_scripts_public().
|
565 |
+
* Mod: Update for JS ctSetCookie().
|
566 |
+
* Mod: AltSessions and Cookie using 'data__set_cookies' and 'data__set_cookies' settings.
|
567 |
+
* Mod: Minified JS updated.
|
568 |
+
* Upd: Setting cookies updating.
|
569 |
+
* Upd: Setting cookies by JS updating.
|
570 |
+
* Fix: SFW. DB result handling.
|
571 |
+
* Fix: Integration. Avada theme settings saving fixed.
|
572 |
+
* Fix: Cleantalk modal. Layout fixed.
|
573 |
+
* Fix: Possible use an html on ajax forms blocking message.
|
574 |
+
* Fix: Include JS logic fixed.
|
575 |
+
* Fix: Refactoring. Collecting details about browser refactored.
|
576 |
+
* Fix: Refactoring. Alert replacing by console log on REST request handling.
|
577 |
+
* Fix: Integration. Gravity Forms integration fixed.
|
578 |
+
* Fix: ignoring the hidden fields with name if visible fields exists.
|
579 |
+
* Fix: Integration. Formidable multi-step form protection fixed.
|
580 |
+
* Fix: add max z-index for #cleantalk-modal-overlay.
|
581 |
+
* Fix: Cannot read property 'response_type' of undefined - xhr.responseJSON - undefined where action wc_add_to_cart_block.
|
582 |
+
* Fix: Helper. Set cookies method is deprecated now.
|
583 |
+
* Fix: Adding admin IP to whitelist during the login in and plugin activation.
|
584 |
+
* Fix: SpamFirewall. Don't set cookies if option is disabled.
|
585 |
+
* Fix: Sorting methods modifiers in \Cleantalk\Common\Helper and \Cleantalk\ApbctWP\Helper classes.
|
586 |
+
* Fix: Using \Cleantalk\ApbctWP\Variables\Cookies.
|
587 |
+
* Fix: A dev and a fix version suffix support.
|
588 |
+
* Fix: Adding admin IP to whitelist during the login in and plugin activation.
|
589 |
+
* Fix: New setting 'Alternative cookies handler type'.
|
590 |
+
* Fix: sender_info params.
|
591 |
+
* Fix: SpamFirewall deleting 127.0.0.1 from local base during update on local website.
|
592 |
+
* Fix: apbct_js_test() considering "Alternative cookie" setting.
|
593 |
+
* Fix: Cleantalk\ApbctWP\VariablesCookie::set() automatically set secure flag if null passed.
|
594 |
+
* Fix: Check JS via Cookie with the Alternative Cookie on.
|
595 |
+
* Fix: Automatically set "secure" param when setcookie() called.
|
596 |
+
* Fix: 'Alternative cookies handler type' setting layout.
|
597 |
+
* Fix: For legacy apbct__hook__wp_logout__delete_trial_notice_cookie().
|
598 |
+
* Fix: Cleantalk\ApbctWP\Variables::set_fromRemote(), Cleantalk\ApbctWP\Variables::get_fromRemote() fix parameter type.
|
599 |
+
* Fix: SpamFirewall add admin IP when login in or activate plugin.
|
600 |
+
* Fix: Dashboard widget. Showing default Cleantalk's flag if country not found.
|
601 |
+
* Fix: Dashboard widget. Showing 'Unknown' country name if country not found.
|
602 |
+
* Del: Unused apbct_cookie__set() function.
|
603 |
+
* Del: "Use alternative mechanism for cookies" setting.
|
604 |
+
* Del: "Use cookies less sessions" setting.
|
605 |
+
|
606 |
+
= 5.156 Apr 15 2021 =
|
607 |
+
* New: ApbctWP\RemoteCalls::action__debug().
|
608 |
+
* New: ApbctWP\Helper::http__get_data_from_remote_gz__and_parse_csv();
|
609 |
+
* New: ApbctWP\Helper::http__get_data_from_remote_gz();
|
610 |
+
* New: Update/delete SpamFireWall database when it enable/disable.
|
611 |
+
* New: \Cleantalk\Common\DNS class. Allows to get with DNS records and theirs different parameters.
|
612 |
+
* New: No cookies if disabled from frontend. Alternative cookies if enabled from frontend.
|
613 |
+
* New: \Cleantalk\ApbctWP\Variables\Cookie extends Cleantalk\Common\Variables\Cookie and automatically supports alternative cookies.
|
614 |
+
* Mod: Don't use alternative cookies for JS cookies for now.
|
615 |
+
* Mod: ApbctWP\State default data.
|
616 |
+
* Mod: Small code improvements.
|
617 |
+
* Mod: Minor code improvements.
|
618 |
+
* Mod: Using apbct_sfw_update__init instead() of ct_sfw_update().
|
619 |
+
* Mod: Updater script to 5.156.
|
620 |
+
* Upd: \Cleantalk\ApbctWP\RemoteCalls.
|
621 |
+
* Upd: *.min. files update.
|
622 |
+
* Upd: Current moderate*.cleantalk.org IP servers update.
|
623 |
+
* Refactor: SpamFireWall update.
|
624 |
+
* Fix: ApbctWP\RemoteCalls::action__sfw_update().
|
625 |
+
* Fix: \Cleantalk\Common\DNS could request specific DNS type record.
|
626 |
+
* Fix: Anti Spam. External forms protection capturing buffer fixed.
|
627 |
+
* Fix: SFW. Notices disabled on blocking pages.
|
628 |
+
* Fix: Admin ajax handler fixed - alert removed.
|
629 |
+
* Fix: No alert when error fires.
|
630 |
+
* Fix: Notice. change 'wpms__allow_custom_settings' to 'multisite__allow_custom_settings' in cleantalk-admin.php.
|
631 |
+
* Fix: Getting JS key by ajax fixed.
|
632 |
+
* Fix: No alert when AJAX fails.
|
633 |
+
* Fix: Send plugin version as parameter when apbct-public.min.js script attaching.
|
634 |
+
* Fix: The AJAX REST API error text unique.
|
635 |
+
* Fix: No alert message when AJAX (REST) error happens.
|
636 |
+
* Fix: Skip. MyListing theme service requests skip.
|
637 |
+
* Fix: \Cleantalk\ApbctWP\Helper::http__request__rc_to_host(). Considering empty response as error.
|
638 |
+
* Fix: \Cleantalk\Common\Helper::http__request(). Empty error while SFW update.
|
639 |
+
* Fix: REST API. Required parameter added.
|
640 |
+
* Fix: PHP Notices and Warnings.
|
641 |
+
* Fix: AntiCrawler UA update.
|
642 |
+
* Fix: JS and CSS minified.
|
643 |
+
* Fix: ApbctWP\State __get using &. *
|
644 |
+
|
645 |
+
= 5.155.2 Apr 6 2021 =
|
646 |
+
* Fix: Renaming setting to their original names in old update scripts.
|
647 |
+
* Fix: Ajax forms protection response fixed.
|
648 |
+
* Fix: No alert message when AJAX error happens.
|
649 |
+
|
650 |
+
= 5.155.1 Apr 2 2021 =
|
651 |
+
* Fix: Using WP Rest API.
|
652 |
+
* Rollback: Show response for all AJAX forms.
|
653 |
+
|
654 |
+
= 5.155 Mar 31 2021 =
|
655 |
+
* New: Debug. Check connection to API servers.
|
656 |
+
* New: Integration. Avada Form Builder.
|
657 |
+
* New: Integration. Forminator integration implemented.
|
658 |
+
* New: Users checker. Non-checked users tab added.
|
659 |
+
* New: SFW. Admin IP will be whitelisted automatically.
|
660 |
+
* Mod: Replace "bad" users/comments to "non-checkable".
|
661 |
+
* Mod: DisableComments. Disable all comments means disable all comments for any post type.
|
662 |
+
* Udp: Setting templates. Product ID support implemented.
|
663 |
+
* Udp: Settings. Reorder links actions buttons.
|
664 |
+
* Upd: Common. Getting check_js updated.
|
665 |
+
* Upd: SFW. Description updated.
|
666 |
+
* Fix: Reversed URL exclusions.
|
667 |
+
* Fix: Settings. Sync button success ico fixed.
|
668 |
+
* Fix: Show response for all AJAX forms #3.
|
669 |
+
* Fix: GDPR. Warning text output.
|
670 |
+
* Fix: Integration class consider settings.
|
671 |
+
* Fix: Exclusions. URL exclusions fixed.
|
672 |
+
* Fix: Services Templates. Getting templates optimized.
|
673 |
+
* Fix: Services Templates. Possible XSS fixed.
|
674 |
+
* Fix: Services Templates. Design layout fixed.
|
675 |
+
* Fix: Family of settings comments__disable_comments__* dependencies.
|
676 |
+
* Fix: DisableComments class. Media post type includes 'attachment' type.
|
677 |
+
* Fix: Exclusion for Thrive Ultimatum.
|
678 |
+
* Fix: Common/Helper::http__get_headers() ignores empty header name parts.
|
679 |
+
* Fix: Exclusion for GiveWP plugin in apbct-public.js.
|
680 |
+
* Fix: Do not consider 501 as correct HTTP response code when getting FW data files.
|
681 |
+
* Fix: AntiCrawler::update(). Correct error codes.
|
682 |
+
* Fix: ApbctWP\Firewall\SFW::update(). Correct URLs for FILE with protocol.
|
683 |
+
* Fix: PHP 8 deprecated notices.
|
684 |
+
* Fix: Settings. Reversed dependencies. Applies to WooCommerce and Disable Comments settings.
|
685 |
+
* Fix: DisableComments::template__check() returns the correct number of comments for enabled types of posts.
|
686 |
+
* Fix: DisableComments class. Visibility of some methods.
|
687 |
+
* Exception: Paid Memberships Pro - Login Form.
|
688 |
+
* Fix: Exception the SFW check for queries with '/favicon.ico' string.
|
689 |
+
|
690 |
+
= 5.154 Mar 17 2021 =
|
691 |
+
* New: Settings Templates functionality implemented.
|
692 |
+
* New: SFW. Anti-flood protection uses UA lists for filtration.
|
693 |
+
* Fix: Forms. Getting check_js delay removed.
|
694 |
+
* Fix: Forms. Rotation check_js fixed.
|
695 |
+
* Fix: Integration. Newspaper-theme login form protection skipped.
|
696 |
+
* Fix: Integration. Newspaper-theme reset password form protection skipped.
|
697 |
+
* Fix: Forms. Gravity Forms paypal addon processing skipped.
|
698 |
+
* Fix: Exclusion for wpDiscuz - Online Users Addon.
|
699 |
+
* Fix: Remote Calls. Wrapper http__request__rc_to_host() don't get an array
|
700 |
+
* Fix: JS. Modal window fixed.
|
701 |
+
* Fix: JS. Show AJAX result fixed.
|
702 |
+
* Fix: Skip. Save abandoned cart checking skip.
|
703 |
+
* Fix: Skip. SUMODISCOUNT discout request skip.
|
704 |
+
* Fix: Skip. WP eMember login form skip.
|
705 |
+
* Fix: SFW. Do not cache constants added.
|
706 |
+
* Fix: SFW. AC/AF logging fixed.
|
707 |
+
|
708 |
+
= 5.153.7 Mar 15 2021 =
|
709 |
+
* Fix: SFW. Updating fixed.
|
710 |
+
|
711 |
+
= 5.153.6 Mar 12 2021 =
|
712 |
+
* Fix: Show response for all AJAX forms #2.
|
713 |
+
|
714 |
+
= 5.153.5 Mar 10 2021 =
|
715 |
+
* Fix: Show response for all AJAX forms.
|
716 |
+
|
717 |
+
= 5.153.4 Mar 10 2021 =
|
718 |
+
* New: SFW. Log could be sent not more often than 3 minutes.
|
719 |
+
* New: SFW. Possibility to use DELETE instead of TRUNCATE to delete SFW log.
|
720 |
+
* New: Show response for all AJAX forms.
|
721 |
+
* Fix: SFW. Sending log. Committing transaction after TRUNCATE log table.
|
722 |
+
* Fix: Integration. CF7 different versions compatibility fixed.
|
723 |
+
* Fix: Exclusion for WooCommerce.
|
724 |
+
* Fix: Possible SQL-injections fixed.
|
725 |
+
|
726 |
+
= 5.153.3 Feb 25 2021 =
|
727 |
+
* Fix: Security. Preparing UA string for writing to the DB.
|
728 |
+
|
729 |
+
= 5.153.2 Feb 25 2021 =
|
730 |
+
* Fix: Integration. Registration on WICITY theme.
|
731 |
+
* Fix: Integration. Registration on Paid Memberships Pro
|
732 |
+
* Fix: IP detection.
|
733 |
+
* Fix: Error: SFW_DISABLED.
|
734 |
+
* Fix: Formidable form. Error with sophisticated field types.
|
735 |
+
* Fix: Remote Calls. Cooldown checking for the SFW update fixed.
|
736 |
+
* Fix: easy-login-woocommerce requests exclusion fixed.
|
737 |
+
* Fix: Jackmail plugin. Skip all admin-side actions.
|
738 |
+
* Fix: Remote Calls. Unused deactivation option removed.
|
739 |
+
* Fix: Users checker. Last check date fixed.
|
740 |
+
* Fix: Users checker. Total users count description fixed.
|
741 |
+
|
742 |
+
= 5.153.1 Feb 20 2021 =
|
743 |
+
* Fix: CF7. Modified spam hook #2
|
744 |
+
|
745 |
+
= 5.153 Feb 17 2021 =
|
746 |
+
* New: Integrations. WPDiscuz integration implemented.
|
747 |
+
* New: Using custom modal message instead allert.
|
748 |
+
* New: JS cleantalk-modal added.
|
749 |
+
* New: Cleantalk\ApbctWP\RemoteCalls class.
|
750 |
+
* New: Remote calls using Cleantalk\ApbctWP\RemoteCalls class.
|
751 |
+
* New: Cleantalk\ApbctWP\Helper::http__request__rc_to_host(). Wrapper to using RC to the website itself. Makes testing RC before make main.
|
752 |
+
* New: Cleantalk\ApbctWP\State::error_toggle().
|
753 |
+
* New: SFW update. Make test RC before main.
|
754 |
+
* Udp: Integrations. Support several hooks for one integration.
|
755 |
+
* Fix: Users. Feedback sending via deleting user fixed.
|
756 |
+
* Fix: Users checker. Feedback sending via deleting user fixed.
|
757 |
+
* Fix: IP detection.
|
758 |
+
* Fix: Users scan. Confirmation message fixed.
|
759 |
+
* Fix: SFW. The anti-flood option moved to the advanced settings.
|
760 |
+
* Fix: SFW. Show the right url on block page for WPMS.
|
761 |
+
* Fix: SFW. The anti-crawler option description fixed.
|
762 |
+
* Fix: SFW. The anti-flood option description fixed.
|
763 |
+
* Fix: SFW. AC checking on login page fixed.
|
764 |
+
* Fix: CF7. Modified spam hook.
|
765 |
+
* Fix: SFW. send_logs returning error.
|
766 |
+
* Fix: Cleantalk class fixed.
|
767 |
+
* Fix: Clearing errors storage before sync.
|
768 |
+
* Fix: Clearing SFW errors on updating to 5.151.6.
|
769 |
+
* Fix: Updater. Support updating for versions without fix number implemented.
|
770 |
+
* Fix: "Email Before Download" plugin request will be skipped.
|
771 |
+
* Fix: SFW. Auto-updating option fixed for multisite activation.
|
772 |
+
* Fix: Exception for Xoo login form.
|
773 |
+
* Fix: Users deleting feedback fixed.
|
774 |
+
|
775 |
+
= 5.152.5 Feb 04 2021 =
|
776 |
+
* Fix: SFW. Auto-updating interval decreased to 5 mins.
|
777 |
+
* Fix: Divi. Skip saving epanel.
|
778 |
+
* New: Find users/comments table. Add footer description.
|
779 |
+
* Fix: SFW. UA option removed.
|
780 |
+
* Fix: SFW. AC checking by UA enabled by default.
|
781 |
+
* Fix: SFW. AF disabled by default for the new installations.
|
782 |
+
|
783 |
+
= 5.152.4 Feb 01 2021 =
|
784 |
+
* Fix: Cron tasks compare fixed.
|
785 |
+
|
786 |
+
= 5.152.3 Jan 31 2021 =
|
787 |
+
* Fix: Error: SFW_DISABLED.
|
788 |
+
* Fix: Moderate connection timeout increased to 6sec.
|
789 |
+
* Fix: SFW uses the right API class.
|
790 |
+
|
791 |
+
= 5.152.2 Jan 30 2021 =
|
792 |
+
* Fix: API-requests.
|
793 |
+
|
794 |
+
= 5.152.1 Jan 29 2021 =
|
795 |
+
* Fix: Errors in IP detection.
|
796 |
+
|
797 |
+
= 5.152 Jan 29 2021 =
|
798 |
+
* Fix: Using server protocol for AC checking.
|
799 |
+
* Fix: Prevent caching db queries for SFW.
|
800 |
+
* Fix: mgm registration temp fix.
|
801 |
+
* Upd: Checking skipped request replaced.
|
802 |
+
* Fix: Bookly plugin service requests checking skipped.
|
803 |
+
* Fix: Youzier login form skipped.
|
804 |
+
* Fix: InJob theme lost password skipped.
|
805 |
+
* Upd: Showing plugin version on SFW block page.
|
806 |
+
* Fix: fix request id rotation.
|
807 |
+
* Mod: Show "Insert users" button only for local web servers.
|
808 |
+
* Upd: Checking skipped request replaced for non-ajax requests.
|
809 |
+
* Fix: BuddyPress edit profile checking skippped.
|
810 |
+
* Fix: Unused code removed.
|
811 |
+
* Upd: Helper::ip__get() method updated.
|
812 |
+
* Fix: UltimateMember password reset skipped.
|
813 |
+
* Del: Unused code removed.
|
814 |
+
* New: Server::get() now can accept 'URI' as an parameter. Returns full URI like 'http://domain.net/request/path?parameter=value#fragment
|
815 |
+
* Mod: apbct_exclusions_check__url__reversed() simplifed and PHPDoc'ed.
|
816 |
+
* Mod: apbct_base_call exclusions revised.
|
817 |
+
* Mod: $cleantalk_executed chaos simplified.
|
818 |
+
* Upd: Shedule sfw update once again if it failed.
|
819 |
+
* Fix: Delete cleantalk options via uninstalling.
|
820 |
+
* Fix: Deleting table for network sites fixed.
|
821 |
+
* Fix: Using host header for AC checking.
|
822 |
+
* Fix: Expression formatting fixed.
|
823 |
+
* Mod: Cron. Do not runs when it already runs.
|
824 |
+
* Mod: Cron class updated.
|
825 |
+
|
826 |
+
= 5.151.4 Jan 18 2021 =
|
827 |
+
* Fix: Users checking performance fix.
|
828 |
+
* Fix: AC disabled if SFW contains less than 50 entries.
|
829 |
+
|
830 |
+
= 5.151.3 Jan 15 2021 =
|
831 |
+
* Fix: Prevent logging false blocking for whitelisted networks.
|
832 |
+
* Integration: Rafflepress integration implemented.
|
833 |
+
* Fix: AF limit increased to 20 by default.
|
834 |
+
* Fix: skip Sumo waitlist internal request.
|
835 |
+
* Fix: skip raq internal request.
|
836 |
+
* Fix: check comments number if comment email exists.
|
837 |
+
* New: Schema class added.
|
838 |
+
* Fix: SFW - Creation sfw table if not exist.
|
839 |
+
* Fix: Updater - Creation sfw table if not exist.
|
840 |
+
* New: Schema class used.
|
841 |
+
* New: AC disabled if networks count is 0.
|
842 |
+
* Fix: SFW updating id getting fixed.
|
843 |
+
* Fix: SFW networks counter fixed.
|
844 |
+
* Fix: Deleting options fixed.
|
845 |
|
846 |
= 5.151.2 Dec 30 2020 =
|
847 |
* Fix: Prevent skip checking UltimateMember register.
|
cleantalk.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: Anti-Spam by CleanTalk
|
5 |
Plugin URI: https://cleantalk.org
|
6 |
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.
|
7 |
-
Version: 5.
|
8 |
Author: СleanTalk <welcome@cleantalk.org>
|
9 |
Author URI: https://cleantalk.org
|
10 |
Text Domain: cleantalk-spam-protect
|
@@ -154,6 +154,10 @@ function apbct_alt_session__save__WP_AJAX()
|
|
154 |
add_action('wp_ajax_nopriv_apbct_js_keys__get', 'apbct_js_keys__get__ajax');
|
155 |
add_action('wp_ajax_apbct_js_keys__get', 'apbct_js_keys__get__ajax');
|
156 |
|
|
|
|
|
|
|
|
|
157 |
// Checking email before POST
|
158 |
add_action('wp_ajax_nopriv_apbct_email_check_before_post', 'apbct_email_check_before_post');
|
159 |
|
@@ -315,6 +319,11 @@ $apbct_active_integrations = array(
|
|
315 |
'setting' => 'forms__general_contact_forms_test',
|
316 |
'ajax' => false
|
317 |
),
|
|
|
|
|
|
|
|
|
|
|
318 |
);
|
319 |
new \Cleantalk\Antispam\Integrations($apbct_active_integrations, (array)$apbct->settings);
|
320 |
|
@@ -1079,7 +1088,7 @@ function apbct_sfw_update__create_tables()
|
|
1079 |
{
|
1080 |
global $apbct;
|
1081 |
// Preparing database infrastructure
|
1082 |
-
// Creating SFW tables to make sure that they are
|
1083 |
$db_tables_creator = new DbTablesCreator();
|
1084 |
$table_name = $apbct->db_prefix . Schema::getSchemaTablePrefix() . 'sfw';
|
1085 |
$db_tables_creator->createTable($table_name);
|
4 |
Plugin Name: Anti-Spam by CleanTalk
|
5 |
Plugin URI: https://cleantalk.org
|
6 |
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.
|
7 |
+
Version: 5.170
|
8 |
Author: СleanTalk <welcome@cleantalk.org>
|
9 |
Author URI: https://cleantalk.org
|
10 |
Text Domain: cleantalk-spam-protect
|
154 |
add_action('wp_ajax_nopriv_apbct_js_keys__get', 'apbct_js_keys__get__ajax');
|
155 |
add_action('wp_ajax_apbct_js_keys__get', 'apbct_js_keys__get__ajax');
|
156 |
|
157 |
+
// Get Pixel URL via WP ajax handler
|
158 |
+
add_action('wp_ajax_nopriv_apbct_get_pixel_url', 'apbct_get_pixel_url__ajax');
|
159 |
+
add_action('wp_ajax_apbct_apbct_get_pixel_url', 'apbct_get_pixel_url__ajax');
|
160 |
+
|
161 |
// Checking email before POST
|
162 |
add_action('wp_ajax_nopriv_apbct_email_check_before_post', 'apbct_email_check_before_post');
|
163 |
|
319 |
'setting' => 'forms__general_contact_forms_test',
|
320 |
'ajax' => false
|
321 |
),
|
322 |
+
'OvaLogin' => array(
|
323 |
+
'hook' => 'login_form_register',
|
324 |
+
'setting' => 'forms__registrations_test',
|
325 |
+
'ajax' => false
|
326 |
+
),
|
327 |
);
|
328 |
new \Cleantalk\Antispam\Integrations($apbct_active_integrations, (array)$apbct->settings);
|
329 |
|
1088 |
{
|
1089 |
global $apbct;
|
1090 |
// Preparing database infrastructure
|
1091 |
+
// Creating SFW tables to make sure that they are exists
|
1092 |
$db_tables_creator = new DbTablesCreator();
|
1093 |
$table_name = $apbct->db_prefix . Schema::getSchemaTablePrefix() . 'sfw';
|
1094 |
$db_tables_creator->createTable($table_name);
|
inc/cleantalk-ajax-handlers.php
CHANGED
@@ -37,6 +37,14 @@ function apbct_js_keys__get()
|
|
37 |
apbct_js_keys__get__ajax();
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
function apbct_alt_session__save__AJAX()
|
41 |
{
|
42 |
Cleantalk\ApbctWP\Variables\AltSessions::setFromRemote();
|
37 |
apbct_js_keys__get__ajax();
|
38 |
}
|
39 |
|
40 |
+
function apbct_get_pixel_url()
|
41 |
+
{
|
42 |
+
require_once(__DIR__ . '/cleantalk-common.php');
|
43 |
+
require_once(__DIR__ . '/cleantalk-pluggable.php');
|
44 |
+
apbct_get_pixel_url__ajax();
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
function apbct_alt_session__save__AJAX()
|
49 |
{
|
50 |
Cleantalk\ApbctWP\Variables\AltSessions::setFromRemote();
|
inc/cleantalk-common.php
CHANGED
@@ -187,7 +187,7 @@ function apbct_base_call($params = array(), $reg_flag = false)
|
|
187 |
! empty($params['post_info']['comment_type']) &&
|
188 |
strpos($params['post_info']['comment_type'], 'contact_form_wordpress_') === false &&
|
189 |
! preg_match('/comment$/', $params['post_info']['comment_type']) &&
|
190 |
-
!
|
191 |
) {
|
192 |
$params['exception_action'] = 1;
|
193 |
}
|
@@ -620,6 +620,27 @@ function apbct_js_keys__get__ajax()
|
|
620 |
die(json_encode(array('js_key' => ct_get_checkjs_value())));
|
621 |
}
|
622 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
/**
|
624 |
* Checking email before POST
|
625 |
*/
|
187 |
! empty($params['post_info']['comment_type']) &&
|
188 |
strpos($params['post_info']['comment_type'], 'contact_form_wordpress_') === false &&
|
189 |
! preg_match('/comment$/', $params['post_info']['comment_type']) &&
|
190 |
+
! apbct_is_trackback()
|
191 |
) {
|
192 |
$params['exception_action'] = 1;
|
193 |
}
|
620 |
die(json_encode(array('js_key' => ct_get_checkjs_value())));
|
621 |
}
|
622 |
|
623 |
+
function apbct_get_pixel_url__ajax($direct_call = false)
|
624 |
+
{
|
625 |
+
global $apbct;
|
626 |
+
$pixel_hash = md5(
|
627 |
+
Helper::ipGet()
|
628 |
+
. $apbct->api_key
|
629 |
+
. Helper::timeGetIntervalStart(3600 * 3) // Unique for every 3 hours
|
630 |
+
);
|
631 |
+
|
632 |
+
$server = get_option('cleantalk_server');
|
633 |
+
$server_url = isset($server['ct_work_url']) ? $apbct->server['ct_work_url'] : APBCT_MODERATE_URL;
|
634 |
+
$pixel = '/pixel/' . $pixel_hash . '.gif';
|
635 |
+
$pixel_url = str_replace('http://', 'https://', $server_url) . $pixel;
|
636 |
+
|
637 |
+
if ( $direct_call ) {
|
638 |
+
return $pixel_url ;
|
639 |
+
}
|
640 |
+
|
641 |
+
die($pixel_url);
|
642 |
+
}
|
643 |
+
|
644 |
/**
|
645 |
* Checking email before POST
|
646 |
*/
|
inc/cleantalk-pluggable.php
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
<?php
|
2 |
|
|
|
3 |
use Cleantalk\ApbctWP\RemoteCalls;
|
4 |
use Cleantalk\Variables\Get;
|
5 |
use Cleantalk\Variables\Post;
|
@@ -467,6 +468,23 @@ function apbct_is_direct_trackback()
|
|
467 |
isset($_POST['title']) && ! empty($_POST['title']);
|
468 |
}
|
469 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
470 |
/**
|
471 |
* Checking if the request must be skipped.
|
472 |
*
|
@@ -753,3 +771,31 @@ function apbct_is_skip_request($ajax = false)
|
|
753 |
|
754 |
return false;
|
755 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
use Cleantalk\ApbctWP\Helper;
|
4 |
use Cleantalk\ApbctWP\RemoteCalls;
|
5 |
use Cleantalk\Variables\Get;
|
6 |
use Cleantalk\Variables\Post;
|
468 |
isset($_POST['title']) && ! empty($_POST['title']);
|
469 |
}
|
470 |
|
471 |
+
/**
|
472 |
+
* Determines whether the query is for a trackback endpoint call.
|
473 |
+
* @see is_trackback()
|
474 |
+
*
|
475 |
+
* @return bool
|
476 |
+
*/
|
477 |
+
function apbct_is_trackback()
|
478 |
+
{
|
479 |
+
global $wp_query;
|
480 |
+
|
481 |
+
if ( ! isset($wp_query) ) {
|
482 |
+
return false;
|
483 |
+
}
|
484 |
+
|
485 |
+
return $wp_query->is_trackback();
|
486 |
+
}
|
487 |
+
|
488 |
/**
|
489 |
* Checking if the request must be skipped.
|
490 |
*
|
771 |
|
772 |
return false;
|
773 |
}
|
774 |
+
|
775 |
+
/**
|
776 |
+
* Checking availability of the handlers and return ajax type
|
777 |
+
*
|
778 |
+
* @return string|false
|
779 |
+
*/
|
780 |
+
function apbct_settings__get_ajax_type()
|
781 |
+
{
|
782 |
+
// Check custom ajax availability - 1
|
783 |
+
$res_custom_ajax = Helper::httpRequestGetResponseCode(esc_url(APBCT_URL_PATH . '/lib/Cleantalk/ApbctWP/Ajax.php'));
|
784 |
+
if ( $res_custom_ajax == 400 ) {
|
785 |
+
return 'custom_ajax';
|
786 |
+
}
|
787 |
+
|
788 |
+
// Check rest availability - 0
|
789 |
+
$res_rest = Helper::httpRequestGetResponseCode(esc_url(apbct_get_rest_url()));
|
790 |
+
if ( $res_rest == 200 ) {
|
791 |
+
return 'rest';
|
792 |
+
}
|
793 |
+
|
794 |
+
// Check WP ajax availability - 2
|
795 |
+
$res_ajax = Helper::httpRequestGetResponseCode(admin_url('admin-ajax.php'));
|
796 |
+
if ( $res_ajax == 400 ) {
|
797 |
+
return 'admin_ajax';
|
798 |
+
}
|
799 |
+
|
800 |
+
return false;
|
801 |
+
}
|
inc/cleantalk-public-validate.php
CHANGED
@@ -79,7 +79,6 @@ function ct_contact_form_validate()
|
|
79 |
(isset($_POST['password']) && ! apbct_custom_forms_trappings()) || // Exception for login form. From Analysis uid=406596
|
80 |
(isset($_POST['action']) && $_POST['action'] == 'wilcity_reset_password') || // Exception for reset password form. From Analysis uid=430898
|
81 |
(isset($_POST['action']) && $_POST['action'] == 'wilcity_login') || // Exception for login form. From Analysis uid=430898
|
82 |
-
(isset($_POST['qcfsubmit'])) || //Exception for submit quick forms - duplicates with qcfvalidate
|
83 |
apbct_is_in_uri('tin-canny-learndash-reporting/src/h5p-xapi/process-xapi-statement.php?v=asd') || //Skip Tin Canny plugin
|
84 |
(isset($_POST['na'], $_POST['ts'], $_POST['nhr']) && ! apbct_is_in_uri('?na=s')) || // The Newsletter Plugin double requests fix. Ticket #14772
|
85 |
(isset($_POST['spl_action']) && $_POST['spl_action'] == 'register') || //Skip interal action with empty params
|
79 |
(isset($_POST['password']) && ! apbct_custom_forms_trappings()) || // Exception for login form. From Analysis uid=406596
|
80 |
(isset($_POST['action']) && $_POST['action'] == 'wilcity_reset_password') || // Exception for reset password form. From Analysis uid=430898
|
81 |
(isset($_POST['action']) && $_POST['action'] == 'wilcity_login') || // Exception for login form. From Analysis uid=430898
|
|
|
82 |
apbct_is_in_uri('tin-canny-learndash-reporting/src/h5p-xapi/process-xapi-statement.php?v=asd') || //Skip Tin Canny plugin
|
83 |
(isset($_POST['na'], $_POST['ts'], $_POST['nhr']) && ! apbct_is_in_uri('?na=s')) || // The Newsletter Plugin double requests fix. Ticket #14772
|
84 |
(isset($_POST['spl_action']) && $_POST['spl_action'] == 'register') || //Skip interal action with empty params
|
inc/cleantalk-public.php
CHANGED
@@ -16,16 +16,7 @@ function apbct_init()
|
|
16 |
|
17 |
// Pixel
|
18 |
if ( $apbct->settings['data__pixel'] ) {
|
19 |
-
$
|
20 |
-
Helper::ipGet()
|
21 |
-
. $apbct->api_key
|
22 |
-
. Helper::timeGetIntervalStart(3600 * 3) // Unique for every 3 hours
|
23 |
-
);
|
24 |
-
|
25 |
-
$server = get_option('cleantalk_server');
|
26 |
-
$server_url = isset($server['ct_work_url']) ? $apbct->server['ct_work_url'] : APBCT_MODERATE_URL;
|
27 |
-
$pixel = '/pixel/' . $pixel_hash . '.gif';
|
28 |
-
$apbct->pixel_url = str_replace('http://', 'https://', $server_url) . $pixel;
|
29 |
}
|
30 |
|
31 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
@@ -498,7 +489,7 @@ function apbct_hook__wp_footer()
|
|
498 |
// Pixel
|
499 |
if (
|
500 |
$apbct->settings['data__pixel'] === '1' ||
|
501 |
-
($apbct->settings['data__pixel'] === '3' && apbct_is_cache_plugins_exists())
|
502 |
) {
|
503 |
echo '<img alt="Cleantalk Pixel" id="apbct_pixel" style="display: none;" src="' . $apbct->pixel_url . '">';
|
504 |
}
|
@@ -522,7 +513,7 @@ function apbct_hook__wp_footer()
|
|
522 |
});
|
523 |
</script>";
|
524 |
} else {
|
525 |
-
$use_cleantalk_ajax = $apbct->data['ajax_type'] == 'custom_ajax' ?
|
526 |
$html =
|
527 |
"<script type=\"text/javascript\" " . (class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '')
|
528 |
. ">
|
@@ -531,7 +522,7 @@ function apbct_hook__wp_footer()
|
|
531 |
if( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) {
|
532 |
apbct_public_sendAJAX(
|
533 |
{ action: 'apbct_js_keys__get' },
|
534 |
-
{ callback: apbct_js_keys__set_input_value, apbct_ajax:
|
535 |
)
|
536 |
}
|
537 |
}," . $timeout . ")
|
16 |
|
17 |
// Pixel
|
18 |
if ( $apbct->settings['data__pixel'] ) {
|
19 |
+
$apbct->pixel_url = apbct_get_pixel_url__ajax(true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
22 |
//Check internal forms with such "action" http://wordpress.loc/contact-us/some_script.php
|
489 |
// Pixel
|
490 |
if (
|
491 |
$apbct->settings['data__pixel'] === '1' ||
|
492 |
+
($apbct->settings['data__pixel'] === '3' && ! apbct_is_cache_plugins_exists())
|
493 |
) {
|
494 |
echo '<img alt="Cleantalk Pixel" id="apbct_pixel" style="display: none;" src="' . $apbct->pixel_url . '">';
|
495 |
}
|
513 |
});
|
514 |
</script>";
|
515 |
} else {
|
516 |
+
$use_cleantalk_ajax = $apbct->data['ajax_type'] == 'custom_ajax' ? 1 : 0;
|
517 |
$html =
|
518 |
"<script type=\"text/javascript\" " . (class_exists('Cookiebot_WP') ? 'data-cookieconsent="ignore"' : '')
|
519 |
. ">
|
522 |
if( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) {
|
523 |
apbct_public_sendAJAX(
|
524 |
{ action: 'apbct_js_keys__get' },
|
525 |
+
{ callback: apbct_js_keys__set_input_value, apbct_ajax: " . $use_cleantalk_ajax . " }
|
526 |
)
|
527 |
}
|
528 |
}," . $timeout . ")
|
inc/cleantalk-settings.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
use Cleantalk\ApbctWP\Helper;
|
4 |
use Cleantalk\Variables\Post;
|
5 |
use Cleantalk\ApbctWP\Cron;
|
6 |
use Cleantalk\Variables\Server;
|
@@ -2604,34 +2603,6 @@ function apbct_settings__check_renew_banner()
|
|
2604 |
);
|
2605 |
}
|
2606 |
|
2607 |
-
/**
|
2608 |
-
* Checking availability of the handlers and return ajax type
|
2609 |
-
*
|
2610 |
-
* @return string|false
|
2611 |
-
*/
|
2612 |
-
function apbct_settings__get_ajax_type()
|
2613 |
-
{
|
2614 |
-
// Check custom ajax availability - 1
|
2615 |
-
$res_custom_ajax = Helper::httpRequestGetResponseCode(esc_url(APBCT_URL_PATH . '/lib/Cleantalk/ApbctWP/Ajax.php'));
|
2616 |
-
if ( $res_custom_ajax == 400 ) {
|
2617 |
-
return 'custom_ajax';
|
2618 |
-
}
|
2619 |
-
|
2620 |
-
// Check rest availability - 0
|
2621 |
-
$res_rest = Helper::httpRequestGetResponseCode(esc_url(apbct_get_rest_url()));
|
2622 |
-
if ( $res_rest == 200 ) {
|
2623 |
-
return 'rest';
|
2624 |
-
}
|
2625 |
-
|
2626 |
-
// Check WP ajax availability - 2
|
2627 |
-
$res_ajax = Helper::httpRequestGetResponseCode(admin_url('admin-ajax.php'));
|
2628 |
-
if ( $res_ajax == 400 ) {
|
2629 |
-
return 'admin_ajax';
|
2630 |
-
}
|
2631 |
-
|
2632 |
-
return false;
|
2633 |
-
}
|
2634 |
-
|
2635 |
function apbct_settings__check_alt_cookies_types()
|
2636 |
{
|
2637 |
global $apbct;
|
1 |
<?php
|
2 |
|
|
|
3 |
use Cleantalk\Variables\Post;
|
4 |
use Cleantalk\ApbctWP\Cron;
|
5 |
use Cleantalk\Variables\Server;
|
2603 |
);
|
2604 |
}
|
2605 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2606 |
function apbct_settings__check_alt_cookies_types()
|
2607 |
{
|
2608 |
global $apbct;
|
js/apbct-public.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
function apbct_collect_visible_fields(e){var t=[],n="",
|
2 |
//# sourceMappingURL=apbct-public.min.js.map
|
1 |
+
function apbct_collect_visible_fields(e){var t=[],n="",c=0,o="",a=0,i=[];for(var l in e.elements)isNaN(+l)||(t[l]=e.elements[l]);return(t=t.filter(function(e){return-1===i.indexOf(e.getAttribute("name"))&&(-1===["radio","checkbox"].indexOf(e.getAttribute("type"))||(i.push(e.getAttribute("name")),!1))})).forEach(function(e,t,i){"submit"!==e.getAttribute("type")&&null!==e.getAttribute("name")&&"ct_checkjs"!==e.getAttribute("name")&&("none"!==getComputedStyle(e).display&&"hidden"!==getComputedStyle(e).visibility&&"0"!==getComputedStyle(e).opacity&&"hidden"!==e.getAttribute("type")||e.classList.contains("wp-editor-area")?(n+=" "+e.getAttribute("name"),c++):(o+=" "+e.getAttribute("name"),a++))}),o=o.trim(),{visible_fields:n=n.trim(),visible_fields_count:c,invisible_fields:o,invisible_fields_count:a}}function apbct_visible_fields_set_cookie(e,t){var i="object"==typeof e&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var n in i){if(10<n)return;ctSetCookie("apbct_visible_fields_"+(void 0!==t?t:n),JSON.stringify(i[n]))}else ctSetCookie("apbct_visible_fields",JSON.stringify(i))}function apbct_visible_fields_already_collected(e,t){if(0<e.length&&0<t.elements.length){var i=t.method,n=(t.action,t.elements.length),c=[];for(var o in t.elements)isNaN(+o)||(c[o]=t.elements[o]);for(var a=0;a<e.length;a++){if(e[a].method!==i)return!1;if(e[a].action,e[a].fields_count!==n)return!1;var l=e[a].fields_names;for(var s in l){if(0<c.filter(function(e,t,i){var n=e.name,c=e.type;if(l[s].fieldName===n&&l[s].fieldType===c)return!0}).length)return!0}}return!1}return!1}function apbct_get_form_details(e){if(0<e.elements.length){var t={},n=e.elements;for(i=0;i<n.length;i++){var c=n[i].name,o=n[i].type;t[i]={fieldName:c,fieldType:o}}return{method:e.method,action:e.action,fields_count:e.elements.length,fields_names:t}}return!1}function apbct_js_keys__set_input_value(e,t,i,n){if(0<document.querySelectorAll("[name^=ct_checkjs]").length)for(var c=document.querySelectorAll("[name^=ct_checkjs]"),o=0;o<c.length;o++)c[o].value=e.js_key}function apbctGetScreenInfo(){return JSON.stringify({fullWidth:document.documentElement.scrollWidth,fullHeight:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight),visibleWidth:document.documentElement.clientWidth,visibleHeight:document.documentElement.clientHeight})}!function(){var o=new Date,t=(new Date).getTime(),i=!0,n=[],c=0,a={},e=!1,l=!1;function s(e,t,i){"function"==typeof window.addEventListener?e.addEventListener(t,i):e.attachEvent(t,i)}function r(e,t,i){"function"==typeof window.removeEventListener?e.removeEventListener(t,i):e.detachEvent(t,i)}var _=function(){var e=Math.floor((new Date).getTime()/1e3);ctSetCookie("ct_fkp_timestamp",e),r(window,"mousedown",_),r(window,"keydown",_)},u=setInterval(function(){i=!0},150),d=setInterval(function(){ctSetCookie("ct_pointer_data",JSON.stringify(n))},1200),m=function(e){l||(ctSetCookie("ct_mouse_moved","true"),l=!0),!0===i&&(n.push([Math.round(e.clientY),Math.round(e.clientX),Math.round((new Date).getTime()-t)]),i=!1,50<=++c&&(r(window,"mousemove",m),clearInterval(u),clearInterval(d)))};function f(e){var t=e.target.value;!t||t in a||("rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("check_email_before_post",{method:"POST",data:{email:t},callback:function(e){e.result&&(a[t]={result:e.result,timestamp:Date.now()/1e3|0},ctSetCookie("ct_checked_emails",JSON.stringify(a)))}}):"custom_ajax"===ctPublicFunctions.data__ajax_type?apbct_public_sendAJAX({action:"apbct_email_check_before_post",email:t},{apbct_ajax:1,callback:function(e){e.result&&(a[t]={result:e.result,timestamp:Date.now()/1e3|0},ctSetCookie("ct_checked_emails",JSON.stringify(a)))}}):"admin_ajax"===ctPublicFunctions.data__ajax_type&&apbct_public_sendAJAX({action:"apbct_email_check_before_post",email:t},{callback:function(e){e.result&&(a[t]={result:e.result,timestamp:Date.now()/1e3|0},ctSetCookie("ct_checked_emails",JSON.stringify(a)))}}))}function p(e){ctSetCookie("apbct_pixel_url",e),+ctPublic.pixel__enabled&&(document.getElementById("apbct_pixel")||jQuery("body").append('<img alt="Cleantalk Pixel" id="apbct_pixel" style="display: none; left: 99999px;" src="'+e+'">'))}s(window,"mousemove",m),s(window,"mousedown",_),s(window,"keydown",_),s(window,"scroll",function(){e||(ctSetCookie("ct_has_scrolled","true"),e=!0)}),s(window,"DOMContentLoaded",function(){var e,t=[["ct_ps_timestamp",Math.floor((new Date).getTime()/1e3)],["ct_fkp_timestamp","0"],["ct_pointer_data","0"],["ct_timezone",o.getTimezoneOffset()/60*-1],["ct_screen_info",apbctGetScreenInfo()],["ct_has_scrolled","false"],["ct_mouse_moved","false"]];if("native"!==ctPublic.data__cookies_type)t.push(["apbct_visible_fields","0"]);else{var i=document.cookie.split(";");if(0!==i.length)for(var n=0;n<i.length;n++){var c=i[n].trim().split("=")[0];0===c.indexOf("apbct_visible_fields_")&&ctDeleteCookie(c)}}+ctPublic.pixel__setting&&(+ctPublic.pixel__enabled?"rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("apbct_get_pixel_url",{method:"POST",callback:function(e){e&&p(e)}}):(e="custom_ajax"===ctPublicFunctions.data__ajax_type?1:0,apbct_public_sendAJAX({action:"apbct_get_pixel_url"},{apbct_ajax:e,notJson:!0,callback:function(e){e&&p(e)}})):t.push(["apbct_pixel_url",ctPublic.pixel__url])),+ctPublic.data__email_check_before_post&&(t.push(["ct_checked_emails","0"]),jQuery("input[type = 'email'], #email").blur(f)),ctSetCookie(t),setTimeout(function(){for(var e={},t=[],i=0;i<document.forms.length;i++){var n=document.forms[i];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.classList&&n.classList.contains("tinkoffPayRow")||n.classList&&n.classList.contains("give-form")||n.id&&"ult-forgot-password-form"===n.id||n.id&&-1!==n.id.toString().indexOf("calculatedfields")||(apbct_visible_fields_already_collected(t,n)||(e[i]=apbct_collect_visible_fields(n),t.push(apbct_get_form_details(n))),n.onsubmit_prev=n.onsubmit,n.ctFormIndex=i,n.onsubmit=function(e){var t;"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&((t={})[0]=apbct_collect_visible_fields(this),apbct_visible_fields_set_cookie(t,e.target.ctFormIndex)),e.target.onsubmit_prev instanceof Function&&setTimeout(function(){e.target.onsubmit_prev.call(e.target,e)},500)})}apbct_visible_fields_set_cookie(e)},1e3)})}(),"undefined"!=typeof jQuery&&jQuery(document).ajaxComplete(function(e,t,i){var n;!t.responseText||-1===t.responseText.indexOf('"apbct')||void 0!==(n=JSON.parse(t.responseText)).apbct&&(n=n.apbct).blocked&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n.comment}})),cleantalkModal.loaded=n.comment,cleantalkModal.open(),1==+n.stop_script&&window.stop())});
|
2 |
//# sourceMappingURL=apbct-public.min.js.map
|
js/apbct-public.min.js.map
CHANGED
@@ -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\t\tctCheckedEmails = {},\n\t\tctScrollCollected = false,\n\t\tctMouseMovedCollected = false;\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\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\tctSetMouseMoved();\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\tfunction checkEmail(e) {\n\t\tvar current_email = e.target.value;\n\t\tif (current_email && !(current_email in ctCheckedEmails)) {\n\t\t\t// Using REST API handler\n\t\t\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\t\t\tapbct_public_sendREST(\n\t\t\t\t\t'check_email_before_post',\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tdata: {'email' : current_email},\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Using AJAX request and handler\n\t\t\t}else if( ctPublicFunctions.data__ajax_type === 'custom_ajax' ) {\n\t\t\t\tapbct_public_sendAJAX(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'apbct_email_check_before_post',\n\t\t\t\t\t\temail : current_email,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tapbct_ajax: 1,\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else if( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) {\n\t\t\t\tapbct_public_sendAJAX(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'apbct_email_check_before_post',\n\t\t\t\t\t\temail : current_email,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\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\tfunction ctSetHasScrolled() {\n\t\tif( ! ctScrollCollected ) {\n\t\t\tctSetCookie(\"ct_has_scrolled\", 'true');\n\t\t\tctScrollCollected = true;\n\t\t}\n\t}\n\n\tfunction ctSetMouseMoved() {\n\t\tif( ! ctMouseMovedCollected ) {\n\t\t\tctSetCookie(\"ct_mouse_moved\", 'true');\n\t\t\tctMouseMovedCollected = true;\n\t\t}\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\tapbct_attach_event_handler(window, \"scroll\", ctSetHasScrolled);\n\n\t// Ready function\n\tfunction apbct_ready(){\n\n\t\t// Collect scrolling info\n\t\tvar initCookies = [\n\t\t\t[\"ct_ps_timestamp\", Math.floor(new Date().getTime() / 1000)],\n\t\t\t[\"ct_fkp_timestamp\", \"0\"],\n\t\t\t[\"ct_pointer_data\", \"0\"],\n\t\t\t[\"ct_timezone\", ct_date.getTimezoneOffset()/60*(-1) ],\n\t\t\t[\"ct_screen_info\", apbctGetScreenInfo()],\n\t\t\t[\"ct_has_scrolled\", 'false'],\n\t\t\t[\"ct_mouse_moved\", 'false'],\n\t\t];\n\n\t\tif( ctPublic.data__cookies_type !== 'native' ) {\n\t\t\tinitCookies.push(['apbct_visible_fields', '0']);\n\t\t} else {\n\t\t\t// Delete all visible fields cookies on load the page\n\t\t\tvar cookiesArray = document.cookie.split(\";\");\n\t\t\tif( cookiesArray.length !== 0 ) {\n\t\t\t\tfor ( var i = 0; i < cookiesArray.length; i++ ) {\n\t\t\t\t\tvar currentCookie = cookiesArray[i].trim();\n\t\t\t\t\tvar cookieName = currentCookie.split(\"=\")[0];\n\t\t\t\t\tif( cookieName.indexOf(\"apbct_visible_fields_\") === 0 ) {\n\t\t\t\t\t\tctDeleteCookie(cookieName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( +ctPublic.pixel__setting ){\n\t\t\tinitCookies.push(['apbct_pixel_url', ctPublic.pixel__url]);\n\t\t\tif( +ctPublic.pixel__enabled ){\n\t\t\t\tif( ! document.getElementById('apbct_pixel') ) {\n\t\t\t\t\tjQuery('body').append( '<img alt=\"Cleantalk Pixel\" id=\"apbct_pixel\" style=\"display: none; left: 99999px;\" src=\"' + ctPublic.pixel__url + '\">' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( +ctPublic.data__email_check_before_post) {\n\t\t\tinitCookies.push(['ct_checked_emails', '0']);\n\t\t\tjQuery(\"input[type = 'email'], #email\").blur(checkEmail);\n\t\t}\n\n\t\tctSetCookie(initCookies);\n\n\t\tsetTimeout(function(){\n\n\t\t\tvar visible_fields_collection = {};\n\t\t\tvar processedForms = [];\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\t(form.name.classList && form.name.classList.contains('tinkoffPayRow')) || // TinkoffPayForm\n\t\t\t\t\t(form.name.classList && form.name.classList.contains('give-form')) || // GiveWP\n\t\t\t\t\t(form.id && form.id === 'ult-forgot-password-form') || //ult forgot password\n\t\t\t\t\t(form.id && form.id.toString().indexOf('calculatedfields') !== -1) // CalculatedFieldsForm\n\t\t\t\t)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tif( ! apbct_visible_fields_already_collected( processedForms, form ) ) {\n\t\t\t\t\tvisible_fields_collection[i] = apbct_collect_visible_fields( form );\n\t\t\t\t\tprocessedForms.push( apbct_get_form_details( form ) );\n\t\t\t\t}\n\n\t\t\t\tform.onsubmit_prev = form.onsubmit;\n\n\t\t\t\tform.ctFormIndex = i;\n\t\t\t\tform.onsubmit = function (event) {\n\n\t\t\t\t\tif ( ctPublic.data__cookies_type !== 'native' && typeof event.target.ctFormIndex !== 'undefined' ) {\n\n\t\t\t\t\t\tvar visible_fields = {};\n\t\t\t\t\t\tvisible_fields[0] = apbct_collect_visible_fields(this);\n\t\t\t\t\t\tapbct_visible_fields_set_cookie( visible_fields, event.target.ctFormIndex );\n\t\t\t\t\t}\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 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_invisible = '',\n\t\tinputs_invisible_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 already added fields\n\t\tif( inputs_with_duplicate_names.indexOf( elem.getAttribute('name') ) !== -1 ){\n\t\t\treturn false;\n\t\t}\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\t\treturn true;\n\t});\n\n\t// Visible fields\n\tinputs.forEach(function(elem, i, elements){\n\t\t// Unnecessary fields\n\t\tif(\n\t\t\telem.getAttribute(\"type\") === \"submit\" || // type == submit\n\t\t\telem.getAttribute('name') === null ||\n\t\t\telem.getAttribute('name') === 'ct_checkjs'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\t// Invisible fields\n\t\tif(\n\t\t\tgetComputedStyle(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) {\n\t\t\tif( elem.classList.contains(\"wp-editor-area\") ) {\n\t\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_visible_count++;\n\t\t\t} else {\n\t\t\t\tinputs_invisible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_invisible_count++;\n\t\t\t}\n\t\t}\n\t\t// Visible fields\n\t\telse {\n\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\tinputs_visible_count++;\n\t\t}\n\n\t});\n\n\tinputs_invisible = inputs_invisible.trim();\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\tinvisible_fields : inputs_invisible,\n\t\tinvisible_fields_count : inputs_invisible_count,\n\t}\n\n}\n\nfunction apbct_visible_fields_set_cookie( visible_fields_collection, form_id ) {\n\n\tvar collection = typeof visible_fields_collection === 'object' && visible_fields_collection !== null ? visible_fields_collection : {};\n\n\tif( ctPublic.data__cookies_type === 'native' ) {\n\t\tfor ( var i in collection ) {\n\t\t\tif ( i > 10 ) {\n\t\t\t\t// Do not generate more than 10 cookies\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar collectionIndex = form_id !== undefined ? form_id : i;\n\t\t\tctSetCookie(\"apbct_visible_fields_\" + collectionIndex, JSON.stringify( collection[i] ) );\n\t\t}\n\t} else {\n\t\tctSetCookie(\"apbct_visible_fields\", JSON.stringify( collection ) );\n\t}\n}\n\nfunction apbct_visible_fields_already_collected( formsProcessed, form ) {\n\n\tif ( formsProcessed.length > 0 && form.elements.length > 0 ) {\n\n\t\tvar formMethod = form.method;\n\t\tvar formAction = form.action;\n\t\tvar formFieldsCount = form.elements.length;\n\t\tvar formInputs = [];\n\n\t\t// Getting only input elements from HTMLFormControlsCollection and putting these into the simple array.\n\t\tfor( var key in form.elements ){\n\t\t\tif( ! isNaN( +key ) ) {\n\t\t\t\tformInputs[key] = form.elements[key];\n\t\t\t}\n\t\t}\n\n\t\tfor ( var i = 0; i < formsProcessed.length; i++ ) {\n\t\t\t// The form with the same METHOD has not processed.\n\t\t\tif ( formsProcessed[i].method !== formMethod ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// The form with the same ACTION has not processed.\n\t\t\tif ( formsProcessed[i].action !== formAction ) {\n\t\t\t\t// @ToDo actions often are different in the similar forms\n\t\t\t\t//return false;\n\t\t\t}\n\t\t\t// The form with the same FIELDS COUNT has not processed.\n\t\t\tif ( formsProcessed[i].fields_count !== formFieldsCount ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Compare every form fields by their TYPE and NAME\n\t\t\tvar fieldsNames = formsProcessed[i].fields_names;\n\t\t\tfor ( var field in fieldsNames ) {\n\t\t\t\tvar res = formInputs.filter(function(item, index, array){\n\t\t\t\t\tvar fieldName = item.name;\n\t\t\t\t\tvar fieldType = item.type;\n\t\t\t\t\tif( fieldsNames[field].fieldName === fieldName && fieldsNames[field].fieldType === fieldType ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( res.length > 0 ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\treturn false;\n}\n\nfunction apbct_get_form_details( form ) {\n\n\tif( form.elements.length > 0 ) {\n\n\t\tvar fieldsNames = {};\n\n\t\t// Collecting fields and their names\n\t\tvar inputs = form.elements;\n\t\tfor (i = 0; i < inputs.length; i++) {\n\t\t\tvar fieldName = inputs[i].name;\n\t\t\tvar fieldType = inputs[i].type;\n\t\t\tfieldsNames[i] = {\n\t\t\t\tfieldName : fieldName,\n\t\t\t\tfieldType : fieldType,\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t'method' : form.method,\n\t\t\t'action' : form.action,\n\t\t\t'fields_count' : form.elements.length,\n\t\t\t'fields_names' : fieldsNames,\n\t\t};\n\t}\n\n\treturn false;\n}\n\nfunction apbct_js_keys__set_input_value(result, data, params, obj){\n\tif( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) {\n\t\tvar elements = document.querySelectorAll('[name^=ct_checkjs]');\n\t\tfor ( var i = 0; i < elements.length; i++ ) {\n\t\t\telements[i].value = result.js_key;\n\t\t}\n\t}\n}\n\nfunction apbctGetScreenInfo() {\n\treturn JSON.stringify({\n\t\tfullWidth : document.documentElement.scrollWidth,\n\t\tfullHeight : Math.max(\n\t\t\tdocument.body.scrollHeight, document.documentElement.scrollHeight,\n\t\t\tdocument.body.offsetHeight, document.documentElement.offsetHeight,\n\t\t\tdocument.body.clientHeight, document.documentElement.clientHeight\n\t\t),\n\t\tvisibleWidth : document.documentElement.clientWidth,\n\t\tvisibleHeight : document.documentElement.clientHeight,\n\t});\n}\n\nif(typeof jQuery !== 'undefined') {\n\n\t// Capturing responses and output block message for unknown AJAX forms\n\tjQuery(document).ajaxComplete(function (event, xhr, settings) {\n\t\tif (xhr.responseText && xhr.responseText.indexOf('\"apbct') !== -1) {\n\t\t\tvar response = JSON.parse(xhr.responseText);\n\t\t\tif (typeof response.apbct !== 'undefined') {\n\t\t\t\tresponse = response.apbct;\n\t\t\t\tif (response.blocked) {\n\t\t\t\t\tdocument.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent( \"apbctAjaxBockAlert\", {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tdetail: { message: response.comment }\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\t// Show the result by modal\n\t\t\t\t\tcleantalkModal.loaded = response.comment;\n\t\t\t\t\tcleantalkModal.open();\n\n\t\t\t\t\tif(+response.stop_script == 1)\n\t\t\t\t\t\twindow.stop();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"],"names":["apbct_collect_visible_fields","form","inputs","inputs_visible","inputs_visible_count","inputs_invisible","inputs_invisible_count","inputs_with_duplicate_names","key","elements","isNaN","filter","elem","indexOf","getAttribute","push","forEach","i","getComputedStyle","display","visibility","opacity","classList","contains","trim","visible_fields","visible_fields_count","invisible_fields","invisible_fields_count","apbct_visible_fields_set_cookie","visible_fields_collection","form_id","collection","ctPublic","data__cookies_type","ctSetCookie","undefined","JSON","stringify","apbct_visible_fields_already_collected","formsProcessed","length","formMethod","method","formFieldsCount","action","formInputs","fields_count","fieldsNames","fields_names","field","item","index","array","fieldName","name","fieldType","type","apbct_get_form_details","apbct_js_keys__set_input_value","result","data","params","obj","document","querySelectorAll","value","js_key","apbctGetScreenInfo","fullWidth","documentElement","scrollWidth","fullHeight","Math","max","body","scrollHeight","offsetHeight","clientHeight","visibleWidth","clientWidth","visibleHeight","ct_date","Date","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","ctCheckedEmails","ctScrollCollected","ctMouseMovedCollected","apbct_attach_event_handler","event","callback","window","addEventListener","attachEvent","apbct_remove_event_handler","removeEventListener","detachEvent","ctFunctionFirstKey","KeyTimestamp","floor","ctMouseReadInterval","setInterval","ctMouseWriteDataInterval","ctFunctionMouseMove","round","clientY","clientX","clearInterval","checkEmail","e","current_email","target","ctPublicFunctions","data__ajax_type","apbct_public_sendREST","email","timestamp","now","apbct_public_sendAJAX","apbct_ajax","initCookies","getTimezoneOffset","cookiesArray","cookie","split","cookieName","ctDeleteCookie","pixel__setting","pixel__url","pixel__enabled","getElementById","jQuery","append","data__email_check_before_post","blur","setTimeout","processedForms","forms","parentElement","toString","id","onsubmit_prev","onsubmit","ctFormIndex","this","Function","call","ajaxComplete","xhr","settings","response","responseText","parse","apbct","blocked","dispatchEvent","CustomEvent","bubbles","detail","message","comment","cleantalkModal","loaded","open","stop_script","stop"],"mappings":"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"}
|
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\t\tctCheckedEmails = {},\n\t\tctScrollCollected = false,\n\t\tctMouseMovedCollected = false;\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\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\tctSetMouseMoved();\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\tfunction checkEmail(e) {\n\t\tvar current_email = e.target.value;\n\t\tif (current_email && !(current_email in ctCheckedEmails)) {\n\t\t\t// Using REST API handler\n\t\t\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\t\t\tapbct_public_sendREST(\n\t\t\t\t\t'check_email_before_post',\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tdata: {'email' : current_email},\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Using AJAX request and handler\n\t\t\t}else if( ctPublicFunctions.data__ajax_type === 'custom_ajax' ) {\n\t\t\t\tapbct_public_sendAJAX(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'apbct_email_check_before_post',\n\t\t\t\t\t\temail : current_email,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tapbct_ajax: 1,\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else if( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) {\n\t\t\t\tapbct_public_sendAJAX(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'apbct_email_check_before_post',\n\t\t\t\t\t\temail : current_email,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\t\tif (result.result) {\n\t\t\t\t\t\t\t\tctCheckedEmails[current_email] = {'result' : result.result, 'timestamp': Date.now() / 1000 |0};\n\t\t\t\t\t\t\t\tctSetCookie('ct_checked_emails', JSON.stringify(ctCheckedEmails));\n\t\t\t\t\t\t\t}\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\tfunction ctSetPixelImg(pixelUrl) {\n\t\tctSetCookie('apbct_pixel_url', pixelUrl);\n\t\tif( +ctPublic.pixel__enabled ){\n\t\t\tif( ! document.getElementById('apbct_pixel') ) {\n\t\t\t\tjQuery('body').append( '<img alt=\"Cleantalk Pixel\" id=\"apbct_pixel\" style=\"display: none; left: 99999px;\" src=\"' + pixelUrl + '\">' );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction ctGetPixelUrl() {\n\t\t// Using REST API handler\n\t\tif( ctPublicFunctions.data__ajax_type === 'rest' ){\n\t\t\tapbct_public_sendREST(\n\t\t\t\t'apbct_get_pixel_url',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tctSetPixelImg(result);\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// Using AJAX request and handler\n\t\t}else{\n\t\t\tvar ajaxType = ctPublicFunctions.data__ajax_type === 'custom_ajax' ? 1 : 0;\n\t\t\tapbct_public_sendAJAX(\n\t\t\t\t{\n\t\t\t\t\taction: 'apbct_get_pixel_url',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tapbct_ajax: ajaxType,\n\t\t\t\t\tnotJson: true,\n\t\t\t\t\tcallback: function (result) {\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tctSetPixelImg(result);\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\tfunction ctSetHasScrolled() {\n\t\tif( ! ctScrollCollected ) {\n\t\t\tctSetCookie(\"ct_has_scrolled\", 'true');\n\t\t\tctScrollCollected = true;\n\t\t}\n\t}\n\n\tfunction ctSetMouseMoved() {\n\t\tif( ! ctMouseMovedCollected ) {\n\t\t\tctSetCookie(\"ct_mouse_moved\", 'true');\n\t\t\tctMouseMovedCollected = true;\n\t\t}\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\tapbct_attach_event_handler(window, \"scroll\", ctSetHasScrolled);\n\n\t// Ready function\n\tfunction apbct_ready(){\n\n\t\t// Collect scrolling info\n\t\tvar initCookies = [\n\t\t\t[\"ct_ps_timestamp\", Math.floor(new Date().getTime() / 1000)],\n\t\t\t[\"ct_fkp_timestamp\", \"0\"],\n\t\t\t[\"ct_pointer_data\", \"0\"],\n\t\t\t[\"ct_timezone\", ct_date.getTimezoneOffset()/60*(-1) ],\n\t\t\t[\"ct_screen_info\", apbctGetScreenInfo()],\n\t\t\t[\"ct_has_scrolled\", 'false'],\n\t\t\t[\"ct_mouse_moved\", 'false'],\n\t\t];\n\n\t\tif( ctPublic.data__cookies_type !== 'native' ) {\n\t\t\tinitCookies.push(['apbct_visible_fields', '0']);\n\t\t} else {\n\t\t\t// Delete all visible fields cookies on load the page\n\t\t\tvar cookiesArray = document.cookie.split(\";\");\n\t\t\tif( cookiesArray.length !== 0 ) {\n\t\t\t\tfor ( var i = 0; i < cookiesArray.length; i++ ) {\n\t\t\t\t\tvar currentCookie = cookiesArray[i].trim();\n\t\t\t\t\tvar cookieName = currentCookie.split(\"=\")[0];\n\t\t\t\t\tif( cookieName.indexOf(\"apbct_visible_fields_\") === 0 ) {\n\t\t\t\t\t\tctDeleteCookie(cookieName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( +ctPublic.pixel__setting ){\n\t\t\tif( +ctPublic.pixel__enabled ){\n\t\t\t\tctGetPixelUrl();\n\t\t\t} else {\n\t\t\t\tinitCookies.push(['apbct_pixel_url', ctPublic.pixel__url]);\n\t\t\t}\n\t\t}\n\n\t\tif ( +ctPublic.data__email_check_before_post) {\n\t\t\tinitCookies.push(['ct_checked_emails', '0']);\n\t\t\tjQuery(\"input[type = 'email'], #email\").blur(checkEmail);\n\t\t}\n\n\t\tctSetCookie(initCookies);\n\n\t\tsetTimeout(function(){\n\n\t\t\tvar visible_fields_collection = {};\n\t\t\tvar processedForms = [];\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\t(form.classList && form.classList.contains('tinkoffPayRow')) || // TinkoffPayForm\n\t\t\t\t\t(form.classList && form.classList.contains('give-form')) || // GiveWP\n\t\t\t\t\t(form.id && form.id === 'ult-forgot-password-form') || //ult forgot password\n\t\t\t\t\t(form.id && form.id.toString().indexOf('calculatedfields') !== -1) // CalculatedFieldsForm\n\t\t\t\t)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tif( ! apbct_visible_fields_already_collected( processedForms, form ) ) {\n\t\t\t\t\tvisible_fields_collection[i] = apbct_collect_visible_fields( form );\n\t\t\t\t\tprocessedForms.push( apbct_get_form_details( form ) );\n\t\t\t\t}\n\n\t\t\t\tform.onsubmit_prev = form.onsubmit;\n\n\t\t\t\tform.ctFormIndex = i;\n\t\t\t\tform.onsubmit = function (event) {\n\n\t\t\t\t\tif ( ctPublic.data__cookies_type !== 'native' && typeof event.target.ctFormIndex !== 'undefined' ) {\n\n\t\t\t\t\t\tvar visible_fields = {};\n\t\t\t\t\t\tvisible_fields[0] = apbct_collect_visible_fields(this);\n\t\t\t\t\t\tapbct_visible_fields_set_cookie( visible_fields, event.target.ctFormIndex );\n\t\t\t\t\t}\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 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_invisible = '',\n\t\tinputs_invisible_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 already added fields\n\t\tif( inputs_with_duplicate_names.indexOf( elem.getAttribute('name') ) !== -1 ){\n\t\t\treturn false;\n\t\t}\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\t\treturn true;\n\t});\n\n\t// Visible fields\n\tinputs.forEach(function(elem, i, elements){\n\t\t// Unnecessary fields\n\t\tif(\n\t\t\telem.getAttribute(\"type\") === \"submit\" || // type == submit\n\t\t\telem.getAttribute('name') === null ||\n\t\t\telem.getAttribute('name') === 'ct_checkjs'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\t// Invisible fields\n\t\tif(\n\t\t\tgetComputedStyle(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) {\n\t\t\tif( elem.classList.contains(\"wp-editor-area\") ) {\n\t\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_visible_count++;\n\t\t\t} else {\n\t\t\t\tinputs_invisible += \" \" + elem.getAttribute(\"name\");\n\t\t\t\tinputs_invisible_count++;\n\t\t\t}\n\t\t}\n\t\t// Visible fields\n\t\telse {\n\t\t\tinputs_visible += \" \" + elem.getAttribute(\"name\");\n\t\t\tinputs_visible_count++;\n\t\t}\n\n\t});\n\n\tinputs_invisible = inputs_invisible.trim();\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\tinvisible_fields : inputs_invisible,\n\t\tinvisible_fields_count : inputs_invisible_count,\n\t}\n\n}\n\nfunction apbct_visible_fields_set_cookie( visible_fields_collection, form_id ) {\n\n\tvar collection = typeof visible_fields_collection === 'object' && visible_fields_collection !== null ? visible_fields_collection : {};\n\n\tif( ctPublic.data__cookies_type === 'native' ) {\n\t\tfor ( var i in collection ) {\n\t\t\tif ( i > 10 ) {\n\t\t\t\t// Do not generate more than 10 cookies\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar collectionIndex = form_id !== undefined ? form_id : i;\n\t\t\tctSetCookie(\"apbct_visible_fields_\" + collectionIndex, JSON.stringify( collection[i] ) );\n\t\t}\n\t} else {\n\t\tctSetCookie(\"apbct_visible_fields\", JSON.stringify( collection ) );\n\t}\n}\n\nfunction apbct_visible_fields_already_collected( formsProcessed, form ) {\n\n\tif ( formsProcessed.length > 0 && form.elements.length > 0 ) {\n\n\t\tvar formMethod = form.method;\n\t\tvar formAction = form.action;\n\t\tvar formFieldsCount = form.elements.length;\n\t\tvar formInputs = [];\n\n\t\t// Getting only input elements from HTMLFormControlsCollection and putting these into the simple array.\n\t\tfor( var key in form.elements ){\n\t\t\tif( ! isNaN( +key ) ) {\n\t\t\t\tformInputs[key] = form.elements[key];\n\t\t\t}\n\t\t}\n\n\t\tfor ( var i = 0; i < formsProcessed.length; i++ ) {\n\t\t\t// The form with the same METHOD has not processed.\n\t\t\tif ( formsProcessed[i].method !== formMethod ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// The form with the same ACTION has not processed.\n\t\t\tif ( formsProcessed[i].action !== formAction ) {\n\t\t\t\t// @ToDo actions often are different in the similar forms\n\t\t\t\t//return false;\n\t\t\t}\n\t\t\t// The form with the same FIELDS COUNT has not processed.\n\t\t\tif ( formsProcessed[i].fields_count !== formFieldsCount ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Compare every form fields by their TYPE and NAME\n\t\t\tvar fieldsNames = formsProcessed[i].fields_names;\n\t\t\tfor ( var field in fieldsNames ) {\n\t\t\t\tvar res = formInputs.filter(function(item, index, array){\n\t\t\t\t\tvar fieldName = item.name;\n\t\t\t\t\tvar fieldType = item.type;\n\t\t\t\t\tif( fieldsNames[field].fieldName === fieldName && fieldsNames[field].fieldType === fieldType ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( res.length > 0 ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\treturn false;\n}\n\nfunction apbct_get_form_details( form ) {\n\n\tif( form.elements.length > 0 ) {\n\n\t\tvar fieldsNames = {};\n\n\t\t// Collecting fields and their names\n\t\tvar inputs = form.elements;\n\t\tfor (i = 0; i < inputs.length; i++) {\n\t\t\tvar fieldName = inputs[i].name;\n\t\t\tvar fieldType = inputs[i].type;\n\t\t\tfieldsNames[i] = {\n\t\t\t\tfieldName : fieldName,\n\t\t\t\tfieldType : fieldType,\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t'method' : form.method,\n\t\t\t'action' : form.action,\n\t\t\t'fields_count' : form.elements.length,\n\t\t\t'fields_names' : fieldsNames,\n\t\t};\n\t}\n\n\treturn false;\n}\n\nfunction apbct_js_keys__set_input_value(result, data, params, obj){\n\tif( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) {\n\t\tvar elements = document.querySelectorAll('[name^=ct_checkjs]');\n\t\tfor ( var i = 0; i < elements.length; i++ ) {\n\t\t\telements[i].value = result.js_key;\n\t\t}\n\t}\n}\n\nfunction apbctGetScreenInfo() {\n\treturn JSON.stringify({\n\t\tfullWidth : document.documentElement.scrollWidth,\n\t\tfullHeight : Math.max(\n\t\t\tdocument.body.scrollHeight, document.documentElement.scrollHeight,\n\t\t\tdocument.body.offsetHeight, document.documentElement.offsetHeight,\n\t\t\tdocument.body.clientHeight, document.documentElement.clientHeight\n\t\t),\n\t\tvisibleWidth : document.documentElement.clientWidth,\n\t\tvisibleHeight : document.documentElement.clientHeight,\n\t});\n}\n\nif(typeof jQuery !== 'undefined') {\n\n\t// Capturing responses and output block message for unknown AJAX forms\n\tjQuery(document).ajaxComplete(function (event, xhr, settings) {\n\t\tif (xhr.responseText && xhr.responseText.indexOf('\"apbct') !== -1) {\n\t\t\tvar response = JSON.parse(xhr.responseText);\n\t\t\tif (typeof response.apbct !== 'undefined') {\n\t\t\t\tresponse = response.apbct;\n\t\t\t\tif (response.blocked) {\n\t\t\t\t\tdocument.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent( \"apbctAjaxBockAlert\", {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tdetail: { message: response.comment }\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\t// Show the result by modal\n\t\t\t\t\tcleantalkModal.loaded = response.comment;\n\t\t\t\t\tcleantalkModal.open();\n\n\t\t\t\t\tif(+response.stop_script == 1)\n\t\t\t\t\t\twindow.stop();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"],"names":["apbct_collect_visible_fields","form","inputs","inputs_visible","inputs_visible_count","inputs_invisible","inputs_invisible_count","inputs_with_duplicate_names","key","elements","isNaN","filter","elem","indexOf","getAttribute","push","forEach","i","getComputedStyle","display","visibility","opacity","classList","contains","trim","visible_fields","visible_fields_count","invisible_fields","invisible_fields_count","apbct_visible_fields_set_cookie","visible_fields_collection","form_id","collection","ctPublic","data__cookies_type","ctSetCookie","undefined","JSON","stringify","apbct_visible_fields_already_collected","formsProcessed","length","formMethod","method","formFieldsCount","action","formInputs","fields_count","fieldsNames","fields_names","field","item","index","array","fieldName","name","fieldType","type","apbct_get_form_details","apbct_js_keys__set_input_value","result","data","params","obj","document","querySelectorAll","value","js_key","apbctGetScreenInfo","fullWidth","documentElement","scrollWidth","fullHeight","Math","max","body","scrollHeight","offsetHeight","clientHeight","visibleWidth","clientWidth","visibleHeight","ct_date","Date","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","ctCheckedEmails","ctScrollCollected","ctMouseMovedCollected","apbct_attach_event_handler","event","callback","window","addEventListener","attachEvent","apbct_remove_event_handler","removeEventListener","detachEvent","ctFunctionFirstKey","KeyTimestamp","floor","ctMouseReadInterval","setInterval","ctMouseWriteDataInterval","ctFunctionMouseMove","round","clientY","clientX","clearInterval","checkEmail","e","current_email","target","ctPublicFunctions","data__ajax_type","apbct_public_sendREST","email","timestamp","now","apbct_public_sendAJAX","apbct_ajax","ctSetPixelImg","pixelUrl","pixel__enabled","getElementById","jQuery","append","ajaxType","initCookies","getTimezoneOffset","cookiesArray","cookie","split","cookieName","ctDeleteCookie","pixel__setting","notJson","pixel__url","data__email_check_before_post","blur","setTimeout","processedForms","forms","parentElement","toString","id","onsubmit_prev","onsubmit","ctFormIndex","this","Function","call","ajaxComplete","xhr","settings","response","responseText","parse","apbct","blocked","dispatchEvent","CustomEvent","bubbles","detail","message","comment","cleantalkModal","loaded","open","stop_script","stop"],"mappings":"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"}
|
lib/Cleantalk/Antispam/Integrations/OvaLogin.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Cleantalk\Antispam\Integrations;
|
4 |
+
|
5 |
+
class OvaLogin extends IntegrationBase
|
6 |
+
{
|
7 |
+
public function getDataForChecking($argument)
|
8 |
+
{
|
9 |
+
if ( apbct_is_plugin_active('ova-login/ova-login.php')
|
10 |
+
&& !empty($_POST)
|
11 |
+
&& isset($_POST['email'])
|
12 |
+
&& isset($_POST['username'])
|
13 |
+
) {
|
14 |
+
/**
|
15 |
+
* Filter for POST
|
16 |
+
*/
|
17 |
+
$input_array = apply_filters('apbct__filter_post', $_POST);
|
18 |
+
|
19 |
+
$data = ct_get_fields_any($input_array);
|
20 |
+
$data['register'] = true;
|
21 |
+
|
22 |
+
return $data;
|
23 |
+
}
|
24 |
+
|
25 |
+
return null;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @param $message
|
30 |
+
*
|
31 |
+
* @psalm-suppress UnusedVariable
|
32 |
+
*/
|
33 |
+
public function doBlock($message)
|
34 |
+
{
|
35 |
+
global $ct_comment;
|
36 |
+
$ct_comment = $message;
|
37 |
+
ct_die(null, null);
|
38 |
+
}
|
39 |
+
}
|
lib/Cleantalk/ApbctWP/AdminNotices.php
CHANGED
@@ -209,10 +209,14 @@ class AdminNotices
|
|
209 |
*/
|
210 |
public function notice_incompatibility() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
|
211 |
{
|
|
|
212 |
if ( ! empty($this->apbct->data['notice_incompatibility']) && $this->is_cleantalk_page && $this->apbct->settings['sfw__enabled'] ) {
|
213 |
foreach ( $this->apbct->data['notice_incompatibility'] as $notice ) {
|
214 |
$this->generateNoticeHtml($notice);
|
215 |
}
|
|
|
|
|
|
|
216 |
}
|
217 |
}
|
218 |
|
209 |
*/
|
210 |
public function notice_incompatibility() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
|
211 |
{
|
212 |
+
global $apbct;
|
213 |
if ( ! empty($this->apbct->data['notice_incompatibility']) && $this->is_cleantalk_page && $this->apbct->settings['sfw__enabled'] ) {
|
214 |
foreach ( $this->apbct->data['notice_incompatibility'] as $notice ) {
|
215 |
$this->generateNoticeHtml($notice);
|
216 |
}
|
217 |
+
} else {
|
218 |
+
$apbct->data['notice_incompatibility'] = array();
|
219 |
+
$apbct->saveData();
|
220 |
}
|
221 |
}
|
222 |
|
lib/Cleantalk/ApbctWP/Ajax.php
CHANGED
@@ -69,6 +69,9 @@ class Ajax
|
|
69 |
case 'apbct_js_keys__get':
|
70 |
apbct_js_keys__get();
|
71 |
break;
|
|
|
|
|
|
|
72 |
case 'apbct_email_check_before_post':
|
73 |
if ( $apbct->settings['data__email_check_before_post'] ) {
|
74 |
apbct_email_check_before_post_from_custom_ajax();
|
69 |
case 'apbct_js_keys__get':
|
70 |
apbct_js_keys__get();
|
71 |
break;
|
72 |
+
case 'apbct_get_pixel_url':
|
73 |
+
apbct_get_pixel_url();
|
74 |
+
break;
|
75 |
case 'apbct_email_check_before_post':
|
76 |
if ( $apbct->settings['data__email_check_before_post'] ) {
|
77 |
apbct_email_check_before_post_from_custom_ajax();
|
lib/Cleantalk/ApbctWP/Firewall/AntiCrawler.php
CHANGED
@@ -354,10 +354,14 @@ class AntiCrawler extends \Cleantalk\Common\Firewall\FirewallModule
|
|
354 |
return;
|
355 |
}
|
356 |
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
|
|
|
|
|
|
|
|
361 |
}
|
362 |
|
363 |
/**
|
354 |
return;
|
355 |
}
|
356 |
|
357 |
+
$script =
|
358 |
+
"<script>
|
359 |
+
window.addEventListener('DOMContentLoaded', function () {
|
360 |
+
ctSetCookie( 'wordpress_apbct_antibot', '" . hash('sha256', $apbct->api_key . $apbct->data['salt']) . "', 0 );
|
361 |
+
});
|
362 |
+
</script>";
|
363 |
+
|
364 |
+
echo $script;
|
365 |
}
|
366 |
|
367 |
/**
|
lib/Cleantalk/ApbctWP/RestController.php
CHANGED
@@ -19,6 +19,14 @@ class RestController extends \WP_REST_Controller
|
|
19 |
)
|
20 |
));
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
register_rest_route($this->namespace, "/alt_sessions", array(
|
23 |
array(
|
24 |
'methods' => 'POST',
|
19 |
)
|
20 |
));
|
21 |
|
22 |
+
register_rest_route($this->namespace, "/apbct_get_pixel_url", array(
|
23 |
+
array(
|
24 |
+
'methods' => 'POST',
|
25 |
+
'callback' => 'apbct_get_pixel_url__ajax',
|
26 |
+
'permission_callback' => '__return_true',
|
27 |
+
)
|
28 |
+
));
|
29 |
+
|
30 |
register_rest_route($this->namespace, "/alt_sessions", array(
|
31 |
array(
|
32 |
'methods' => 'POST',
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: safronik
|
3 |
Tags: spam, antispam, anti-spam, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 5.
|
6 |
Requires PHP: 5.6
|
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.
|
@@ -595,847 +595,17 @@ If your website has forms that send data to external sources, you can enable opt
|
|
595 |
|
596 |
== Changelog ==
|
597 |
|
598 |
-
= 5.
|
599 |
-
####
|
600 |
-
*
|
601 |
-
* Fix.
|
602 |
-
* Fix
|
603 |
-
* Fix
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
*
|
608 |
-
*
|
609 |
-
* Fix.
|
610 |
-
* Fix. Activation. Select ajax handler during the plugin activation.
|
611 |
-
* Fix. API. Async logic added.
|
612 |
-
* Fix. State. Varnish cache detection fixed.
|
613 |
-
* Fix. API. Method calling service_update_local_settings is async now.
|
614 |
-
* Fix. Visible fields. Prevent generating more than 10 visible fields cookies.
|
615 |
-
* Fix: Disabling the cache when activating the plugin
|
616 |
-
* Fix: Setting the parameter of ipMaskLongToNumber to an integer
|
617 |
-
* Fix: fixed error in js script
|
618 |
-
|
619 |
-
= 5.168.1 Dec 22 2021 =
|
620 |
-
#### Direct integrations protection fixed.
|
621 |
-
* Fix: Prevent logging excluded requests on the direct integrations.
|
622 |
-
* Fix: Integration. Comment type The7 integration fixed.
|
623 |
-
* Fix. Log excluded. Skip logging PopUp Builder service action.
|
624 |
-
* Fix. Log excluded. Skip logging Cleantalk Security service action.
|
625 |
-
|
626 |
-
= 5.168 Dec 16 2021 =
|
627 |
-
#### One integrations added, some skipped requests will be logged, cookies optimized and minor issues fixed.
|
628 |
-
* New. Get key. A filter to changing an email to get the key implemented.
|
629 |
-
* New. Log exclusions. Option for logging excluded request implemented.
|
630 |
-
* New. Integration. Formidable Pro integration added.
|
631 |
-
* New. Integration. Smart forms integration added.
|
632 |
-
* Upd. Get key. email_filtered parameter added.
|
633 |
-
* Upd: Antispam. Prevent skip requests without emails.
|
634 |
-
* Upd: Antispam. Prevent skip requests trusted users.
|
635 |
-
* Mod: Implementation of sending plugin settings to service_update_local_settings
|
636 |
-
* Fix. Antispam. Exception action argument fixed.
|
637 |
-
* Fix. Antispam. Preventing catch RC requests.
|
638 |
-
* Fix. Antispam. Preventing catch website search requests.
|
639 |
-
* Fix. Setting templates. Get templates only after manual getting key.
|
640 |
-
* Fix. Admin notices. Notice about getting key removed.
|
641 |
-
* Fix. Getting key. Get the right email for gathering the key.
|
642 |
-
* Fix. Exception action. Send ajax requests without email to the cloud.
|
643 |
-
* Fix. Exception action. Prevent catching admin-side requests.
|
644 |
-
* Fix. Exception action. Send ajax requests without email to the cloud.
|
645 |
-
* Fix. Exception action. Prevent catching admin-side requests.
|
646 |
-
* Fix. Log exclusions. Skip checking excepted requests if the "Log excluded requests" option is disabled.
|
647 |
-
* Fix. Antispam. Remove unnecessary cookie from requests.
|
648 |
-
* Fix. Visible fields. Collecting visible fields only for unique forms on the page.
|
649 |
-
* Fix: excluded some action for Ninja Form from spamtest.
|
650 |
-
|
651 |
-
= 5.167 Dec 06 2021 =
|
652 |
-
* Fix. Comment scanner. Scanning loop fixed.
|
653 |
-
* Fix. Comment scanner. Scan only not spam comments.
|
654 |
-
* Mod: Launching a suitable ajax handler for checking email before POST
|
655 |
-
* Upd. RC. Remote calls checking moved to the root of the main file.
|
656 |
-
* New. Activation. Hook for getting key auto added.
|
657 |
-
* Fix. Admin notices. Errors about getting key fixed.
|
658 |
-
* Fix. Visible fields. Getting visible fields collection method moved to the Cookie class
|
659 |
-
* Fix. Visible fields. Getting visible fields collection method moved
|
660 |
-
* Fix. Settings. Getting key button fixed.
|
661 |
-
* Fix: Removed ajax_type from apbct_email_check_before_post
|
662 |
-
* Fixed Ajax.php errors with apbct_email_check_before_post
|
663 |
-
* Fix: Add integration for CalculatedFieldsForm and fixed scripts
|
664 |
-
|
665 |
-
= 5.166 Nov 18 2021 =
|
666 |
-
* Fix: skip ult-forgot-password action.
|
667 |
-
* Fix: Uncanny toolkit skip.
|
668 |
-
* Fix: SFW. Clearing FW stats fixed.
|
669 |
-
* Fix: SFW. Updating fallback fixed.
|
670 |
-
* Fix: SFW. Updating FW stats fixed.
|
671 |
-
* Mod: Changed the type of verification on check_message during registration in BuddyPress
|
672 |
-
* Fix: register_settings for wp < 4.7.
|
673 |
-
* Fix: Comment scanners. Getting cookie fixed.
|
674 |
-
* Fix: check if errors exists in state.
|
675 |
-
* Fix: update sfw after enabled.
|
676 |
-
* Fix: WPMS. Settings validating fixed.
|
677 |
-
* Fix: wpforms skip remove token validation.
|
678 |
-
* Fix. Text. Feedback description fixed.
|
679 |
-
* Fix: WPMS. Delete api key from settings template used.
|
680 |
-
* Fix. Updater. Notice fixed.
|
681 |
-
* Fix: WPMS. Setting transferring to the sub sites fixed.
|
682 |
-
|
683 |
-
= 5.165.1 Nov 09 2021 =
|
684 |
-
* Fix. Settings. Saving settings fixed.
|
685 |
-
|
686 |
-
= 5.165 Nov 08 2021 =
|
687 |
-
* New: Public. Mouse moved flag implemented.
|
688 |
-
* Upd: State. Errors adding method updated.
|
689 |
-
* Upd: Settings. Errors show function updated.
|
690 |
-
* Upd: Updater. Clean errors options for new errors structure.
|
691 |
-
* Upd: Public. Cookies aggregation.
|
692 |
-
* Mod: Improving the functionality of checking comments for spam.
|
693 |
-
* Mod: CommentsChecker - updated functionality and refactoring
|
694 |
-
* Mod: merged inc/cleantalk-updater.php
|
695 |
-
* Mod: merged UpdatePlugin dir
|
696 |
-
* Mod: merged Schema.php
|
697 |
-
* Mod: merged SchemaTest.php
|
698 |
-
* Mod: merged cleantalk.php
|
699 |
-
* Mod: merged State.php, Activator.php
|
700 |
-
* Fix: SFW. Directory for FW files moved to wordpress uploads directory.
|
701 |
-
* Fix: Settings. GDPR link fixed.
|
702 |
-
* Fix: testrequesttohost error handle.
|
703 |
-
* Fix: check ctsetcookie before call.
|
704 |
-
* Fix: Settings. Save button padding fixed.
|
705 |
-
* Fix: add console.log if ctSetcookie is not defined.
|
706 |
-
* Fix: SFW. Skip if sfw not updated yet.
|
707 |
-
* Fix: change console output if apbct-public-functions.js is not loaded.
|
708 |
-
* Fix: Added secure and samesite in cookie
|
709 |
-
* Fix: Renamed field apbct_wc_honeypot to wc_apbct_email_id
|
710 |
-
* Fix.Users.Feedback about deleting user implemented.
|
711 |
-
* Fix. SFW. Deleting table fixed.
|
712 |
-
* Fix: set buffer type to string if epico theme is active.
|
713 |
-
* Fix: Integration. Jetpack contact forms hooks fixed.
|
714 |
-
* Fix: SFW. Separating the end of update stage into several stages.
|
715 |
-
* Fix: SFW. Fallback function on SFW updating errors implemented.
|
716 |
-
* Fix. Integration. WP Forms hooks fixed.
|
717 |
-
* Fix. SFW. Auto updating for new users fixed.
|
718 |
-
* Fix. Comment. Set meta fixed.
|
719 |
-
* Fix: WPMS. Settings saving fixed.
|
720 |
-
|
721 |
-
= 5.164.1 Oct 21 2021 =
|
722 |
-
* Fix. SFW. Incompatibility WP-Rocket notice removed.
|
723 |
-
|
724 |
-
= 5.164 Oct 21 2021 =
|
725 |
-
* New: Integration. UsersWP plugin integration implemented.
|
726 |
-
* New. SFW. Incompatibility WP-Rocket notice added.
|
727 |
-
* New: Settings. Advanced settings navigation implemented.
|
728 |
-
* New: Server variables. isSSL method added.
|
729 |
-
* Mod: Added the functionality of changing the mail when receiving the key during the initial installation.
|
730 |
-
* Mod: Custom admin email. Added minified js and css files
|
731 |
-
* Mod: validate api key before save settings for new accounts
|
732 |
-
* Mod: Antispam. Comments check. Send feedback with hash:01:url data only if post_info->post_url is empty.
|
733 |
-
* Fix: State. Option prefix field is public now.
|
734 |
-
* Fix: Using get_option('home') for getting the blog url instead get_option('siteurl').
|
735 |
-
* Fix: State. Magic __get notice fixed.
|
736 |
-
* Fix. State. Exclamation mark fixed.
|
737 |
-
* Fix. Common. Getting REST url fixed.
|
738 |
-
* Fix: SFW. Update percents fixed.
|
739 |
-
* Fix: DB. isTableExists method fixed.
|
740 |
-
* Fix. State. $errors field added.
|
741 |
-
* Fix: Server::getDomain(). Fixed regexp.
|
742 |
-
* Fix: skip log-in request wpstg.
|
743 |
-
* Fix: SFW. Work on hosting licenses fixed.
|
744 |
-
* Fix: set prefix_name for cleantalk-icons css.
|
745 |
-
* Fix: Helper. Hard use https for the curl requests.
|
746 |
-
* Fix: Helper. Home url slash added.
|
747 |
-
* Fix: SFW. Using direct updating if remote calls not working.
|
748 |
-
* Fix: Settings. Save button z-index added.
|
749 |
-
* Fix: Admin bar. Exclamation mark style fixed.
|
750 |
-
* Fix: Settings. Api key description on active IP license added.
|
751 |
-
* Fix: Sender info. Getting page_url on ajax/rest requests fixed.
|
752 |
-
|
753 |
-
= 5.163.1 Oct 12 2021 =
|
754 |
-
* Fix: Queue. Errors of each try fixed.
|
755 |
-
* Fix: SFW. Sleep before deleting tables was reduced.
|
756 |
-
* Fix: Queue. Accepted tries argument implemented.
|
757 |
-
|
758 |
-
= 5.163 Oct 07 2021 =
|
759 |
-
* New: State. errorExists method implemented.
|
760 |
-
* New: SFW. Disabling SFW when the database was outdated.
|
761 |
-
* New: Settings templates. Saving template to the several blogs implemented.
|
762 |
-
* New: Settings. WPMS settings always show now.
|
763 |
-
* New: WPMS. No show any sub-sites errors on wpms mode 2.
|
764 |
-
* New: WPMS. Plugin settings are disabled on sub-sites on wpms mode 2.
|
765 |
-
* Mod: Remote Calls using POST instead of GET request type.
|
766 |
-
* Mod: Helper. No cache GET parameter renamed.
|
767 |
-
* Mod: Cron. Transactions implemented #2.
|
768 |
-
* Mod: Settings. "URL Exclusions" description updated.
|
769 |
-
* Upd: Getting JS. AJAX handler type selecting updated.
|
770 |
-
* Fix: Added lost info about total comments in CommentChecker::ctAjaxInfo
|
771 |
-
* Fix: add subscriber to skip list.
|
772 |
-
* Fix: Changed the plugin name in the list of plugins when enabling White Label
|
773 |
-
* Fix: Changed the plugin name in the admin bar when enabling White Label
|
774 |
-
* Fix: Feedback. Comments feedback description fixed.
|
775 |
-
* Fix: Hide information about Security in admin bar if it is not main site.
|
776 |
-
* Fix: SFW. Error toggle used instead of error add/delete.
|
777 |
-
* Fix: Alt cookies. Selecting type of alt cookies bug fixed.
|
778 |
-
* Fix: protect logged users in gravity.
|
779 |
-
* Fix: Updated the condition for showing a link to the security installation in the admin bar.
|
780 |
-
* Fix: reverse condition for WL security link.
|
781 |
-
* Fix: WPMS. Addition WL info link fixed.
|
782 |
-
* Changed plugin name in plugin settings multisite__white_label__plugin_name.
|
783 |
-
* Fix: rename plugin name after search plugins if WL is on.
|
784 |
-
* Fix: Renamed Antispam by Cleantalk to Anti-spam by Cleantalk
|
785 |
-
* Fix: add elementor-pro to skip save action.
|
786 |
-
* Fix: WPMS. Sanitize api key during getting key fixed.
|
787 |
-
* Fix: Cron. Cron results errors handling fixed.
|
788 |
-
* Fix: WPMS. Migrate old WPMS to the new wpms mode.
|
789 |
-
* Fix: WPMS. Using main site data on wpms_mode=2.
|
790 |
-
* Fix: Helper. Hard use https for the curl requests.
|
791 |
-
* Fix: WPMS. Sanitize network settings fixed.
|
792 |
-
* Fix: WPMS. Applying settings for selected blogs fixed.
|
793 |
-
* Fix: Getting key. Sync after getting key fixed.
|
794 |
-
|
795 |
-
= 5.162 Sep 23 2021 =
|
796 |
-
* New. SFW. Fall back updating system implemented.
|
797 |
-
* New: Integration. Added honeypot wc.
|
798 |
-
* New: SFW. Added new status PASS_SFW__BY_STATUS for showing die_page.
|
799 |
-
* Upd: Cookies. Alternative cookies types was updated.
|
800 |
-
* Upd: Ajax. Finding the right WP directory implemented.
|
801 |
-
* Fix: Updater fixed.
|
802 |
-
* Fix: Firewall update. Not existing FW table.
|
803 |
-
* Fix: State. DB prefix fixed.
|
804 |
-
* Fix: WPForms. Excluding from the custom contact forms check.
|
805 |
-
* Fix. State. DB prefix definition fixed.
|
806 |
-
* Fix: SpamFirewall update. Increasing delay in queue transactions, adding time of the queue task start
|
807 |
-
* Fix: State. Show notices fixed.
|
808 |
-
* Fix: State. Some logic moved from a loop.
|
809 |
-
* Fix: Adding a error if Common/Helper::http_request() couldn't get HTTP code via get_headers().
|
810 |
-
* Fix: SFW. Do not AC checking, if cookies were disabled.
|
811 |
-
* Fix: http_request() with preset 'get_code' using GET HTTP method instead of HEAD now.
|
812 |
-
* Fix: SFW. Direct update DB errors handled.
|
813 |
-
* Fix: SFW. Direct update creating temp table errors handled.
|
814 |
-
* Fix: SpamFirewall update. SFW_IS_DISABLED is not a error. apbct_sfw_update__init() returns false in this case.
|
815 |
-
* Fix: Extended header. Cache-Control: max-age=0 in the /Common/Helper::httpRequest()
|
816 |
-
* Fix: Updater. Fixed data__use_static_js_key settings name.
|
817 |
-
* Fix: Updater. start ct_account_status_check() if main site in 5.127+ versions
|
818 |
-
* Fix: Adding error handling to DB::execute() in ApbctWP\SFW.
|
819 |
-
* Fix: Cron. Cron last start flag improved.
|
820 |
-
* Fix: Cron. Cron execution cooldown decreased to 2 min.
|
821 |
-
* Fix: Adding more info in 'Unknown' type error.
|
822 |
-
* Fix: Exclude Forminator double requests on multipage form.
|
823 |
-
* Fix: Settings. Alt cookies types validating fixed.
|
824 |
-
* Fix: Ajax. WP core dir parsing fixed.
|
825 |
-
* Fix: Settings. Ajax handler title fixed.
|
826 |
-
|
827 |
-
= 5.161.1 Sep 14 2021 =
|
828 |
-
* Fix. State. Checking empty errors fixed.
|
829 |
-
|
830 |
-
= 5.161 Sep 09 2021 =
|
831 |
-
* Fix: Cleantalk.php. dns_get_record() error handling.
|
832 |
-
* Fix: Search form integration. PHP Notice.
|
833 |
-
* Fix: Default value for "Alternative Cookie Type" setting.
|
834 |
-
* Fix: SpamFirewall. Updating percent output.
|
835 |
-
* Fix: SpamFirewall. Omit SFW_IS_DISABLED error.
|
836 |
-
* Mod: Admin-bar.
|
837 |
-
* Fix: SpamFirewall update.
|
838 |
-
* Fix: apbct_log(). Log time.
|
839 |
-
* Mod: Debug RC. Servers_connection item added.
|
840 |
-
* Mod: apbct_test_connection() moved to cleantalk.php.
|
841 |
-
* Fix: skip elementor save template.
|
842 |
-
* Fix: skip formidable base check.
|
843 |
-
* Fix: remove limit for request in delete all spam users.
|
844 |
-
* Mod: apbct_test_connection() improvements.
|
845 |
-
* Fix: Helper::http__request() timeout is 15 seconds.
|
846 |
-
* New: Helper::http__request() low speed time is 10 seconds.
|
847 |
-
* Fix: decbin int type in helper.
|
848 |
-
* Fix: add apbct_get_rest_url func.
|
849 |
-
* Fix: Error report form Cleantalk.php.
|
850 |
-
* Fix: skip sfw check if sfw not updated.
|
851 |
-
* Fix. Integration. Enfold theme saving options skip protection.
|
852 |
-
* Fix. Integration. Cartflows saving cart skip protection.
|
853 |
-
* Fix: getOption return variable.
|
854 |
-
* Fix: skip sfw if last_update_time is zero.
|
855 |
-
* Fix: skip last_update_time sfw check.
|
856 |
-
* Fix: add priority to comment_form_default_fields hook.
|
857 |
-
* New. Helper. IP detecting improved.
|
858 |
-
* Fix. Helper. Multi-curl timeout added.
|
859 |
-
* Upd. SFW. SFW block page updated.
|
860 |
-
* Upd. SFW. AC block page updated.
|
861 |
-
* Upd. Settings. SFW features settings moved to the separated block.
|
862 |
-
* Fix. SFW. Random get parameter for redirecting block page updated.
|
863 |
-
* Fix. Settings. SFW features settings description fixed.
|
864 |
-
* New: Queue. Transaction system.
|
865 |
-
* Fix: skip siteorigin pagebuilder save widget.
|
866 |
-
* New: Readme. Hide «Website» field for comments added.
|
867 |
-
* Fix. Helper. Async curl timeout increased.
|
868 |
-
* Fix. Integration. Blogvault requests skipped.
|
869 |
-
* Fix: skip classfields check_email action.
|
870 |
-
* Mod: Show real HTTP code in a error during downloading GZ file.
|
871 |
-
* Mod: Debug call extended.
|
872 |
-
* Mod: Admin notices. Added the ability to hide a banner with notifications for each individual administrator for two weeks.
|
873 |
-
* Fix. Settings. Long description output fixed.
|
874 |
-
* Fix. Settings. JS debug data removed.
|
875 |
-
* Fix. SFW. Deleting fw files folder.
|
876 |
-
* Fix: api error handle.
|
877 |
-
* Fix: SFW. Added update mode if sfw-updater works with tables.
|
878 |
-
* New. WPMS. New multisite logic implemented.
|
879 |
-
* Fix: Setting. Select field type fixed.
|
880 |
-
* Fix: Сhanged the function delete_all_options() of removing plugin options when fully uninstalled.
|
881 |
-
* Fix. WPMS. Hoster API key description fixed.
|
882 |
-
* Fix: Admin notices. get_option expression is checking more strictly.
|
883 |
-
* New: Helper. Added method for validate date format as 'Y-m-d'.
|
884 |
-
* Fix: SFW. Default FW folder fixed.
|
885 |
-
* Fix: SFW. FW folder on the first sync fixed.
|
886 |
-
* Fix: SFW. Remove wrong FW folders.
|
887 |
-
* Fix: SFW. Refactoring apbct_sfw_update__end_of_update().
|
888 |
-
* Mod: apbct_test_connection().
|
889 |
-
* Fix: /ApbctWP/API::send_request() with empty result.
|
890 |
-
|
891 |
-
= 5.160.3 Aug 31 2021 =
|
892 |
-
* New: Queue. Transaction system.
|
893 |
-
* Fix. SFW. Updating for the new clients fixed.
|
894 |
-
* Fix. SFW. Deleting UA file fixed.
|
895 |
-
* Fix. SFW. Updating via cron fixed.
|
896 |
-
* Fix. SFW. Updating process for multisite fixed.
|
897 |
-
|
898 |
-
= 5.160.2 Aug 26 2021 =
|
899 |
-
* Fix. Pixel. Auto mode fixed.
|
900 |
-
|
901 |
-
= 5.160.1 Aug 6 2021 =
|
902 |
-
* Fix: SpamFirewall update.
|
903 |
-
|
904 |
-
= 5.160 Jul 29 2021 =
|
905 |
-
* New: SFW. SFW alternative cookie implemented.
|
906 |
-
* New: SFW. AC alternative cookie implemented.
|
907 |
-
* New: SFW. AF alternative cookie implemented.
|
908 |
-
* New: Helper. Curl multi wrapper added.
|
909 |
-
* New: Queue class implemented.
|
910 |
-
* Mod: Changed the processing of the honeypot_field for standard comment.
|
911 |
-
* Mod: Added integration for Wishlist Members registration form.
|
912 |
-
* Mod: Store visited URLs amount reduces to 5 with 128 symbols by URL.
|
913 |
-
* Upd: Public js scripts separated.
|
914 |
-
* Upd: SFW. Updating process modified.
|
915 |
-
* Fix: Moderate rotating fixed.
|
916 |
-
* Fix: SFW. Process file errors handling fixed.
|
917 |
-
* Fix: Pluggable. Expression fixed.
|
918 |
-
* Fix: Ajax. User detection fixed..
|
919 |
-
* Fix: Ajax. Ajax handlers fixed.
|
920 |
-
* Fix: IP-detection for Cloudflare CDN.
|
921 |
-
* Fix: Skip test for ajax alt_session request.
|
922 |
-
* Fix: Set cookies on dashboard pages even if the setting is off.
|
923 |
-
* Fix: Ajax. Ajax class fixed.
|
924 |
-
* Fix: Users scanner. Remove redundant menu.
|
925 |
-
* Fix: Added an exception for the action edd_process_checkout Easy Didgital Downloads plugi
|
926 |
-
* Fix: SFW. Changed method for getting addr ip.
|
927 |
-
* Fix: Integration. WPForms names gathering fixed.
|
928 |
-
* Fix: SFW. Min update interval decreased to 14400 seconds.
|
929 |
-
* Fix: Integration. WPForms names gathering fixed.
|
930 |
-
* Fix: Cleantalk.php. dns_get_record() error handling.
|
931 |
-
* Fix: Search form integration. PHP Notice.
|
932 |
-
* Fix: Default value for "Alternative Cookie Type" setting.
|
933 |
-
* Fix: SpamFirewall. Omit SFW_IS_DISABLED error.
|
934 |
-
* Fix: SpamFirewall. Updating percent output.
|
935 |
-
* Fix. Settings templates. Sync after template loading.
|
936 |
-
* Fix. SFW. Updating process percents fixed.
|
937 |
-
* Fix. Antispam. All headers parameter fixed.
|
938 |
-
|
939 |
-
= 5.159.9 Jul 15 2021 =
|
940 |
-
* Fix. SFW. Updating cooldown increased up to 15 min.
|
941 |
-
* Fix. Cron. Next call time set by task updating fixed.
|
942 |
-
* Fix. SFW. Reset blacklist array before processing.
|
943 |
-
* Fix. SFW. Some errors handling fixed.
|
944 |
-
* Fix. SFW. Getting update period from dns fixed.
|
945 |
-
* Fix. Ajax. Checking nonce for logged in users fixed.
|
946 |
-
|
947 |
-
= 5.159.8 Jul 07 2021 =
|
948 |
-
* Fix: Fixed the connection error Ajax.php when the site files are in a subfolder.
|
949 |
-
* Fix. SFW. Anticrawler redirect detection fixed.
|
950 |
-
* Fix. Checking sql before the tables creating.
|
951 |
-
* Fix. Updater fixed.
|
952 |
-
* Fix: Set alt cookies if sg optimizer is enabled.
|
953 |
-
* Fix: Exclusion for GiveWP plugin in apbct-public.js. #2
|
954 |
-
|
955 |
-
= 5.159.7 Jul 01 2021 =
|
956 |
-
* Fix. Updater fixed.
|
957 |
-
|
958 |
-
= 5.159.6 Jun 30 2021 =
|
959 |
-
* New. Rest API request detecting implemented.
|
960 |
-
* Upd. SFW. AntiCrawler was disabled for the new installations.
|
961 |
-
* Upd. SFW. AntiCrawler option moved to the advanced settings section.
|
962 |
-
* Mod: email is taken only from visible fields
|
963 |
-
* Mod: remove error message about firewall updating
|
964 |
-
* Mod: excluded for test WC_Gateway_Tpay_Basic
|
965 |
-
* Fix: Added exclude for happyforms.php in apbct_is_skip_request.
|
966 |
-
* Fix: Added an error message in the form response
|
967 |
-
* Fix: Skip wpforms general requests because of direct integration.
|
968 |
-
* Fix. Integration. Autonami Marketing Automations service request kipped.
|
969 |
-
* Fix. Cron. Update task method fixed.
|
970 |
-
* Fix. SFW. Prevent updating while SFW is disabled.
|
971 |
-
* Fix. Cron. Restoring cron tasks during plugin updating.
|
972 |
-
* Fix. SFW. Logs sending used limit.
|
973 |
-
* Fix: set correct api_key value for ajax calls.
|
974 |
-
* Fix. Frontend widget. The widget layout fixed.
|
975 |
-
* Fix. Integration. Formidable preparing data for checking.
|
976 |
-
|
977 |
-
= 5.159.5 Jun 24 2021 =
|
978 |
-
* New: Admin bar. Attention mark added.
|
979 |
-
* Upd: Admin notices have been rebuilt.
|
980 |
-
* Upd: Integrations with HappyForms updated.
|
981 |
-
* Fix: Skip fluentform multistep request.
|
982 |
-
* Fix: Correct fluent_form skip name.
|
983 |
-
* Fix: Admin notices. Trial and renew notices ID attributes renamed.
|
984 |
-
* Fix: Admin bar. Trial notice font color changed.
|
985 |
-
* Fix: Admin bar. Show admin bar without api key.
|
986 |
-
* Fix: Admin bar. Show attention badge if the api key is empty.
|
987 |
-
* Fix: AC. Skip checking on 302 redirects.
|
988 |
-
* Fix: Added IF NOT EXISTS after ADD COLUMN in cleantalk-updater.php
|
989 |
-
* Fix: Removed ADD PRIMARY KEY from apbct_update_to_5_146_4
|
990 |
-
* Fix: Removed apbct_update_to_5_146_4
|
991 |
-
* Fix: Checking output parameters of API-method get_2s_blacklists_db.
|
992 |
-
* Fix: SFW. Writing exclusions fixed.
|
993 |
-
* Fix: Integration. GF names detection fixed.
|
994 |
-
* Fix: Integration. WPForms nicknames detecting fixed.
|
995 |
-
* Fix. SFW. Updating fixed.
|
996 |
-
* Fix: Excluding REST API requests from check.
|
997 |
-
* Fix. Admin notices. Incompatibility notice fixed.
|
998 |
-
* Fix. Compatibility. Notice saving fixed.
|
999 |
-
* Fix. Compatibility. Prevent disabling SFW on incompatibility detected.
|
1000 |
-
* Fix. Compatibility. SFW option is no longer disabled on incompatibility detected.
|
1001 |
-
* Fix. Admin bar. Reset counters fixed.
|
1002 |
-
|
1003 |
-
= 5.159.4 Jun 17 2021 =
|
1004 |
-
* Fix: Admin bar. PHP error.
|
1005 |
-
|
1006 |
-
= 5.159.3 Jun 15 2021 =
|
1007 |
-
* Fix: Admin bar. Conflict with previous version of Security by Cleantalk.
|
1008 |
-
|
1009 |
-
= 5.159.2 Jun 15 2021 =
|
1010 |
-
* Fix. Renew notice banner shows only on cleantalk pages.
|
1011 |
-
* Fix. SFW updating. Getting remote data error handling fixed.
|
1012 |
-
* Upd. Readme updated.
|
1013 |
-
* Fix. SFW. Auto-updating fixed.
|
1014 |
-
* Fix: Admin bar style. Install link is no longer highlighted.
|
1015 |
-
* Fix: Admin bar style. Style for security icon.
|
1016 |
-
* Fix: Admin bar. Reset buttons counters leads to the same page.
|
1017 |
-
* Fix. Manual register link fixed.
|
1018 |
-
* Fix: do not display errors on subsites when wl is enabled.
|
1019 |
-
* Fix: Admin bar. Rapid fix.
|
1020 |
-
* Fix. Skipping. WPForms check restricted email request skipped.
|
1021 |
-
* Fix. Helper. CURL request timeout increased.
|
1022 |
-
* Fix. Comments/users checker. Description fixed.
|
1023 |
-
* Fix. Get fields any. Preset nickname parameter fixed.
|
1024 |
-
* Fix: wpms settings.
|
1025 |
-
|
1026 |
-
= 5.159.1 Jun 10 2021 =
|
1027 |
-
* Fix: Cron. Cron calling in cleantalk-updater.php fixed.
|
1028 |
-
|
1029 |
-
= 5.159 Jun 10 2021 =
|
1030 |
-
* New. Admin Bar. Common admin bar implemented.
|
1031 |
-
* New: email check before post.
|
1032 |
-
* New: New admin bar style.
|
1033 |
-
* New. SFW. Updating integrity control implemented.
|
1034 |
-
* New. Custom Ajax. Email checking before post.
|
1035 |
-
* New. Custom Ajax. Getting JS key.
|
1036 |
-
* New. Custom Ajax. Alternative cookies.
|
1037 |
-
* Upd. Integrations. Support multiple non-ajax hooks.
|
1038 |
-
* Upd. Cron. Cron class and cron usage updated.
|
1039 |
-
* Upd. Pixel. Pixel setting is "auto" for the new installations.
|
1040 |
-
* Upd. Users checker. Users with completed WC orders no checked.
|
1041 |
-
* Upd. WPMS settings.
|
1042 |
-
* Mod. limiting the size of an array top5_spam_ip to five elements in widget.
|
1043 |
-
* Mod. update data__pixel title.
|
1044 |
-
* Mod. Update data__use_static_js_key title.
|
1045 |
-
* Mod. add 'relative' parameter in admin_url() for getting ajaxurl.
|
1046 |
-
* Mod. update field name honeypot_field, reverse logic
|
1047 |
-
* Mod. changed website field from comments form: type text, display none.
|
1048 |
-
* Fix. resolve conflict with wiloke theme and unknown plugin, that removes standard authorization cookies.
|
1049 |
-
* Fix. moved the wiloke_theme options_ajax_save_skip check to apbct_is_skip_request function.
|
1050 |
-
* Fix. added a theme check along with a hook wiloke_themeoptions_ajax_save_skip.
|
1051 |
-
* Fix. Integration. Essentials addons for elementor integration fixed.
|
1052 |
-
* Fix. AC/AF. Clearing AC table via cron fixed.
|
1053 |
-
* Fix. SFW. Obtaining the count of the networks was fixed.
|
1054 |
-
* Fix. Cron. Last cron start fixed.
|
1055 |
-
* Fix. cookies for login page.
|
1056 |
-
* Fix. Firewall. Update. Filtering bad data.
|
1057 |
-
* Fix. Custom Ajax. Localized login scripts.
|
1058 |
-
* Fix. API. Cleantalk\ApbctWP\API fixed to work on SHORTINIT mode.
|
1059 |
-
* Fix. Custom Ajax. Getting JS key - removed WP ajax hooks.
|
1060 |
-
* Fix. GetFieldsAny. Bypassing collecting email and names logic fixed.
|
1061 |
-
* Fix. New admin bar style. Sorting plugins by Alphabet.
|
1062 |
-
* Fix. ct_get_admin_email return network email if set.
|
1063 |
-
* Fix. Fixed the name of the key containing the file address to check the number of records.
|
1064 |
-
* Fix. Comments checker. Non-checkable users tab removed.
|
1065 |
-
* Fix. Visible fields. Formidable visible fields collecting fixed.
|
1066 |
-
* Fix. Get fields any fixed.
|
1067 |
-
* Fix. empty key error for hosting.
|
1068 |
-
* Fix. WPMS. Api key saving fixed.
|
1069 |
-
* Fix. WPMS. Network settings saving fixed.
|
1070 |
-
* Fix. WPMS. Plugin name setting field is not required now.
|
1071 |
-
* Fix. Alt sessions js fixed.
|
1072 |
-
|
1073 |
-
= 5.158 May 27 2021 =
|
1074 |
-
* Fix: Firewall. SQL-request error.
|
1075 |
-
|
1076 |
-
= 5.158 May 26 2021 =
|
1077 |
-
* New. Integration. WP Foro register system integration.
|
1078 |
-
* New. Integration. Elementor essentials LoginRegister integration implemented.
|
1079 |
-
* New: SQL-schema and updater for extended SpamFirewall logs.
|
1080 |
-
* New: Extended SpamFirewall logs.
|
1081 |
-
* New: Pixel.
|
1082 |
-
* Mod: Few improvements to SFW update.
|
1083 |
-
* Mod: add settings for hidding website field from comment form.
|
1084 |
-
* Mod: Few improvements to SFW update #2.
|
1085 |
-
* Mod: Possibility to send empty JSON object in API.
|
1086 |
-
* Mod: Extended SpamFirewall logs for AntiCrawler module.
|
1087 |
-
* Upd: SFW. Direct updating method implemented.
|
1088 |
-
* Upd. Settings. Network settings templates updated.
|
1089 |
-
* Upd: Firewall. Improvements to update system.
|
1090 |
-
* Upd: Firewall. Improvements to update system.
|
1091 |
-
* Fix: replace wp_die to die in ct_die(), refactoring ct_die()
|
1092 |
-
* Fix. Forms. Exclude field wp-editor-area from collecting visible fields.
|
1093 |
-
* Fix. Widget. Widget content logic fixed.
|
1094 |
-
* Fix: Forms. Nicknames detecting fixed #2.
|
1095 |
-
* Fix: Forms. Getting check_js key fixed.
|
1096 |
-
* Fix: update ct_die_extended() as ct_die().
|
1097 |
-
* Fix. Code. Getting delay before js code get if async option enabled.
|
1098 |
-
* Fix. WPMU. Blog id added in settings templates list.
|
1099 |
-
* Fix. Integration. Elementor essentials LoginRegister login form protection skipped.
|
1100 |
-
* Fix. WPMU. Blog id added in settings templates list.
|
1101 |
-
* Fix. Readme. Required PHP version increased to 5.6.
|
1102 |
-
* Fix. Updater. 5_157_10 updating fixed #2.
|
1103 |
-
* Fix. JS. DOMContentLoaded used instead jQuery(document).ready().
|
1104 |
-
* Fix: SpamFirewall. Update. "FW UPDATE INIT: KEY_EMPTY", "SFW UPDATE INIT: KEY_IS_NOT_VALID" errors.
|
1105 |
-
* Fix. Users checker. Export to the csv fixed.
|
1106 |
-
* Fix: SpamFirewall. Update. Error "WRONG_UPDATE_ID".
|
1107 |
-
* Fix: SpamFirewall. Update. "FW UPDATE INIT: KEY_EMPTY", "SFW UPDATE INIT: KEY_IS_NOT_VALID" errors.
|
1108 |
-
* Fix: SpamFirewall. Update. Error "WRONG_UPDATE_ID".
|
1109 |
-
* Fix: \Cleantalk\Common\Helper::http__request() consider only boolean false (empty string '' considering as good) as bad response.
|
1110 |
-
* Fix: SpamFirewall. Update.
|
1111 |
-
* Fix: SpamFirewall. Update #2.
|
1112 |
-
* Fix: WPMS empty apikey in options
|
1113 |
-
* Fix: "Mod: add settings for hidding website field from comment form".
|
1114 |
-
* Fix: Common/Helper::http__get_headers() fixed.
|
1115 |
-
* Fix: SpamFirewall admin bar counter.
|
1116 |
-
* Fix: "Fix: Common/Helper::http__get_headers() fixed."
|
1117 |
-
* Fix: Pixel.
|
1118 |
-
* Fix: "Pixel" setting description.
|
1119 |
-
* Fix: Extended SpamFirewall logs for AntiCrawler module.
|
1120 |
-
* Fix: Extended SpamFirewall logs for AntiCrawler module #2.
|
1121 |
-
* Fix: WPFroms. PHP notice.
|
1122 |
-
* Fix: Gravity Forms. PHP notice.
|
1123 |
-
* Revert: Fix: Code. get_fields_any() notice fixed.
|
1124 |
-
|
1125 |
-
= 5.157.2 May 05 2021 =
|
1126 |
-
* Fix: Code. get_fields_any() notice fixed.
|
1127 |
-
* Fix: Integration. Gravity Forms integration fixed.
|
1128 |
-
* Fix: Forms. Nicknames detecting fixed.
|
1129 |
-
|
1130 |
-
= 5.157.1 Apr 29 2021 =
|
1131 |
-
* Mod: \Cleantalk\ApbctWP\Variables\Cookie::get() now has 'cast_to' param. If defined trying to cast to a given type.
|
1132 |
-
* Fix: \Cleantalk\ApbctWP\Variables\Cookie::get() calls using 'cast_to' param if needed.
|
1133 |
-
|
1134 |
-
= 5.157 Apr 28 2021 =
|
1135 |
-
* New: Invisible fields collecting implemented.
|
1136 |
-
* New: A dev and a fix version suffix support.
|
1137 |
-
* New: Variables. Cookie::set() method added.
|
1138 |
-
* New: Split Cleantalk\Common\DB::method__private_list_add__sfw_wl() in two Cleantalk\Common\DB::method__private_list_add() and Cleantalk\ApbctWP\DB::method__private_list_add__sfw_wl().
|
1139 |
-
* New: Split Cleantalk\ApbctWP\Helper::http__request__rc_to_host() in two Cleantalk\ApbctWP\Helper::http__request__rc_to_host() and Cleantalk\ApbctWP\Helper::http__request__rc_to_host__test().
|
1140 |
-
* New: Updater script for 5.157.
|
1141 |
-
* New: Update/delete SpamFireWall database when it enable/disable. Improvements.
|
1142 |
-
* New: \Cleantalk\ApbctWP\Variables::AltSessions class.
|
1143 |
-
* New: "Set cookies" setting now has 3 options "On", "Off" and "Use alternative mechanism for cookies".
|
1144 |
-
* New: REST API route '/alt_sessions' and callbacks.
|
1145 |
-
* Mod: Compatibility with Thrive Leads - remove deleted the modal window about successful sending when blocking the user.
|
1146 |
-
* Mod: changed the handling of gravityform fields, added a check for the visibility of the field when processing the name.
|
1147 |
-
* Mod: Added a setting for Woocommerce, which includes checking the un-logged user when adding an item to the cart. If the user does not pass the verification, the product is not added to the cart.
|
1148 |
-
* Mod: Added a settings for Woocommerce - correction.
|
1149 |
-
* Mod: WC add to cart - change settings description.
|
1150 |
-
* Mod: Cleantalk\ApbctWP\RemoteCalls::debug() improved.
|
1151 |
-
* Mod: SpaFirewall update.
|
1152 |
-
* Mod: add buddypress integration for user account personal data.
|
1153 |
-
* Mod: Moving \Cleantalk\Common\Helper::apbct_cookie__set() to \Cleantalk\ApbctWP\Variables::set() function.
|
1154 |
-
* Mod: Using \Cleantalk\ApbctWP\Variables::set() instead of \Cleantalk\Common\Helper::apbct_cookie__set().
|
1155 |
-
* Mod: Extend \Cleantalk\ApbctWP\Variables to use alternative sessions.
|
1156 |
-
* Mod: Using \Cleantalk\ApbctWP\Variables\AltSessions class instead of set of "apbct_alt_sessions__" functions.
|
1157 |
-
* Mod: added loading of country flags from the plugin.
|
1158 |
-
* Mod: added styles for the widget with anti-spam statistics.
|
1159 |
-
* Mod: Improving ct_enqueue_scripts_public().
|
1160 |
-
* Mod: Update for JS ctSetCookie().
|
1161 |
-
* Mod: AltSessions and Cookie using 'data__set_cookies' and 'data__set_cookies' settings.
|
1162 |
-
* Mod: Minified JS updated.
|
1163 |
-
* Upd: Setting cookies updating.
|
1164 |
-
* Upd: Setting cookies by JS updating.
|
1165 |
-
* Fix: SFW. DB result handling.
|
1166 |
-
* Fix: Integration. Avada theme settings saving fixed.
|
1167 |
-
* Fix: Cleantalk modal. Layout fixed.
|
1168 |
-
* Fix: Possible use an html on ajax forms blocking message.
|
1169 |
-
* Fix: Include JS logic fixed.
|
1170 |
-
* Fix: Refactoring. Collecting details about browser refactored.
|
1171 |
-
* Fix: Refactoring. Alert replacing by console log on REST request handling.
|
1172 |
-
* Fix: Integration. Gravity Forms integration fixed.
|
1173 |
-
* Fix: ignoring the hidden fields with name if visible fields exists.
|
1174 |
-
* Fix: Integration. Formidable multi-step form protection fixed.
|
1175 |
-
* Fix: add max z-index for #cleantalk-modal-overlay.
|
1176 |
-
* Fix: Cannot read property 'response_type' of undefined - xhr.responseJSON - undefined where action wc_add_to_cart_block.
|
1177 |
-
* Fix: Helper. Set cookies method is deprecated now.
|
1178 |
-
* Fix: Adding admin IP to whitelist during the login in and plugin activation.
|
1179 |
-
* Fix: SpamFirewall. Don't set cookies if option is disabled.
|
1180 |
-
* Fix: Sorting methods modifiers in \Cleantalk\Common\Helper and \Cleantalk\ApbctWP\Helper classes.
|
1181 |
-
* Fix: Using \Cleantalk\ApbctWP\Variables\Cookies.
|
1182 |
-
* Fix: A dev and a fix version suffix support.
|
1183 |
-
* Fix: Adding admin IP to whitelist during the login in and plugin activation.
|
1184 |
-
* Fix: New setting 'Alternative cookies handler type'.
|
1185 |
-
* Fix: sender_info params.
|
1186 |
-
* Fix: SpamFirewall deleting 127.0.0.1 from local base during update on local website.
|
1187 |
-
* Fix: apbct_js_test() considering "Alternative cookie" setting.
|
1188 |
-
* Fix: Cleantalk\ApbctWP\VariablesCookie::set() automatically set secure flag if null passed.
|
1189 |
-
* Fix: Check JS via Cookie with the Alternative Cookie on.
|
1190 |
-
* Fix: Automatically set "secure" param when setcookie() called.
|
1191 |
-
* Fix: 'Alternative cookies handler type' setting layout.
|
1192 |
-
* Fix: For legacy apbct__hook__wp_logout__delete_trial_notice_cookie().
|
1193 |
-
* Fix: Cleantalk\ApbctWP\Variables::set_fromRemote(), Cleantalk\ApbctWP\Variables::get_fromRemote() fix parameter type.
|
1194 |
-
* Fix: SpamFirewall add admin IP when login in or activate plugin.
|
1195 |
-
* Fix: Dashboard widget. Showing default Cleantalk's flag if country not found.
|
1196 |
-
* Fix: Dashboard widget. Showing 'Unknown' country name if country not found.
|
1197 |
-
* Del: Unused apbct_cookie__set() function.
|
1198 |
-
* Del: "Use alternative mechanism for cookies" setting.
|
1199 |
-
* Del: "Use cookies less sessions" setting.
|
1200 |
-
|
1201 |
-
= 5.156 Apr 15 2021 =
|
1202 |
-
* New: ApbctWP\RemoteCalls::action__debug().
|
1203 |
-
* New: ApbctWP\Helper::http__get_data_from_remote_gz__and_parse_csv();
|
1204 |
-
* New: ApbctWP\Helper::http__get_data_from_remote_gz();
|
1205 |
-
* New: Update/delete SpamFireWall database when it enable/disable.
|
1206 |
-
* New: \Cleantalk\Common\DNS class. Allows to get with DNS records and theirs different parameters.
|
1207 |
-
* New: No cookies if disabled from frontend. Alternative cookies if enabled from frontend.
|
1208 |
-
* New: \Cleantalk\ApbctWP\Variables\Cookie extends Cleantalk\Common\Variables\Cookie and automatically supports alternative cookies.
|
1209 |
-
* Mod: Don't use alternative cookies for JS cookies for now.
|
1210 |
-
* Mod: ApbctWP\State default data.
|
1211 |
-
* Mod: Small code improvements.
|
1212 |
-
* Mod: Minor code improvements.
|
1213 |
-
* Mod: Using apbct_sfw_update__init instead() of ct_sfw_update().
|
1214 |
-
* Mod: Updater script to 5.156.
|
1215 |
-
* Upd: \Cleantalk\ApbctWP\RemoteCalls.
|
1216 |
-
* Upd: *.min. files update.
|
1217 |
-
* Upd: Current moderate*.cleantalk.org IP servers update.
|
1218 |
-
* Refactor: SpamFireWall update.
|
1219 |
-
* Fix: ApbctWP\RemoteCalls::action__sfw_update().
|
1220 |
-
* Fix: \Cleantalk\Common\DNS could request specific DNS type record.
|
1221 |
-
* Fix: Anti Spam. External forms protection capturing buffer fixed.
|
1222 |
-
* Fix: SFW. Notices disabled on blocking pages.
|
1223 |
-
* Fix: Admin ajax handler fixed - alert removed.
|
1224 |
-
* Fix: No alert when error fires.
|
1225 |
-
* Fix: Notice. change 'wpms__allow_custom_settings' to 'multisite__allow_custom_settings' in cleantalk-admin.php.
|
1226 |
-
* Fix: Getting JS key by ajax fixed.
|
1227 |
-
* Fix: No alert when AJAX fails.
|
1228 |
-
* Fix: Send plugin version as parameter when apbct-public.min.js script attaching.
|
1229 |
-
* Fix: The AJAX REST API error text unique.
|
1230 |
-
* Fix: No alert message when AJAX (REST) error happens.
|
1231 |
-
* Fix: Skip. MyListing theme service requests skip.
|
1232 |
-
* Fix: \Cleantalk\ApbctWP\Helper::http__request__rc_to_host(). Considering empty response as error.
|
1233 |
-
* Fix: \Cleantalk\Common\Helper::http__request(). Empty error while SFW update.
|
1234 |
-
* Fix: REST API. Required parameter added.
|
1235 |
-
* Fix: PHP Notices and Warnings.
|
1236 |
-
* Fix: AntiCrawler UA update.
|
1237 |
-
* Fix: JS and CSS minified.
|
1238 |
-
* Fix: ApbctWP\State __get using &. *
|
1239 |
-
|
1240 |
-
= 5.155.2 Apr 6 2021 =
|
1241 |
-
* Fix: Renaming setting to their original names in old update scripts.
|
1242 |
-
* Fix: Ajax forms protection response fixed.
|
1243 |
-
* Fix: No alert message when AJAX error happens.
|
1244 |
-
|
1245 |
-
= 5.155.1 Apr 2 2021 =
|
1246 |
-
* Fix: Using WP Rest API.
|
1247 |
-
* Rollback: Show response for all AJAX forms.
|
1248 |
-
|
1249 |
-
= 5.155 Mar 31 2021 =
|
1250 |
-
* New: Debug. Check connection to API servers.
|
1251 |
-
* New: Integration. Avada Form Builder.
|
1252 |
-
* New: Integration. Forminator integration implemented.
|
1253 |
-
* New: Users checker. Non-checked users tab added.
|
1254 |
-
* New: SFW. Admin IP will be whitelisted automatically.
|
1255 |
-
* Mod: Replace "bad" users/comments to "non-checkable".
|
1256 |
-
* Mod: DisableComments. Disable all comments means disable all comments for any post type.
|
1257 |
-
* Udp: Setting templates. Product ID support implemented.
|
1258 |
-
* Udp: Settings. Reorder links actions buttons.
|
1259 |
-
* Upd: Common. Getting check_js updated.
|
1260 |
-
* Upd: SFW. Description updated.
|
1261 |
-
* Fix: Reversed URL exclusions.
|
1262 |
-
* Fix: Settings. Sync button success ico fixed.
|
1263 |
-
* Fix: Show response for all AJAX forms #3.
|
1264 |
-
* Fix: GDPR. Warning text output.
|
1265 |
-
* Fix: Integration class consider settings.
|
1266 |
-
* Fix: Exclusions. URL exclusions fixed.
|
1267 |
-
* Fix: Services Templates. Getting templates optimized.
|
1268 |
-
* Fix: Services Templates. Possible XSS fixed.
|
1269 |
-
* Fix: Services Templates. Design layout fixed.
|
1270 |
-
* Fix: Family of settings comments__disable_comments__* dependencies.
|
1271 |
-
* Fix: DisableComments class. Media post type includes 'attachment' type.
|
1272 |
-
* Fix: Exclusion for Thrive Ultimatum.
|
1273 |
-
* Fix: Common/Helper::http__get_headers() ignores empty header name parts.
|
1274 |
-
* Fix: Exclusion for GiveWP plugin in apbct-public.js.
|
1275 |
-
* Fix: Do not consider 501 as correct HTTP response code when getting FW data files.
|
1276 |
-
* Fix: AntiCrawler::update(). Correct error codes.
|
1277 |
-
* Fix: ApbctWP\Firewall\SFW::update(). Correct URLs for FILE with protocol.
|
1278 |
-
* Fix: PHP 8 deprecated notices.
|
1279 |
-
* Fix: Settings. Reversed dependencies. Applies to WooCommerce and Disable Comments settings.
|
1280 |
-
* Fix: DisableComments::template__check() returns the correct number of comments for enabled types of posts.
|
1281 |
-
* Fix: DisableComments class. Visibility of some methods.
|
1282 |
-
* Exception: Paid Memberships Pro - Login Form.
|
1283 |
-
* Fix: Exception the SFW check for queries with '/favicon.ico' string.
|
1284 |
-
|
1285 |
-
= 5.154 Mar 17 2021 =
|
1286 |
-
* New: Settings Templates functionality implemented.
|
1287 |
-
* New: SFW. Anti-flood protection uses UA lists for filtration.
|
1288 |
-
* Fix: Forms. Getting check_js delay removed.
|
1289 |
-
* Fix: Forms. Rotation check_js fixed.
|
1290 |
-
* Fix: Integration. Newspaper-theme login form protection skipped.
|
1291 |
-
* Fix: Integration. Newspaper-theme reset password form protection skipped.
|
1292 |
-
* Fix: Forms. Gravity Forms paypal addon processing skipped.
|
1293 |
-
* Fix: Exclusion for wpDiscuz - Online Users Addon.
|
1294 |
-
* Fix: Remote Calls. Wrapper http__request__rc_to_host() don't get an array
|
1295 |
-
* Fix: JS. Modal window fixed.
|
1296 |
-
* Fix: JS. Show AJAX result fixed.
|
1297 |
-
* Fix: Skip. Save abandoned cart checking skip.
|
1298 |
-
* Fix: Skip. SUMODISCOUNT discout request skip.
|
1299 |
-
* Fix: Skip. WP eMember login form skip.
|
1300 |
-
* Fix: SFW. Do not cache constants added.
|
1301 |
-
* Fix: SFW. AC/AF logging fixed.
|
1302 |
-
|
1303 |
-
= 5.153.7 Mar 15 2021 =
|
1304 |
-
* Fix: SFW. Updating fixed.
|
1305 |
-
|
1306 |
-
= 5.153.6 Mar 12 2021 =
|
1307 |
-
* Fix: Show response for all AJAX forms #2.
|
1308 |
-
|
1309 |
-
= 5.153.5 Mar 10 2021 =
|
1310 |
-
* Fix: Show response for all AJAX forms.
|
1311 |
-
|
1312 |
-
= 5.153.4 Mar 10 2021 =
|
1313 |
-
* New: SFW. Log could be sent not more often than 3 minutes.
|
1314 |
-
* New: SFW. Possibility to use DELETE instead of TRUNCATE to delete SFW log.
|
1315 |
-
* New: Show response for all AJAX forms.
|
1316 |
-
* Fix: SFW. Sending log. Committing transaction after TRUNCATE log table.
|
1317 |
-
* Fix: Integration. CF7 different versions compatibility fixed.
|
1318 |
-
* Fix: Exclusion for WooCommerce.
|
1319 |
-
* Fix: Possible SQL-injections fixed.
|
1320 |
-
|
1321 |
-
= 5.153.3 Feb 25 2021 =
|
1322 |
-
* Fix: Security. Preparing UA string for writing to the DB.
|
1323 |
-
|
1324 |
-
= 5.153.2 Feb 25 2021 =
|
1325 |
-
* Fix: Integration. Registration on WICITY theme.
|
1326 |
-
* Fix: Integration. Registration on Paid Memberships Pro
|
1327 |
-
* Fix: IP detection.
|
1328 |
-
* Fix: Error: SFW_DISABLED.
|
1329 |
-
* Fix: Formidable form. Error with sophisticated field types.
|
1330 |
-
* Fix: Remote Calls. Cooldown checking for the SFW update fixed.
|
1331 |
-
* Fix: easy-login-woocommerce requests exclusion fixed.
|
1332 |
-
* Fix: Jackmail plugin. Skip all admin-side actions.
|
1333 |
-
* Fix: Remote Calls. Unused deactivation option removed.
|
1334 |
-
* Fix: Users checker. Last check date fixed.
|
1335 |
-
* Fix: Users checker. Total users count description fixed.
|
1336 |
-
|
1337 |
-
= 5.153.1 Feb 20 2021 =
|
1338 |
-
* Fix: CF7. Modified spam hook #2
|
1339 |
-
|
1340 |
-
= 5.153 Feb 17 2021 =
|
1341 |
-
* New: Integrations. WPDiscuz integration implemented.
|
1342 |
-
* New: Using custom modal message instead allert.
|
1343 |
-
* New: JS cleantalk-modal added.
|
1344 |
-
* New: Cleantalk\ApbctWP\RemoteCalls class.
|
1345 |
-
* New: Remote calls using Cleantalk\ApbctWP\RemoteCalls class.
|
1346 |
-
* New: Cleantalk\ApbctWP\Helper::http__request__rc_to_host(). Wrapper to using RC to the website itself. Makes testing RC before make main.
|
1347 |
-
* New: Cleantalk\ApbctWP\State::error_toggle().
|
1348 |
-
* New: SFW update. Make test RC before main.
|
1349 |
-
* Udp: Integrations. Support several hooks for one integration.
|
1350 |
-
* Fix: Users. Feedback sending via deleting user fixed.
|
1351 |
-
* Fix: Users checker. Feedback sending via deleting user fixed.
|
1352 |
-
* Fix: IP detection.
|
1353 |
-
* Fix: Users scan. Confirmation message fixed.
|
1354 |
-
* Fix: SFW. The anti-flood option moved to the advanced settings.
|
1355 |
-
* Fix: SFW. Show the right url on block page for WPMS.
|
1356 |
-
* Fix: SFW. The anti-crawler option description fixed.
|
1357 |
-
* Fix: SFW. The anti-flood option description fixed.
|
1358 |
-
* Fix: SFW. AC checking on login page fixed.
|
1359 |
-
* Fix: CF7. Modified spam hook.
|
1360 |
-
* Fix: SFW. send_logs returning error.
|
1361 |
-
* Fix: Cleantalk class fixed.
|
1362 |
-
* Fix: Clearing errors storage before sync.
|
1363 |
-
* Fix: Clearing SFW errors on updating to 5.151.6.
|
1364 |
-
* Fix: Updater. Support updating for versions without fix number implemented.
|
1365 |
-
* Fix: "Email Before Download" plugin request will be skipped.
|
1366 |
-
* Fix: SFW. Auto-updating option fixed for multisite activation.
|
1367 |
-
* Fix: Exception for Xoo login form.
|
1368 |
-
* Fix: Users deleting feedback fixed.
|
1369 |
-
|
1370 |
-
= 5.152.5 Feb 04 2021 =
|
1371 |
-
* Fix: SFW. Auto-updating interval decreased to 5 mins.
|
1372 |
-
* Fix: Divi. Skip saving epanel.
|
1373 |
-
* New: Find users/comments table. Add footer description.
|
1374 |
-
* Fix: SFW. UA option removed.
|
1375 |
-
* Fix: SFW. AC checking by UA enabled by default.
|
1376 |
-
* Fix: SFW. AF disabled by default for the new installations.
|
1377 |
-
|
1378 |
-
= 5.152.4 Feb 01 2021 =
|
1379 |
-
* Fix: Cron tasks compare fixed.
|
1380 |
-
|
1381 |
-
= 5.152.3 Jan 31 2021 =
|
1382 |
-
* Fix: Error: SFW_DISABLED.
|
1383 |
-
* Fix: Moderate connection timeout increased to 6sec.
|
1384 |
-
* Fix: SFW uses the right API class.
|
1385 |
-
|
1386 |
-
= 5.152.2 Jan 30 2021 =
|
1387 |
-
* Fix: API-requests.
|
1388 |
-
|
1389 |
-
= 5.152.1 Jan 29 2021 =
|
1390 |
-
* Fix: Errors in IP detection.
|
1391 |
-
|
1392 |
-
= 5.152 Jan 29 2021 =
|
1393 |
-
* Fix: Using server protocol for AC checking.
|
1394 |
-
* Fix: Prevent caching db queries for SFW.
|
1395 |
-
* Fix: mgm registration temp fix.
|
1396 |
-
* Upd: Checking skipped request replaced.
|
1397 |
-
* Fix: Bookly plugin service requests checking skipped.
|
1398 |
-
* Fix: Youzier login form skipped.
|
1399 |
-
* Fix: InJob theme lost password skipped.
|
1400 |
-
* Upd: Showing plugin version on SFW block page.
|
1401 |
-
* Fix: fix request id rotation.
|
1402 |
-
* Mod: Show "Insert users" button only for local web servers.
|
1403 |
-
* Upd: Checking skipped request replaced for non-ajax requests.
|
1404 |
-
* Fix: BuddyPress edit profile checking skippped.
|
1405 |
-
* Fix: Unused code removed.
|
1406 |
-
* Upd: Helper::ip__get() method updated.
|
1407 |
-
* Fix: UltimateMember password reset skipped.
|
1408 |
-
* Del: Unused code removed.
|
1409 |
-
* New: Server::get() now can accept 'URI' as an parameter. Returns full URI like 'http://domain.net/request/path?parameter=value#fragment
|
1410 |
-
* Mod: apbct_exclusions_check__url__reversed() simplifed and PHPDoc'ed.
|
1411 |
-
* Mod: apbct_base_call exclusions revised.
|
1412 |
-
* Mod: $cleantalk_executed chaos simplified.
|
1413 |
-
* Upd: Shedule sfw update once again if it failed.
|
1414 |
-
* Fix: Delete cleantalk options via uninstalling.
|
1415 |
-
* Fix: Deleting table for network sites fixed.
|
1416 |
-
* Fix: Using host header for AC checking.
|
1417 |
-
* Fix: Expression formatting fixed.
|
1418 |
-
* Mod: Cron. Do not runs when it already runs.
|
1419 |
-
* Mod: Cron class updated.
|
1420 |
-
|
1421 |
-
= 5.151.4 Jan 18 2021 =
|
1422 |
-
* Fix: Users checking performance fix.
|
1423 |
-
* Fix: AC disabled if SFW contains less than 50 entries.
|
1424 |
-
|
1425 |
-
= 5.151.3 Jan 15 2021 =
|
1426 |
-
* Fix: Prevent logging false blocking for whitelisted networks.
|
1427 |
-
* Integration: Rafflepress integration implemented.
|
1428 |
-
* Fix: AF limit increased to 20 by default.
|
1429 |
-
* Fix: skip Sumo waitlist internal request.
|
1430 |
-
* Fix: skip raq internal request.
|
1431 |
-
* Fix: check comments number if comment email exists.
|
1432 |
-
* New: Schema class added.
|
1433 |
-
* Fix: SFW - Creation sfw table if not exist.
|
1434 |
-
* Fix: Updater - Creation sfw table if not exist.
|
1435 |
-
* New: Schema class used.
|
1436 |
-
* New: AC disabled if networks count is 0.
|
1437 |
-
* Fix: SFW updating id getting fixed.
|
1438 |
-
* Fix: SFW networks counter fixed.
|
1439 |
-
* Fix: Deleting options fixed.
|
1440 |
|
1441 |
= Early changelogs look in changelog.txt =
|
2 |
Contributors: safronik
|
3 |
Tags: spam, antispam, anti-spam, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 5.9
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 5.170
|
8 |
License: GPLv2
|
9 |
|
10 |
Spam protection, anti-spam, firewall, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
595 |
|
596 |
== Changelog ==
|
597 |
|
598 |
+
= 5.170 Jan 13 2022 =
|
599 |
+
#### One integration added, CleanTalk pixel functionality fixed and minor issues fixed.
|
600 |
+
* Mod: Added Ova Login Integration. Registrations under protection
|
601 |
+
* Fix. Common. is_trackback() notice fixed.
|
602 |
+
* Fix: Removed the exeption for Quick Contact Form from ct_contact_form_validate()
|
603 |
+
* Fix: Moved the function apbct_settings__get_ajax_type() to cleantalk-pluggable.php to fix the plugin activation error via the CLI
|
604 |
+
* Fix: Fixed errors in apbct-public.js
|
605 |
+
* Fix: Cleared notice_incompatibility if SFW disabled
|
606 |
+
* Fix. AC. Antibot cookie fixed.
|
607 |
+
* Fix. Pixel. Auto mode fixed.
|
608 |
+
* Fix. JS. Checking JS via ajax fixed.
|
609 |
+
* Fix. Pixel. Getting pixel url from backend fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
|
611 |
= Early changelogs look in changelog.txt =
|