0

I created a function to create a "Changelog" for every time I update a plugin on our site. As some things can break, I figured it would be useful to be able to backtrace what got updated when.

I have the function working, but I'd like to know if I can access the new plugin version. Currently the message is 2022-01-14 14:03:34 -- WooCommerce was updated from version 6.0.0. How can I write ...from version 6.0.0 to version 6.1.0?

Full Function:

    function plugin_changelog($upgrader_object, $options) {

        $changelog = get_template_directory() . '/assets/changelog/plugin-changelog.txt';

        if ($options['action'] == 'update' && $options['type'] == 'plugin') {

            $time = current_time('mysql');
            $plugin_name = $upgrader_object->skin->plugin_info['Title'];
            $plugin_version = $upgrader_object->skin->plugin_info['Version'];
            $plugin_success = $upgrader_object->skin->result;

            // Main message:
            $message = '' . $time . ' -- ' . $plugin_name . ' was updated from version ' . $plugin_version . '';

            if ($plugin_success) {

                if (file_exists($changelog)) {
                    $file = fopen($changelog, 'a');
                    fwrite($file, $message . "\n\n");
                }

                fclose($file);
            }
        }
    }

    add_action('upgrader_process_complete', 'plugin_changelog', 10, 2);

Lastly, do you see any security or performance concerns from this function?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.