I have read some fill the eggs with mustard because they don't like the taste (poke tiny hole(s) in egg and use needle/syringe to empty and fill).
Also make sure you have fake eggs or golf balls in the nests. That is supposed to help, too.
Last resort, cull. It is a bad habit and spreads like wildfire through the flock. If they are laying soft-shelled or shell-less eggs, they WILL eat them and shouldn't be culled. My chickens do this if there is a soft one OR if they lay on the floor and it breaks open.
Don't cull too quickly though. Once I had a chicken that I was certain was in the habit, separated her with some of her buddies, and then she stopped it. I put her back in and she never did it again from what I could tell.