West Brom have turned down three bids for the Scotland international so far this summer.
The new deal will keep the 23-year-old at The Hawthorns until the summer of 2015.
“I’m delighted Graham has signed a new long-term contract, which is fully deserved,” West Brom boss Roberto Di Matteo told the club’s official website.
“He made excellent progress last season and we’re now very hopeful he can make the step up to the Premier League.
“There has been a lot of media speculation about Graham’s future, but it hasn’t affected him one bit.
“Ever since he has reported back for pre-season training, his attitude has been as spot on as it always is and I know for a fact how much he’s looking forward to the new season.
“The exciting thing is that Graham knows he still has a lot of work to do and is yet to reach his full potential.”
Sporting technical director Dan Ashworth added: “We only rewarded Graham with a new contract in January, which tied him to the club until June 2014.
“But his form got even better during the last few months of the season and we have recognised this by offering him an improved and extended deal.”