No need to recount all the times; suffice it to say Trump promised over and over and over that he would build the wall -- and that Mexico would pay for it.
The promises kept coming after Trump won the White House. "We're going to have our wall," he told a cheering crowd in Phoenix last August. "We're going to get our wall."
"Now, the obstructionist Democrats would like us not to do it," Trump continued. "But believe me, if we have to close down our government, we're building that wall."
The president was right about one thing -- Democrats did try to obstruct the wall. But last week Congress came to one of its many recent deadlines to shut down the government, and Republicans didn't fight very hard for a wall, either. And the leadership from the White House that would have been required to win a fight just wasn't there.
In the end, Trump agreed to sign an omnibus spending bill that included virtually nothing for a wall. In total, $1.6 billion was allotted for border security that did not specify the construction of a wall, although some portion of that could be applicable to building a relatively small length of new wall. That was nowhere near the $25 billion the president and wall proponents had sought.
It was a stunning failure for the White House, made more bitter for Trump supporters because the president had had a real chance to win full, or nearly full, funding for the wall. Trump had put pressure on Democrats in two ways: one, by rescinding DACA, President Obama's Deferred Action for Childhood Arrivals program, and two, by attaching big demands, like wall funding and an end to chain migration, to any agreement to make DACA permanent.
A federal court put on hold Trump's March 5 deadline for ending DACA, relieving some of that pressure on Democrats. But it did not relieve all the pressure, because Senate Democratic leader Charles Schumer and others know Trump will eventually win the DACA case -- after all, DACA was an Obama executive action, and it can be undone by a later president's executive action. And Trump kept up the pressure created by his demands for a wall, an end to chain migration and other policy changes.
A deal seemed possible: Democrats would give the president the $25 billion he wanted for the wall, and in turn, Trump would agree to make DACA permanent and drop the chain migration and other demands. In other words, a straight wall-for-DACA deal.
It didn't turn out to be straight at all. In the end, it came down to haggling between the White House, Hill Republicans and the Democratic leadership, with Democrats -- predictably -- upping their demands in exchange for wall funding. It all came to nothing.
After an odd, half-hearted threat to veto the bill, Trump tried to make the best of a bad situation. "We're very happy with what's happened with certain elements of the border," he said when he signed the bill. "Not happy with $1.6 billion, but it does start the wall, and we will make that $1.6 billion go very, very far. It's going to go very far."
The White House began to call the $1.6 billion a "down payment" on the wall. But Trump could see that he had failed to deliver on a key campaign promise and quickly distanced himself from the result.
"I say to Congress, I will never sign another bill like this again," Trump said. "I'm not going to do it again."
It would be an understatement to say Trump's supporters on the immigration issue were disappointed.
"CONGRATULATIONS, PRESIDENT SCHUMER!" tweeted Ann Coulter. Quoting Trump's pledge to never sign a bill like that again, Coulter responded, "Yeah, because you'll be impeached."
"One thousand, three hundred billion dollars and Trump couldn't get one billion to start fulfilling a central promise he campaigned on?" asked the blogger Mickey Kaus in an email exchange. "Not even one mile of the wall he's talked about? That's like going a whole basketball game without scoring a goal -- an epic failure of legislative strategy that will be studied in political science classes for years."
Mark Krikorian of the conservative Center for Immigration Studies, noted that the rest of the bill failed to meet Trump's immigration priorities, too. "The omnibus funded less detention space than is currently being used, prohibited the hiring of more ICE field agents, and did nothing to rein in sanctuary cities," Krikorian noted in an email. "Apart from the absence of a DACA/Dream amnesty, it was a complete defeat for immigration hawks."
Krikorian cited two reasons for the failure. The first is "the president just isn't very good at working with Congress. And the second is "the Republican leadership in Congress doesn't really care about the president's immigration goals."
After it was all over, the White House vowed to keep trying. "The full $25 billion for the wall will be tied to DACA reform in the future," a spokesperson said. Perhaps. But for that to happen, the president will have to fight harder and smarter to fulfill a key campaign promise.