如何在 WordPress 中创建自定义用户注册表单

您想在 WordPress 中创建自定义前端用户注册表单吗?

默认的 WordPress 用户注册表单显示 WordPress 品牌,与您网站的主题不匹配。

如何在 WordPress 中创建自定义用户注册表单
如何在 WordPress 中创建自定义用户注册表单

在本文中,我们将向您展示如何在 WordPress 中创建自定义用户注册表单。

为什么要在 WordPress 中添加自定义用户注册表单

默认的 WordPress 用户注册页面显示 WordPress 品牌和徽标。它与您的 WordPress 网站的其余部分不匹配。

创建自定义用户注册表单允许您在 WordPress 站点的任何页面上添加注册表单。它可以帮助您在注册过程中提供更一致的用户体验。

自定义用户注册表单还允许您在注册时重定向用户。您还可以显示其他用户配置文件字段,将其与自定义前端登录表单相结合,并将其与您的电子邮件营销服务连接。

话虽如此,让我们看看如何在 WordPress 中创建自定义用户注册表单。

代码和插件方法创建用户注册表单

代码和插件方法都可以创建,下面整理代码方法和罗列有哪些WordPress插件可以实现。

代码:自定义页面方法

<?php
/*
Template Name: Registration
*/

global $current_user;
wp_get_current_user();

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$company = $_POST['company'];

if (($firstname != '') && ($lastname != '') && ($company != '')) {
    // TODO: Do more rigorous validation on the submitted data

    // TODO: Generate a better login (or ask the user for it)
    $login = $firstname . $lastname;

    // TODO: Generate a better password (or ask the user for it)
    $password = '123';

    // TODO: Ask the user for an e-mail address
    $email = '[email protected]';

    // Create the WordPress User object with the basic required information
    $user_id = wp_create_user($login, $password, $email);

    if (!$user_id || is_wp_error($user_id)) {
        // TODO: Display an error message and don't proceed.
    }
    
    $userinfo = array(
        'ID' => $user_id,
        'first_name' => $firstname,
        'last_name' => $lastname,
    );

    // Update the WordPress User object with first and last name.
    wp_update_user($userinfo);

    // Add the company as user metadata
    update_usermeta($user_id, 'company', $company);
}

if (is_user_logged_in()) : ?>

    <p>You're already logged in and have no need to create a user profile.</p>
    
<?php else : while (have_posts()) : the_post(); ?>

<div id="page-<?php the_ID(); ?>">
    <h2><?php the_title(); ?></h2>

    <div class="content">
        <?php the_content() ?>
    </div>

    <form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
        <div class="firstname">
            <label for="firstname">First name:</label>
            <input name="firstname"
                    id="firstname"
                    value="<?php echo esc_attr($firstname) ?>">
        </div>
        <div class="lastname">
            <label for="lastname">Last name:</label>
            <input name="lastname"
                    id="lastname"
                    value="<?php echo esc_attr($lastname) ?>">
            </div>
            <div class="company">
            <label for="company">Company:</label>
            <input name="company"
                    id="company"
                    value="<?php echo esc_attr($company) ?>">
            </div>
    </form>
</div>
    
<?php endwhile; endif; ?>

最佳 WordPress 注册表单插件

看看我们关于最佳 WordPress 用户注册插件的文章。它涵盖了大量适用于设计和格式化注册模块的插件,而无需太多编码知识。

其中一些提供了独特的工具来利用大量自定义字段,而另一些则立即激活成员目录以组织您的会员群。

我们强烈建议您通读该文章,以确定适合您情况的最佳注册表单插件,但以下是我们最喜欢的列表:

这些插件专注于构建会员登录表单和利基注册区域,以使您的用户在注册您的网站时顺利完成。

作为替代方案,您可以使用通用表单插件,这样您就不会被仅限于某个行业或功能的插件卡住。

例如,可以使用 Contact Form 7(需要配合Frontend Registration – Contact Form 7使用) 和 Gravity Forms 插件制作自定义 WordPress 注册表单。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注