Add ReCaptcha for become member form.
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 1 May 2018 13:38:06 +0000 (09:38 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 1 May 2018 13:38:06 +0000 (09:38 -0400)
Adding the ReCaptcha to the signup form.

models/front/billing/becomeMember.php
views/front/billing/becomeMember.html

index 2b6dfd0..1982df1 100644 (file)
@@ -115,6 +115,29 @@ class GlmMembersFront_billing_becomeMember // extends GlmDataBilling
             break;
 
         case 'newMembership':
+            // Check the form for reCaptcha
+            $response = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array(
+                'method'  => 'POST',
+                'timeout' => 45,
+                'redirection' => 5,
+                'httpversion' => '1.0',
+                'blocking' => true,
+                'headers' => array(),
+                'body' => array(
+                    'secret'   => '6LfEilYUAAAAAIcRJthzVTjLxiznY4DiYP3zDqIw',
+                    'response' => $_REQUEST['g-recaptcha-response'],
+                    'remoteip' => $_SERVER['REMOTE_ADDR']
+                ),
+                'cookies' => array()
+            ) );
+
+            $response_code = wp_remote_retrieve_response_code( $response );
+            $api_response = json_decode( wp_remote_retrieve_body( $response ), true );
+            if ( $api_response['success'] != true ) {
+                $error = true;
+                $messages[] = $errors['email'] = "<span style='color: red;'>Invalid Captcha value!</span>";
+            }
+
             $payable_types = $BillingSupport->getAllPayableInvoiceTypes();
             // $messages[] = '<pre>$_REQUEST: ' . print_r( $_REQUEST, true ) . '</pre>';
             // Need to see if the email address they're using is already setup as a contact.
@@ -493,6 +516,8 @@ class GlmMembersFront_billing_becomeMember // extends GlmDataBilling
             break;
 
         default:
+            wp_register_script( 'recaptcha', 'https://www.google.com/recaptcha/api.js' );
+            wp_enqueue_script( 'recaptcha' );
             $payable_types = $BillingSupport->getAllPayableInvoiceTypes();
             break;
 
index 928e585..7296bee 100644 (file)
 
         </fieldset>
 
+        <div class="g-recaptcha" data-sitekey="6LfEilYUAAAAAPGNgjG1_fby7IypmFlu2EjdLMu2"></div>
+
         <input class="button button-primary" type="submit" value="Sign Up For Membership">
 
     </form>