Skip to content
Merged

beta #902

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
5b78a8d
Udp.Code.WooCommerce integration
datorik Aug 13, 2026
bccf9f8
Udp.Code.Security WooCommerce UI
datorik Aug 14, 2026
871476a
Udp.Code.Security WooCommerce UI
datorik Aug 18, 2026
d793212
Udp.Code.Security WooCommerce UI
datorik Aug 20, 2026
5304c09
Udp.Code.Security WooCommerce UI
datorik Aug 20, 2026
bc37ac3
Udp.Code.Security WooCommerce UI
datorik Aug 21, 2026
f311aa3
Udp.Code.Security WooCommerce UI
datorik Aug 21, 2026
f905764
Merge branch 'dev' into woo-commerce-update.ab-2
datorik Aug 24, 2026
f55e34f
Code review
alexander-b-clean Aug 24, 2026
06c8bed
Code review
alexander-b-clean Aug 24, 2026
1400e41
Fix errors psalm
AntonV1211 Aug 24, 2026
9601aa2
Merge remote-tracking branch 'origin/woo-commerce-update.ab-2' into w…
datorik Aug 24, 2026
8b6b2d0
Udp.Code.Security WooCommerce UI. Task 1
datorik Sep 8, 2026
1303148
Udp.Code.Security WooCommerce UI. Task 2
datorik Sep 9, 2026
2abe12c
Udp.Code.Security WooCommerce UI. Task 3
datorik Sep 9, 2026
7c1c2d3
Merge master into dev
svedge Sep 17, 2026
968b546
Update version.
svedge Sep 17, 2026
629a7dc
Merge master into fix
svedge Sep 17, 2026
2e75bb2
Update version.
svedge Sep 17, 2026
cb60257
Fix. Contacts Encoder. Simple precheck content before high-cost logic…
alexandergull Sep 17, 2026
4c46f3c
Fix. JS. Flag for logic initiation in case of a one-time DOMContentLo…
AntonV1211 Sep 18, 2026
b967918
Fix. SimpleMembership. Editing the integration for working with a mul…
AntonV1211 Sep 18, 2026
096bee4
Merge pull request #891 from CleanTalk/cde-prefilter-shortcode.ag
alexandergull Sep 21, 2026
decfd21
Fix. Code. Checking ajax_type and editing ctPublicFunctions search
AntonV1211 Sep 22, 2026
cff8f5c
Fix. Code. Deleting service fields after checking for spam
AntonV1211 Sep 22, 2026
b0047ae
Merge branch 'dev' into woo-commerce-update.ab-2
alexandergull Sep 22, 2026
dde7ba8
Upd. WooCommerce. New option to manage if rejection message have to b…
alexandergull Sep 22, 2026
b59f535
Code. Tests.
alexandergull Sep 22, 2026
558f3d5
Fix. WooCommerce. Match the actual thank-you template name for the bl…
alexandergull Sep 22, 2026
0f15ecf
Fix. WooCommerce. Restore a legacy admin page fallback for stored spa…
alexandergull Sep 22, 2026
b40a3f4
Fix. WooCommerce. Rename the spam orders 'Total' column to 'Items tot…
alexandergull Sep 22, 2026
b651bd5
Fix. WooCommerce. Prevent a fatal error in replaceOrdersListRenderer(…
alexandergull Sep 22, 2026
e2e5698
Code. Fixed test falling.
alexandergull Sep 22, 2026
d406afd
Fix. WooCommerce. Build the Store API checkout response before deleti…
alexandergull Sep 22, 2026
94cb1b5
Fix. WooCommerce. Point the settings 'spam orders' link to the correc…
alexandergull Sep 22, 2026
c38aae0
Fix. WooCommerce. Align spam orders capability checks on manage_options.
alexandergull Sep 22, 2026
053d354
Fix. WooCommerce. Don't pass HPOS view links into the legacy spam ord…
alexandergull Sep 22, 2026
89a22cc
Fix. WooCommerce. Route the admin bar 'spam orders' link by HPOS/lega…
alexandergull Sep 23, 2026
5ad7fb0
Merge pull request #892 from CleanTalk/flag_init_av
AntonV1211 Sep 23, 2026
37c3240
Fix. WooCommerce. Render the blocked order overview on the block base…
alexandergull Sep 23, 2026
f4c3f66
Fix. ExternalForms. Editing changes to form fields, checking whether …
AntonV1211 Sep 24, 2026
22e9106
Upd. Firewall. Emergency bypass logic updated to token-via-email mode…
alexandergull Sep 24, 2026
735d3a0
Fix. WooCommerce. Use dedicated request parameters for the spam order…
alexandergull Sep 25, 2026
b6945e5
Merge pull request #867 from CleanTalk/woo-commerce-update.ab-2
alexandergull Sep 25, 2026
1deb352
New. Integration. Integration with Pagelayer
AntonV1211 Sep 25, 2026
efd0bf9
Merge fix
AntonV1211 Sep 25, 2026
5cc8942
Deleting unnecessary code
AntonV1211 Sep 25, 2026
e00ae42
Unit tests
AntonV1211 Sep 25, 2026
e797995
Merge fix
AntonV1211 Sep 28, 2026
e64f96b
Merge pull request #895 from CleanTalk/fix_dbl_req_av
AntonV1211 Sep 28, 2026
aca9d7a
Merge pull request #893 from CleanTalk/fix_integ_simple_memb_av
AntonV1211 Sep 28, 2026
8a5c8fa
Dev. Code. Merge, rebuild js
AntonV1211 Sep 29, 2026
7f04a5b
Dev. Code. Merge, rebuild js
AntonV1211 Sep 29, 2026
3df6c42
Fix. EncodeContent. Default value for methods
AntonV1211 Sep 29, 2026
772b91a
New. Plugins page. Show changelog in the update notice. https://app.d…
alexandergull Sep 29, 2026
01c37ad
Dev. CP. Fixed version gathering and KSES ruleset.
alexandergull Sep 29, 2026
f03524c
Merge pull request #897 from CleanTalk/sfw_bypass.ag
alexandergull Sep 29, 2026
7dc1882
Merge pull request #896 from CleanTalk/fix_rmv_srv_fields_av
alexandergull Sep 29, 2026
5e487eb
Merge branch 'fix' into beta
alexandergull Sep 29, 2026
1cbf2de
Dev. JS recompression.
alexandergull Sep 29, 2026
c263f6f
Version: 6.89
alexandergull Sep 29, 2026
5bf5f87
Upd. Integrations. Add check for woo add pay method. (#898)
svedge Sep 30, 2026
80f4286
Merge pull request #901 from CleanTalk/apbct_changelog_in_notice.ag
alexandergull Sep 30, 2026
a452ddc
Upd. ContactsEncoder. Lot of search logic updates.
alexandergull Sep 17, 2026
6790e72
Merge branch 'dev' into fix_ismaillink_overload.ag
alexandergull Oct 1, 2026
a833cb8
Merge branch 'fix_ismaillink_overload.ag' into beta
alexandergull Oct 1, 2026
77e0784
Dev. Changelog updates.
alexandergull Oct 1, 2026
4b5158d
Dev. Changelog updates.
alexandergull Oct 1, 2026
9e88605
Dev. WooCommerce logic and settings updated.
alexandergull Oct 2, 2026
daa5a78
Fix. ContactsEncoder. Breaking attributes fixed.
alexandergull Oct 3, 2026
3d681c4
Merge branch 'master' into beta
alexandergull Oct 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions cleantalk.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Plugin Name: Anti-Spam by CleanTalk
Plugin URI: https://cleantalk.org
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.
Version: 6.88
Version: 6.89
Author: CleanTalk - Anti-Spam Protection <welcome@cleantalk.org>
Author URI: https://cleantalk.org
Text Domain: cleantalk-spam-protect
Expand All @@ -29,6 +29,7 @@
use Cleantalk\ApbctWP\Deactivator;
use Cleantalk\ApbctWP\Firewall\AntiCrawler;
use Cleantalk\ApbctWP\Firewall\AntiFlood;
use Cleantalk\ApbctWP\Firewall\FirewallBypass;
use Cleantalk\ApbctWP\Firewall\SFW;
use Cleantalk\ApbctWP\Firewall\SFWUpdateHelper;
use Cleantalk\ApbctWP\Helper;
Expand Down Expand Up @@ -898,7 +899,7 @@ function apbct_sfw__check()
}
}

