When working with custom tables in WordPress, we need to have a way to clean the database if the users decide to delete our plugin or we need it ourselves. In this tutorial, we’ll use the same installer class from previous tutorials and update it with new methods.
If we are working in a plugin with custom tables, WordPress provides an easy way to call our delete methods. This is done by adding an
uninstall.php file inside of your main plugin folder. This file will be called right before the plugin is removed from our site.
There is also a deactivation hook available, but I would not recommend clearing the database from your custom tables when a plugin is deactivated. This could mean the user is debugging something.
Inside of the
uninstall.php file, we can have something like this:
<?php if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); require_once trailingslashit( plugin_dir_path( __FILE__ ) ) . 'path_to_installer_class.php'; // Namespaced class from previous tutorials. \MyPlugin\Installer::uninstall();
To uninstall our plugin correctly, we need to remove any custom tables in WordPress, delete all options added by our own solution and also delete any other data in other WordPress tables.
So, here is our uninstall method.
In this tutorial, we’ve learned how to delete our custom tables and also any other hanging data that would not keep the database clean.
So far, we have learned how to install custom tables, work with custom meta data and how to delete them. The next tutorial regarding custom tables in WordPress will be using everything we’ve learned and create our own custom solution for it, together with other classes to access such.Become a Sponsor