wp_prepare_site_data

The timeline below displays how wordpress function wp_prepare_site_data has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.5

/**
 * Prepares site data for insertion or update in the database.
 *
 * @since 5.1.0
 *
 * @param array        $data     Associative array of site data passed to the respective function.
 *                               See {@see wp_insert_site()} for the possibly included data.
 * @param array        $defaults Site data defaults to parse $data against.
 * @param WP_Site|null $old_site Optional. Old site object if an update, or null if an insertion.
 *                               Default null.
 * @return array|WP_Error Site data ready for a database transaction, or WP_Error in case a validation
 *                        error occurred.
 */
function wp_prepare_site_data($data, $defaults, $old_site = null)
{
    // Maintain backward-compatibility with `$site_id` as network ID.
    if (isset($data['site_id'])) {
        if (!empty($data['site_id']) && empty($data['network_id'])) {
            $data['network_id'] = $data['site_id'];
        }
        unset($data['site_id']);
    }
    /**
     * Filters passed site data in order to normalize it.
     *
     * @since 5.1.0
     *
     * @param array $data Associative array of site data passed to the respective function.
     *                    See {@see wp_insert_site()} for the possibly included data.
     */
    $data = apply_filters('wp_normalize_site_data', $data);
    $allowed_data_fields = array('domain', 'path', 'network_id', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id');
    $data = array_intersect_key(wp_parse_args($data, $defaults), array_flip($allowed_data_fields));
    $errors = new WP_Error();
    /**
     * Fires when data should be validated for a site prior to inserting or updating in the database.
     *
     * Plugins should amend the `$errors` object via its `WP_Error::add()` method.
     *
     * @since 5.1.0
     *
     * @param WP_Error     $errors   Error object to add validation errors to.
     * @param array        $data     Associative array of complete site data. See {@see wp_insert_site()}
     *                               for the included data.
     * @param WP_Site|null $old_site The old site object if the data belongs to a site being updated,
     *                               or null if it is a new site being inserted.
     */
    do_action('wp_validate_site_data', $errors, $data, $old_site);
    if (!empty($errors->errors)) {
        return $errors;
    }
    // Prepare for database.
    $data['site_id'] = $data['network_id'];
    unset($data['network_id']);
    return $data;
}

WordPress Version: 5.1

/**
 * Prepares site data for insertion or update in the database.
 *
 * @since 5.1.0
 *
 * @param array        $data     Associative array of site data passed to the respective function.
 *                               See {@see wp_insert_site()} for the possibly included data.
 * @param array        $defaults Site data defaults to parse $data against.
 * @param WP_Site|null $old_site Optional. Old site object if an update, or null if an insertion.
 *                               Default null.
 * @return array|WP_Error Site data ready for a database transaction, or WP_Error in case a validation
 *                        error occurred.
 */
function wp_prepare_site_data($data, $defaults, $old_site = null)
{
    // Maintain backward-compatibility with `$site_id` as network ID.
    if (isset($data['site_id'])) {
        if (!empty($data['site_id']) && empty($data['network_id'])) {
            $data['network_id'] = $data['site_id'];
        }
        unset($data['site_id']);
    }
    /**
     * Filters passed site data in order to normalize it.
     *
     * @since 5.1.0
     *
     * @param array $data Associative array of site data passed to the respective function.
     *                    See {@see wp_insert_site()} for the possibly included data.
     */
    $data = apply_filters('wp_normalize_site_data', $data);
    $whitelist = array('domain', 'path', 'network_id', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id');
    $data = array_intersect_key(wp_parse_args($data, $defaults), array_flip($whitelist));
    $errors = new WP_Error();
    /**
     * Fires when data should be validated for a site prior to inserting or updating in the database.
     *
     * Plugins should amend the `$errors` object via its `WP_Error::add()` method.
     *
     * @since 5.1.0
     *
     * @param WP_Error     $errors   Error object to add validation errors to.
     * @param array        $data     Associative array of complete site data. See {@see wp_insert_site()}
     *                               for the included data.
     * @param WP_Site|null $old_site The old site object if the data belongs to a site being updated,
     *                               or null if it is a new site being inserted.
     */
    do_action('wp_validate_site_data', $errors, $data, $old_site);
    if (!empty($errors->errors)) {
        return $errors;
    }
    // Prepare for database.
    $data['site_id'] = $data['network_id'];
    unset($data['network_id']);
    return $data;
}