Da bei mir im Warenkorb das Versandgewicht mit "0" angegeben wurde, obwohl der Artikel ein Gewicht hat, habe ich das mal debugged... Das Versandgewicht wird dort berechnet mit PHP: $t_shipping_weight = gm_prepare_number($GLOBALS['shipping_num_boxes'] * $GLOBALS['shipping_weight'], $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']); "$GLOBALS['shipping_num_boxes']" und "$GLOBALS['shipping_weight']" sind dabei allerdings undefiniert, so dass der Wert 0 errechnet wird. Wenn ich das ändere zu PHP: global $shipping_weight, $shipping_num_boxes; $t_shipping_weight = gm_prepare_number($shipping_num_boxes * $shipping_weight, $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']); wird der richtige Wert ermittelt....
Das ergibt keinen Sinn. http://php.net/manual/de/language.variables.superglobals.php Schon mal beide Varianten gleichzeigtig ausprobiert, um zu beweisen, dass es wirklich einen Unterschied gibt?
Das ist aber wie es ist.... Natürlich habe ich das ausprobiert. Die erste gibt "0", die korrigierte den richtigen Wert...
Wirklich mal ein PHP: global $shipping_weight;var_dump($shipping_weight);var_dump($GLOBALS['shipping_weight']); ausprobiert? Die Ursache des Problems sehe ich dann aber in der Serverkonfiguration. Es gibt echt keinen Grund global $variable; zu nutzen.
Kannst du mal ausprobieren, ob du das Verhalten „draußen“, also in einem normalen Webspace, auch noch reproduzieren kannst?
Ich habe so eine vage Ahnung, wo der Haken begraben liegt. Ich habe mal 2.0.15.4 nach „shipping_num_boxes“ durchsucht: Die Variable wird von den Versandkostenmodulen per „global“ definiert. Das ist also immer innerhalb eines Objektes (dessen Klassendefinition erschwerenderweise auch noch in PHP4-Synax ist), eine echte Deklaration im globalen Namensraum gibt es nicht. Daher meine Vermutung, dass da irgendein PHP-Beschleuniger den Faden verliert.
Ja, gerne... Hier die Variante mit PHP: $t_shipping_weight = gm_prepare_number($GLOBALS['shipping_num_boxes'] * $GLOBALS['shipping_weight'], $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']); => Gewicht ist "0".... Hier die Variante mit PHP: global $shipping_weight, $shipping_num_boxes; $t_shipping_weight = gm_prepare_number($shipping_num_boxes * $shipping_weight, $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']); => Gewicht ist OK....