Update for become member form
authorSteve Sutton <steve@gaslightmedia.com>
Mon, 16 Apr 2018 19:40:40 +0000 (15:40 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Mon, 16 Apr 2018 19:40:40 +0000 (15:40 -0400)
WIP working on the add new member form for migcsa.

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

index 8d0e66d..705866d 100644 (file)
@@ -78,13 +78,14 @@ class GlmMembersFront_billing_becomeMember // extends GlmDataBilling
 
     }
 
-    public function modelAction($actionData = false)
+    public function modelAction( $actionData = false )
     {
         // Initialize Variables Here
         $option             = '';
         $view               = 'becomeMember';
         $management         = false;
         $messages           = array();
+        $errors             = array();
         $paymentSuccess     = false;
         $paymentError       = false;
         $payable_types      = false;
@@ -110,21 +111,49 @@ class GlmMembersFront_billing_becomeMember // extends GlmDataBilling
             $view = 'alreadyAMember';
             break;
 
+        case 'newMembership':
+            $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.
+            // If it is then we need to give a message about it and not let them sign up again.
+
+            $email_to_check = filter_var( $_REQUEST['email'], FILTER_VALIDATE_EMAIL );
+            $messages[] = '<pre>$email_to_check: ' . print_r( $email_to_check, true ) . '</pre>';
+            $verify_email   = filter_var( $_REQUEST['email_verify'], FILTER_VALIDATE_EMAIL );
+            $messages[] = '<pre>$verify_email: ' . print_r( $verify_email, true ) . '</pre>';
+            if ( $email_to_check !== $verify_email ) {
+                // Emails don't match give error message
+                $error = true;
+                $messages[] = $errors['email'] = "<span style='color: red;'>Emails don't match!</span>";
+            }
+
+            // Process the main form
+
+            // Process any custom fields
+            break;
+
         default:
             $payable_types = $BillingSupport->getAllPayableInvoiceTypes();
             break;
 
         }
 
+        // Load DataClass for Management.
+        require_once GLM_MEMBERS_BILLING_PLUGIN_CLASS_PATH . '/data/dataManagement.php';
+        $Management = new GlmDataBillingManagement( $this->wpdb, $this->config );
+        $management = $Management->getEntry( 1 );
+
         // Compile template data
         $templateData = array(
             'option'           => $option,
             'billing_settings' => $this->config['billing_settings'],
             'management'       => $management,
             'messages'         => $messages,
+            'errors'           => $errors,
             'paymentSuccess'   => $paymentSuccess,
             'paymentError'     => $paymentError,
-            'payable_types'      => $payable_types,
+            'payable_types'    => $payable_types,
+            'states'           => $this->config['states']
         );
 
         // Return status, any suggested view, and any data to controller.
index afa480c..ebe1fd0 100644 (file)
@@ -1,4 +1,4 @@
-
+{* This template is for MiGCSA Become a Member Form *}
 <h3>Membership Renewal</h3>
 <div id="billing-payment-form" class="glm-billing-form">
 
@@ -12,7 +12,7 @@
     {/if}
 
     <form action="{$thisUrl}" method="post">
