Page 1 of 2 12 LastLast
Results 1 to 10 of 12
  1. #1
    Join Date
    May 2006
    Posts
    33
    Plugin Contributions
    0

    Default How to delete products from shopping cart when user session ends

    I want all products from the shopping cart deleted when a user logs out or session ends - irrespective of whether they ordered or not.

    Is there way to do this?

    Thanks!

  2. #2
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: How to delete products from shopping cart when user session ends

    It is easier to do this when the customer logs in as you do not know when the customer logs out ... or more specifically, you know the customer is logged out but you don't know who the customer is as the session dies first ...

    So, in the login header where you normally restore the cart you would want to empty it for the customer ...
    /includes/modules/pages/login/header_php.php

    You don't want to just skip the restore as it is getting what is in the database tables so you need to reset it ...

    Changing:
    PHP Code:
            // bof: not require part of contents merge notice
            // restore cart contents
            
    $_SESSION['cart']->restore_contents();
            
    // eof: not require part of contents merge notice 
    to read:
    PHP Code:
            // bof: not require part of contents merge notice
            // restore cart contents
            
    $_SESSION['cart']->restore_contents();
            
    // eof: not require part of contents merge notice
            
    $_SESSION['cart']->reset(true); 
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  3. #3
    Join Date
    May 2006
    Posts
    33
    Plugin Contributions
    0

    Default Re: How to delete products from shopping cart when user session ends

    Thanks... that does seem to reset the existing cart... however all of the 'temporary' visitors cart items are also deleted.

    I just want the previous shopping cart items deleted. So when the visitor shops again and adds items, then logs in he gets only the current products he's added and nothing from the previous session.

    HELP!!

  4. #4
    Join Date
    Jan 2004
    Posts
    66,364
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: How to delete products from shopping cart when user session ends

    Good point.

    Changing it like this should work:
    PHP Code:
            // restore cart contents
            
    $_SESSION['cart']->restore_contents(); 
    becomes:
    PHP Code:
            $current_cart $_SESSION['cart']->contents;
            
    $_SESSION['cart']->reset(true);
            
    $_SESSION['cart']->contents $current_cart;
            
    $_SESSION['cart']->calculate(); 
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  5. #5
    Join Date
    May 2006
    Posts
    33
    Plugin Contributions
    0

    Default Re: How to delete products from shopping cart when user session ends

    Thanks very much! This has solved it!

  6. #6
    Join Date
    Mar 2009
    Posts
    108
    Plugin Contributions
    0

    Default Re: How to delete products from shopping cart when user session ends

    For anybody doing this , when the customer logs out the message says "You have been logged off ....... If you had items in your cart they have been saved , they will be restored when you return"

    Well if you made the changes above thats not the case anymore , you'll need to change the message they see by editing this file:
    - includes/languages/english/logoff.php

  7. #7
    Join Date
    Mar 2011
    Posts
    9
    Plugin Contributions
    0

    Default Re: How to delete products from shopping cart when user session ends

    WARNING: This script is flawed...

    If a user logs in, and then adds products to the cart, all works fine. However, if a user browsing as a guest, adds a prodcut to cart and then logs in when prompted, the script kills the cart session but does NOT empty the cart so the user gets a Whoops error when they click "checkout".

    I'd love a working version of this where the cart session is reset on login and the actual cart is emptied.

  8. #8
    Join Date
    Jan 2004
    Posts
    66,364
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: How to delete products from shopping cart when user session ends

    *** edited after gathering more information for testing ***
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  9. #9
    Join Date
    Jan 2004
    Posts
    66,364
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: How to delete products from shopping cart when user session ends

    Quote Originally Posted by neo2810 View Post
    WARNING: This script is flawed...

    If a user logs in, and then adds products to the cart, all works fine. However, if a user browsing as a guest, adds a prodcut to cart and then logs in when prompted, the script kills the cart session but does NOT empty the cart so the user gets a Whoops error when they click "checkout".

    I'd love a working version of this where the cart session is reset on login and the actual cart is emptied.
    You are partly correct. The "script" has no flaws when applied against the version for which it was written.

    Between the time that code was posted 4 years ago and now, there have been numerous new releases and feature changes and security precautions added. One of those has to do with ensuring there's been no tampering with the shopping cart. And, since the code literally IS tampering with the shopping cart contents, it's triggering one of those safeties.

    The fix is simple. Add another line above the calculate() line, as shown:
    Code:
            $current_cart = $_SESSION['cart']->contents;
            $_SESSION['cart']->reset(true);
            $_SESSION['cart']->contents = $current_cart;
            $_SESSION['cart']->cartID = $_SESSION['cart']->generate_cart_id();
            $_SESSION['cart']->calculate();
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  10. #10
    Join Date
    Jan 2012
    Posts
    1
    Plugin Contributions
    0

    Default Re: How to delete products from shopping cart when user session ends

    Hi, I can't seem to get the cart to work.
    When I log in and add an item to the cart and log off and log in again, the item is still in the cart...

    I've changed the code according to what was stated here.
    So my code looks like that now:

    // restore cart contents
    $current_cart = $_SESSION['cart']->contents;
    $_SESSION['cart']->reset(true);
    $_SESSION['cart']->contents = $current_cart;
    $_SESSION['cart']->cartID = $_SESSION['cart']->generate_cart_id();
    $_SESSION['cart']->calculate();
    // eof: not require part of contents merge notice
    $_SESSION['cart']->reset(true);

    What I want is:
    The shopping cart to be emptied whenever a user logs in again.
    (ie. user 1 logs in and adds stuff to the cart. then logs out. when he logs in again, the cart will be empty.)

    Hope you'll help in solving the problem. Thanks!

 

 
Page 1 of 2 12 LastLast

Similar Threads

  1. Replies: 12
    Last Post: 24 Jul 2008, 10:47 PM
  2. Empty cart when session ends ?
    By 4ecomm in forum Customization from the Admin
    Replies: 7
    Last Post: 24 Oct 2007, 06:39 PM
  3. Delete products from shopping cart
    By Exc3ss in forum General Questions
    Replies: 8
    Last Post: 23 Jun 2007, 10:56 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR