クラス
ItemEdit
ソース ソース
ファイル: src/Admin/ItemEdit.php
class ItemEdit { /** * Registers hooks * * @author Evan D Shaw <evandanielshaw@gmail.com> * @return void */ public static function init() { add_action('usces_action_item_dupricate', [get_class(), 'duplicateComboSet'], 10, 2); } /** * Duplicates a combo-set for a duplicated Welcart item * * @author Evan D Shaw <evandanielshaw@gmail.com> * @global \wpdb $wpdb * @param int $old_id Post ID of item to duplicate * @param int $new_id Post ID of new copy * @return void */ 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'); } }
- duplicateComboSet — Duplicates a combo-set for a duplicated Welcart item
- init — Registers hooks