0

I've been storing customer details they've entered into session variables that are applied to the relevant html boxes if the customer get's redirected from the checkout page. This was implemented due to a paypal error (the place i works as this weird paypal set up that acts as a final step after entering all your info). The fix seemed to had work for quite some time but now apparently in the past few weeks people are getting redirected back from paypal, with their relevant boxes now empty.

Below is the script i'm using to store the session variables.

<script>
   // Run on page load
      window.onload = function() {

       // If sessionStorage is storing default values (ex. name), exit the function and do not restore data
       if (sessionStorage.getItem('billing_firstname') == "billing_firstname") {
           return;
       }

       // If values are not blank, restore them to the fields
       var billing_firstname = sessionStorage.getItem('billing_firstname');
       if (billing_firstname !== null) $('#billing_firstname').val(billing_firstname);

         var billing_lastname= sessionStorage.getItem('billing_lastname');
       if (billing_lastname !== null) $('#billing_lastname').val(billing_lastname);

         var billing_company= sessionStorage.getItem('billing_company');
       if (billing_company !== null) $('#billing_company').val(billing_company);


       var billing_state= sessionStorage.getItem('billing_state');
       if (billing_state !== null) $('#billing_state').val(billing_state);

       var billing_country= sessionStorage.getItem('billing_country');
       if (billing_country !== null) $('#billing_country').val(billing_country);

       var billing_address= sessionStorage.getItem('billing_address');
       if (billing_address !== null) $('#billing_address').val(billing_address);

       var billing_address2= sessionStorage.getItem('billing_address2');
       if (billing_address2 !== null) $('#billing_address2').val(billing_address2);

       var billing_city= sessionStorage.getItem('billing_city');
       if (billing_city !== null) $('#billing_city').val(billing_city);

       var billing_zip= sessionStorage.getItem('billing_zip');
       if (billing_zip !== null) $('#billing_zip').val(billing_zip);

       var billing_phone= sessionStorage.getItem('billing_phone');
       if (billing_phone !== null) $('#billing_phone').val(billing_phone);




   }

   // Before refreshing the page, save the form data to sessionStorage
    window.onbeforeunload = function() {
       sessionStorage.setItem("billing_firstname", $('#billing_firstname').val());
       sessionStorage.setItem("billing_lastname",$('#billing_lastname').val());
       sessionStorage.setItem("billing_company",$('#billing_company').val());
       sessionStorage.setItem("billing_state", $('#billing_state').val());
       sessionStorage.setItem("billing_country", $('#billing_country').val());
       sessionStorage.setItem("billing_address",$('#billing_address').val());
       sessionStorage.setItem("billing_address2",$('#billing_address2').val())
       sessionStorage.setItem("billing_city",$('#billing_city').val());
       sessionStorage.setItem("billing_zip",$('#billing_zip').val());
       sessionStorage.setItem("billing_phone",$('#billing_phone').val());

   }
</script>

