Lo que te he comentado anteriormente sería:
(disculpen separar los mensajes .. pero se me fué la LUZ! cuando lo tenía ya casi todo escrito!!!, me dió miedo!, no tengo UPS'ssss ;(
Aprovechando tu método imprime_carrito() que lo que hace en el fondo es generar HTML .. (leyendo los datos del objeto que los gestiona):
Código PHP:
function _genera_carrito(){
$suma = 0;
$carrito = '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td> </td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
$carrito .= '<tr>';
$carrito .= "<td>" . $this->array_nombre_prod[$i] . "</td>";
$carrito .= "<td>" . $this->array_precio_prod[$i] . "</td>";
$carrito .= "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
$carrito .= '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
$carrito .= "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
//total más IVA
$carrito .= "<tr><td><b>IVA (21%):</b></td><td> <b>" . $suma * 1.21 . "</b></td><td> </td></tr>";
$carrito .= "</table>";
// devolver el resultado al llamarse.
return $carrito;
}
De esta forma "separamos" un poco la "presentación de la lógica" (no del todo pero algo es algo por el momento y a la rápida).
Así .. puedo crear un método como el que tenías ya:
Código PHP:
function imprime_carrito(){
echo $this->_genera_carrito();
}
Y bajo la misma filosofía podemos generar otro método para enviar el e-mail (en formato HTML):
Código PHP:
function enviar_email($de,$para,$asunto){
// Componer el cuerpo del mensaje .. añade tus "cabeceras y pié" del mismo si corresponde + lo que el método "_genera_carrito()" ya hace por sí solo.
$msg = "<b>Solicitud Cotización</b><br><br>";
$msg .= $this->_genera_carrito()."<br><br>";
$msg .= "Fecha solicitud: ".date ("d/m/Y H:i:s")."<br>";
$msg .= "Desde IP:".$_SERVER['REMOTE_ADDR']."<br>";
// Cabeceras que definen que el e-mail es de formato HTML.
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$cabeceras .= 'From: '. $de . "\r\n";
mail($para,$asunto,$msg,$cabeceras);
}
Y usas estos métodos como usabas los otros (sobre todo el de imprime_carrito() por qué tras el cambio "interno" hará lo mismo que hacía antes).
El método nuevo "enviar_email()" requiere de los parámetros que ahí ves descritos. Puedes trabajar más el método ..por ejemplo para enviar una copia al solicitante y otra a quien lo tenga que atender .. etc .. etc ..
Por su puesto faltan muchas validaciones (sobre todo con respecto al envio del e-mail .. ) entre otras cosas.
Un saludo,
PD: (pensamiento interno) me parece que ya esto lo he hecho alguna vez más en el foro .. ?¡?'