private function _install($assoc_args)
{
if (is_blog_installed()) {
return false;
}
if (true === \WP_CLI\Utils\get_flag_value($assoc_args, 'skip-email') && !function_exists('wp_new_blog_notification')) {
function wp_new_blog_notification()
{
// Silence is golden
}
}
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
extract(wp_parse_args($assoc_args, array('title' => '', 'admin_user' => '', 'admin_email' => '', 'admin_password' => '')), EXTR_SKIP);
// Support prompting for the `--url=<url>`,
// which is normally a runtime argument
if (isset($assoc_args['url'])) {
WP_CLI::set_url($assoc_args['url']);
}
$public = true;
// @codingStandardsIgnoreStart
if (!is_email($admin_email)) {
WP_CLI::error("The '{$admin_email}' email address is invalid.");
}
$result = wp_install($title, $admin_user, $admin_email, $public, '', $admin_password);
if (is_wp_error($result)) {
WP_CLI::error('Installation failed (' . WP_CLI::error_to_string($result) . ').');
}
// @codingStandardsIgnoreEnd
if (!empty($GLOBALS['wpdb']->last_error)) {
WP_CLI::error('Installation produced database errors, and may have partially or completely failed.');
}
if (empty($admin_password)) {
WP_CLI::log("Admin password: {$result['password']}");
}
// Confirm the uploads directory exists
$upload_dir = wp_upload_dir();
if (!empty($upload_dir['error'])) {
WP_CLI::warning($upload_dir['error']);
}
return true;
}