From 42c2b17755c6c1447c6b678442746563f64a9818 Mon Sep 17 00:00:00 2001
From: Helior Colorado <me@helior.info>
Date: Fri, 20 Apr 2012 10:46:03 -0700
Subject: [PATCH] Conditionally loading order in right scope; checking for
 existence of order before offering tokens;

---
 modules/payment/commerce_payment.tokens.inc |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/modules/payment/commerce_payment.tokens.inc b/modules/payment/commerce_payment.tokens.inc
index 7591fa8..2135b3c 100644
--- a/modules/payment/commerce_payment.tokens.inc
+++ b/modules/payment/commerce_payment.tokens.inc
@@ -118,6 +118,9 @@ function commerce_payment_tokens($type, $tokens, array $data = array(), array $o
 
   if ($type == 'commerce-payment-transaction' && !empty($data['commerce-payment-transaction'])) {
     $transaction = $data['commerce-payment-transaction'];
+    if ($transaction->order_id) {
+      $order = commerce_order_load($transaction->order_id);
+    }
 
     foreach ($tokens as $name => $original) {
       switch ($name) {
@@ -178,14 +181,13 @@ function commerce_payment_tokens($type, $tokens, array $data = array(), array $o
 
         // Default values for the chained tokens handled below.
         case 'order':
-          if ($transaction->order_id) {
-            $order = commerce_order_load($transaction->order_id);
+          if (isset($order->order_name)) {
             $replacements[$original] = $sanitize ? check_plain($order->order_number) : $order->order_number;
           }
           break;
 
         case 'creator':
-          if ($order->uid == 0) {
+          if (isset($order->uid) && $order->uid == 0) {
             $name = variable_get('anonymous', t('Anonymous'));
           }
           else {
@@ -205,8 +207,7 @@ function commerce_payment_tokens($type, $tokens, array $data = array(), array $o
       }
     }
 
-    if ($order_tokens = token_find_with_prefix($tokens, 'order')) {
-      $order = commerce_order_load($transaction->order_id);
+    if (isset($order) && $order_tokens = token_find_with_prefix($tokens, 'order')) {
       $replacements += token_generate('commerce-order', $order_tokens, array('commerce-order' => $order), $options);
     }
 
-- 
1.7.6

