As well as the default WooCommerce blocks you can also use the custom Amnesty WC block we have built. The donation block supports adding either donations, subscriptions, or both. If both a donation and a subscription are added to the block, it will show the user an option to toggle the form between one-off and recurring donations.
To add the option for a user to choose a specific target campaign/fund for their donation, you will need to create a checkout field, guide here.
You can see an example here of the custom block in action and a GIF below of the setup process.