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 |