Page 1 of 2 12 LastLast
Results 1 to 10 of 3052

Hybrid View

  1. #1
    Join Date
    Nov 2005
    Location
    los angeles
    Posts
    2,915
    Plugin Contributions
    13

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by strelitzia View Post
    Zen Cart 1.5.7b
    One-Page Checkout (One Page Checkout) - Version: v2.3.7

    I've made some modifications to my site so that I can prevent specific products from being visible to customers from certain countries.
    Whilst this works for the most part, I want to ensure that if a customer changes shipping address during checkout to a country that has restrictions, the restricted product is removed from the cart and a message advises the customer of this.

    I've got shipping country detection working on main_page=checkout_one, but I'm struggling to find a way to remove the restricted product from the array.

    I tried doing this
    Code:
    $selected_ship_country = $_SESSION['opc']->getAddressValues('ship')['country_id'];
    foreach ($_SESSION['cart']->get_products() as $product) {
        $check_for_restriction = $db->Execute("SELECT products_id
                                             FROM " . TABLE_PRODUCTS . "
                                             WHERE products_id = '" . $product['id'] . "'
                                             AND restricted_country_id LIKE '%" . $selected_ship_country . "%'");
        if ($check_for_restriction->RecordCount() > 0) {
            remove($product['id']);
    }
    in the hope that calling the remove function of the shopping cart class would do the trick, but it didn't make any difference.

    Is there a way to achieve this during checkout with OPC?
    i currently do not use OPC, although i have played around with it. i'm not sure this is where i would do it... but, if this is the spot i would try:

    PHP Code:
    //from:
    remove($product['id']);

    //to:
    $_SESSION['cart']->remove($product['id']); 
    best.
    author of square Webpay.
    mxWorks now has Apple Pay and Google Pay. donations: venmo or paypal accepted.
    premium consistent excellent support. available for hire.

  2. #2
    Join Date
    Nov 2005
    Location
    France
    Posts
    600
    Plugin Contributions
    8

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by carlwhat View Post
    PHP Code:
    //from:
    remove($product['id']);

    //to:
    $_SESSION['cart']->remove($product['id']); 
    That worked a treat. Now I just need to figure out how to get the total to recalculate as it is still showing the value from before the item is removed!

  3. #3
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,944
    Plugin Contributions
    96

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by strelitzia View Post
    That worked a treat. Now I just need to figure out how to get the total to recalculate as it is still showing the value from before the item is removed!
    Follow that product removal up with a
    Code:
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_ONE));
    ... after having set a message to the customer via the $messageStack class (which probably will require a global $messageStack; statement) to let them know what's going on.

    On the page's re-display, the shipping and taxes will recalculate based on the updated products in the order.

  4. #4
    Join Date
    Oct 2008
    Location
    Croatia
    Posts
    1,741
    Plugin Contributions
    22

    Default Re: One-Page Checkout [Support Thread]

    OK, so... I'm trying to have the "shipping=billing" UNchecked by default so the customer gets to see both billing AND shipping address at the same time when going through Guest Checkout.

    I've changed includes/classes/OnePageCheckout.php on line 169 from
    Code:
    public function getShippingBilling()
        {
            $_SESSION['shipping_billing'] = (isset($_SESSION['shipping_billing'])) ? $_SESSION['shipping_billing'] : true;
            return $_SESSION['shipping_billing'];
        }
    to
    Code:
    public function getShippingBilling()
        {
            // BOF shipping=billing default to false
            $_SESSION['shipping_billing'] = (isset($_SESSION['shipping_billing'])) ? $_SESSION['shipping_billing'] : false;
            // EOF shipping=billing default to false
            return $_SESSION['shipping_billing'];
        }
    When a customer starts checkout, both billing and shipping address fields are visible and if you fill out billing address, save it, fill out shipping address and save it, everything works fine and you can continue through checkout.
    BUT, if you fill out billing details, save it and then tick the "shipping=billing" checkbox, the shipping address gets populated and properly assigned, but there's still no payment/shipping options available. Editing ANY of the details (email, billing OR shipping) and saving it bring up the shipping/payment section and allows to proceed.

    What am I missing? Is this controlled anywhere else that I'm not seeing it? Thanks in advance!

  5. #5
    Join Date
    Oct 2008
    Location
    Croatia
    Posts
    1,741
    Plugin Contributions
    22

    Default Re: One-Page Checkout [Support Thread]

    I think I got it. Changing includes/classes/ajax/zcAjaxOnePageCheckout.php on line 54 seems to do the trick. I've changed it from
    Code:
    if ($_POST['shipping_is_billing'] == 'true') {
                    $_SESSION['sendto'] = $_SESSION['billto'];
                    $_SESSION['shipping_billing'] = true;
                    $ship_to = 'billing';
                    $_SESSION['opc']->setTempShippingToBilling();
                }
    to
    Code:
    if ($_POST['shipping_is_billing'] == 'true') {
                    $_SESSION['sendto'] = CHECKOUT_ONE_GUEST_SENDTO_ADDRESS_BOOK_ID;
                    $_SESSION['shipping_billing'] = true;
                    $ship_to = 'billing';
                    $_SESSION['opc']->setTempShippingToBilling();
                }
    Reason for this change is because if sendto==billto, it doesn't pass validation in validateTempShiptoAddress()

    Initial tests indicate it's working OK, but I'm still unsure if this should be considered as an actual solution and what downsides it may have, or evn worse, what problems it may cause. Any ideas would be welcomed, especially if you can foresee any problems by using this code. Thanks!

  6. #6
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,944
    Plugin Contributions
    96

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by balihr View Post
    I think I got it. Changing includes/classes/ajax/zcAjaxOnePageCheckout.php on line 54 seems to do the trick. I've changed it from
    Code:
    if ($_POST['shipping_is_billing'] == 'true') {
                    $_SESSION['sendto'] = $_SESSION['billto'];
                    $_SESSION['shipping_billing'] = true;
                    $ship_to = 'billing';
                    $_SESSION['opc']->setTempShippingToBilling();
                }
    to
    Code:
    if ($_POST['shipping_is_billing'] == 'true') {
                    $_SESSION['sendto'] = CHECKOUT_ONE_GUEST_SENDTO_ADDRESS_BOOK_ID;
                    $_SESSION['shipping_billing'] = true;
                    $ship_to = 'billing';
                    $_SESSION['opc']->setTempShippingToBilling();
                }
    Reason for this change is because if sendto==billto, it doesn't pass validation in validateTempShiptoAddress()

    Initial tests indicate it's working OK, but I'm still unsure if this should be considered as an actual solution and what downsides it may have, or evn worse, what problems it may cause. Any ideas would be welcomed, especially if you can foresee any problems by using this code. Thanks!
    I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.

  7. #7
    Join Date
    Feb 2011
    Location
    Lumberton, TX
    Posts
    629
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
    I love this! But I need some details on how much is consider a cr@p? Is it less than a pound? Bigger than a breadbox? Sorry I just could not resist after looking through code that has no comments at all!!!

  8. #8
    Join Date
    Oct 2008
    Location
    Croatia
    Posts
    1,741
    Plugin Contributions
    22

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
    LOL, yeah, I know, and I already have done that. The comments provided here were actually simplified or removed just to keep it simple here, but I really did try to explain it as much as I possibly could in the actual files. I've actually had to make a few other changes as well, which I was VERY unhappy with because I'd like to keep OPC as close to original as possible, primarily because you keep improving and updating it, but some things are just necessary...
    BTW, you should see how I butchered the OPC's template files...

    May I suggest considering adding this to a future release, with an admin-controlled switch? In some cases, it actually does make sense to show both addresses without requiring user action because billing and shipping addresses are different in 99% cases. So, if the admin could simply flip a switch to have it always shown, it would be great.

    Also, one other thing I've noticed (not sure if it's been discussed before) is the inability to abort Guest Checkout and go to login. A simple scenario is - I click Guest Checkout and then I remember "oh wait, I have an account on this site, lemme login...". There's no way to go back to the point of choosing Guest-New-Returning once you start Guest Checkout, which might be a bit confusing... But then again, it's not SO important...

  9. #9
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,944
    Plugin Contributions
    96

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    I'll need to review the operation for this case and will get back with that. My initial feeling is that you'll need to comment the cr@p out of what you're doing, else someone coming in later to help with the site is going to be very, very confused.
    The issue here is that while a Billing address is always required, a Shipping address isn't (think downloads and/or Gift Certificates). That's why OPC asks initially for the billing address and gives the opportunity to indicate a different shipping address (iff one is required).

  10. #10
    Join Date
    Nov 2005
    Location
    France
    Posts
    600
    Plugin Contributions
    8

    Default Re: One-Page Checkout [Support Thread]

    Zen Cart 1.5.7b
    OPC 2.3.7-beta2 (2021-01-17)
    PHP Version: 7.1.33
    Shipping modules used: Storepickup, Advanced Shipper

    Any suggestions as to why this message is frequently displayed when going through checkout?

    "It's taking a little longer than normal to update your order's shipping cost. Please close this message and try again. If you continue to receive this message, please contact us."

    Sometimes it has to be closed 2 or 3 times before you can actually complete checkout.

 

 
Page 1 of 2 12 LastLast

Similar Threads

  1. Set number of products displayed per page (support thread)
    By yellow1912 in forum All Other Contributions/Addons
    Replies: 146
    Last Post: 2 Nov 2023, 12:50 AM
  2. v151 Banners In Main Page - Support Thread
    By stevesh in forum Templates, Stylesheets, Page Layout
    Replies: 2
    Last Post: 18 Sep 2021, 03:36 PM
  3. v151 Site Map/Page Not Found: Combined [Support Thread]
    By lat9 in forum All Other Contributions/Addons
    Replies: 7
    Last Post: 4 Jan 2016, 02:19 PM
  4. v151 PayPal Express Checkout Using NVP 84.0 [Support Thread]
    By lat9 in forum Addon Payment Modules
    Replies: 32
    Last Post: 28 Dec 2015, 04:54 PM
  5. Checkout Amazon Style -- Support Thread
    By CJPinder in forum All Other Contributions/Addons
    Replies: 72
    Last Post: 13 Apr 2011, 08:18 PM

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