The Edinburgh-born forward underwent a medical at the DW Stadium last week and is now officially a Wigan player after putting pen to paper.
He leaves Hearts after 14-years having come through the club’s youth academy since childhood. He played 181 games for the Tynecastle side and scored 40 goals but told them last year he would not sign a new contract.
Ahead of his deal expiring this summer, Hearts agreed to an immediate transfer for around £300,000.
“I am grateful for the opportunity and excited by the challenge,” Walker told Wigan’s official club website.