I still haven't solved the problem, but I am getting closer (maybe).
I thought I could set the trigger for shipping to the existence of a session variable. So I added the code "$_SESSION['germanShipping'] = on;" to the german confirm page, and "$_SESSION['euroShipping'] = on;" to the european confirm page. GermanShipping is set to a flat rate, and euroShipping is set to 0.00.
When I enter a European shipping destination, I am redirected to the European confirm page. Shipping is 0.00 and it is not added to the grandTotal.
When I then enter Germany as shipping destination, I am redirected to the German confirm page. Shipping is 5.80 (flat rate), and it is added to the grandTotal.
So far it is working.
However, when I change my mind again, and set a European shipping destination, the 5.80 flat rate will not go away.
I have close to no knowledge of PHP. Would it be possible to end the germanShipping session on the European confirm page? I have tried, but I can't get it to stop. The only way to stop it is to confirm the order and thereby completely destroy the session. But I don't want to do that and have the customer reenter all data.
Could you please help me out, Eric?