I use the Brasil One Step Checkout so I could refresh the shipping methods when a payment-method has been chosen.
We have a payment method which requires a shipping method with a signature from the customer.
So I have 2 shipping methods: DHL and DHL with a signature requirement
This looks strange for our customers, so I want to show 1 shipping method to our customers: DHL
and based on the payment decision, switch the carrier from normal shipment to shipment with signature, select this shipping method and hide the other method.
How can I do this?
Without the code of your extension it's hard to say how to implement that.
You extension should contain the block of shipping methods and a general onepagecheckout controller, where all the blocks are stored. In your case, you should:
1) Find the block of shipping methods in the checkout module
2) Add the possibility to check the current payment method (you can obtain it from the checkout, check its controller)
3) Enable or disable shipping method display when running check of each method
Also, I'd recommend to start with studying the layout files of this extension and controller. I assume it's possible to get the current (chosen) payment method in the controller itself. In there, you'll also be able to transfer it to the shipping methods block.