if (!empty($_REQUEST['product_id'])) { $_options = fn_get_product_options($_REQUEST['product_id']); if (empty($_options)) { Registry::get('view')->display('views/product_options/manage.tpl'); } exit; } $suffix = ".manage"; } if ($mode == 'rebuild_combinations') { fn_rebuild_product_options_inventory($_REQUEST['product_id']); $suffix = ".inventory?product_id={$_REQUEST['product_id']}"; } if ($mode == 'delete_combination') { if (!empty($_REQUEST['combination_hash'])) { fn_delete_product_combination($_REQUEST['combination_hash']); } $suffix = ".inventory?product_id={$_REQUEST['product_id']}"; } if (!fn_allowed_for('ULTIMATE:FREE')) { if ($mode == 'delete_exception') { if (!empty($_REQUEST['exception_id'])) { db_query("DELETE FROM ?:product_options_exceptions WHERE exception_id = ?i", $_REQUEST['exception_id']); } $suffix = ".exceptions?product_id={$_REQUEST['product_id']}"; } } return array(CONTROLLER_STATUS_OK, 'product_options' . $suffix); } // // Product options combination inventory tracking
/** * Removes all product options from the product * @param int $product_id Product identifier */ function fn_poptions_delete_product($product_id) { /** * Adds additional actions before delete all product option * * @param int $product_id Product identifier */ fn_set_hook('poptions_delete_product_pre', $product_id); $option_ids = db_get_fields('SELECT option_id FROM ?:product_options WHERE product_id = ?i', $product_id); if (!empty($option_ids)) { foreach ($option_ids as $option_id) { fn_delete_product_option($option_id, $product_id); } } if (!fn_allowed_for('ULTIMATE:FREE')) { db_query("DELETE FROM ?:product_options_exceptions WHERE product_id = ?i", $product_id); } db_query("DELETE FROM ?:product_global_option_links WHERE product_id = ?i", $product_id); $option_combinations = db_get_fields('SELECT combination_hash FROM ?:product_options_inventory WHERE product_id = ?i', $product_id); if (!empty($option_combinations)) { foreach ($option_combinations as $hash) { fn_delete_product_combination($hash); } } /** * Adds additional actions after delete all product option * * @param int $product_id Product identifier */ fn_set_hook('poptions_delete_product_post', $product_id); }