Update: that iPhone 8 I got from a pawn shop in Reno last month won't charge past 3%
Turns out a $6 toothpick and some 91% alcohol scrubbed about a decade of pocket lint out of the port, and now it charges fine. If your port looks clean but still won't grab a cable, shine a flashlight in there, the lint hides at the bottom.