There are different approaches to this, depending on specific requirements.
For example in your case you seem more worried about plugin picking up ghost data than that data being left behind. Such case might be easier handled by generating unique key prefix to use and just flushing that on uninstall. No prefix = no data access.
I would say the general case is to ignore the issue and to use appropriate timeout values for transients. If data is only relevant for specific amount of time then using appropriate timeout handles it implicitly just fine.
Options can (should) be stored as single set, so clearing those out is easy and fast.
Related Posts:
- Maximum lifetime for nonce
- Is it ever okay to include inline CSS in plugins?
- In Which Contexts are Plugins Responsible for Data Validation/Sanitization?
- Plugin Form Submission Best Practice
- Best way to abort plugin in case of insufficient PHP version?
- How can I configure Docker for developing and deploying a custom theme?
- What do you think about custom designed plugin/theme options UIs?
- Is get_option() faster than accessing get_transient()?
- Where to put third party PHP library?
- register_uninstall_hook() vs uninstall.php – which one is better way to handle plugin uninstallation script?
- Optimize shortcode callbacks
- Trouble with Transient API when W3TC is activated [closed]
- How to integrate a PHP webmail script into the backend of WordPress?
- How to Change the Entire WordPress Admin panel Look and Feel?
- How to make dynamically-generated content searchable in WordPress?
- How to log plugin errors to plugin error_log file
- Which to use to execute code during the saving of a plugin settings page?
- Allowing for multiple template views on the Gallery Settings page when using the Visual Editor
- Using Primary Color in Plugin Block
- When is it appropriate to put functions on page template vs. functions.php?
- Custom theme sufficient or custom plugin neccessary for this feature set?
- How to create custom home page via plugin?
- Deletion of shared options using uninstall.php
- Adding callback function for wp_ajax_ has no effect
- Sessions not creating correctly in custom function
- Featured Image not showing in admin
- Delete a specific item menu when I deactivate my plugin
- How can I render shortcode so that its not cached by Caching plugins?
- Plugin Uninstall and Deactivate via Options Menu
- Get the password key when using the wp_new_user_notification_email filter
- Does WordPress’s HTTP API use any caching?
- Order properties should not be accessed directly
- Is using WP Transients to save external data for a plugin the best/right way?
- Cache directory needed for plugin
- How to deal with equal & similar arguments for a function?
- Executing a function upon webhook calling wordpress
- Clearing cached plugin data if it is using an external object cache
- Customizer: widget-synced triggers twice
- how to use hook deleted_user into custom function to delete user from custom table
- Disable The Events Calendar plugin from loading its scripts
- Where to store the name of a custom table?
- WordPress is automatically linking plain text email addresses
- Is Using WordPress Supplied WYSIWYG Advisable?
- ServerSideRender and Media Object: attributes passing image data object to php renderer even though it’s not set
- Will setcookie work if there is a cache plugin installed?
- How to use a hook to override an update_post_meta call in a plugin?
- Custom Taxonomy to dropdown box on adminside wordpress
- How to modify the comments to be displayed in a post?
- How can we display product price $104 on the cart while the credit card payment method is checked?
- Is using custom table to suit business needs instead of transients a big hit to page load speed?
- Caching the_content calls
- How to remove plugin-specific custom taxonomy terms when plugin is uninstalled?
- How to modify files inside wp-includes directory in wordpress
- How to set a cookie for logged in users to md5($user->ID . “my_secret”)?
- Show message from backend
- Create Widget or Enable Shortcodes in Sidebar
- Service Worker Uncaught (in promise) DOMException
- Should I use wp-content/cache or [PLUGIN_DIR]/cache?
- I need to refresh page to display wp_get_current_user() : why?
- how to save wp_editor html content in options table
- How to use a WP_Customize_Control outside of the Customizer?
- How to remove/replace current page template?
- Extract Information from post content (using regex?)
- How to determine which capability to use?
- Customise Grouped Product display in Woocommerce with custom column
- Custom Endpoint – Does it possible to use PUT method with WP API Rest?
- Why won’t this submenu page show? – My First WordPress Plugin
- Undefined cache functions in my custom plugin
- Where to save Gutenberg plugin data?
- WordPress how do I echo SUM from a column of a MySQL table by user id AND type_operation
- Rate limiting ajax requests in WordPress
- Does hooking into a plugin action / filter override the plugin’s function for that hook?
- How to prevent users from deleting their accounts?
- Hiding class namespace from plugin’s extensions
- Set widget icon in Customizer?
- Is it possible to restore an expired transient?
- Determine if the current page, is being edited
- WordPress delete mysql rows with string
- external Integration with wordpress timeout error
- PHP includes with AJAX actions
- Making adding info to an overlay bio easy for average user?
- Implementing Select2 plugin into WordPress
- Custom Post Type and Functions
- Associating special meaning with user id 0
- Plugin files not updated (cache cleared)
- Can I access WordPress API’s from within plugin scripts?
- Theming Custom Plugin Page
- Best practice: What belongs in theme and what in plugin for large eCommerce website
- Link to a admin submenu item using a custom link
- Adding class to the parent of current-post-ancestor / current-menu-parent / current-post-parent
- Change the search results header from plugin
- Dynamic banner for use on external sites
- How do I store a custom dataset in WordPress to best take advantage of API?
- Developing Themes on WordPress, Looking for Excellent Tutorials [closed]
- How to Implement SAM Broadcaster with WordPress? [closed]
- Is Explicit Versioning a better alternative to Semantic Versioning for wordpress?
- Custom plugin not appearing
- Extend WP_List_Table class – Edit wp_usermeta – WPPB.me Boilerplate – Action error
- Does WP REST API cache internally executed (rest_do_request) requests?
- Developing an IP lookup function using an API