写一个wordpress的会员系统功能代码
时间: 2023-12-01 07:08:24 浏览: 41
以下是一个简单的 WordPress 会员系统功能代码:
1. 创建一个自定义用户角色:
```
add_role( 'member', 'Member', array( 'read' => true ) );
```
2. 创建一个注册表单:
```
<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
<input type="hidden" name="action" value="register_user">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="email" name="email" placeholder="Email">
<input type="submit" value="Register">
</form>
```
3. 注册表单处理:
```
add_action( 'admin_post_nopriv_register_user', 'register_user' );
add_action( 'admin_post_register_user', 'register_user' );
function register_user() {
if ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
wp_die( 'Method not allowed!' );
}
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$user_id = wp_create_user( $username, $password, $email );
if ( is_wp_error( $user_id ) ) {
wp_die( $user_id->get_error_message() );
}
$user = get_user_by( 'id', $user_id );
$user->set_role( 'member' );
wp_redirect( home_url() );
exit;
}
```
4. 创建一个登录表单:
```
<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
<input type="hidden" name="action" value="login_user">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="submit" value="Login">
</form>
```
5. 登录表单处理:
```
add_action( 'admin_post_nopriv_login_user', 'login_user' );
add_action( 'admin_post_login_user', 'login_user' );
function login_user() {
if ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
wp_die( 'Method not allowed!' );
}
$username = $_POST['username'];
$password = $_POST['password'];
$user = wp_authenticate( $username, $password );
if ( is_wp_error( $user ) ) {
wp_die( $user->get_error_message() );
}
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID, true );
do_action( 'wp_login', $user->user_login, $user );
wp_redirect( home_url() );
exit;
}
```
这些代码仅供参考,可能还需要进行一些修改和完善才能满足您的需求。