function commerce_registration_load_product_registrations in Commerce Registration 7.2
Action callback.
Loads all registrations associated with a commerce line item's product.
Parameters
CommerceLineItem $line_item: The Commerce Line Item for which to return all associated registrations.
Return value
array A list of registrations.
Related topics
1 string reference to 'commerce_registration_load_product_registrations'
File
- ./
commerce_registration.rules.inc, line 273 - Commerce Registration rules file.
Code
function commerce_registration_load_product_registrations($line_item) {
$entities = array();
$line_item_wrapper = entity_metadata_wrapper('commerce_line_item', $line_item);
if (in_array($line_item_wrapper->type
->value(), commerce_product_line_item_types())) {
$product_id = $line_item_wrapper->commerce_product->product_id
->value();
$query = new EntityFieldQuery();
$result = $query
->entityCondition('entity_type', 'registration')
->propertyCondition('entity_type', 'commerce_product')
->propertyCondition('entity_id', $product_id)
->propertyCondition('order_id', $line_item->order_id)
->propertyOrderBy('registration_id', 'asc')
->execute();
if (!empty($result['registration'])) {
$entities = entity_load('registration', array_keys($result['registration']));
if (!$entities) {
throw new RulesEvaluationException('Unable to load registrations associated with line item "@id" on order "@oid"', array(
'@id' => $line_item->line_item_id,
'@oid' => $line_item->order_id,
));
}
}
}
return array(
'line_item_registrations' => $entities ? array_values($entities) : array(),
);
}