The 22-year-old striker, who joined the Saddlers from Shrewsbury 12 months ago, scored 20 goals in 37 appearances for Dean Smith’s side last season.
The Wales Under-21 international told Walsall’s official website: “I’m over the moon to sign this extension. It was a great year for me personally last season and there is no reason why, as a team, we can’t be challenging for the play-offs this time around.
“I’m full of optimism and can’t wait to get started again.
“For me to miss around 20 games last season through injury but still hit 20 goals was a brilliant milestone, but I realise that I have to do it on a consistent basis and I will be striving to reach those heights again. I am hungry to get more goals.”