| 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 | */ |
| | 615 | function 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 | */ |
| | 634 | function 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 |