Changeset 44805
- Timestamp:
- 03/07/2019 03:33:25 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/ms-site.php
r44799 r44805 53 53 ); 54 54 55 $prepared_data = wp_prepare_site_data( $data, $defaults ); 56 if ( is_wp_error( $prepared_data ) ) { 57 return $prepared_data; 58 } 59 60 if ( false === $wpdb->insert( $wpdb->blogs, $prepared_data ) ) { 61 return new WP_Error( 'db_insert_error', __( 'Could not insert site into the database.' ), $wpdb->last_error ); 62 } 63 64 $new_site = get_site( $wpdb->insert_id ); 65 66 if ( ! $new_site ) { 67 return new WP_Error( 'get_site_error', __( 'Could not retrieve site data.' ) ); 68 } 69 70 clean_blog_cache( $new_site ); 71 72 /** 73 * Fires once a site has been inserted into the database. 74 * 75 * @since 5.1.0 76 * 77 * @param WP_Site $new_site New site object. 78 */ 79 do_action( 'wp_insert_site', $new_site ); 80 55 81 // Extract the passed arguments that may be relevant for site initialization. 56 82 $args = array_diff_key( $data, $defaults ); … … 59 85 } 60 86 61 $data = wp_prepare_site_data( $data, $defaults );62 if ( is_wp_error( $data ) ) {63 return $data;64 }65 66 if ( false === $wpdb->insert( $wpdb->blogs, $data ) ) {67 return new WP_Error( 'db_insert_error', __( 'Could not insert site into the database.' ), $wpdb->last_error );68 }69 70 $new_site = get_site( $wpdb->insert_id );71 72 if ( ! $new_site ) {73 return new WP_Error( 'get_site_error', __( 'Could not retrieve site data.' ) );74 }75 76 clean_blog_cache( $new_site );77 78 /**79 * Fires once a site has been inserted into the database.80 *81 * @since 5.1.082 *83 * @param WP_Site $new_site New site object.84 */85 do_action( 'wp_insert_site', $new_site );86 87 87 /** 88 88 * Fires when a site's initialization routine should be executed. … … 99 99 $user_id = ! empty( $args['user_id'] ) ? $args['user_id'] : 0; 100 100 $meta = ! empty( $args['options'] ) ? $args['options'] : array(); 101 102 // WPLANG was passed with `$meta` to the `wpmu_new_blog` hook prior to 5.1.0. 103 if ( ! array_key_exists( 'WPLANG', $meta ) ) { 104 $meta['WPLANG'] = get_network_option( $new_site->network_id, 'WPLANG' ); 105 } 106 107 // Rebuild the data expected by the `wpmu_new_blog` hook prior to 5.1.0 using whitelisted keys. 108 // The `$site_data_whitelist` matches the one used in `wpmu_create_blog()`. 109 $site_data_whitelist = array( 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' ); 110 $meta = array_merge( array_intersect_key( $data, array_flip( $site_data_whitelist ) ), $meta ); 101 111 102 112 /** -
trunk/tests/phpunit/tests/multisite/site.php
r44727 r44805 13 13 protected $site_status_hooks = array(); 14 14 protected $wp_initialize_site_args = array(); 15 protected $wp_initialize_site_meta = array(); 15 16 protected static $network_ids; 16 17 protected static $site_ids; … … 2349 2350 update_option( 'siteurl', 'http://testsite1.example.org/test' ); 2350 2351 } 2352 2353 /** 2354 * Tests whether all expected meta are provided in deprecated `wpmu_new_blog` action. 2355 * 2356 * @dataProvider data_wpmu_new_blog_action_backward_commpatible 2357 * 2358 * @ticket 46351 2359 */ 2360 public function test_wpmu_new_blog_action_backward_compatible( $meta, $expected_meta ) { 2361 // We are testing deprecated hook. Register it to expected deprecated notices. 2362 $this->setExpectedDeprecated( 'wpmu_new_blog' ); 2363 add_action( 'wpmu_new_blog', array( $this, 'wpmu_new_blog_callback' ), 10, 6 ); 2364 2365 wpmu_create_blog( 'testsite1.example.org', '/new-blog/', 'New Blog', get_current_user_id(), $meta, 1 ); 2366 2367 $this->assertEquals( $expected_meta, $this->wp_initialize_site_meta ); 2368 2369 $this->wp_initialize_site_meta = array(); 2370 } 2371 2372 /** 2373 * Capture the $meta value passed to the wpmu_new_blog action and compare it. 2374 */ 2375 public function wpmu_new_blog_callback( $blog_id, $user_id, $domain, $path, $network_id, $meta ) { 2376 $this->wp_initialize_site_meta = $meta; 2377 } 2378 2379 public function data_wpmu_new_blog_action_backward_commpatible() { 2380 return array( 2381 'default values' => array( 2382 array( 2383 ), 2384 array( 2385 'public' => 0, // `public` is one of the defaults metas in `wpmu_create_blog' function prior WordPress 5.1.0 2386 'WPLANG' => 'en_US', // WPLANG is another default meta in `wpmu_create_blog` function prior WordPress 5.1.0. 2387 ), 2388 ), 2389 'public site' => array( 2390 array( 2391 'public' => 1, 2392 ), 2393 array( 2394 'public' => 1, 2395 'WPLANG' => 'en_US' 2396 ), 2397 ), 2398 'all whitelisted' => array( 2399 array( 2400 'public' => -1, 2401 'archived' => 0, 2402 'mature' => 0, 2403 'spam' => 0, 2404 'deleted' => 0, 2405 'lang_id' => 11, 2406 2407 ), 2408 array( 2409 'public' => -1, 2410 'WPLANG' => 'en_US', 2411 'archived' => 0, 2412 'mature' => 0, 2413 'spam' => 0, 2414 'deleted' => 0, 2415 'lang_id' => 11, 2416 ), 2417 ), 2418 'extra meta key' => array( 2419 array( 2420 'foo' => 'bar', 2421 ), 2422 array( 2423 'public' => 0, 2424 'WPLANG' => 'en_US', 2425 'foo' => 'bar', 2426 ), 2427 ), 2428 ); 2429 } 2351 2430 } 2352 2431
Note: See TracChangeset
for help on using the changeset viewer.