I am not a PHP guy. I have managed by some miracle to re-arrange some code to change the layout of my checkout page.
To do so I had to move the shipping calculation form inside the form which contains the email address, billing/shipping address and purchase button.
I was just starting to feel rather proud of myself when I tried a new postcode to calculate shipping.
Clicking the calculate shipping button processed the order, just like the Purchase button. Seems to only happen if it is clicked after shipping has already been calculated once.
As you can imagine this is not desirable
The test site is here Ashford | The Craft Circle
just add something to the cart and go to checkout, use 3000 as a postcode. you will have to enter a junk billing address and email. It is not connected to any payment system yet. It it will just do a fake checkout.
I zipped and attached the pages php file
line 194 is the shipping calculate button
line 505 the Purchase button