関数
PurchaseSanityChecks::comboSetItemDivisionIsValid( int $comboSetId, array $grouptoitemmap )
パラメータ パラメータ
- $comboSetId
(数値) (必須)
- $grouptoitemmap
(配列) (必須)
ファイル: src/API/PurchaseSanityChecks.php
public static function comboSetItemDivisionIsValid($comboSetId, $grouptoitemmap) {
global $usces;
$comboSetId = (int)$comboSetId;
$comboset = ComboSet::getComboSetById($comboSetId);
if ($comboset instanceof GenericError) {
return $comboset;
}
$grouptoitemmap = Cart::sanitizeComboSetSelections($grouptoitemmap);
$division = strtolower((string)$usces->getItemDivision($comboset->getPostId()));
if ($division === 'shipped') {
$notshipped = false;
foreach ($grouptoitemmap as $groupid => $itemids) {
$group = ComboGroup::getComboGroupById($groupid);
if (empty($group)) {
continue;
}
foreach ($itemids as $itemid) {
$item = GroupItem::getGroupItemById($itemid);
if (empty($item)) {
continue;
}
$gidivision = strtolower((string)$usces->getItemDivision($item->getPostId()));
if ($gidivision !== $division) {
$notshipped = $gidivision;
break;
}
}
if ($notshipped !== false) {
break;
}
}
if ($notshipped !== false) {
$dvars = [
$division,
$gidivision,
__('The division of each group item for a combo-set with division "shipped" must also be "shipped"', 'wcexics'),
];
$error = Master::getErrorStore()->getErrorResponse(
ErrorStore::COMBO_SET_DIVISION_INVALID,
$dvars,
[],
$dvars
);
$error->setLogger(new Logger())->setData(array_merge(
$comboset->getDataForLog(),
['groupItemSelections' => $grouptoitemmap]
));
$error->logger->error($error);
return $error;
}
}
return true;
}