Problem solved

Posts: 7
Joined: 03/03/2008
Bug Finder

I have managed to solve my problem. It was a classic php4/php5 issue. In PHP4 everything including objects are passed as copy whereas in PHP5 objects are passed by reference. In this case the original array needed to be changed which was not happening in PHP4. Here's the patch:

=== modified file 'shipping/uc_quote/uc_quote.module'
--- shipping/uc_quote/uc_quote.module   2008-02-21 18:16:47 +0000
+++ shipping/uc_quote/uc_quote.module   2008-03-07 00:48:18 +0000
@@ -1061,11 +1061,11 @@
         }
       }
       $products = array();
-      foreach ($arg1->products as $product){
+      foreach ($arg1->products as $key0 => $product){
         $node = (array)node_load($product->nid);
-        foreach ($node as $key => $value){
-          if (!isset($product->$key)){
-            $product->$key = $value;
+        foreach ($node as $key1 => $value){
+          if (!isset($product->$key1)){
+            $arg1->products[$key0]->$key1 = $value;
           }
         }
         $products[] = $product;

Flat rate gives "Invalid option selected. Recalculate shipping quotes to continue." error By: Johnny van de Laar (27 replies) Wed, 02/20/2008 - 06:41