File "site-new.php"

Full path: /home/kosmetik/public_html/wp-includes/wp-admin/network/site-new.php
File size: 7.91 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

require_once __DIR__ . '/admin.php';
require_once ABSPATH . 'wp-admin/includes/translation-install.php';
if (!current_user_can('create_sites')) {
    wp_die(__('Sorry, you are not allowed to add sites to this network.'));
}
get_current_screen()->add_help_tab(array('id' => 'overview', 'title' => __('Overview'), 'content' => '<p>' . __('This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings.') . '</p>' . '<p>' . __('If the admin email for the new site does not exist in the database, a new user will also be created.') . '</p>'));
get_current_screen()->set_help_sidebar('<p><strong>' . __('For more information:') . '</strong></p>' . '<p>' . __('<a href="https://wordpress.org/support/article/network-admin-sites-screen/">Documentation on Site Management</a>') . '</p>' . '<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>');
if (isset($_REQUEST['action']) && 'add-site' === $_REQUEST['action']) {
    check_admin_referer('add-blog', '_wpnonce_add-blog');
    if (!is_array($_POST['blog'])) {
        wp_die(__('Can&#8217;t create an empty site.'));
    }
    $blog = $_POST['blog'];
    $domain = '';
    $blog['domain'] = trim($blog['domain']);
    if (preg_match('|^([a-zA-Z0-9-])+$|', $blog['domain'])) {
        $domain = strtolower($blog['domain']);
    }
    if (!is_subdomain_install()) {
        $subdirectory_reserved_names = get_subdirectory_reserved_names();
        if (in_array($domain, $subdirectory_reserved_names, true)) {
            wp_die(sprintf(__('The following words are reserved for use by WordPress functions and cannot be used as blog names: %s'), '<code>' . implode('</code>, <code>', $subdirectory_reserved_names) . '</code>'));
        }
    }
    $title = $blog['title'];
    $meta = array('public' => 1);
    if (isset($_POST['WPLANG'])) {
        if ('' === $_POST['WPLANG']) {
            $meta['WPLANG'] = '';
        } elseif (in_array($_POST['WPLANG'], get_available_languages(), true)) {
            $meta['WPLANG'] = $_POST['WPLANG'];
        } elseif (current_user_can('install_languages') && wp_can_install_language_pack()) {
            $language = wp_download_language_pack(wp_unslash($_POST['WPLANG']));
            if ($language) {
                $meta['WPLANG'] = $language;
            }
        }
    }
    if (empty($domain)) {
        wp_die(__('Missing or invalid site address.'));
    }
    if (isset($blog['email']) && '' === trim($blog['email'])) {
        wp_die(__('Missing email address.'));
    }
    $email = sanitize_email($blog['email']);
    if (!is_email($email)) {
        wp_die(__('Invalid email address.'));
    }
    if (is_subdomain_install()) {
        $newdomain = $domain . '.' . preg_replace('|^www\\.|', '', get_network()->domain);
        $path = get_network()->path;
    } else {
        $newdomain = get_network()->domain;
        $path = get_network()->path . $domain . '/';
    }
    $password = 'N/A';
    $user_id = email_exists($email);
    if (!$user_id) {
        do_action('pre_network_site_new_created_user', $email);
        $user_id = username_exists($domain);
        if ($user_id) {
            wp_die(__('The domain or path entered conflicts with an existing username.'));
        }
        $password = wp_generate_password(12, false);
        $user_id = wpmu_create_user($domain, $password, $email);
        if (false === $user_id) {
            wp_die(__('There was an error creating the user.'));
        }
        do_action('network_site_new_created_user', $user_id);
    }
    $wpdb->hide_errors();
    $id = wpmu_create_blog($newdomain, $path, $title, $user_id, $meta, get_current_network_id());
    $wpdb->show_errors();
    if (!is_wp_error($id)) {
        if (!is_super_admin($user_id) && !get_user_option('primary_blog', $user_id)) {
            update_user_option($user_id, 'primary_blog', $id, true);
        }
        wpmu_new_site_admin_notification($id, $user_id);
        wpmu_welcome_notification($id, $user_id, $password, $title, array('public' => 1));
        wp_redirect(add_query_arg(array('update' => 'added', 'id' => $id), 'site-new.php'));
        exit;
    } else {
        wp_die($id->get_error_message());
    }
}
if (isset($_GET['update'])) {
    $messages = array();
    if ('added' === $_GET['update']) {
        $messages[] = sprintf(__('Site added. <a href="%1$s">Visit Dashboard</a> or <a href="%2$s">Edit Site</a>'), esc_url(get_admin_url(absint($_GET['id']))), network_admin_url('site-info.php?id=' . absint($_GET['id'])));
    }
}
$title = __('Add New Site');
$parent_file = 'sites.php';
wp_enqueue_script('user-suggest');
require_once ABSPATH . 'wp-admin/admin-header.php';
?>

