Setup list from login
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 15 Nov 2018 21:27:12 +0000 (16:27 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 15 Nov 2018 21:27:12 +0000 (16:27 -0500)
session store and restore

models/admin/ajax/itineraryList.php
models/front/itinerary/list.php

index 02eb39d..a41e137 100644 (file)
@@ -95,6 +95,21 @@ class GlmMembersAdmin_ajax_itineraryList //extends GlmDataMemberInfo
                         }
                     }
                 }
+                // If there's a logged in user remove the stored session data
+                if ( isset( $_SESSION['itinerary-auth'] ) && $auth_user_id = filter_var( $_SESSION['itinerary-auth'], FILTER_VALIDATE_INT ) ) {
+                    $this->wpdb->delete(
+                        GLM_MEMBERS_ITINERARY_PLUGIN_DB_PREFIX . 'session',
+                        array(
+                            'ref_dest'     => $member_id,
+                            'contact_dest' => $auth_user_id
+                        ),
+                        array(
+                            '%d',
+                            '%d'
+                        )
+                    );
+                }
+
             } else {
                 // add to the session
                 $_SESSION['travel-list'][$member_id] = array(
@@ -102,6 +117,26 @@ class GlmMembersAdmin_ajax_itineraryList //extends GlmDataMemberInfo
                     'ref_dest'  => $member_id,
                     'page_slug' => $ref_page,
                 );
+                // If there's a logged in user store data in sessino table
+                if ( isset( $_SESSION['itinerary-auth'] ) && $auth_user_id = filter_var( $_SESSION['itinerary-auth'], FILTER_VALIDATE_INT ) ) {
+                    $this->wpdb->insert(
+                        GLM_MEMBERS_ITINERARY_PLUGIN_DB_PREFIX . 'session',
+                        array(
+                            'ref_type'     => '',
+                            'ref_dest'     => $member_id,
+                            'contact_type' => '',
+                            'contact_dest' => $auth_user_id,
+                            'page_url'     => $ref_page,
+                        ),
+                        array(
+                            '%d', // ref_type
+                            '%d', // ref_dest
+                            '%d', // contact_type
+                            '%d', // contact_dest
+                            '%s', // page_url
+                        )
+                    );
+                }
             }
         }
 
index 0024d03..28999ce 100755 (executable)
@@ -128,7 +128,6 @@ class GlmMembersFront_itinerary_list // extends GlmMembersFront_events_baseActio
         case 'create':
             // Get list of states
             $states = $this->config['states'];
-            // echo '<pre>$states: ' . print_r( $states, true ) . '</pre>';
             $view   = 'create.html';
             break;
         case 'login':
@@ -148,6 +147,25 @@ class GlmMembersFront_itinerary_list // extends GlmMembersFront_events_baseActio
                 // Success login
                 $_SESSION['itinerary-auth'] = $user_id;
                 $userLoggedIn = true;
+                // Get any stored sessions
+                $storedSessions = $this->wpdb->get_results(
+                    $this->wpdb->prepare(
+                        "SELECT *
+                           FROM " . GLM_MEMBERS_ITINERARY_PLUGIN_DB_PREFIX . "session
+                          WHERE contact_dest = %d",
+                        $user_id
+                    ),
+                    ARRAY_A
+                );
+                if ( $storedSessions ) {
+                    foreach ( $storedSessions as $store ) {
+                        $_SESSION['travel-list'][$store['ref_dest']] = array(
+                            'ref_type'  => 'member',
+                            'ref_dest'  => $store['ref_dest'],
+                            'page_slug' => $store['page_url']
+                        );
+                    }
+                }
             }
             global $wp;
             $tripPlannerPage = get_permalink( $this->config['settings']['itinerary_page'] );