関数
GroupItem::createGroupItem( int $groupId, int $welitemSkuMetaId, float $priceModifier, string $itemLabel = '', int $itemQuantity = 1, int $position )
パラメータ パラメータ
- $groupId
(数値) (必須)
- $welitemSkuMetaId
(数値) (必須)
- $priceModifier
(float) (必須)
- $itemLabel
(文字列) (任意)
- $itemQuantity
(数値) (任意)
- $position
(数値) (必須)
ファイル: src/API/GroupItem.php
public static function createGroupItem(
$groupId,
$welitemSkuMetaId,
$priceModifier,
$itemLabel = '',
$itemQuantity = 1,
$position = 0
) {
global $wpdb, $usces;
$groupId = (int)$groupId;
$welitemSkuMetaId = (int)$welitemSkuMetaId;
$priceModifier = (float)$priceModifier;
$itemQuantity = (int)$itemQuantity;
$itemLabel = !empty($itemLabel) ? (string)$itemLabel : '';
$csgit = Schema::getComboSetGroupItemsTable();
$cgroup = API\ComboGroup::getComboGroupById($groupId);
if ($cgroup === null) {
return Master::getErrorStore()->getErrorResponse(
ErrorStore::COMBO_GROUP_NOT_FOUND,
[$groupId],
[],
[$groupId]
);
}
$cgroupcset = API\ComboSet::getComboSetById($cgroup->getComboSetId());
if ($cgroupcset instanceof GenericError) {
return $cgroupcset;
}
$postId = Utils::getSkuPostId($welitemSkuMetaId);
if ($postId instanceof GenericError) {
return $postId;
}
$comboSet = ComboSet::getComboSetBySkuMetaId($welitemSkuMetaId);
if ($comboSet instanceof ComboSetType) {
return Master::getErrorStore()->getErrorResponse(ErrorStore::SKU_IS_COMBO_SET);
}
$welitemctype = (string)$usces->getItemChargingType($postId);
$csetctype = (string)$usces->getItemChargingType($cgroupcset->getPostId());
if (strtolower($csetctype) === 'once' && strtolower($welitemctype) === 'continue') {
$mvars = [__('Normal Charging', 'dlseller'), __('Continuation Charging', 'dlseller')];
$error = Master::getErrorStore()->getErrorResponse(
ErrorStore::INVALID_CHARGE_TYPE_COMBINATION,
$mvars,
[],
$mvars
);
$error->setLogger(new Logger())->setData([
'comboSet' => $cgroupcset->getDataForLog(),
'welitemSkuMetaId' => $welitemSkuMetaId,
]);
return $error;
}
if (empty($position)) {
$items = self::getAllGroupItemsByComboGroupId($groupId);
if (!empty($items)) {
$position = count($items);
}
}
$curtime = Utils::getCurrentUTCDateTimeString();
$res = $wpdb->insert(
$csgit,
[
'group_id' => $groupId,
'welitem_sku_meta_id' => $welitemSkuMetaId,
'item_label' => $itemLabel,
'item_quantity' => $itemQuantity,
'price_modifier' => $priceModifier,
'position' => $position,
'created_at' => $curtime,
'updated_at' => $curtime,
],
['%d', '%d', '%s', '%d', '%f', '%d', '%s', '%s']
);
if (empty($res)) {
return Master::getErrorStore()->getErrorResponse(ErrorStore::INTERNAL_SERVER_ERROR);
}
http_response_code(200);
return self::getGroupItemById($wpdb->insert_id);
}