If your guest is from latin america and you want to impress him, do not use the "He comprado queso ..."
form. Go with "Compré queso ..."
.
Look at this example. On most parts of Latin America:
"Yesterday I bought cheese for your visit"
would be "Compré queso para tu visita".
whereas
"I've bought cheese from that store a couple times"
would be "He comprado queso de esa tienda un par de veces"
.
As for su
vs tu
, you should use tu
if it's a friendly setting. But note this is not a rule, it's just your best bet. On several regions people will not always use tu
in all friendly situations. It can depend on gender, social status, respect, etc.
As en example look at the maps on this article. Usted is preferred also in some Colombian regions (mine included).
Maps of central america by use of usted/tú/vos.
So to sum up, as you clearly stated it is a dear friend who's visiting:
Your guest is from Spain?
¡He comprado queso para tu visita!
Your guest is from Latin America?
¡Compré queso para tu visita!
Your guest is from Santander (Colombian province)
¡Compré queso para su visita!
As a final note, if you want to add an extra ingredient to the informal formula, say:
¡Compré queso pa' tu visita!