Cespedes agreed to a four-year, $110 million contract in December 2016 but hasn't played since July 20, 2018. The outfielder had surgery to remove bone calcification from his right heel on Aug. 2, 2018, and from his left heel that Oct. 26.
Mets general manager Brodie Van Wagenen, Cespedes' former agent, said in late May the outfielder suffered multiple right ankle fractures in an accident at Cespedes' ranch in Port St. Lucie, Florida, where the club's spring training complex is located.
New York withheld part of Cespedes' salary, alleging he was hurt during an activity prohibited by his contract's guarantee language. The players' association filed a grievance, and the sides settled on an amended contract before the case was argued.
"The club has reached an agreement with Yoenis Cespedes to amend and restructure his contract," the team said in a statement Friday. "Cespedes remains under contract with the Mets through the 2020 season."
Van Wagenen said last month he was uncertain whether Cespedes would play in 2020.
Cespedes had been owed $29 million this year and $29.5 million in 2020. His 2019 pay was cut to $14,811,828, according to Mets payroll information made available to all clubs.
The amended contract will significantly lower his 2020 guaranteed salary from $29.5 million, a source told ESPN's Jeff Passan.
Cespedes will have the chance to earn additional bonuses.
A two-time All-Star, the 34-year-old has played in only 119 games in the first three seasons of the contract -- just 38 since the end of the 2017 season.
Minor league instructor and former Mets player Endy Chavez posted and then deleted video on Nov. 19 of Cespedes taking swings.
Also Friday, former All-Star right-hander Michael Wacha and the Mets completed a one-year, $3 million contract that includes $8 million in performance bonuses. Wacha can earn $7 million under a points system and $1 million for relief appearances.
"I've got my mindset going in as a starter right now," Wacha said. "Down the road, who knows what's going on. But my mindset going in is definitely a starter. "
The 28-year-old Wacha starred as a rookie for the National League champion St. Louis Cardinals in 2013, winning NL Championship Series MVP, but he has been hampered by injuries since. He had a 4.76 ERA over 126⅔ innings last season in 24 starts and five relief appearances. He was diagnosed with a right shoulder strain in September and did not pitch in the playoffs.
"I'm very confident in the work that we've been putting in in the offseason, preparing for this next season," he said. "I'm very confident with the guys I'm working out with."
As a rookie in 2013, he was teammates with new Mets manager Carlos Beltran. Wacha referred to Beltran as "El Caballo" -- the horse.
"I was very fortunate enough to play with him in 2013 and just see the way he prepared for the game. He knows the amount of work that goes into being a very successful ballplayer," Wacha said. "He really is the best, an unbelievable knowledge about the game."
Wacha was an All-Star in 2015, when he went 17-7.
"I was attacking the zone. I was not getting in trouble with walking guys," he said.
He is represented by CAA, where Van Wagenen was an agent before the Mets hired him in late 2018.
Wacha would earn a point toward a bonus for each start or each relief appearance of three or more innings, getting $500,000 each for points 10, 14, 18, 20 and each additional point through 30. He would get $250,000 apiece for 40, 45, 50 and 55 relief appearances.
He also has award bonuses of $50,000 for Cy Young, $25,000 for second and $10,000 for third; $100,000 for World Series MVP; and $50,000 each for League Championship Series MVP, making the All-Star Game and winning a Gold Glove or Silver Slugger Award.
The Associated Press contributed to this report.