クラス
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