WordPress 3.8.3
[autoinstalls/wordpress.git] / wp-admin / includes / upgrade.php
index 1622cab93425697a5a80305ee56dca63c7c824cf..ac8e522f26be9fc77070baaa04678d88cbde5986 100644 (file)
@@ -411,6 +411,9 @@ function upgrade_all() {
        if ( $wp_current_db_version < 26691 )
                upgrade_380();
 
+       if ( $wp_current_db_version < 26692 )
+               upgrade_383();
+
        maybe_disable_link_manager();
 
        maybe_disable_automattic_widgets();
@@ -1251,6 +1254,36 @@ function upgrade_380() {
                deactivate_plugins( array( 'mp6/mp6.php' ), true );
        }
 }
+
+/**
+ * Execute changes made in WordPress 3.8.3.
+ *
+ * @since 3.8.3
+ */
+function upgrade_383() {
+       global $wp_current_db_version, $wpdb;
+       if ( $wp_current_db_version < 26692 ) {
+               // Find all lost Quick Draft auto-drafts and promote them to proper drafts.
+               $posts = $wpdb->get_results( "SELECT ID, post_title, post_content FROM $wpdb->posts WHERE post_type = 'post'
+                       AND post_status = 'auto-draft' AND post_date >= '2014-04-08 00:00:00'" );
+
+               foreach ( $posts as $post ) {
+                       // A regular auto-draft should never have content as that would mean it should have been promoted.
+                       // If an auto-draft has content, it's from Quick Draft and it should be recovered.
+                       if ( '' === $post->post_content ) {
+                               // If it does not have content, we must evaluate whether the title should be recovered.
+                               if ( 'Auto Draft' === $post->post_title || __( 'Auto Draft' ) === $post->post_title ) {
+                                       // This a plain old auto draft. Ignore it.
+                                       continue;
+                               }
+                       }
+
+                       $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => $post->ID ) );
+                       clean_post_cache( $post->ID );
+               }
+       }
+}
+
 /**
  * Execute network level changes
  *