WordPress.org

Make WordPress Core

Ticket #5625: wp-includes_plugin.php.diff

File wp-includes_plugin.php.diff, 2.3 KB (added by arickmann, 8 years ago)

Plugin functions from wp-includes/plugin.php

  • plugin.php

     
    593593                return $function[0].$function[1]; 
    594594} 
    595595 
    596 ?> 
     596/** 
     597* register_plugin_assets() Add the plugin's database tables and option names as assets so they can be removed later. 
     598* 
     599* Part of the uninstall process.  
     600* When a plugin activates, and creates the database tables, and WordPress options it needs to run the plugin author 
     601* can register those database tables and WordPress options so that they will be removed when the plugin is uninstalled. 
     602* A callback can also be registered to handle more complex uninstall requirements. 
     603* 
     604* Note: This does not allow files to be registered as there is danger of getting paths wrong and removing 
     605* similarly named files in different paths. 
     606* 
     607* @link http://trac.wordpress.org/ticket/5625 
     608* 
     609* @param string $plugin_file the path to the plugin file, usually given by __FILE__ 
     610* @param string|array $callback function name of the plugin's uninstaller, can be NULL 
     611* @param array $tables array of table names that should be dropped when the plugin is uninstalled 
     612* @param array $options array of option names that should be deleted when the plugin is uninstalled 
     613* 
     614*/ 
     615function register_plugin_assets( $plugin_file , $callback , $tables = array() , $options = array() ) { 
     616        $plugin_assets = get_option( 'plugin_assets' ); 
     617        if ( !is_array( $plugin_assets ) )  
     618                $plugin_assets = array(); 
     619        $plugin = plugin_basename( $plugin_file ); 
     620        $plugin_assets[$plugin] = array( 'callback' => $callback , 
     621                                                                         'tables' => $tables , 
     622                                                                         'options' => $options ); 
     623        update_option( 'plugin_assets' , $plugin_assets ); 
     624} 
     625 
     626/** 
     627* unregister_plugin_assets(); Unregisters the plugins uninstallable assets from the option 
     628* 
     629* @link http://trac.wordpress.org/ticket/5625 
     630* 
     631* @param string $plugin_file the path to the plugin file, usually given by __FILE__ 
     632* 
     633*/ 
     634function unregister_plugin_assets( $plugin_file ){ 
     635        $plugin_assets = get_option( 'plugin_assets' ); 
     636        $plugin = plugin_basename( $plugin_file ); 
     637        if ( isset( $plugin_assets[$plugin] ) ) { 
     638                unset($plugin_assets[$plugin]); 
     639                update_option( 'plugin_assets' , $plugin_assets ); 
     640        } 
     641} 
     642 
     643?> 
     644 No newline at end of file