Caddie a 0 euro

Fermé
longquanlo Messages postés 2 Date d'inscription vendredi 11 mai 2012 Statut Membre Dernière intervention 12 mai 2012 - 11 mai 2012 à 04:08
longquanlo Messages postés 2 Date d'inscription vendredi 11 mai 2012 Statut Membre Dernière intervention 12 mai 2012 - 12 mai 2012 à 11:31
Bonjour,

je suis debutant en php et je cherche a modifier mon panier existant

Tout fonctionne a merveille sauf que quand un client a un avoir et que son panier est donc a 0 euro, il arrive sur la page pour payer et a le choix entre le cheque, virement ou la carte bancaire.

Dans la logique on ne devrait pas arriver sur cette page puisqu'il n'a rien a payer

Voici mon code actuel :

function get_payment_form($order_id, $forced_type = null, $send_admin_email = false, $amount_to_pay=0)
{
$output = '';

$result = query('SELECT *
FROM nb_commandes
WHERE id="' . intval($order_id) . '"');
$com = fetch_object($result);

if(empty($amount_to_pay)) {
$amount_to_pay = $com->montant;
}
if (!empty($forced_type)) {
$type = $forced_type;
} else {

$type = $com->paiement;
}

switch ($type) {
case 'check':
$output .= '
<p>- <a href="' . $GLOBALS['wwwroot'] . '/factures/commande_pdf.php?code_facture=' . $com->code_facture . '&mode=bdc" onclick="return(window.open(this.href)?false:true);">' . PRINT_PROFORMA . '</a></p>
<p>- ' . SEND_CHECK . BEFORE_TWO_POINTS . ': ' . print_societe(true) . '</p>';
break;

case 'transfer':
$output .= '
<p>- <a href="' . $GLOBALS['wwwroot'] . '/factures/commande_pdf.php?code_facture=' . $com->code_facture . '&mode=bdc" onclick="return(window.open(this.href)?false:true);">' . PRINT_PROFORMA . '</a></p>
<p>- ' . SEND_TRANSFER . BEFORE_TWO_POINTS . ':<br />' . print_rib(true) . '</p>';
break;

case 'paypal':
if (file_exists($GLOBALS['fonctionspaypal']) && !empty($GLOBALS['site_parameters']['email_paypal'])) {
require_once($GLOBALS['fonctionspaypal']);
$js_action='document.getElementById("paypalForm").submit()';
$output .= '
<div align="center">
' . REGLEMENT_CARTE_BANCAIRE . '<br />
' . getPaypalForm($order_id, $_SESSION['session_langue'], fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, false), $_SESSION['session_devise']['code'], $com->email, 1, '', $_SESSION['session_utilisateur']['id_utilisateur'], $com->prenom_ship, $com->nom_ship, $com->adresse_ship, $com->zip_ship, $com->ville_ship, $com->pays_ship, $com->telephone_ship) . '
<br />
' . PAYPAL_IMG . '
</div>
';
$send_admin_template_email = 'admin_info_payment_credit_card';
}
break;

default :
break;
}
if ($send_admin_email && !empty($send_admin_template_email)) {
unset($custom_template_tags);
$custom_template_tags['ORDER_ID'] = $order_id;
send_email($GLOBALS['support'], '', '', $send_admin_template_email, $custom_template_tags, 'html', $GLOBALS['support']);
}

if(is_autosend_module_active() && !empty($js_action) && !empty($GLOBALS['site_parameters']['module_autosend_delay'])) {
$output .= '<script type="text/javascript"><!--//--><![CDATA[//><!--
setTimeout (\''.$js_action.'\', '. ($GLOBALS['site_parameters']['module_autosend_delay']*1000) .');
//--><!]]></script>';
}
return $output;
}

Dans mon idee ce serait que si le panier = 0 soit on n'affiche qu'une case supplementaire comme case 'avoir': mais les autres cases paypal, virement et check sont soient grisees ou n'apparaissent pas

Quelqu'un aurait-il une idee ?

Merci d'avance

2 réponses

Ton message manque un peu de clarté pour que l'on puisse t'aider...

Reformule et pense bien qu'on est pas au courant du fond de ton projet.
0
longquanlo Messages postés 2 Date d'inscription vendredi 11 mai 2012 Statut Membre Dernière intervention 12 mai 2012
12 mai 2012 à 11:31
Bonjour,

Je suis desole, je vais essayer de m'expliquer plus simplement

J'ai un panier sur lequel les clients peuvent ajouter des produits lorsqu'ils passent a l'etape du paiement, ils ont le choix entre la cart bancaire, le virement ou le cheque bancaire.

Mon probleme est le suivant : lorsque le client possede un avoir, celui-ci se deduit donc dans son panier de maniere automatique. Si son panier etait de 12 euros et que son avoir est de 12 euros, son panier est donc a 0 euro.

Lorsqu'il valide sa commande, il arrive sur la page de paiement et a le choix des differents modes enonces au-dessus.
Pour plus de logique, ces modes ne devraient pas apparaitre car il n'y a en fait rien a payer. Parce que si le client clique sur carte bancaire, il tombe sur le site paypal pour payer 0 euro (pas tres logique et pas tres pro, vous en conviendrez).

Dans l'idee, j'aimerai ne pas afficher les trois modes de paiement si le caddie est egal a 0. Je pensais soit afficher un mode "payer avec votre avoir" si le caddie
= 0 soit passer cette etape et valider directement le panier.

Mais voila mes competences php etant limitees car je debute, j'ai du mal a sortir un code qui fonctionne pour realiser cette option
0