diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php
index dbddeaa90..38607b80f 100644
--- a/wp-admin/includes/class-wp-upgrader.php
+++ b/wp-admin/includes/class-wp-upgrader.php
@@ -1871,18 +1871,21 @@ public function update( $type, $item ) {
if ( ! $this->should_update( $type, $item, $context ) )
return false;
+ $upgrader_item = $item;
switch ( $type ) {
case 'core':
$skin->feedback( __( 'Updating to WordPress %s' ), $item->version );
$item_name = sprintf( __( 'WordPress %s' ), $item->version );
break;
case 'theme':
- $theme = wp_get_theme( $item );
+ $upgrader_item = $item->theme;
+ $theme = wp_get_theme( $upgrader_item );
$item_name = $theme->Get( 'Name' );
$skin->feedback( __( 'Updating theme: %s' ), $item_name );
break;
case 'plugin':
- $plugin_data = get_plugin_data( $context . '/' . $item );
+ $upgrader_item = $item->plugin;
+ $plugin_data = get_plugin_data( $context . '/' . $upgrader_item );
$item_name = $plugin_data['Name'];
$skin->feedback( __( 'Updating plugin: %s' ), $item_name );
break;
@@ -1894,7 +1897,7 @@ public function update( $type, $item ) {
}
// Boom, This sites about to get a whole new splash of paint!
- $upgrade_result = $upgrader->upgrade( $item, array(
+ $upgrade_result = $upgrader->upgrade( $upgrader_item, array(
'clear_update_cache' => false,
'pre_check_md5' => false, /* always use partial builds if possible for core updates */
'attempt_rollback' => true, /* only available for core updates */
@@ -1968,7 +1971,7 @@ public function run() {
wp_update_plugins(); // Check for Plugin updates
$plugin_updates = get_site_transient( 'update_plugins' );
if ( $plugin_updates && !empty( $plugin_updates->response ) ) {
- foreach ( array_keys( $plugin_updates->response ) as $plugin ) {
+ foreach ( $plugin_updates->response as $plugin ) {
$this->update( 'plugin', $plugin );
}
// Force refresh of plugin update information
@@ -1979,8 +1982,8 @@ public function run() {
wp_update_themes(); // Check for Theme updates
$theme_updates = get_site_transient( 'update_themes' );
if ( $theme_updates && !empty( $theme_updates->response ) ) {
- foreach ( array_keys( $theme_updates->response ) as $theme ) {
- $this->update( 'theme', $theme );
+ foreach ( $theme_updates->response as $theme ) {
+ $this->update( 'theme', (object) $theme );
}
// Force refresh of theme update information
wp_clean_themes_cache();
@@ -1995,8 +1998,21 @@ public function run() {
// Clean up, and check for any pending translations
// (Core_Upgrader checks for core updates)
- wp_update_themes(); // Check for Theme updates
- wp_update_plugins(); // Check for Plugin updates
+ $theme_stats = array();
+ if ( isset( $this->update_results['theme'] ) ) {
+ foreach ( $this->update_results['theme'] as $upgrade ) {
+ $theme_stats[ $upgrade->item->theme ] = ( true === $upgrade->result );
+ }
+ }
+ wp_update_themes( $theme_stats ); // Check for Theme updates
+
+ $plugin_stats = array();
+ if ( isset( $this->update_results['plugin'] ) ) {
+ foreach ( $this->update_results['plugin'] as $upgrade ) {
+ $plugin_stats[ $upgrade->item->plugin ] = ( true === $upgrade->result );
+ }
+ }
+ wp_update_plugins( $plugin_stats ); // Check for Plugin updates
// Finally, Process any new translations
$language_updates = wp_get_translation_updates();
diff --git a/wp-admin/includes/ms.php b/wp-admin/includes/ms.php
index c49b076ce..fffbd9dcd 100644
--- a/wp-admin/includes/ms.php
+++ b/wp-admin/includes/ms.php
@@ -101,7 +101,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
$drop_tables = apply_filters( 'wpmu_drop_tables', $tables, $blog_id );
foreach ( (array) $drop_tables as $table ) {
- $wpdb->query( $wpdb->prepare( "IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '%s') DROP TABLE [%s]", $table, $table ) );
+ $wpdb->query( "IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '" . $table . "') DROP TABLE [" . $table . "]" );
}
$wpdb->delete( $wpdb->blogs, array( 'blog_id' => $blog_id ) );
diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php
index 983e4e702..bd624979c 100644
--- a/wp-admin/includes/post.php
+++ b/wp-admin/includes/post.php
@@ -100,6 +100,10 @@ function _wp_translate_postdata( $update = false, $post_data = null ) {
$post_id = false;
$previous_status = $post_id ? get_post_field( 'post_status', $post_id ) : false;
+ if ( isset( $post_data['post_status'] ) && 'private' == $post_data['post_status'] && ! current_user_can( $ptype->cap->publish_posts ) ) {
+ $post_data['post_status'] = $previous_status ? $previous_status : 'pending';
+ }
+
$published_statuses = array( 'publish', 'future' );
// Posts 'submitted for approval' present are submitted to $_POST the same as if they were being published.
@@ -111,6 +115,10 @@ function _wp_translate_postdata( $update = false, $post_data = null ) {
if ( ! isset($post_data['post_status']) )
$post_data['post_status'] = $previous_status;
+ if ( isset( $post_data['post_password'] ) && ! current_user_can( $ptype->cap->publish_posts ) ) {
+ unset( $post_data['post_password'] );
+ }
+
if (!isset( $post_data['comment_status'] ))
$post_data['comment_status'] = 'closed';
@@ -170,6 +178,14 @@ function edit_post( $post_data = null ) {
$post_data['post_type'] = $post->post_type;
$post_data['post_mime_type'] = $post->post_mime_type;
+ if ( ! empty( $post_data['post_status'] ) ) {
+ $post_data['post_status'] = sanitize_key( $post_data['post_status'] );
+
+ if ( 'inherit' == $post_data['post_status'] ) {
+ unset( $post_data['post_status'] );
+ }
+ }
+
$ptype = get_post_type_object($post_data['post_type']);
if ( !current_user_can( 'edit_post', $post_ID ) ) {
if ( 'page' == $post_data['post_type'] )
@@ -187,9 +203,6 @@ function edit_post( $post_data = null ) {
_wp_upgrade_revisions_of_post( $post, wp_get_post_revisions( $post_ID ) );
}
- $post_data = _wp_translate_postdata( true, $post_data );
- if ( is_wp_error($post_data) )
- wp_die( $post_data->get_error_message() );
if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) {
$post_data['post_status'] = 'draft';
}
@@ -210,6 +223,10 @@ function edit_post( $post_data = null ) {
}
}
+ $post_data = _wp_translate_postdata( true, $post_data );
+ if ( is_wp_error($post_data) )
+ wp_die( $post_data->get_error_message() );
+
// Post Formats
if ( isset( $post_data['post_format'] ) )
set_post_format( $post_ID, $post_data['post_format'] );
@@ -332,6 +349,14 @@ function bulk_edit_posts( $post_data = null ) {
}
unset($post_data['_status']);
+ if ( ! empty( $post_data['post_status'] ) ) {
+ $post_data['post_status'] = sanitize_key( $post_data['post_status'] );
+
+ if ( 'inherit' == $post_data['post_status'] ) {
+ unset( $post_data['post_status'] );
+ }
+ }
+
$post_IDs = array_map( 'intval', (array) $post_data['post'] );
$reset = array(
@@ -422,11 +447,26 @@ function bulk_edit_posts( $post_data = null ) {
unset( $post_data['tax_input']['category'] );
}
+ $post_data['post_type'] = $post->post_type;
$post_data['post_mime_type'] = $post->post_mime_type;
$post_data['guid'] = $post->guid;
+ foreach ( array( 'comment_status', 'ping_status', 'post_author' ) as $field ) {
+ if ( ! isset( $post_data[ $field ] ) ) {
+ $post_data[ $field ] = $post->$field;
+ }
+ }
+
$post_data['ID'] = $post_ID;
- $updated[] = wp_update_post( $post_data );
+ $post_data['post_ID'] = $post_ID;
+
+ $translated_post_data = _wp_translate_postdata( true, $post_data );
+ if ( is_wp_error( $translated_post_data ) ) {
+ $skipped[] = $post_ID;
+ continue;
+ }
+
+ $updated[] = wp_update_post( $translated_post_data );
if ( isset( $post_data['sticky'] ) && current_user_can( $ptype->cap->edit_others_posts ) ) {
if ( 'sticky' == $post_data['sticky'] )
@@ -569,10 +609,6 @@ function wp_write_post() {
if ( isset( $_POST['post_ID'] ) )
return edit_post();
- $translated = _wp_translate_postdata( false );
- if ( is_wp_error($translated) )
- return $translated;
-
if ( isset($_POST['visibility']) ) {
switch ( $_POST['visibility'] ) {
case 'public' :
@@ -589,6 +625,10 @@ function wp_write_post() {
}
}
+ $translated = _wp_translate_postdata( false );
+ if ( is_wp_error($translated) )
+ return $translated;
+
// Create the post.
$post_ID = wp_insert_post( $_POST );
if ( is_wp_error( $post_ID ) )
diff --git a/wp-admin/includes/schema.php b/wp-admin/includes/schema.php
index a17d7071e..887db9333 100644
--- a/wp-admin/includes/schema.php
+++ b/wp-admin/includes/schema.php
@@ -1024,8 +1024,10 @@ function populate_network( $network_id = 1, $domain = '', $email = '', $site_nam
$current_site->domain = $domain;
$current_site->path = $path;
$current_site->site_name = ucfirst( $domain );
+ sqlsrv_query( $wpdb->dbh, "SET IDENTITY_INSERT $wpdb->blogs ON" );
$wpdb->insert( $wpdb->blogs, array( 'site_id' => $network_id, 'blog_id' => 1, 'domain' => $domain, 'path' => $path, 'registered' => current_time( 'mysql' ) ) );
$current_site->blog_id = $blog_id = $wpdb->insert_id;
+ sqlsrv_query( $wpdb->dbh, "SET IDENTITY_INSERT $wpdb->blogs OFF" );
update_user_meta( $site_user->ID, 'source_domain', $domain );
update_user_meta( $site_user->ID, 'primary_blog', $blog_id );
diff --git a/wp-admin/themes.php b/wp-admin/themes.php
index 448931d12..d4a65e7eb 100644
--- a/wp-admin/themes.php
+++ b/wp-admin/themes.php
@@ -142,7 +142,7 @@
$ct = wp_get_theme();
if ( $ct->errors() && ( ! is_multisite() || current_user_can( 'manage_network_themes' ) ) ) {
- echo '
' . sprintf( __( 'ERROR: %s' ), $ct->errors()->get_error_message() ) . '
';
+ echo '
' . sprintf( __( 'ERROR: %s' ), $ct->errors()->get_error_message() ) . '
';
}
/*
@@ -312,9 +312,9 @@
diff --git a/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot b/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot
index 58e61c9fd..ad22e646e 100644
--- a/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot
+++ b/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot
@@ -1,14 +1,14 @@
-# Copyright (C) 2013 the WordPress team
+# Copyright (C) 2014 the WordPress team
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Twenty Fourteen 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyfourteen\n"
-"POT-Creation-Date: 2013-12-12 05:25:07+00:00\n"
+"POT-Creation-Date: 2014-03-18 19:16:26+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME
\n"
"Language-Team: LANGUAGE \n"
diff --git a/wp-content/themes/twentythirteen/languages/twentythirteen.pot b/wp-content/themes/twentythirteen/languages/twentythirteen.pot
index 6f8773659..9f56bcc69 100644
--- a/wp-content/themes/twentythirteen/languages/twentythirteen.pot
+++ b/wp-content/themes/twentythirteen/languages/twentythirteen.pot
@@ -1,14 +1,14 @@
-# Copyright (C) 2013 the WordPress team
+# Copyright (C) 2014 the WordPress team
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Twenty Thirteen 1.1\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
-"POT-Creation-Date: 2013-10-24 20:32:06+00:00\n"
+"POT-Creation-Date: 2014-03-18 19:16:26+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/wp-includes/bookmark.php b/wp-includes/bookmark.php
index cc3f9ec18..972430da5 100644
--- a/wp-includes/bookmark.php
+++ b/wp-includes/bookmark.php
@@ -226,8 +226,8 @@ function get_bookmarks($args = '') {
$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
}
- if ( $show_updated && get_option('links_recently_updated_time') ) {
- $recently_updated_test = ", IF (DATEADD(MINUTE, " . get_option('links_recently_updated_time') . ", link_updated) >= GETDATE(), 1,0) as recently_updated ";
+ if ( $show_updated ) {
+ $recently_updated_test = ", IF (DATEADD(MINUTE, 120, link_updated) >= GETDATE(), 1,0) as recently_updated ";
} else {
$recently_updated_test = '';
}
diff --git a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php
index 9d2481400..af532d7c2 100644
--- a/wp-includes/class-wp-xmlrpc-server.php
+++ b/wp-includes/class-wp-xmlrpc-server.php
@@ -5390,11 +5390,18 @@ function pingback_ping($args) {
// very stupid, but gives time to the 'from' server to publish !
sleep(1);
+ $remote_ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] );
+ $user_agent = apply_filters( 'http_headers_useragent', 'WordPress/' . $GLOBALS['wp_version'] . '; ' . get_bloginfo( 'url' ) );
+
// Let's check the remote site
$http_api_args = array(
'timeout' => 10,
'redirection' => 0,
'limit_response_size' => 153600, // 150 KB
+ 'user-agent' => "$user_agent; verifying pingback from $remote_ip",
+ 'headers' => array(
+ 'X-Pingback-Forwarded-For' => $remote_ip,
+ ),
);
$linea = wp_remote_retrieve_body( wp_safe_remote_get( $pagelinkedfrom, $http_api_args ) );
diff --git a/wp-includes/js/plupload/plupload.silverlight.xap b/wp-includes/js/plupload/plupload.silverlight.xap
index e1584d3b1..20c8fd82b 100644
Binary files a/wp-includes/js/plupload/plupload.silverlight.xap and b/wp-includes/js/plupload/plupload.silverlight.xap differ
diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php
index aca94f363..d84cb0a2c 100644
--- a/wp-includes/pluggable.php
+++ b/wp-includes/pluggable.php
@@ -543,7 +543,7 @@ function wp_validate_auth_cookie($cookie = '', $scheme = '') {
$key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme);
$hash = hash_hmac('md5', $username . '|' . $expiration, $key);
- if ( $hmac != $hash ) {
+ if ( hash_hmac( 'md5', $hmac, $key ) !== hash_hmac( 'md5', $hash, $key ) ) {
do_action('auth_cookie_bad_hash', $cookie_elements);
return false;
}
diff --git a/wp-includes/pn-version.php b/wp-includes/pn-version.php
index a3a8b2a05..e3befe215 100644
--- a/wp-includes/pn-version.php
+++ b/wp-includes/pn-version.php
@@ -1,5 +1,5 @@
diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php
index 5a8e8e328..6637aee15 100644
--- a/wp-includes/post-template.php
+++ b/wp-includes/post-template.php
@@ -1248,8 +1248,7 @@ function get_the_password_form( $post = 0 ) {
$label = 'pwbox-' . ( empty($post->ID) ? rand() : $post->ID );
$output = '
+
';
return apply_filters( 'the_password_form', $output );
}
@@ -1443,3 +1442,22 @@ function wp_list_post_revisions( $post_id = 0, $type = 'all' ) {
echo $rows;
echo "";
}
+
+/**
+ * Dashboard CSS fixes for 3.8.2.
+ *
+ * This function cheaply fixes #WP27082 and #WP26910 in lieu of
+ * changing the massive wp-admin.css file in a point release.
+ * This lucky includes file was already receiving an update.
+ *
+ * @since 3.8.2
+ * @access private
+ */
+function wp_382_css_hotfix() {
+ echo '
+';
+}
+add_action( 'admin_print_styles', 'wp_382_css_hotfix', 30 );
diff --git a/wp-includes/query.php b/wp-includes/query.php
index ab3143cf8..03b147d53 100644
--- a/wp-includes/query.php
+++ b/wp-includes/query.php
@@ -2587,9 +2587,17 @@ function get_posts() {
} elseif ( 'none' == $q['orderby'] ) {
$orderby = '';
} elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
- $orderby = "FIELD( {$wpdb->posts}.ID, $post__in )";
+ $orderby = "CASE( {$wpdb->posts}.ID )";
+ foreach ( $q['post__in'] as $order_post_key=>$order_post_id ) {
+ $orderby .= " WHEN $order_post_id THEN $order_post_key";
+ }
+ $orderby .= " END";
} elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
- $orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
+ $orderby = "CASE( {$wpdb->posts}.post_parent )";
+ foreach ( $q['post_parent__in'] as $order_post_key=>$order_post_id ) {
+ $orderby .= " WHEN $order_post_id THEN $order_post_key";
+ }
+ $orderby .= " END";
} else {
// Used to filter values
$allowed_keys = array('name', 'author', 'date', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand', 'comment_count');
@@ -2621,15 +2629,16 @@ function get_posts() {
case 'meta_value':
if ( isset( $q['meta_type'] ) ) {
$meta_type = $this->meta_query->get_cast_for_type( $q['meta_type'] );
- $orderby = "CAST($wpdb->postmeta.meta_value AS {$meta_type})";
- $orderbyfields = ", $wpdb->postmeta.meta_value";
+ $orderby = "meta_value";
+ $orderbyfields = ", CAST($wpdb->postmeta.meta_value AS {$meta_type}) as meta_value";
} else {
$orderby = "$wpdb->postmeta.meta_value";
- $orderbyfields = ", $wpdb->postmeta.meta_value+0 as meta_value";
+ $orderbyfields = ", $wpdb->postmeta.meta_value";
}
break;
case 'meta_value_num':
- $orderby = "$wpdb->postmeta.meta_value+0";
+ $orderby = "meta_value";
+ $orderbyfields = ", $wpdb->postmeta.meta_value+0 as meta_value";
break;
case 'comment_count':
$orderby = "$wpdb->posts.comment_count";
@@ -3288,7 +3297,11 @@ function get_queried_object() {
$term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
}
} elseif ( $this->is_tag ) {
- $term = get_term( $this->get( 'tag_id' ), 'post_tag' );
+ if ( $this->get( 'tag_id' ) ) {
+ $term = get_term( $this->get( 'tag_id' ), 'post_tag' );
+ } elseif ( $this->get( 'tag' ) ) {
+ $term = get_term_by( 'slug', $this->get( 'tag' ), 'post_tag' );
+ }
} else {
$tax_query_in_and = wp_list_filter( $this->tax_query->queries, array( 'operator' => 'NOT IN' ), 'NOT' );
$query = reset( $tax_query_in_and );
diff --git a/wp-includes/update.php b/wp-includes/update.php
index c670f9d0b..ead8e3988 100644
--- a/wp-includes/update.php
+++ b/wp-includes/update.php
@@ -168,9 +168,10 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
* @since 2.3.0
* @uses $wp_version Used to notify the WordPress version.
*
+ * @param array $extra_stats Extra statistics to report to the WordPress.org API.
* @return mixed Returns null if update is unsupported. Returns false if check is too soon.
*/
-function wp_update_plugins() {
+function wp_update_plugins( $extra_stats = array() ) {
include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
if ( defined('WP_INSTALLING') )
@@ -209,7 +210,7 @@ function wp_update_plugins() {
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
- if ( $time_not_changed ) {
+ if ( $time_not_changed && ! $extra_stats ) {
$plugin_changed = false;
foreach ( $plugins as $file => $p ) {
$new_option->checked[ $file ] = $p['Version'];
@@ -258,6 +259,10 @@ function wp_update_plugins() {
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);
+ if ( $extra_stats ) {
+ $options['body']['update_stats'] = json_encode( $extra_stats );
+ }
+
$url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/';
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
$url = set_url_scheme( $url, 'https' );
@@ -299,9 +304,10 @@ function wp_update_plugins() {
* @since 2.7.0
* @uses $wp_version Used to notify the WordPress version.
*
+ * @param array $extra_stats Extra statistics to report to the WordPress.org API.
* @return mixed Returns null if update is unsupported. Returns false if check is too soon.
*/
-function wp_update_themes() {
+function wp_update_themes( $extra_stats = array() ) {
include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
if ( defined( 'WP_INSTALLING' ) )
@@ -351,7 +357,7 @@ function wp_update_themes() {
$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked );
- if ( $time_not_changed ) {
+ if ( $time_not_changed && ! $extra_stats ) {
$theme_changed = false;
foreach ( $checked as $slug => $v ) {
if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
@@ -398,6 +404,10 @@ function wp_update_themes() {
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);
+ if ( $extra_stats ) {
+ $options['body']['update_stats'] = json_encode( $extra_stats );
+ }
+
$url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/';
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
$url = set_url_scheme( $url, 'https' );
@@ -610,14 +620,14 @@ function wp_schedule_update_checks() {
add_action( 'load-update-core.php', 'wp_update_plugins' );
add_action( 'admin_init', '_maybe_update_plugins' );
add_action( 'wp_update_plugins', 'wp_update_plugins' );
-add_action( 'upgrader_process_complete', 'wp_update_plugins' );
+add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 );
add_action( 'load-themes.php', 'wp_update_themes' );
add_action( 'load-update.php', 'wp_update_themes' );
add_action( 'load-update-core.php', 'wp_update_themes' );
add_action( 'admin_init', '_maybe_update_themes' );
add_action( 'wp_update_themes', 'wp_update_themes' );
-add_action( 'upgrader_process_complete', 'wp_update_themes' );
+add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 );
add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' );
diff --git a/wp-includes/version.php b/wp-includes/version.php
index b9e99e27f..b24963273 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
-$wp_version = '3.8.1';
+$wp_version = '3.8.2';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.