par
longquanlo » 11 mai 2012, 04:12
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
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