From 616eeb18331338f05e55036fef0ffadf20a5da41 Mon Sep 17 00:00:00 2001
From: kagg-design <info@kagg.eu>
Date: Sat, 25 Jan 2025 23:00:37 +0300
Subject: [PATCH] Fix bug in GF shortcode (via tests).

---
 src/php/GravityForms/Form.php | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/php/GravityForms/Form.php b/src/php/GravityForms/Form.php
index dfe8ee5f..5eb55bda 100644
--- a/src/php/GravityForms/Form.php
+++ b/src/php/GravityForms/Form.php
@@ -96,7 +96,7 @@ public function add_hcaptcha( $button_input, array $form ): string {
 
 		$form_id = $form['id'] ?? 0;
 
-		if ( $this->mode_embed && $this->has_hcaptcha( $form_id ) ) {
+		if ( $this->has_hcaptcha( $form_id ) ) {
 			return $button_input;
 		}
 
@@ -354,7 +354,7 @@ private function should_verify(): bool {
 			$form_meta = (array) GFFormsModel::get_form_meta( $form_id );
 
 			if (
-				0 !== (int) $_POST[ $target_page_name ] &&
+				0 !== $target_page &&
 				$target_page !== $source_page &&
 				isset(
 					$form_meta['pagination']['pages'][ $target_page - 1 ],
@@ -398,9 +398,12 @@ private function has_hcaptcha( int $form_id ): bool {
 		$captcha_types = [ 'captcha', 'hcaptcha' ];
 
 		foreach ( $form['fields'] as $field ) {
+			$type    = $field->type ?? '';
+			$content = $field->content ?? '';
+
 			if (
-				in_array( $field->type, $captcha_types, true ) ||
-				has_shortcode( $field['content'], 'hcaptcha' )
+				( $this->mode_embed && in_array( $type, $captcha_types, true ) ) ||
+				has_shortcode( $content, 'hcaptcha' )
 			) {
 				return true;
 			}