<div class="wrap">
<h1 id="add-new-site"><?php 
_e('Add New Site');
?></h1>
<?php 
if (!empty($messages)) {
    foreach ($messages as $msg) {
        echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
    }
}
?>
<p>
<?php 
printf(__('Required fields are marked %s'), '<span class="required">*</span>');
?>
</p>
<form method="post" action="<?php 
echo network_admin_url('site-new.php?action=add-site');
?>" novalidate="novalidate">
<?php 
wp_nonce_field('add-blog', '_wpnonce_add-blog');
?>
	<table class="form-table" role="presentation">
		<tr class="form-field form-required">
			<th scope="row"><label for="site-address"><?php 
_e('Site Address (URL)');
?> <span class="required">*</span></label></th>
			<td>
			<?php 
if (is_subdomain_install()) {
    ?>
				<input name="blog[domain]" type="text" class="regular-text ltr" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off" required /><span class="no-break">.<?php 
    echo preg_replace('|^www\\.|', '', get_network()->domain);
    ?></span>
				<?php 
} else {
    echo get_network()->domain . get_network()->path;
    ?>
				<input name="blog[domain]" type="text" class="regular-text ltr" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off" required />
				<?php 
}
echo '<p class="description" id="site-address-desc">' . __('Only lowercase letters (a-z), numbers, and hyphens are allowed.') . '</p>';
?>
			</td>
		</tr>
		<tr class="form-field form-required">
			<th scope="row"><label for="site-title"><?php 
_e('Site Title');
?> <span class="required">*</span></label></th>
			<td><input name="blog[title]" type="text" class="regular-text" id="site-title" required /></td>
		</tr>
		<?php 
$languages = get_available_languages();
$translations = wp_get_available_translations();
if (!empty($languages) || !empty($translations)) {
    ?>
			<tr class="form-field form-required">
				<th scope="row"><label for="site-language"><?php 
    _e('Site Language');
    ?></label></th>
				<td>
					<?php 
    $lang = get_site_option('WPLANG');
    if (!in_array($lang, $languages, true)) {
        $lang = '';
    }
    wp_dropdown_languages(array('name' => 'WPLANG', 'id' => 'site-language', 'selected' => $lang, 'languages' => $languages, 'translations' => $translations, 'show_available_translations' => current_user_can('install_languages') && wp_can_install_language_pack()));
    ?>
				</td>
			</tr>
		<?php 
}
?>
		<tr class="form-field form-required">
			<th scope="row"><label for="admin-email"><?php 
_e('Admin Email');
?> <span class="required">*</span></label></th>
			<td><input name="blog[email]" type="email" class="regular-text wp-suggest-user" id="admin-email" data-autocomplete-type="search" data-autocomplete-field="user_email" aria-describedby="site-admin-email" required /></td>
		</tr>
		<tr class="form-field">
			<td colspan="2" class="td-full"><p id="site-admin-email"><?php 
_e('A new user will be created if the above email address is not in the database.');
?><br /><?php 
_e('The username and a link to set the password will be mailed to this email address.');
?></p></td>
		</tr>
	</table>

	<?php 
do_action('network_site_new_form');
submit_button(__('Add Site'), 'primary', 'add-site');
?>
	</form>
</div>
<?php 
require_once ABSPATH . 'wp-admin/admin-footer.php';