We are using BTCpay server.
To accept bitcoin payments all you need is a wallet which will give you addresses to use. People send you bitcoin directly, to the addresses that you generate yourself. No need for a “service” to do it for you. Bitcoin is peer to peer, i.e. person to person. No-one else need be involved at all.
There are loads of services that will “help” you, and plug-ins, including for joomla and wordpress but all I found except one were for you to use a “service” which naturally means it is not your address and they will take a fee for making a simple procedure more complex. The one joomla exception I found has not been updated for 3 years.
Simple html is all you need for a webpage. E.g:
<a href="bitcoin:1KFmJMRhY7wjgkKPKbRVzXnTk9js6YNVQ3" title="Donate bitcoins and we will make sure you get into heaven when you die."><img src="https://nimno.net/wp-content/uploads/2021/12/donate2.jpeg"></a>
Clicking the button (or just text if you put that in instead) will do nothing if the viewer has no bitcoin wallet installed, but if they do it will open the wallet already with your address ready to pay. Whatever you write in the title attribute will show as a tooltip when user hovers over it.
You can also use an image of a QR code so that people can scan it into their phone and pay easily that way. Go to blockstream.info and paste your address into the search field. The resulting page will give you a QR code which you can right click on and download. Be careful not to get these from just anywhere, as there are scammers who will give an address of theirs instead. Check the link yourself to make sure it opens your wallet and shows your own address.
Then you can just put the image in your page too:
<p><img width="165" height="165" src="https://nimno.net/wp-content/uploads/2021/12/qr1.png"></p>
If you want to add a text box with your address so it can be copied by clicking a button, that is detailed on w3schools.com. It would be easier just to put the text of the address in the page and let people select and copy — 1KFmJMRhY7wjgkKPKbRVzXnTk9js6YNVQ3 — but this is more sure to get an accurate copy without missed characters or added spaces.
For monero here is the github page about URI formatting