“Whom” or “who” I wrote this for? [duplicate]

Whom, whose, etc are different "cases" of the interrrogative/relative pronoun who.

"Cases" are different forms of the same word, according to the function it fulfills in the sentence.

  • Who is the nominative case, used when the word is a subject.
  • Whose, the genitive case, used to mark possession.
  • Whom, the accusative or dative case, used for direct and indirect objects, respectively.

In modern English, the cases for "who" other than the nominative are increasingly being dropped, especially in speech.

That said, the correct form to choose is "whom" in your example, because "whom ... for" is an indirect object in the sentence.

In many cases, "guess who" would be the proper form to use.

For example, If I said:

Guess who came for dinner.

"who" would be the subject of the subordinate phrase "who came for dinner".

So many speakers, by analogy, tend to always use the "who" form in sentences containing "guess who".