Merry Christmas Eve! This morning my husband's iPhone 6 Plus stopped playing text tones. The ringer worked fine, but all of the text tones just vibrated, even while trying to change the tone in the Settings app (built in and custom ringtones.) Here's how we fixed it:
Restart the iPhone if you haven't tried that already.
In the settings app, go to Sounds, and then Text Tone. If the tone sounds now when selecting different ones, it should be working now. If not, keep going.
Back up one screen in the Settings app to go to the sound menu. Turn off "change with buttons" if it's on. Slide the volume slider just above that all the way down, and then back up to your normal ringer volume level. Turn back on "change with buttons." Reboot the iPhone.
The sounds should be working now, check again by trying to select a text tone in Settings. In the settings app, go to Sounds, and then Text Tone. If you can hear the tone now when selecting different text tones, select your regular tone and ask someone to text you to do the final test!
If these didn't work for you, leave us a comment with your specific situation, and we will help as best we can!