Title: in_plugin_update_message-{$file}
Published: April 25, 2014
Last modified: February 24, 2026

---

# do_action( “in_plugin_update_message-{$file}”, array $plugin_data, object $response )

## In this article

 * [Description](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#changelog)
 * [User Contributed Notes](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#user-contributed-notes)

[ Back to top](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#wp--skip-link--target)

Fires at the end of the update message container in each row of the plugins list
table.

## 󠀁[Description](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#description)󠁿

The dynamic portion of the hook name, `$file`, refers to the path of the plugin’s
primary file relative to the plugins directory.

## 󠀁[Parameters](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#parameters)󠁿

 `$plugin_data`array

An array of plugin metadata. See [get_plugin_data()](https://developer.wordpress.org/reference/functions/get_plugin_data/)
and the ['plugin_row_meta'](https://developer.wordpress.org/reference/hooks/plugin_row_meta/)
filter for the list of possible values.

`$response`object

An object of metadata about the available plugin update.

 * `id` string
 * Plugin ID, e.g. `w.org/plugins/[plugin-name]`.
 * `slug` string
 * Plugin slug.
 * `plugin` string
 * Plugin basename.
 * `new_version` string
 * New plugin version.
 * `url` string
 * Plugin URL.
 * `package` string
 * Plugin update package URL.
 * `icons` string[]
 * An array of plugin icon URLs.
 * `banners` string[]
 * An array of plugin banner URLs.
 * `banners_rtl` string[]
 * An array of plugin RTL banner URLs.
 * `requires` string
 * The version of WordPress which the plugin requires.
 * `tested` string
 * The version of WordPress the plugin is tested against.
 * `requires_php` string
 * The version of PHP which the plugin requires.

## 󠀁[Source](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#source)󠁿

    ```php
    do_action( "in_plugin_update_message-{$file}", $plugin_data, $response ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/update.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/update.php#L616)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/update.php#L616-L616)

## 󠀁[Related](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#related)󠁿

| Used by | Description | 
| [wp_plugin_update_row()](https://developer.wordpress.org/reference/functions/wp_plugin_update_row/)`wp-admin/includes/update.php` |

Displays update information for a plugin.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.8.0](https://developer.wordpress.org/reference/since/2.8.0/) | Introduced. |

## 󠀁[User Contributed Notes](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#user-contributed-notes)󠁿

 1.  [Skip to note 2 content](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/?output_format=md#comment-content-4512)
 2.   [Geoffrey](https://profiles.wordpress.org/creativejuiz/)  [  5 years ago  ](https://developer.wordpress.org/reference/hooks/in_plugin_update_message-file/#comment-4512)
 3. [You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fin_plugin_update_message-file%2F%23comment-4512)
    Vote results for this note: 2[You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fin_plugin_update_message-file%2F%23comment-4512)
 4. `$response` seems to be an object, not an array here.
 5. I used this hook to be able to display an upgrade notice message just after the
    new version message, like so:
 6.     ```php
        function wpdocs_plugin_update_message( $plugin_data, $new_data ) {
        	if ( isset( $plugin_data['update'] ) && $plugin_data['update'] && isset( $new_data->upgrade_notice ) ) {
        		printf(
        			'<div class="update-message"><p><strong>%s</strong>: %s</p></div>',
        			$new_data -> new_version,
        			wpautop( $new_data -> upgrade_notice )
        		);
        	}
        }
        add_action( 'in_plugin_update_message-my-plugin-name/my-plugin-name.php', 'wpdocs_plugin_update_message', 10, 2 );
        ```
    
 7. But it seems like `upgrade_notice` isn’t available anymore. This code is still 
    a good way to warn user for important upgrades. :)
 8.  [Log in to add feedback](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fin_plugin_update_message-file%2F%3Freplytocom%3D4512%23feedback-editor-4512)

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fin_plugin_update_message-file%2F)
before being able to contribute a note or feedback.