我有一个需要自定义注册表单的客户端.
>我需要在此页面上进行自定义设计
>我需要添加自定义字段,如名字,公司,电话等.
有人可以帮我这个吗?
解决方法
一个更好的地方问WordPress的问题可能是在
WordPress Answers.Anyhoo,如果你想在没有插件的情况下解决这个问题,你需要三件事:
> A custom WordPress theme
> A Page Template
>使用页面模板的WordPress Page
如果有这三个部分,可以在页面模板中执行以下操作:
<?php /* Template Name: Registration */ global $current_user; get_currentuserinfo(); $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 = 'test@example.com'; // 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; ?>
现在,当您想要检索已存储的内容时,您需要知道信息是在User对象本身内还是在元数据中.要检索(登录用户的)姓名和姓氏,请执行以下操作:
global $current_user; $firstname = $current_user->first_name; $lastname = $current_user->last_name;
要检索公司名称(已登录用户):
global $current_user; $company = get_usermeta($current_user->id,'company');
这是它的基本要点.这里仍然缺少很多东西,例如验证,错误消息输出,WordPress API中发生的错误处理等等.还有一些重要的TODO,你必须在代码甚至可以工作之前处理.代码应该也可以分成几个文件,但我希望这足以让你入门.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。