| | 671 | * Set the update hook for a plugin. |
| | 672 | * |
| | 673 | * Registers the update hook that will be called when the user updates the |
| | 674 | * plugin to a newer version than previously installed. |
| | 675 | * |
| | 676 | * This function performs calls action called update_plugin- suffixed by the name |
| | 677 | * of the plugin. Plugins can hook update scripts to this action in order to |
| | 678 | * clean up options or extra database tables across versions. |
| | 679 | * |
| | 680 | * @since 3.1 |
| | 681 | * |
| | 682 | * @param string $file |
| | 683 | * @param callback $callback The function to run when the hook is called. |
| | 684 | * @param string $version The version number to which the plugin is updating. |
| | 685 | */ |
| | 686 | function register_update_hook($file, $callback, $version) { |
| | 687 | $file = plugin_basename($file); |
| | 688 | |
| | 689 | if(is_multisite()) { |
| | 690 | $current_vers = get_site_option( 'active_plugin_versions', array() ); |
| | 691 | } else { |
| | 692 | $current_vers = get_option( 'active_plugin_versions', array() ); |
| | 693 | } |
| | 694 | |
| | 695 | if(version_compare($version, $current_vers[$file], '>')) { |
| | 696 | call_user_func_array( $callback, array($version, $current_vers[$file]) ); |
| | 697 | |
| | 698 | $current_vers[$file] = $version; |
| | 699 | } |
| | 700 | |
| | 701 | if(is_multisite()) { |
| | 702 | update_site_option( 'active_plugin_versions', $current_vers ); |
| | 703 | } else { |
| | 704 | update_option( 'active_plugin_versions', $current_vers ); |
| | 705 | } |
| | 706 | } |
| | 707 | |
| | 708 | /** |