=== modified file 'uc_attribute/uc_attribute.ca.inc' --- uc_attribute/uc_attribute.ca.inc 2009-07-21 14:29:21 +0000 +++ uc_attribute/uc_attribute.ca.inc 2009-10-20 17:30:00 +0000 @@ -33,6 +33,10 @@ function uc_attribute_condition_ordered_product_option($order, $settings) { $result = FALSE; + if ($option = uc_attribute_option_load($settings['attribute_option'])) { + $attribute = uc_attribute_load($option->aid); + } + $match = unserialize($settings['attribute_option']); foreach ($order->products as $product) { @@ -45,21 +49,14 @@ // Once the order is made, the attribute data is changed to just the names. // If we can't find it by ID, check the names. if (is_int(key($attributes))) { - if (in_array($settings['attribute_option'], $attributes)) { + if (in_array($settings['attribute_option'], $attributes[$attribute->aid])) { $result = TRUE; break; } } else { - // Load the attribute data once, only if we need it. - if (!isset($option)) { - if ($option = uc_attribute_option_load($settings['attribute_option'])) { - $attribute = uc_attribute_load($option->aid); - } - } - if ($attribute) { - if (isset($attributes[$attribute->name]) && $attributes[$attribute->name] == $option->name) { + if (isset($attributes[$attribute->name]) && in_array($option->name, $attributes[$attribute->name])) { $result = TRUE; break; }