-        <input type="hidden" name="option" value="renewMembership" />
+        <input type="hidden" name="option" value="newMembership" />
         <input type="hidden" id="total_renew_amount" name="total_renew_amount" value="" />
 
 
                 First Name
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="fname" value="" required />
+                <input
+                type="text"
+                name="fname"
+                {if isset($smarty.request.fname) && $smarty.request.fname}value="{$smarty.request.fname}"{/if}
+                required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-right-half">
                 Last Name
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="lname" value="" required />
+                <input
+                type="text"
+                name="lname"
+                {if isset($smarty.request.lname) && $smarty.request.lname}value="{$smarty.request.lname}"{/if}
+                required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-left-half">
                 Email
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="email" value="" required />
+                <input
+                type="text"
+                name="email"
+                {if isset($smarty.request.email) && $smarty.request.email}value="{$smarty.request.email}"{/if}
+                required />
+                {if $errors.email}{$errors.email}{/if}
             </div>
         </div>
         <div class="glm-billing-field glm-billing-right-half">
                 Confirm Email
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="email" value="" required />
+                <input
+                type="text"
+                name="email_verify"
+                {if isset($smarty.request.email_verify) && $smarty.request.email_verify}value="{$smarty.request.email_verify}"{/if}
+                required />
+            </div>
+        </div>
+        {* START - Custom Fields part for MiGCSA *}
+        <div class="glm-billing-field">
+            <div class="glm-billing-label">
+                Company Position
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="cf[7]"
+                {if isset($smarty.request.cf[7]) && $smarty.request.cf[7]}value="{$smarty.request.cf[7]}"{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label">
+                Spouse
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="cf[9]"
+                {if isset($smarty.request.cf[9]) && $smarty.request.cf[9]}value="{$smarty.request.cf[9]}"{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label">
+                District
+            </div>
+            <div class="glm-billing-input">
+                <select name="cf[8]">
+                    <option value="">-- Select --</option>
+                    <option value="Greater Detroit"{if isset($smarty.request.cf[8]) && $smarty.request.cf[8] == 'Greater Detroit'} selected{/if}>Greater Detroit</option>
+                    <option value="Mid"{if isset($smarty.request.cf[8]) && $smarty.request.cf[8] == 'Mid'} selected{/if}>Mid</option>
+                    <option value="Northern"{if isset($smarty.request.cf[8]) && $smarty.request.cf[8] == 'Northern'} selected{/if}>Northern</option>
+                    <option value="Western"{if isset($smarty.request.cf[8]) && $smarty.request.cf[8] == 'Western'} selected{/if}>Western</option>
+                </select>
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label">
+                Preferred Communication
+            </div>
+            <div class="glm-billing-input">
+                <select name="cf[13]">
+                    <option value="">-- Select --</option>
+                    <option value="Email"{if isset($smarty.request.cf[13]) && $smarty.request.cf[13] == 'Email'} selected{/if}>Email</option>
+                    <option value="Post"{if isset($smarty.request.cf[13]) && $smarty.request.cf[13] == 'Post'} selected{/if}>Post</option>
+                </select>
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label">
+                Type of Operation
+            </div>
+            <div class="glm-billing-input">
+                <select name="cf[6]">
+                    <option value="">-- Select --</option>
+                    <option value="Private"{if isset($smarty.request.cf[6]) && $smarty.request.cf[6] == 'Private'} selected{/if}>Private</option>
+                    <option value="Public"{if isset($smarty.request.cf[6]) && $smarty.request.cf[6] == 'Public'} selected{/if}>Public</option>
+                    <option value="Semi-Private"{if isset($smarty.request.cf[6]) && $smarty.request.cf[6] == 'Semi-Private'} selected{/if}>Semi-Private</option>
+                    <option value="Municipality"{if isset($smarty.request.cf[6]) && $smarty.request.cf[6] == 'Municipality'} selected{/if}>Municipality</option>
+                    <option value="Resort"{if isset($smarty.request.cf[6]) && $smarty.request.cf[6] == 'Resort'} selected{/if}>Resort</option>
+                </select>
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label">
+                CGCS
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="checkbox"
+                name="cf[2]"
+                {if isset($smarty.request.cf[2]) && $smarty.request.cf[2]}checked{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label">
+                Will Volunteer for a Committee
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="checkbox"
+                name="cf[3]"
+                {if isset($smarty.request.cf[3]) && $smarty.request.cf[3]}checked{/if}
+                />
+            </div>
+        </div>
+        {* END - Custom Fields part for MiGCSA *}
+
+    </fieldset>
+
+    <fieldset>
+        <legend>Account/Contact Information</legend>
+
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label">
+                Phone
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="phone"
+                {if isset($smarty.request.phone) && $smarty.request.phone}value="{$smarty.request.phone}"{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label">
+                Cellphone
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="cellphone"
+                {if isset($smarty.request.cellphone) && $smarty.request.cellphone}value="{$smarty.request.cellphone}"{/if}
+                />
             </div>
         </div>
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label">
+                Fax
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="fax"
+                {if isset($smarty.request.fax) && $smarty.request.fax}value="{$smarty.request.fax}"{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label">
+                Email on Website
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="email_on_website"
+                {if isset($smarty.request.email_on_website) && $smarty.request.email_on_website}value="{$smarty.request.email_on_website}"{/if}
+                />
+            </div>
+        </div>
+        <div class="glm-billing-field">
+            <div class="glm-billing-label">
+                Web Address
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="website"
+                {if isset($smarty.request.website) && $smarty.request.website}value="{$smarty.request.website}"{/if}
+                />
+            </div>
+        </div>
+
+
+        <div class="glm-billing-field">
+            <div class="glm-billing-label glm-required">
+                Username
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="username"
+                {if isset($smarty.request.username) && $smarty.request.username}value="{$smarty.request.username}"{/if}
+                required />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-left-half">
+            <div class="glm-billing-label glm-required">
+                Password
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="password"
+                {if isset($smarty.request.password) && $smarty.request.password}value="{$smarty.request.password}"{/if}
+                required />
+            </div>
+        </div>
+        <div class="glm-billing-field glm-billing-right-half">
+            <div class="glm-billing-label glm-required">
+                Confirm Password
+            </div>
+            <div class="glm-billing-input">
+                <input
+                type="text"
+                name="confirm_password"
+                {if isset($smarty.request.confirm_password) && $smarty.request.confirm_password}value="{$smarty.request.confirm_password}"{/if}
+                required />
+            </div>
+        </div>
+
+    </fieldset>
+
+    <fieldset>
+        <legend>Billing Address</legend>
 
         <div class="glm-billing-field">
             <div class="glm-billing-label glm-required">
                 Address
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="billing_addr1" value="" required />
+                <input
+                type="text"
+                name="billing_addr1"
+                {if isset($smarty.request.billing_addr1) && $smarty.request.billing_addr1}value="{$smarty.request.billing_addr1}"{/if}
+                required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-left-half">
                 City
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="billing_city" value="" required />
+                <input
+                type="text"
+                name="billing_city"
+                {if isset($smarty.request.billing_city) && $smarty.request.billing_city}value="{$smarty.request.billing_city}"{/if}
+                required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-right-half">
             <div class="glm-billing-input">
                 <select name="billing_state" required>
                     <option value=""></option>
-                    {foreach $account.fieldData.billing_state.list as $s}
-                        <option value="{$s.value}"{if $account.fieldData.billing_state.value == $s.value} selected="selected"{/if}>
-                            {$s.name}
+                    {foreach $states as $stateAbb => $stateVal}
+                        <option value="{$stateAbb}"{if $smarty.request.billing_state == $stateAbb} selected="selected"{/if}>
+                            {$stateVal}
                         </option>
                     {/foreach}
                 </select>
                 Zip
             </div>
             <div class="glm-billing-input">
-                <input type="text" name="billing_zip" value="" required />
-            </div>
-        </div>
-        <div class="glm-billing-field">
-            <div class="glm-billing-label glm-required">
-                Email Address
-            </div>
-            <div class="glm-billing-input">
-                <input type="text" name="email" value="" required />
+                <input
+                type="text"
+                name="billing_zip"
+                {if isset($smarty.request.billing_zip) && $smarty.request.billing_zip}value="{$smarty.request.billing_zip}"{/if}
+                required />
             </div>
         </div>
 
-        </fieldset>
+    </fieldset>
+
 
     <fieldset>
         <legend>Payment Options</legend>
                     class="ccard"
                     type="text"
                     name="cc_name"
-                    required
-                    {if isset($smarty.request.cc_name) && $smarty.request.cc_name}value="{$smarty.request.cc_name}"{/if} />
+                    {if isset($smarty.request.cc_name) && $smarty.request.cc_name}value="{$smarty.request.cc_name}"{/if}
+                    required />
             </div>
         </div>
 
                     type="text"
                     placeholder="Numbers Only"
                     name="cc_numb"
-                    required
                     pattern="\d*"
-                    {if isset($smarty.request.cc_numb) && $smarty.request.cc_numb}value="{$smarty.request.cc_numb}"{/if} />
+                    {if isset($smarty.request.cc_numb) && $smarty.request.cc_numb}value="{$smarty.request.cc_numb}"{/if}
+                    required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-left-half glm-billing-credit glm-billing-card">
                     type="text"
                     placeholder="MM/YY"
                     name="cc_exp"
-                    required
                     pattern="{literal}\d{2}/\d{2}{/literal}"
-                    {if isset($smarty.request.cc_exp) && $smarty.request.cc_exp}value="{$smarty.request.cc_exp}"{/if} />
+                    {if isset($smarty.request.cc_exp) && $smarty.request.cc_exp}value="{$smarty.request.cc_exp}"{/if}
+                    required />
             </div>
         </div>
         <div class="glm-billing-field glm-billing-right-half glm-billing-credit glm-billing-card">
                     type="text"
                     placeholder="3 or 4 digit security code on back of card"
                     name="cc_cvv"
-                    required
                     pattern="{literal}\d{3,4}{/literal}"
-                    {if isset($smarty.request.cc_cvv) && $smarty.request.cc_cvv}value="{$smarty.request.cc_cvv}"{/if} />
+                    {if isset($smarty.request.cc_cvv) && $smarty.request.cc_cvv}value="{$smarty.request.cc_cvv}"{/if}
+                    required />
             </div>
         </div>