<script>
   // Run on page load
      window.onload = function() {

       // If sessionStorage is storing default values (ex. name), exit the function and do not restore data
       if (sessionStorage.getItem('shipping_firstname') == "shipping_firstname") {
           return;
       }

       // If values are not blank, restore them to the fields
       var shipping_firstname = sessionStorage.getItem('shipping_firstname');
       if (shipping_firstname !== null) $('#shipping_firstname').val(shipping_firstname);

         var shipping_lastname= sessionStorage.getItem('shipping_lastname');
       if (shipping_lastname !== null) $('#shipping_lastname').val(shipping_lastname);

         var shipping_company= sessionStorage.getItem('shipping_company');
       if (shipping_company !== null) $('#shipping_company').val(shipping_company);


       var shipping_state= sessionStorage.getItem('shipping_state');
       if (shipping_state !== null) $('#shipping_state').val(shipping_state);

       var shipping_country= sessionStorage.getItem('shipping_country');
       if (shipping_country !== null) $('#shipping_country').val(shipping_country);

       var shipping_address= sessionStorage.getItem('shipping_address');
       if (shipping_address !== null) $('#shipping_address').val(shipping_address);

       var shipping_address2= sessionStorage.getItem('shipping_address2');
       if (shipping_address2 !== null) $('#shipping_address2').val(shipping_address2);

       var shipping_city= sessionStorage.getItem('shipping_city');
       if (shipping_city !== null) $('#shipping_city').val(shipping_city);

       var shipping_zip= sessionStorage.getItem('shipping_zip');
       if (shipping_zip !== null) $('#shipping_zip').val(shipping_zip);

       var shipping_phone= sessionStorage.getItem('shipping_phone');
       if (shipping_phone !== null) $('#shipping_phone').val(shipping_phone);


          //Billing

        // If values are not blank, restore them to the fields
       var billing_firstname = sessionStorage.getItem('billing_firstname');
       if (billing_firstname !== null) $('#billing_firstname').val(billing_firstname);

         var billing_lastname= sessionStorage.getItem('billing_lastname');
       if (billing_lastname !== null) $('#billing_lastname').val(billing_lastname);

         var billing_company= sessionStorage.getItem('billing_company');
       if (billing_company !== null) $('#billing_company').val(billing_company);


       var billing_state= sessionStorage.getItem('billing_state');
       if (billing_state !== null) $('#billing_state').val(billing_state);

       var billing_country= sessionStorage.getItem('billing_country');
       if (billing_country !== null) $('#billing_country').val(billing_country);

       var billing_address= sessionStorage.getItem('billing_address');
       if (billing_address !== null) $('#billing_address').val(billing_address);

       var billing_address2= sessionStorage.getItem('billing_address2');
       if (billing_address2 !== null) $('#billing_address2').val(billing_address2);

       var billing_city= sessionStorage.getItem('billing_city');
       if (billing_city !== null) $('#billing_city').val(billing_city);

       var billing_zip= sessionStorage.getItem('billing_zip');
       if (billing_zip !== null) $('#billing_zip').val(billing_zip);

       var billing_phone= sessionStorage.getItem('billing_phone');
       if (billing_phone !== null) $('#billing_phone').val(billing_phone);




   }

   // Before refreshing the page, save the form data to sessionStorage
    window.onbeforeunload = function() {
       sessionStorage.setItem("shipping_firstname", $('#shipping_firstname').val());
       sessionStorage.setItem("shipping_lastname",$('#shipping_lastname').val());
       sessionStorage.setItem("shipping_company",$('#shipping_company').val());
       sessionStorage.setItem("shipping_state", $('#shipping_state').val());
       sessionStorage.setItem("shipping_country", $('#shipping_country').val());
       sessionStorage.setItem("shipping_address",$('#shipping_address').val());
       sessionStorage.setItem("shipping_address2",$('#shipping_address2').val())
       sessionStorage.setItem("shipping_city",$('#shipping_city').val());
       sessionStorage.setItem("shipping_zip",$('#shipping_zip').val());
       sessionStorage.setItem("shipping_phone",$('#shipping_phone').val());

        //billing

         sessionStorage.setItem("billing_firstname", $('#billing_firstname').val());
       sessionStorage.setItem("billing_lastname",$('#billing_lastname').val());
       sessionStorage.setItem("billing_company",$('#billing_company').val());
       sessionStorage.setItem("billing_state", $('#billing_state').val());
       sessionStorage.setItem("billing_country", $('#billing_country').val());
       sessionStorage.setItem("billing_address",$('#billing_address').val());
       sessionStorage.setItem("billing_address2",$('#billing_address2').val())
       sessionStorage.setItem("billing_city",$('#billing_city').val());
       sessionStorage.setItem("billing_zip",$('#billing_zip').val());
       sessionStorage.setItem("billing_phone",$('#billing_phone').val());

   }
</script>
John
  • 1
  • 1
  • Please specify which browser this is "error" is occurring on. FireFox/Chrome/IE etc. See [this post](https://stackoverflow.com/questions/7255649/window-onbeforeunload-not-working) for possible fixes. – Jamie_D Nov 29 '18 at 21:41
  • There is also [this post](https://stackoverflow.com/questions/24081699/why-onbeforeunload-event-is-not-firing/24081747) that may help you. – Jamie_D Nov 29 '18 at 21:50
  • Apart from having a keyup function for every single element, is there a way of adding a keyup function onto a classname, and then just adding each item into an array? – John Nov 29 '18 at 23:48

0 Answers0