Submitted by selinav on
Bonjour
J'ai un problème avec ubercart et le calcul du montant total.
14€ sont otés sur la page checkout/review.
Après avoir débuggé, j'ai vu que le problème venait de la fonction
function uc_order_get_total($order, $products_only = FALSE) {
$total = 0;
if (is_array($order->products)) {
foreach ($order->products as $product) {
$total += $product->price * $product->qty;
}
}
if ($products_only) {
return $total;
}
$total += uc_line_items_calculate($order);
$result = module_invoke_all('order', 'total', $order, NULL);
foreach ($result as $key => $value) {
$total += $value;
}
return $total;
}
Après la ligne $result = module_invoke_all('order', 'total', $order, NULL);
J'obtiens un tableau comme celui-ci
$result[+1]='First'
$result[+2]='Second'
$result[+3]='Third'
$result[+4]='Fourth'
$result[+5]='Fifth'
$result[0]='Last'
$result[1]=-2
$result[2]=-3
$result[3]=-4
$result[5]=-5
Quand PHP passe dans le foreach, mon total est altéré de 14€ (-2+-3+-4+-5=14)
Comment puis-je savoir quel module pose problème?
Et surtout quels sont les modules invoqués ?
Merci d'avance
Tu peux aller voir l’api de
Permalien Soumis par emerya le 13 Février, 2013 - 21:08
Tu peux aller voir l'api de Drupal : http://api.drupal.org/api/drupal/includes%21module.inc/function/module_i...
En l'occurence, il faut s'intéresser à la fonction module_implements($hook)...
Avec le debugger php ça
Permalien Soumis par selinav le 14 Février, 2013 - 10:02
Avec le debugger php ça permet de voir dans quels modules on passe. J'ai réussi à trouver le problème. Il s'agissait d'une mise à jour du module date qui appelait une fonction date_order() qui n'a rien à voir avec le hook_order de ubercart.