Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
32 changes: 32 additions & 0 deletions includes/class-ayecode-connect-turnstile-settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,38 @@ public function settings_page() {
];
}

if ( defined( 'UWP_GETRESPONSE_VERSION' ) ) {
$turnstile_protections['uwp_getresponse_subscribe'] = [
'title' => __( 'UsersWP - Getresponse Subscribe Form', 'ayecode-connect' ),
'default' => true
];
$turnstile_protections['uwp_getresponse_unsubscribe'] = [
'title' => __( 'UsersWP - Getresponse Unsubscribe Form', 'ayecode-connect' ),
'default' => true
];
}

if ( defined( 'UWP_AWEBER_VERSION' ) ) {
$turnstile_protections['uwp_aweber_subscribe'] = [
'title' => __( 'UsersWP - Aweber Subscribe Form', 'ayecode-connect' ),
'default' => true
];
$turnstile_protections['uwp_aweber_unsubscribe'] = [
'title' => __( 'UsersWP - Aweber Unsubscribe Form', 'ayecode-connect' ),
'default' => true
];
}

if ( defined( 'UWP_CC_VERSION' ) ) {
$turnstile_protections['uwp_cc_subscribe'] = [
'title' => __( 'UsersWP - Constant Contact Subscribe Form', 'ayecode-connect' ),
'default' => true
];
$turnstile_protections['uwp_cc_unsubscribe'] = [
'title' => __( 'UsersWP - UWP_CC_VERSION Unsubscribe Form', 'ayecode-connect' ),
'default' => true
];
}

// UWP Frontend Post Addon
if ( defined( 'UWP_FRONTEND_POST_VERSION' ) ) {
Expand Down
111 changes: 111 additions & 0 deletions includes/class-ayecode-connect-turnstile.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ public function __construct() {
'uwp_active_campaign_unsubscribe' => 1,
'uwp_brevo_subscribe' => 1,
'uwp_brevo_unsubscribe' => 1,
'uwp_getresponse_subscribe' => 1,
'uwp_getresponse_unsubscribe' => 1,
'uwp_aweber_subscribe' => 1,
'uwp_aweber_unsubscribe' => 1,
'uwp_cc_subscribe' => 1,
'uwp_cc_unsubscribe' => 1,
)
);

Expand Down Expand Up @@ -175,6 +181,21 @@ private function init_hooks() {
add_action( 'uwp_brevo_form_validate', array( $this, 'verify_uwp_brevo_subscribe' ), 20,1 );
}

if ( ! empty( $this->options['protections']['uwp_getresponse_subscribe'] ) || ! empty( $this->options['protections']['uwp_getresponse_unsubscribe'] ) ) {
add_action( 'uwp_getresponse_subscribe_fields', array( $this, 'add_turnstile_uwp_getresponse_forms' ), 10, 1 );
add_action( 'uwp_getresponse_form_validate', array( $this, 'verify_uwp_getresponse_subscribe' ), 20,1 );
}

if ( ! empty( $this->options['protections']['uwp_aweber_subscribe'] ) || ! empty( $this->options['protections']['uwp_aweber_unsubscribe'] ) ) {
add_action( 'uwp_aweber_subscribe_fields', array( $this, 'add_turnstile_uwp_aweber_forms' ), 10, 1 );
add_action( 'uwp_aweber_form_validate', array( $this, 'verify_uwp_aweber_subscribe' ), 20,1 );
}

if ( ! empty( $this->options['protections']['uwp_cc_subscribe'] ) || ! empty( $this->options['protections']['uwp_cc_unsubscribe'] ) ) {
add_action( 'uwp_cc_subscribe_fields', array( $this, 'add_turnstile_uwp_cc_forms' ), 10, 1 );
add_action( 'uwp_cc_form_validate', array( $this, 'verify_uwp_cc_subscribe' ), 20,1 );
}

// UWP Frontend Post Addon
if ( ! empty( $this->options['protections']['uwp_frontend'] ) ) {
add_action( 'uwp_frontend_post_after_form_fields', array(
Expand Down Expand Up @@ -479,6 +500,96 @@ public function add_turnstile_uwp_brevo_forms( $args ) {
}
}

public function add_turnstile_uwp_getresponse_forms( $args ) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if ( $args['type'] == 'subscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_getresponse_subscribe'])) {
$this->add_turnstile_widget();
}

if ($args['type'] == 'unsubscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_getresponse_unsubscribe']) ) {
$this->add_turnstile_widget();
}
}

public function verify_uwp_getresponse_subscribe($data) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if(is_array($data)) {
if($data['action'] == 'uwp_getresponse_subscribe' && $ayecode_turnstile_options['protections']['uwp_getresponse_subscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_getresponse_subscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
if($data['action'] == 'uwp_getresponse_unsubscribe' && $ayecode_turnstile_options['protections']['uwp_getresponse_unsubscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_getresponse_unsubscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
}
return $data;
}

public function add_turnstile_uwp_aweber_forms( $args ) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if ( $args['type'] == 'subscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_aweber_subscribe'])) {
$this->add_turnstile_widget();
}

if ($args['type'] == 'unsubscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_aweber_unsubscribe']) ) {
$this->add_turnstile_widget();
}
}

public function verify_uwp_aweber_subscribe($data) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if(is_array($data)) {
if($data['action'] == 'uwp_aweber_subscribe' && $ayecode_turnstile_options['protections']['uwp_aweber_subscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_aweber_subscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
if($data['action'] == 'uwp_aweber_unsubscribe' && $ayecode_turnstile_options['protections']['uwp_aweber_unsubscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_aweber_unsubscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
}
return $data;
}

public function add_turnstile_uwp_cc_forms( $args ) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if ( $args['type'] == 'subscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_cc_subscribe'])) {
$this->add_turnstile_widget();
}

if ($args['type'] == 'unsubscribe' && ! empty($ayecode_turnstile_options['protections']['uwp_cc_unsubscribe']) ) {
$this->add_turnstile_widget();
}
}

public function verify_uwp_cc_subscribe($data) {
$ayecode_turnstile_options = get_option( 'ayecode_turnstile_options');
if(is_array($data)) {
if($data['action'] == 'uwp_cc_subscribe' && $ayecode_turnstile_options['protections']['uwp_cc_subscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_cc_subscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
if($data['action'] == 'uwp_cc_unsubscribe' && $ayecode_turnstile_options['protections']['uwp_cc_unsubscribe'] == true) {
$verify = $this->verify_turnstile( 'uwp_cc_unsubscribe' );
if ( is_wp_error( $verify ) ) {
return $verify;
}
}
}
return $data;
}

/**
* Add some CSS for the login form sizing.
*
Expand Down
5 changes: 5 additions & 0 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ If your host runs "mod security" on your hosting and has some specific additiona

== Changelog ==

= 1.4.15 - 2026-1-TBD =
* Turnstile captcha support for UWP Getresponse addon forms - ADDED
* Turnstile captcha support for UWP Aweber addon forms - ADDED
* Turnstile captcha support for UWP Constant Contact addon forms - ADDED

= 1.4.14 - 2025-12-04 =
* Remove unused plugin array elements from API calls to prevent issues with servers with low max_input_vars - FIXED

Expand Down