B. When 'to have' connects with an object to form an idiom which indicates action ("have a meal", "have a bath", "have a good time", "have a bad day"), then "have" is very roughly equivalent to "experience". As such it is being used as a 'dynamic' verb and can take the progressive tenses.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.