From 47a5f3bca3670da93b119343d58d571ddce43e42 Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Thu, 26 Oct 2017 12:13:29 -0400 Subject: [PATCH] Completed initial layout of checkout page. Implemented GLM grid approach for checkout page and added custom CSS to the top of front.css to accommodate that. Added hand pointing down icons for use on checkout page. Updated dataAccount.php and dataRegRequest.php to add proper state and country field specications. Added more checkout processing and support for that to checkout.php and regCartSupport class. --- assets/fingerDownBlack.png | Bin 0 -> 19155 bytes assets/fingerDownBlack.svg | 1 + assets/fingerDownRed.png | Bin 0 -> 27199 bytes assets/fingerDownRed.svg | 1 + .../{finberUpBlack.png => fingerUpBlack.png} | Bin classes/data/dataAccount.php | 28 +- classes/regCartSupport.php | 30 +- css/front.css | 31 +- models/admin/ajax/regFront/registrant.php | 11 +- models/admin/ajax/regFront/request.php | 2 - models/front/registrations/cartLinkWidget.php | 2 +- models/front/registrations/checkout.php | 26 +- .../front/registrations/checkoutProcess.php | 64 +++- models/front/registrations/index.php | 1 + models/front/registrations/list.php | 2 - setup/frontHooks.php | 1 + views/admin/registrations/accountEdit.html | 104 +++--- views/front/registrations/cartLinkWidget.html | 25 +- views/front/registrations/checkout.html | 322 ++++++++++++++---- views/front/registrations/header.html | 3 + 20 files changed, 470 insertions(+), 184 deletions(-) create mode 100644 assets/fingerDownBlack.png create mode 100644 assets/fingerDownBlack.svg create mode 100644 assets/fingerDownRed.png create mode 100644 assets/fingerDownRed.svg rename assets/{finberUpBlack.png => fingerUpBlack.png} (100%) diff --git a/assets/fingerDownBlack.png b/assets/fingerDownBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..df7fc3afe6e52c87d61c9af09a74f77897fae434 GIT binary patch literal 19155 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 a!`2PoIVRqT#=lTUJGVQ3p1YM7^FILVCXEaL literal 0 HcmV?d00001 diff --git a/assets/fingerDownBlack.svg b/assets/fingerDownBlack.svg new file mode 100644 index 0000000..ff23132 --- /dev/null +++ b/assets/fingerDownBlack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/fingerDownRed.png b/assets/fingerDownRed.png new file mode 100644 index 0000000000000000000000000000000000000000..305ac6d0c28fe6e6ab5ea6b6b6227523a8b45a16 GIT binary patch literal 27199 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 Y{z2xOr^qr^g@D4})78&qol`;+0N`%Y?*IS* literal 0 HcmV?d00001 diff --git a/assets/fingerDownRed.svg b/assets/fingerDownRed.svg new file mode 100644 index 0000000..f54e110 --- /dev/null +++ b/assets/fingerDownRed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/finberUpBlack.png b/assets/fingerUpBlack.png similarity index 100% rename from assets/finberUpBlack.png rename to assets/fingerUpBlack.png diff --git a/classes/data/dataAccount.php b/classes/data/dataAccount.php index 3ed0ac6..40d3d4c 100644 --- a/classes/data/dataAccount.php +++ b/classes/data/dataAccount.php @@ -123,7 +123,7 @@ class GlmDataRegistrationsAccount extends GlmDataAbstract 'use' => 'a', 'default' => 1 ), - + // Validated E-Mail address flag 'validated' => array ( 'field' => 'validated', @@ -131,17 +131,17 @@ class GlmDataRegistrationsAccount extends GlmDataAbstract 'use' => 'lg', 'default' => false ), - + // Validation Code - Used to confirm the person creating an account // During validation process this includes the following. {validation_code}-{timestamp} - validation code is 6 digit number - // The validation code is sent in a simple E-Mail to the user who then has to provide that in a certain amount of time + // The validation code is sent in a simple E-Mail to the user who then has to provide that in a certain amount of time // The timestamp is to determine if the time for validation has expired. 'validation_code' => array ( 'field' => 'validation_code', 'type' => 'text', 'use' => 'lg' ), - + // Account /* 'registered_by' => array ( @@ -223,10 +223,11 @@ class GlmDataRegistrationsAccount extends GlmDataAbstract // State 'state' => array ( - 'field' => 'state', - 'type' => 'text', - 'required' => false, - 'use' => 'a' + 'field' => 'state', + 'type' => 'list', + 'list' => $this->config['states'], + 'default' => $this->config['settings']['default_state'], + 'use' => 'a' ), // @@ -237,12 +238,13 @@ class GlmDataRegistrationsAccount extends GlmDataAbstract 'use' => 'a' ), - // + // Country 'country' => array ( - 'field' => 'country', - 'type' => 'text', - 'required' => false, - 'use' => 'a' + 'field' => 'country', + 'type' => 'list', + 'list' => $this->config['countries'], + 'default' => 'US', + 'use' => 'a' ), // diff --git a/classes/regCartSupport.php b/classes/regCartSupport.php index 70dd763..aeedfff 100644 --- a/classes/regCartSupport.php +++ b/classes/regCartSupport.php @@ -107,12 +107,16 @@ class GlmRegCartSupport 'account' => $account, 'validated' => false, 'status' => $this->config['submission_status_numb']['CART'], - 'user_trace_info' => $_SERVER["REMOTE_ADDR"]." - ".date("m/d/Y H:i:s") + 'user_trace_info' => $_SERVER["REMOTE_ADDR"]." - ".date("m/d/Y H:i:s"), + 'date_created' => date("Y-m-d H:i:s"), + 'last_update' => date("Y-m-d H:i:s") ), array( '%d', '%d', '%d', + '%s', + '%s', '%s' ) ); @@ -775,7 +779,8 @@ class GlmRegCartSupport } /* - * Remove an event record from the cart + * Remove an e // If there's a +vent record from the cart * * * @param integer $id ID of this reg_request_event record @@ -974,15 +979,18 @@ class GlmRegCartSupport $requestId = $_SESSION['glm_reg_cart_id']; } + $requestId = ($requestId - 0); + + $cartSummary = array('id' => false); // If we don't have a request ID - if (!$requestId) { - return false; - } + if ($requestId > 0) { - // Try to get the base cart info - $RegRequest = new GlmDataRegistrationsRegRequest($this->wpdb, $this->config); - $cartSummary = $RegRequest->getRegRequestSimplified($requestId, true); + // Try to get the base cart info + $RegRequest = new GlmDataRegistrationsRegRequest($this->wpdb, $this->config); + $cartSummary = $RegRequest->getRegRequestSimplified($requestId, true); + + } $cartSummary['regRequests'] = false; $cartSummary['haveOtherRequests'] = false; @@ -998,7 +1006,6 @@ class GlmRegCartSupport // Build where clause to get any other pending carts for this logged in registrations user $where = " T.account = $accountId - AND T.id != $requestId AND T.status = ".$this->config['submission_status_numb']['CART']." "; @@ -1006,13 +1013,16 @@ class GlmRegCartSupport $RegRequest = new GlmDataRegistrationsRegRequest($this->wpdb, $this->config); $cartSummary['regRequests'] = $RegRequest->getRegRequestListSimplified($where); - if ($cartSummary['regRequests'] && count($cartSummary['regRequests'])) { + if (is_array($cartSummary['regRequests']) && count($cartSummary['regRequests'])) { $cartSummary['haveOtherRequests'] = true; + } } } + + // echo "

".print_r($cartSummary,1)."
"; return $cartSummary; } diff --git a/css/front.css b/css/front.css index 2d5197c..ee8458d 100644 --- a/css/front.css +++ b/css/front.css @@ -1,4 +1,25 @@ /* Event Registration Edit Page */ + +/* Temp replacement for glm-row without max-width and other checkout form tampering */ +.glm-reg-row { + clear: both; + margin-left: auto; + margin-right: auto; + width: 100%; + min-height: 3rem; +} +.glm-reg-nowrap { + white-space: nowrap; +} +.glm-reg-required { + color: red; +} +.glm-reg-fail input { + border: 4px #FFaBa9 solid; +} +/* end of tampering */ + + .glm-reg-event-list { width: 100%; padding: 0; @@ -278,13 +299,3 @@ span.glm-error { color: red; } -/* Checkout Form */ -.glm-reg-checkout .glm-form-input { - width: 46%; - margin-right: 1rem; - float: left; -} -.glm-reg-checkout div { - width: 100%; - float: none; -} diff --git a/models/admin/ajax/regFront/registrant.php b/models/admin/ajax/regFront/registrant.php index 459d6b7..469af88 100644 --- a/models/admin/ajax/regFront/registrant.php +++ b/models/admin/ajax/regFront/registrant.php @@ -135,7 +135,6 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations } - /** * addUpdateRegistrantToCart * @@ -166,14 +165,12 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations $data = array( 'reg_request' => $modelData['reg_request'], 'reg_event' => $modelData['reg_event'], - 'event_name' => $modelData['event_name'], - // 'event_datetime' => $modelData['event_datetime'], + 'event_name' => $modelData['event_name'] ); $dataFormat = array( '%d', // reg_request '%d', // reg_event - '%s', // event_name - // '%s', // event_datetime + '%s' // event_name ); if ( !$regRequestEventId ) { $this->wpdb->insert( @@ -217,7 +214,6 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations ); $data = array( 'reg_event' => $modelData['reg_event'], - // 'event_datetime' => $modelData['event_datetime'], 'reg_request' => $modelData['reg_request'], 'reg_request_event' => $regRequestEventId, 'class' => $modelData['reg_class'], @@ -225,7 +221,6 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations ); $dataFormat = array( '%d', // reg_event - // '%s', // event_datetime '%d', // reg_request '%d', // reg_request_event '%d', // class @@ -273,7 +268,6 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations ); $data = array( 'reg_event' => $modelData['reg_event'], - // 'event_datetime' => $modelData['event_datetime'], 'reg_request' => $modelData['reg_request'], 'reg_request_event' => $regRequestEventId, 'reg_request_class' => $regRequestClassId, @@ -285,7 +279,6 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations ) ; $dataFormat = array( '%d', // reg_event - // '%s', // event_datetime '%d', // reg_request '%d', // reg_request_event '%d', // reg_request_class diff --git a/models/admin/ajax/regFront/request.php b/models/admin/ajax/regFront/request.php index 85c2998..80f8530 100644 --- a/models/admin/ajax/regFront/request.php +++ b/models/admin/ajax/regFront/request.php @@ -81,8 +81,6 @@ class GlmMembersAdmin_registrations_ajax_request extends GlmDataRegistrationsReg public function modelAction($modelData) { -trigger_error(print_r($modelData,1)); - // Perform specified action switch ($modelData['option']) { diff --git a/models/front/registrations/cartLinkWidget.php b/models/front/registrations/cartLinkWidget.php index aef9c53..5df246a 100644 --- a/models/front/registrations/cartLinkWidget.php +++ b/models/front/registrations/cartLinkWidget.php @@ -83,7 +83,7 @@ class GlmMembersFront_registrations_cartLinkWidget $cartData = apply_filters('glm_members_registrations_cart_summary_data', false, false); - if (is_array($cartData) && $cartData['status']) { + if (is_array($cartData) && $cartData['id']) { $haveCart = true; } diff --git a/models/front/registrations/checkout.php b/models/front/registrations/checkout.php index 6106b1d..6ea6efc 100644 --- a/models/front/registrations/checkout.php +++ b/models/front/registrations/checkout.php @@ -53,6 +53,8 @@ class GlmMembersFront_registrations_checkout extends GlmRegCartSupport $haveCart = false; $option = false; + $Account = new GlmDataRegistrationsAccount($this->wpdb, $this->config); + // Get any provided option if (isset($_REQUEST['option'])) { $option = $_REQUEST['option']; @@ -62,10 +64,10 @@ class GlmMembersFront_registrations_checkout extends GlmRegCartSupport if (isset($_REQUEST['account'])) { // Make sure it's numeric - $this->accountID = ($_REQUEST['account'] - 0); + $this->accountId = ($_REQUEST['account'] - 0); - if ($this->accountID <= 0) { - $this->accountID = false; + if ($this->accountId <= 0) { + $this->accountId = false; } } @@ -108,12 +110,23 @@ class GlmMembersFront_registrations_checkout extends GlmRegCartSupport } - $view = 'checkout'; + // If this is not a guest submission - Break out the submitting account + $regAccountId = $this->cart['request']['account']; + if ($regAccountId) { + $regAccount = $Account->editEntry($regAccountId); +// If no account data.... + } + // Accounts list not needed + unset($this->cart['accounts']); + + $view = 'checkout'; // Compile template data $templateData = array( 'page' => 'checkout', + 'regAccountId' => $this->cart['request']['account'], + 'regAccount' => $regAccount, 'cartId' => $cartId, 'haveCart' => $haveCart, 'cart' => $this->cart, @@ -121,7 +134,10 @@ class GlmMembersFront_registrations_checkout extends GlmRegCartSupport 'loggedIn' => ( isset( $_SESSION['LoginAccount'] ) ) ? $_SESSION['LoginAccount']: false, 'assetUrl' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_ASSETS_URL ); - // Return status, any suggested view, and any data to controller + + // echo "
".print_r($templateData,1)."
"; + + // Return status, any suggested view, and any data to controller return array( 'status' => true, 'modelRedirect' => false, diff --git a/models/front/registrations/checkoutProcess.php b/models/front/registrations/checkoutProcess.php index 2e4905f..96a6c75 100644 --- a/models/front/registrations/checkoutProcess.php +++ b/models/front/registrations/checkoutProcess.php @@ -16,7 +16,7 @@ // Load Registrations Front-End Support class require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/regCartSupport.php'; -class GlmMembersAdmin_registrations_event extends GlmRegCartSupport +class GlmMembersFront_registrations_checkoutProcess extends GlmRegCartSupport { /** @@ -86,11 +86,71 @@ class GlmMembersAdmin_registrations_event extends GlmRegCartSupport public function modelAction($actionData = false) { + $requestId = false; + $haveRequest = false; + $accountId = false; + $view = 'checkout'; + $regAccount = false; + + // Try to get the cart and see if it's valid for checkout + if (isset($_SESSION['glm_reg_cart_id'])) { + + $requestId = ($_SESSION['glm_reg_cart_id'] - 0); + if ($requestId > 0) { + + // Try to get a validated cart + $this->checkRegistrationRequest($requestId); + + if ($this->cart['status'] && $this->cart['validated']) { + $haveRequest = true; + } + + } + + } + + // If this is a guest then try to create the account using the submitted data + if ($this->cart['request']['account'] == 0) { + + $Account = new GlmDataRegistrationsAccount($this->wpdb, $this->config); + $newAccount = $Account->insertEntry(); +echo "

Name = ".$_REQUEST['lname'].", ".$_REQUEST['fname']."

"; +echo "New Account
".print_r($newAccount,1)."
"; +exit; + + + } +// echo "
".print_r($this->cart,1)."
"; + + $Account = new GlmDataRegistrationsAccount($this->wpdb, $this->config); + + // + /* * Initial Checks */ - // Do we have a current login account + // If there's a logged in registrations user + if (isset($_SESSION) && isset($_SESSION['LoginAccount']) && + is_array($_SESSION['LoginAccount']) && + isset($_SESSION['LoginAccount']['id']) + ) { + + $accountId = ($_SESSION['LoginAccount']['id'] - 0); + + // Try to get the account + if ($accountId > 0) { + $regAccount = $Account->getEntry($accountId); + } + + } + + // If there wasn't an existing submission account + if (!$regAccount) { + + // Create an account now + + } // If not, then is guest checkout permitted? diff --git a/models/front/registrations/index.php b/models/front/registrations/index.php index 2f6753b..830dac3 100644 --- a/models/front/registrations/index.php +++ b/models/front/registrations/index.php @@ -93,6 +93,7 @@ class GlmMembersFront_registrations_index 'registration', 'cart', 'checkout', + 'checkoutProcess', 'summary', 'login', 'account', diff --git a/models/front/registrations/list.php b/models/front/registrations/list.php index 55adf32..0872fca 100644 --- a/models/front/registrations/list.php +++ b/models/front/registrations/list.php @@ -102,8 +102,6 @@ // Get a current list of reg events $listResult = $this->getSimpleRegEventsList($where.$alphaWhere, 'event_name', true, 'id', $start, $limit, true); - //echo '
$listResult: ' . print_r( $listResult, true ) . '
'; - // Get paging results $numbDisplayed = $listResult['returned']; $lastDisplayed = $listResult['last']; diff --git a/setup/frontHooks.php b/setup/frontHooks.php index 08fd77e..4bebe6f 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -63,6 +63,7 @@ add_filter( $regCartSummary['cartUrl'] = GLM_MEMBERS_REGISTRATIONS_SITE_BASE_URL.$this->config['settings']['canonical_reg_page'].'/?page=cart'; return $regCartSummary; + }, 10, 2 diff --git a/views/admin/registrations/accountEdit.html b/views/admin/registrations/accountEdit.html index 176ed4d..157d879 100644 --- a/views/admin/registrations/accountEdit.html +++ b/views/admin/registrations/accountEdit.html @@ -28,7 +28,7 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +