My data wasn’t working for almost 2 weeks despite 4 phone calls to O2 promising that it will work after midnight. I even went in to an O2 shope where they looked through all the different settings to ensure everything was set up properly.
Thankfully Google is my friend as are forums and a solution has been found. It wasn’t particularly obvious to me but apparently it is quite common. I guess that’s the downside coming from a “It just works” iPhone.
Anyways go to settings > Access Points (towards the bottom) and then just ensure the correct network is checked. In my case it was O2 Pay Monthly