関数
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);
    }