There's not an obvious reason why this has begun happening as I carried out no changes to CiviCRM at all in the time between the last successful transaction (5 December) and the day I was alerted to the problem (11 December). When I'm logged in, I can see all of the contribution and member pages fine.
The only piece of obvious circumstantial evidence of a problem might be linked to the payment processor I was using (Stripe), where there was a failing webhook which they would stop sending requests to from 11 December. This would fit with the timings, but I've tried to set up a different page with a different payment processor (Paypal) and the same issue appears.
I've tried deactivating all other plugins and tried switching themes, and I've reviewed the WordPress access control permissions. None of this has fixed the problem.
The CRM site is https://crm.jef.eu The failing webhook endpoint is: https://crm.jef.eu/civicrm/payment/ipn/3 One of the failing contribution forms is: https://crm.jef.eu/civicrm/contribute/transact/?reset=1&id=1