// Skip the check
// Skip the check (legacy way, remove in future)
if ( ! empty(Get::get('access')) ) {
$spbc_settings = get_option('spbc_settings');
$spbc_key = ! empty($spbc_settings['spbc_key']) ? $spbc_settings['spbc_key'] : false;
Expand Down Expand Up @@ -938,6 +939,12 @@ function apbct_sfw__check()
return;
}

// Emergency bypass: consume the one-time link from the admin email, then check the granted bypass.
FirewallBypass::maybeSetUserToken();
if (FirewallBypass::bypassByUserToken()) {
return;
}

$firewall = new Firewall(
DB::getInstance()
);
Expand Down
2 changes: 1 addition & 1 deletion css/cleantalk-admin-settings-page.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion css/cleantalk-admin.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions css/src/cleantalk-admin-settings-page.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ i.animate-spin {
margin: 15px 0;
}
.apbct_settings-field_wrapper--sub{ margin-left: 30px !important; }
.apbct_settings-field_wrapper--sub-sub{ margin-left: 60px !important; }

.apbct_settings-field_title{ }
.apbct_settings__label{
Expand Down
45 changes: 45 additions & 0 deletions css/src/cleantalk-admin.css
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,51 @@
.apbct-details-spam-order-button {
color: gray;
}

/* WooCommerce orders list alike view of the spam orders table.
The order column has no width, so it takes all the space left. */
.wp-list-table.wc_spam_orders .column-ct_order_date,
.wp-list-table.wc_spam_orders .column-ct_status,
.wp-list-table.wc_spam_orders .column-ct_total {
width: 15%;
}

.wp-list-table.wc_spam_orders td {
vertical-align: middle;
}

.wp-list-table.wc_spam_orders .apbct-order-view {
color: #2271b1;
text-decoration: none;
}

.wp-list-table.wc_spam_orders .apbct-order-view:hover {
color: #135e96;
}

.apbct-order-status {
display: inline-flex;
line-height: 2.5em;
color: #454545;
background: #e5e5e5;
border-radius: 4px;
border-bottom: 1px solid rgba(0, 0, 0, .05);
margin: -.25em 0;
cursor: inherit !important;
white-space: nowrap;
max-width: 100%;
}

.apbct-order-status > span {
margin: 0 1em;
overflow: hidden;
text-overflow: ellipsis;
}

.apbct-order-status--spam {
background: #eba3a3;
color: #570000;
}
.ct-modal-buttons {
display: flex;
align-items: center;
Expand Down
10 changes: 9 additions & 1 deletion inc/cleantalk-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Cleantalk\ApbctWP\CleantalkSettingsTemplates;
use Cleantalk\ApbctWP\ContactsEncoder\ContactsEncoder;
use Cleantalk\ApbctWP\Escape;
use Cleantalk\ApbctWP\UpdateChangelogNotice;
use Cleantalk\ApbctWP\Variables\Get;
use Cleantalk\ApbctWP\Variables\Post;
use Cleantalk\ApbctWP\Variables\Server;
Expand Down Expand Up @@ -35,6 +36,7 @@
add_action('comment_spam_to_unapproved', 'apbct_comment__remove_meta_approved', 10, 1);
add_action('comment_trash_to_unapproved', 'apbct_comment__remove_meta_approved', 10, 1);

UpdateChangelogNotice::register();
/**
* Crunch for Anti-Bot
* Hooked by 'admin_head'
Expand Down Expand Up @@ -1194,11 +1196,17 @@ function apbct_admin__admin_bar__add_child_nodes($wp_admin_bar)

// Add a child item to our parent item. Bulk checks.
if ( ! is_network_admin() && apbct_is_plugin_active('woocommerce/woocommerce.php') ) {
// HPOS installations render the spam orders view inline on the wc-orders screen;
// legacy (posts table) installations get a separate fallback admin page instead.
$spam_orders_page = function_exists('wc_get_page_screen_id') && wc_get_page_screen_id('shop_order') !== 'shop_order'
? 'wc-orders&amp;status=wc-spamorder'
: 'apbct_wc_spam_orders';

$wp_admin_bar->add_node(
array(
'parent' => 'apbct__parent_node',
'id' => 'ct_settings_bulk_orders',
'title' => '<a href="admin.php?page=apbct_wc_spam_orders" title="Bulk spam orders removal tool.">'
'title' => '<a href="admin.php?page=' . $spam_orders_page . '" title="Bulk spam orders removal tool.">'
. __('WooCommerce spam orders', 'cleantalk-spam-protect') . '</a>',
)
);
Expand Down
6 changes: 6 additions & 0 deletions inc/cleantalk-ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,9 @@
/* The Fluent Form have the direct integration */
$_cleantalk_hooked_actions[] = 'fluentform_submit';

/* WooCommerce Stripe UPE confirms the card on Add payment method. Direct integration. */
$_cleantalk_hooked_actions[] = 'wc_stripe_create_and_confirm_setup_intent';

/* Estimation Forms have the direct integration */
if ( class_exists('LFB_Core') ) {
$_cleantalk_hooked_actions[] = 'send_email';
Expand Down Expand Up @@ -556,6 +559,9 @@ function ct_ajax_hook($message_obj = null)

$base_call_result = apbct_base_call($base_call_params, $reg_flag);

// Remove service fields from POST before any early return.
apbct_clear_post_service_data_after_base_call();

if (!isset($base_call_result['ct_result'])) {
return null;
}
Expand Down
5 changes: 5 additions & 0 deletions inc/cleantalk-integrations-by-hook.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@
'setting' => 'forms__contact_forms_test',
'ajax' => true
),
'Pagelayer' => array(
'hook' => 'pagelayer_contact_submit_start',
'setting' => 'forms__contact_forms_test',
'ajax' => false
),
'EstimationForm' => array('hook' => 'send_email', 'setting' => 'forms__contact_forms_test', 'ajax' => true),
'LandingPageBuilder' => array(
'hook' => 'ulpb_formBuilderEmail_ajax',
Expand Down
11 changes: 10 additions & 1 deletion inc/cleantalk-pluggable.php
Original file line number Diff line number Diff line change
Expand Up @@ -2128,6 +2128,15 @@ class_exists('Cleantalk\Antispam\Integrations\CleantalkInternalForms')
return 'Nex Forms';
}

// Pagelayer contact form has the direct integration.
// The form posts to admin-ajax.php?action=..., so the action arrives via GET.
if (
apbct_is_plugin_active('pagelayer/pagelayer.php') &&
Request::getString('action') === 'pagelayer_contact_submit'
) {
return 'Pagelayer contact form - has the direct integration';
}

return false;
}

Expand Down Expand Up @@ -2168,7 +2177,7 @@ function apbct_settings__get_ajax_type()
$localize = null;

if ( is_string($frontend_body) ) {
preg_match_all('@const ctPublicFunctions.*{(.*)}@', $frontend_body, $matches);
preg_match_all('@var ctPublicFunctions.*{(.*)}@', $frontend_body, $matches);
if ( isset($matches[1][0]) ) {
$localize = json_decode('{' . $matches[1][0] . '}', true);
}
Expand Down
Loading
Loading