Hola,
Tengo el siguiente problema, tengo una Tienda virtual en la que el CARRITO se compone de dos partes "Una donde se selecciona le forma de pago, la forma de envio y tambien si el usuario es afiliado puede utilizar bonos de descuento".
El tema es, yo tengo un usuario que es AFILIADO y le doy 10 Bonos de descuento. Cuando el introduce dichos bonos en la casilla o si no introduce nada, al pasar a la pantalla de confirmación del carrito la db se actualiza y le deja los bonos en 0 (Da igual lo que haga le quita todos los bonos). Les dejo los dos códigos por si pueden ayudarme.
Codigo Carrito:
Código PHP:
<?
if ((!session_is_registered('id_usuario_session')) && (!session_is_registered('usuario_usuario_session') )){
echo "<center>";
include("include/login.inc.php");
echo "</center>";
}else{
$sql_afil = "SELECT id_usuario,bonos FROM usuarios_afiliados WHERE id_usuario='$id_usuario_session' AND activo='1'";
$result_afil =mysql_query($sql_afil);
$es_afiliado=0;
$bonos=0;
$cantidad_afil =mysql_num_rows($result_afil);
if ($cantidad_afil) {
$row_afiliado = mysql_fetch_object($result_afil);
$bonos = $row_afiliado->bonos;
$es_afiliado =1;
}
?>
Dentro del Carrito.php el Campo de los Bonos:
Código PHP:
<? if ($es_afiliado) {?>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span style="color:#fff;background:#3DA421;font-weight:bold;padding:2px"><? echo $bonos;?><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">
<input name="bonos_a_usar" type="text" id="bonos_a_usar" size="10" />
</font></span></td>
</tr>
</table>
<? } ?>
En Comprar.php (Paso final de la compra donde se almacenan los datos):
[PHP]<?
include("....");
include("....");
if ($_POST["notas"] != "")
$_SESSION["notas"] = $_POST["notas"];
//define('CAIXAGALICIA_PATH', 'sdicomercio'); // Pruebas
define('CAIXAGALICIA_PATH', 'lagaleria'); // Real
$sql_afil = "SELECT id_usuario,bonos FROM usuarios_afiliados WHERE id_usuario='$id_usuario_session' AND activo='1'";
$result_afil =mysql_query($sql_afil);
$es_afiliado=0;
$bonos=0;
$cantidad_afil =mysql_num_rows($result_afil);
if ($cantidad_afil) {
$bonos_a_usar = (isset($_POST['bonos_a_usar']))?$_POST['bonos_a_usar']:0;
$row_afiliado = mysql_fetch_object($result_afil);
$bonosafil = $row_afiliado->bonos;
$es_afiliado =1;
}
if ($bonos_a_usar>=$bonosafil ) {
$actualizar_bonos = 0;
$bonos_a_usar =$bonosafil;
} else {
$actualizar_bonos = $bonosafil - $bonos_a_usar;
}
if($pedido && $secuencia) {
//if($_SERVER['REMOTE_ADDR'] != "212.163.35.153") die("ERROR");
$result = mysql_query("SELECT * FROM usuarios_compras WHERE id=".intval($pedido));
$row = mysql_fetch_array($result);
$url = "http://".CAIXAGALICIA_PATH.".caixagalicia.es/tpv2/tpv_recoge.asp?comercio=TUCOMERCIO&pedido=$pedido& secuencia=".urlencode($secuencia)."&importe=".str_ replace(".", "", number_format($row["total"], 2, ".", ""))."&moneda=eur";
// $flog = fopen("_log.txt", "a");
// fwrite($flog, "[".date("Y-m-d H:i")."] - ".$_SERVER['PHP_SELF']."\n".$_SERVER['REMOTE_ADDR']." - ".$_SERVER['REMOTE_HOST']."\n".$url."\n\n");
$str = "";
ob_start();
if(@readfile($url)) {
$str = ob_get_contents();
// fwrite($flog, $str."\n\n");
if(ereg("\<ESTADO\>(.+)*\<\/ESTADO\>(.+)*\<ERROR\>(.+)*\<\/ERROR\>(.+)*\<CODOP\>(.+)*\<\/CODOP\>", $str, $tmp) && $tmp[1] == 1)
echo $str;
else
echo "<DATOS><ESTADO>2</ESTADO><ERROR>".$tmp[3]."</ERROR><CODOP></CODOP></DATOS>";
}
ob_end_clean();
// fclose($flog);
exit;
}
if ((!session_is_registered('id_usuario_session')) && (!session_is_registered('email_usuario_session'))) {
header("Location: login.php?viene=$PHP_SELF");
exit;
}
//Si enviaron el formulario lo verifico
if ($e == 1){
$bonos_usados = (isset($_POST['bonos_a_usar']))?$_POST['bonos_a_usar']:0;
$actualizar_bonos = (isset($_POST['actualizar_bonos']))?$_POST['actualizar_bonos']:0;
switch($t){
case "ce":
$datos["todo_ok"] = 1;
$mostrar = "Contrareembolso";
break;
case "db":
$metodo_pago = $t;
$mostrar = "Transferencia bancaria";
$datos["todo_ok"] = 1;
break;
case "pp":
$metodo_pago = "pp";
$mostrar = "Tarjeta de crédito/débito (Tu Banco)";
$datos["todo_ok"] = 1;
break;
case "py":
$metodo_pago = "py";
$mostrar = "PAYPAL";
$datos["todo_ok"] = 1;
break;
}
if ($datos["todo_ok"] == 1){
include("include/update.php");
$notas = $_SESSION["notas"];
//Guardo los datos de la transaccion en compras
$sql = "INSERT INTO usuarios_compras VALUES ('',
'$id_usuario_session',
'". strip_tags(str_replace("</P>","\n",str_replace("<br>","\n",$cabecera))).str i p_tags(str_replace("</P>","\n",str_replace("<br>","\n",$cuerpo))).$tele f onos.$total_final.strip_tags(str_replace("</P>","\n",str_replace("<br>","\n",$pie))) ."',
'$cuerpo_extra',
'".strtotime("now")."',
'".($total_final)."',
'0',
'".$gremio_usuario_session."',
'',
'$notas')";
$result = mysql_query($sql);
$id_transaccion = mysql_insert_id();
//Borro las transacciones
$sql = "DELETE FROM usuarios_transacciones WHERE id_usuario = '$id_usuario_session'";
$result = mysql_query($sql);
include("include/mail_admin.php");
if ($metodo_pago == "pp"){
include("include/tpv_".$tpv_seleccionado.".php");
}elseif ($metodo_pago == "py"){
include("include/paypal.php");
}else{
header("Location: comprar_f.php");
exit;
}
}
}