mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-01 07:40:07 +00:00
Plugins: Add support for Update URI header.
This allows third-party plugins to avoid accidentally being overwritten with an update of a plugin of a similar name from the WordPress.org Plugin Directory.
Additionally, introduce the `update_plugins_{$hostname}` filter, which third-party plugins can use to offer updates for a given hostname.
If set, the `Update URI` header field should be a URI and have a unique hostname.
Some examples include:
* `https://wordpress.org/plugins/example-plugin/`
* `https://example.com/my-plugin/`
* `my-custom-plugin-name`
`Update URI: false` also works, and unless there is code handling the `false` hostname, the plugin will never get an update notification.
If the header is present, the WordPress.org API will currently only return updates for the plugin if it matches the following format:
* `https://wordpress.org/plugins/{$slug}/`
* `w.org/plugin/{$slug}`
If the header has any other value, the API will not return a result and will ignore the plugin for update purposes.
Props dd32, DavidAnderson, meloniq, markjaquith, DrewAPicture, mweichert, design_dolphin, filosofo, sean212, nhuja, JeroenReumkens, infolu, dingdang, joyously, earnjam, williampatton, grapplerulrich, markparnell, apedog, afragen, miqrogroove, rmccue, crazycoders, jdgrimes, damonganto, joostdevalk, jorbin, georgestephanis, khromov, GeekStreetWP, jb510, Rarst, juliobox, Ipstenu, mikejolley, Otto42, gMagicScott, TJNowell, GaryJ, knutsp, mordauk, nvartolomei, aspexi, chriscct7, benoitchantre, ryno267, lev0, gregorlove, dougwollison, SergeyBiryukov.
See #14179, #23318, #32101.
git-svn-id: https://develop.svn.wordpress.org/trunk@50921 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -435,7 +435,24 @@ function wp_plugin_update_row( $file, $plugin_data ) {
|
||||
);
|
||||
|
||||
$plugin_name = wp_kses( $plugin_data['Name'], $plugins_allowedtags );
|
||||
$details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $response->slug . '§ion=changelog&TB_iframe=true&width=600&height=800' );
|
||||
$plugin_slug = isset( $response->slug ) ? $response->slug : $response->id;
|
||||
|
||||
if ( isset( $response->slug ) ) {
|
||||
$details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin_slug . '§ion=changelog' );
|
||||
} elseif ( isset( $response->url ) ) {
|
||||
$details_url = $response->url;
|
||||
} else {
|
||||
$details_url = $plugin_data['PluginURI'];
|
||||
}
|
||||
|
||||
$details_url = add_query_arg(
|
||||
array(
|
||||
'TB_iframe' => 'true',
|
||||
'width' => 600,
|
||||
'height' => 800,
|
||||
),
|
||||
$details_url
|
||||
);
|
||||
|
||||
/** @var WP_Plugins_List_Table $wp_list_table */
|
||||
$wp_list_table = _get_list_table(
|
||||
@@ -461,8 +478,8 @@ function wp_plugin_update_row( $file, $plugin_data ) {
|
||||
'<td colspan="%s" class="plugin-update colspanchange">' .
|
||||
'<div class="update-message notice inline %s notice-alt"><p>',
|
||||
$active_class,
|
||||
esc_attr( $response->slug . '-update' ),
|
||||
esc_attr( $response->slug ),
|
||||
esc_attr( $plugin_slug . '-update' ),
|
||||
esc_attr( $plugin_slug ),
|
||||
esc_attr( $file ),
|
||||
esc_attr( $wp_list_table->get_column_count() ),
|
||||
$notice_type
|
||||
|
||||
Reference in New Issue
Block a user