| 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 | /** |