function commerce_pricelist_filter_pricelists in Commerce Pricelist 7
Filter array of pricelists based on conditions.
Parameters
$pricelists:
$conditions:
2 calls to commerce_pricelist_filter_pricelists()
- commerce_pricelist_role_commerce_pricelists_alter in commerce_pricelist_role/
commerce_pricelist_role.module - @file Summary
- commerce_pricelist_user_commerce_pricelists_alter in commerce_pricelist_user/
commerce_pricelist_user.module - Filter out lists not tagged with current user
File
- ./
commerce_pricelist.module, line 474 - Implements the basic functionality required for price lists
Code
function commerce_pricelist_filter_pricelists(&$pricelists, $conditions) {
foreach ($pricelists as $id => $pricelist) {
$pass = FALSE;
foreach ($conditions as $key => $values) {
// Check if this pricelist has this condition set and has correct value.
if (isset($pricelist->data['filter'][$key])) {
// Loop over condition values and see if anyone matches this pricelist.
foreach ($values as $value) {
if (in_array($value, $pricelist->data['filter'][$key])) {
$pass = TRUE;
}
}
}
else {
// Pricelist is missing condition.
$pass = FALSE;
break;
}
}
$pricelist->score = isset($pricelist->score) ? $pricelist->score : 0;
$pricelist->score += $pass ? 1 : -1;
}
}