示例#1
0
        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
示例#2
0
/**
 * 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);
}