/**
 * Set the uninstallation hook for a plugin.
 *
 * Registers the uninstall hook that will be called when the user clicks on the
 * uninstall link that calls for the plugin to uninstall itself. The link won't
 * be active unless the plugin hooks into the action.
 *
 * The plugin should not run arbitrary code outside of functions, when
 * registering the uninstall hook. In order to run using the hook, the plugin
 * will have to be included, which means that any code laying outside of a
 * function will be run during the uninstall process. The plugin should not
 * hinder the uninstall process.
 *
 * If the plugin can not be written without running code within the plugin, then
 * the plugin should create a file named 'uninstall.php' in the base plugin
 * folder. This file will be called, if it exists, during the uninstall process
 * bypassing the uninstall hook. The plugin, when using the 'uninstall.php'
 * should always check for the 'WP_UNINSTALL_PLUGIN' constant, before
 * executing.
 *
 * @since 2.7
 *
 * @param string $file
 * @param callback $callback The callback to run when the hook is called.
 */
function register_uninstall_hook($file, $callback)
{
    // The option should not be autoloaded, because it is not needed in most
    // cases. Emphasis should be put on using the 'uninstall.php' way of
    // uninstalling the plugin.
    $uninstallable_plugins = (array) backpress_get_option('uninstall_plugins');
    $uninstallable_plugins[plugin_basename($file)] = $callback;
    backpress_update_option('uninstall_plugins', $uninstallable_plugins);
}
/**
 * Upgrade a Cron info array.
 *
 * This function upgrades the Cron info array to version 2.
 *
 * @since 2.1.0
 * @access private
 *
 * @param array $cron Cron info array from {@link _get_cron_array()}.
 * @return array An upgraded Cron info array.
 */
function _upgrade_cron_array($cron)
{
    if (isset($cron['version']) && 2 == $cron['version']) {
        return $cron;
    }
    $new_cron = array();
    foreach ((array) $cron as $timestamp => $hooks) {
        foreach ((array) $hooks as $hook => $args) {
            $key = md5(serialize($args['args']));
            $new_cron[$timestamp][$hook][$key] = $args;
        }
    }
    $new_cron['version'] = 2;
    backpress_update_option('cron', $new_cron);
    return $new_cron;
}