• Resolved anja_blubber

    (@anja_blubber)


    We have an issue with our WooCommerce Shop and we are not sure if it is possible a Bug of WooCommerce or if it is the “normal” behaviour and we are just not able to define the Shop right.
    It’s about Shipping Zones:

    We have 4 Shipping Zones
    – 3 differenz with zip codes
    – and 1 for whole Germany

    The 3 Shipping Zones which are limited by the Zip Codes: each are having the option for Delivery (with three different Prices) and the Local Pickup option.
    The Whole Germany Zone has just the Local Pickup option.

    So every customer can select “local pickup” and just some can get the delivery.

    Now we have the following strange behaviour:

    1. I’m a complete new user and I choose “local pickup” in the cart.
    2. Then I go to the checkout and enter my Adress on the left side. The Ajax Function “update_order_review()” is called because of the Adress Change – which is absolutely okay.

    But now, if I’m a customer from one of the shipping zones, which have the option for “delivery”, the Ajax Call changes the Shipping Method to “Delivery” even if I choosed “local pickup” in cart before.

    We noticed, if we change the order of the Shipping Methods inside the Shipping Zone, that every time the first one is chosen. But this won’t help us. If we change the order, so that local pickup is the first and someone chooses “delivery” in the cart and goes to the checkout the same problem appears.

    This also happens if I change the theme to “twentytwenty” – we checked this on our Development-Shop-Copy.
    On this copy I also updated all plugins and wordpress to the recent version but the behaviour is the same.
    At the moment the Live Versions runs with
    WordPress 5.4.2
    WooCommerce 4.1.0

    So I think either we did a big missconfiguration in the Shipping Zones and we don’t understand it, or it is a really strange behaviour by default.

    Do anyone has got a tip for us?
    During searching for an answer, we didn’t found anyone else that has the same issue.

    So thanks a lot for every hint!
    Best Regards
    Anja

    The page I need help with: [log in to see the link]

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Support EastOfWest a11n

    (@eastofwest)

    Howdy Anja,

    I think what you’re experiencing is expected.

    When a new customer lands on your site, your site doesn’t know their address. So, it applies the default address as specified under WooCommerce ? Settings ? General ? Default customer location.

    It also shows the shipping methods available in the zone that address falls under, with the default selected. The default is the upper-most shipping method specified in a zone.

    Every time a shipping zone is reloaded, it loads the defaults. If the postcode changes, and with it the shipping zone, it triggers a reload, causing the previous selection to be forgotten. Shipping method selections are not carried over between zone reloads. You’ll notice if the address changes, but the zone doesn’t change, the selection persists.

    Usually, most customers will only enter their address once though, which is why this isn’t an issue. You can also go to WP Admin ? WooCommerce ? Settings ? Shipping ? Shipping Options, and select to Hide shipping costs until an address is entered. This way the user will only be shown shipping options after they enter their address, and so help to cut down the confusion.

    For the others, I can suggest that you put the “Delivery” option at the top, which presumably you charge for. Your customers are sure to notice a price difference after changing their address.

    dougaitken

    (@dougaitken)

    Automattic Happiness Engineer

    Hey @anja_blubber

    We haven’t heard back from you in a while, so I’m going to mark this as resolved – if you have any further questions, you can start a new thread.

    Thanks,

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘WooCommerce Shipping Methods automatically changes to wrong method in checkout’ is closed to new replies.