No sé si has probado a ver el resultado de
$shtml
Empieza por ahí. Por lo demás no comentas si envia el e-mail en sí y en que condiciones o si tienes algún mensaje de error en todo esto.
También veo que "imprime_carrito()" es un médoto de tu classe "carrito" .. en consecuencia no puedes hacer:
$shtml .= imprime_carrito();
sino ..
$shtml .= $_SESSION["ocarrito"]->imprime_carrito();
(es un método de tu classe!)
Tampoco lo modificastes para hacer lo que te comenté de que la función devuelva su resultado . .que no lo haga directamente con un "echo" ella mismo .. sino esto no te funcionará nunca.
Al margen del tema del carrito .. deberías
Código PHP:
if(!$_SESSION['auth'])
{
header("Location: index.php");
exit;
}
Un saludo,