関数
ItemEdit::duplicateComboSet( int $old_id, int $new_id )
パラメータ パラメータ
- $old_id
(数値) (必須) Post ID of item to duplicate
- $new_id
(数値) (必須) Post ID of new copy
ファイル: src/Admin/ItemEdit.php
public static function duplicateComboSet($old_id, $new_id) { global $wpdb; $sets = ComboSet::getAllComboSetsForPostId($old_id); $wpdb->query('START TRANSACTION'); foreach ($sets as $set) { $oldsku = wel_get_sku_by_id($set->getSkuMetaId()); $newsku = wel_get_sku($new_id, $oldsku['code']); $newset = ComboSet::createComboSet( $newsku['meta_id'], $set->getEnableItemOptions(), $set->getEnableMultiprice() ); if ($newset instanceof GenericError) { $wpdb->query('ROLLBACK'); return; } foreach ($set->getGroups() as $group) { $newgroup = ComboGroup::createComboGroup( $newset->getId(), $group->getLabel(), $group->getOptional(), $group->getEnableMultiSelect() ); if ($newgroup instanceof GenericError) { $wpdb->query('ROLLBACK'); return; } foreach ($group->getItems() as $item) { $newitem = GroupItem::createGroupItem( $newgroup->getId(), $item->getSkuMetaId(), $item->getPriceModifier(), $item->getItemLabel(), $item->getItemQuantity(), $item->getPosition() ); if ($newitem instanceof GenericError) { $wpdb->query('ROLLBACK'); return; } } } } $wpdb->query('COMMIT'); }