2010-03-22 5 views
3

J'installe un code de suivi dans la page checkout_success.php. Je dois être en mesure d'attraper le nom du code de réduction/code de réduction de la commande, si un a été utilisé afin que je puisse faire écho dans mon script de suivi. Je me demandais si quelqu'un sait comment faire cela? J'utilise cette contribution de coupons de réduction; ot_discount_coupons.php, le 4 Août 2006, auteur: Kristen G. Thorson, ot_discount_coupon_codes version 3.0OSCommerce checkout succès page suivi

Il semble que le code de coupon n'est pas réellement stocké dans les order_totals, mais dans une table séparée de discount_coupons_to_orders. Y at-il une requête que je peux faire sur cette table pour trouver le code promo correspondant à cette commande? j'ai essayé le suivant mais il ne retourne rien;

$coupon_query = tep_db_query("select coupons_id from discount_coupons_to_orders where orders_id = '".(int)$orders['orders_id']."' ORDER BY orders_id DESC LIMIT 1"); $coupon_id = tep_db_fetch_array($coupon_query); $couponid = $coupon_id['coupon_id']; 

Merci.

+0

La période de primes est sur le point d'expirer. Si aucune de ces réponses ne vous convient, pourriez-vous poster des informations supplémentaires? –

Répondre

3

Au lieu de:

$couponid = $coupon_id['coupon_id']; 

Essayez:

$couponid = $coupon_id['coupons_id']; 
+0

Désolé l'homme. Je viens d'avoir mes alertes pour dire qu'il y avait des réponses. On dirait que la simple faute d'orthographe est susceptible de la guérir. – doubleplusgood

+0

@NeilBradley Pas de problème du tout, je ne voulais surtout pas être arrogant ou quoi que ce soit. –

0

Si je me souviens bien, vous pouvez transmettre le code de coupon sur la page, et y avoir accès. Si ce n'est pas le cas, pirater la page d'entrée du coupon, et dans la partie "si le coupon est ok", enregistrez-le dans une variable de session. Sur la page de succès, vous utiliseriez juste quelque chose comme $ _SESSION ['couponcode'], inutile d'avoir plus de requêtes. Ceci est probablement 2 lignes de modification sur la page d'entrée de coupon.

1

Ma solution est probablement un peu plus que ce que vous cherchez mais a bien fonctionné pour mon travail. Je fais une requête à la ligne 76 dans ce fichier php qui interroge les informations de commande et le code de coupon.

$orders_query = tep_db_query("select orders.orders_id from " . TABLE_ORDERS . " left join discount_coupons_to_orders dco on orders.orders_id=dco.orders_id where customers_id = '" . (int)$customer_id . "' order by date_purchased desc limit 1"); 
$orders = tep_db_fetch_array($orders_query); 

Le but de ceci est de manière à ce qu'un client puisse obtenir des informations sur sa commande. Vous pouvez référencer votre code promo ici comme je l'ai fait en montrant que la réduction a été appliquée.

echo '<br /><br /><span style="color:red"><b>Your order number is #'.$orders['orders_id'].(!empty($orders['coupons_id']) ? ' Discount Code: '.$orders['coupons_id'] : "").' you can now <a href="account_history_info.php?order_id='.$orders['orders_id'].'" style="text-decoration: underline;color:red">view your receipt</a></b>.</span>'; 

Nous avons trouvé que les clients veulent immédiatement voir un « reçu », donc nous un lien directement à l'historique du compte. Mais la clé ici est que si vous utilisez une jointure à l'information de la commande principale, vous pouvez accéder aux informations de commande et le code de coupon en une seule fois.