 |
 |
 |
 |
Comment obliger les clients à consulter les conditions générales de vente (CGV) avant de passer à la phase de confirmation d'une commande ? |
 |
|
 |
 |
 |
 |
Nous vous rappelons que l'obligation d'accepter les cgv est devenue obligatoire pour tout site commercial.
Une contribution présente sur oscommerce.com Must agree to Terms fait cela très bien.
Une autre solution proposée par Decad7
(modifié par JeanLuc pour avoir l'erreur dans la fenêtre Javascript de checkout_payment, la même que si on ne choisit pas de méthode de paiement)
si la case n'est pas coché, et que l'on fait continuer la commande, un message d'erreur apparait.
si la case est coché, la transaction continue.
ensuite, si l'on clique sur voir les conditions générales de vente et que l'on clique sur le bouton continuer se trouvant sur cette page, on revient
sur la page de paiement avec le bouton cocher (car les conditions ont été lues).
Voila le code.
Dans le fichier /catalog/checkout_payment, ajouter le code ci-dessous ou vous souhaitez voir apparaitre la case a cocher avec le text.
<?php if($HTTP_GET_VARS['consult_conditions']) { echo '<input name="conditions" type="checkbox" checked>'; } else { echo '<input name="conditions" type="checkbox" >'; } echo '<b>' . TEXT_CONDITIONS .'</b>'; ?>
|
Ensuite dans /catalog/include/language/french.php, ajouter
define('TEXT_CONDITIONS',
'J\'ai lu et accepté les <a href=' .
tep_href_link(FILENAME_CONDITIONS, 'origin=checkout_payment') . '
class="conditions"> Conditions générales de vente ! </a>');
define('JS_ERROR_NO_CHECK_CONDITION', '* Pour continuer votre commande la case conditions générales de vente doit être cochée !');
|
Dans /catalog/includes/classes/payment.php : juste après ceci (vers ligne 107):
while (list(, $value) = each($this->modules)) { $class = substr($value, 0, strrpos($value, '.')); if ($GLOBALS[$class]->enabled) { $js .= $GLOBALS[$class]->javascript_validation(); } }
|
ajouter ces lignes:
// Ajout pour ajout CGV $js .= "\n" . ' if (!document.checkout_payment.conditions.checked) {' . "\n" . ' error_message = error_message + "' . JS_ERROR_NO_CHECK_CONDITION . '\n";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n"; // Fin ajout pour ajout CGV
|
Dans /catalog/conditions.php : remplacer (vers la ligne 65)
|
<td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
|
par
|
<td
align="right" class="main"><br><?php
if($HTTP_GET_VARS['origin'] == 'checkout_payment'){echo '<a href="'
. tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'consult_conditions=true',
'NONSSL') . '">' . tep_image_button('button_continue.gif',
IMAGE_BUTTON_CONTINUE) . '</a>';}else{echo '<a href="' .
tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '">' .
tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) .
'</a>';} ?></td>
|
Enfin, pour que la case à cocher soit réellement obligatoire dans la procédure de commande, ajouter dans catalog/checkout_confirmation.php (après la ligne 15 qui inclut application_top.php)
// Ajout pour ajout CGV
if ($_POST['conditions'] != "on"){
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(JS_ERROR_NO_CHECK_CONDITION), 'SSL'));
}
// Fin Ajout pour ajout CGV
|
Et normalement tout devrait fonctionner correctement |
 |
|
 |
 |
|
|
Auteur : JeanLuc / Gnidhal / chti_poupon |
Mise à jour le 10/01/2010 |
|
 |
|
|
|
|
 |