関数
ComboGroup::duplicateComboGroup( int $groupId, string $label )
パラメータ パラメータ
- $groupId
(数値) (必須)
- $label
(文字列) (必須)
ファイル: src/API/ComboGroup.php
public static function duplicateComboGroup($groupId, $label) {
global $wpdb;
$combogroup = self::getComboGroupById($groupId);
if (empty($combogroup)) {
return Master::getErrorStore()->getErrorResponse(
ErrorStore::COMBO_GROUP_NOT_FOUND,
[$groupId],
[],
[$groupId]
);
}
$wpdb->query('START TRANSACTION');
$newgroup = self::createComboGroup(
$combogroup->getComboSetId(),
!empty($label) ? (string)$label : '',
$combogroup->getOptional(),
$combogroup->getEnableMultiSelect()
);
if ($newgroup instanceof GenericError) {
$wpdb->query('ROLLBACK');
return $newgroup;
}
foreach ($combogroup->getItems() as $gitem) {
$newgitem = GroupItem::createGroupItem(
$newgroup->getId(),
$gitem->getSkuMetaId(),
$gitem->getPriceModifier(),
$gitem->getItemLabel(),
$gitem->getItemQuantity()
);
if ($newgitem instanceof GenericError) {
$wpdb->query('ROLLBACK');
return $newgitem;
}
}
$wpdb->query('COMMIT');
$dupgroup = self::getComboGroupById($newgroup->getId());
if (empty($dupgroup)) {
return Master::getErrorStore()->getErrorResponse(
ErrorStore::COMBO_GROUP_NOT_FOUND,
[$newgroup->getId()],
[],
[$newgroup->getId()]
);
}
return $dupgroup;
}