From e5c4779d5014564c324f63eac53cd2b6176bc255 Mon Sep 17 00:00:00 2001
From: Jerenus Zheng <jun.zheng@insready.com>
Date: Thu, 30 Aug 2012 12:29:30 +0800
Subject: [PATCH] Issue #1763000 by Jerenus: To fixed the problem of 'Notice:
 Trying to get property of non-object in
 theme_webform_display_productfield().'

---
 productfield.inc |   20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/productfield.inc b/productfield.inc
index d91a750..3ff54cf 100644
--- a/productfield.inc
+++ b/productfield.inc
@@ -415,14 +415,18 @@ function theme_webform_display_productfield($variables) {
   foreach ($element['#value'] as $value) {
     $value = json_decode($value);
     // Administer provided values.
-    if (isset($options[$value->product_id])) {
-      $paid_display_option = empty($value->paid) ? t('Unpaid') : t('Paid');
-      $paid_display_option = empty($value->order_id) ? $paid_display_option : l($paid_display_option, "admin/commerce/orders/{$value->order_id}/view");
-      $name = _webform_filter_xss($options[$value->product_id]);
-      $items[] = "{$value->quantity} x {$name} (<strong>{$paid_display_option}</strong>)";
-    }
-    else {
-      $items[] = check_plain($value->product_id);
+    if(isset($value->product_id)){
+        if (isset($options[$value->product_id])) {
+          $paid_display_option = empty($value->paid) ? t('Unpaid') : t('Paid');
+          $paid_display_option = empty($value->order_id) ? $paid_display_option : l($paid_display_option,    "admin/commerce/orders/{$value->order_id}/view");
+          $name = _webform_filter_xss($options[$value->product_id]);
+          $items[] = "{$value->quantity} x {$name} (<strong>{$paid_display_option}</strong>)";
+        }
+        else {
+          $items[] = check_plain($value->product_id);
+        }
+    }else{
+       $items[] = check_plain($value);
     }
   }
 
-- 
1.7.9.5

