繁体   English   中英

自定义表单挂钩到“user_register”

[英]Custom form hooked to “user_register”

我需要做的是在用户订阅我的Wordpress网站的同时发送自定义表单。 我正在使用hook add_action“user_register”,这是我的代码:

<?php

    add_action('user_register', 'my_function');

    function my_function($user_id) { 

    $user_info = get_userdata($user_id);
    $username = $user_info->user_login;
    $mail = $user_info->user_email; 

?>

    <form id="my-form" action="http://....." method="get">
      <input type="hidden" name="list" value="9">
      <input type="email" name="email" value="<?php echo $mail; ?>">
      <input type="hidden" name="campo1" value="campo1">
      <input type="hidden" name="username" value="<?php echo $username; ?>">
      <input type="submit" />
    </form>

    <script type="text/javascript">
        document.getElementById('my-form').submit();
    </script>

<?php } ?>

我究竟做错了什么? 功能正常,钩子也有不同的功能。 例如,我尝试了类似的东西:

<?php 

    add_action('user_register', 'my_function');

    function my_function($user_id) { 

    $user_info = get_userdata($user_id);
    $username = $user_info->user_login;
    $mail = $user_info->user_email;

    update_option('mail_test', $mail); 

} ?>

有任何想法吗? 在此先感谢您的帮助。

我不建议挂钩user_registration操作,当用户从wp-admin注册或在后端创建用户时会发生什么? Wordpress将尝试发送一些不存在的随机表单数据,可能会导致问题。

执行此操作的方法是在验证表单数据后以编程方式创建用户。 你可以这样做......

if( $_POST ) {

    //Do all your validation then if all is correct use the following
    $password = wp_generate_password( 12, false );
    $user_id = wp_create_user( $email, $password, $username );

    //Set the user information
    wp_update_user(
        array(
            'ID'                => $user_id,
            'nickname'          => $firstname . ' ' . $lastname,
            'display_name'      => $firstname . ' ' . $lastname,
            'first_name'        => $firstname,
            'last_name'         => $lastname
        )
    );

}

用您喜欢的任何内容替换用户电子邮件和名称的所有变量,并且不要忘记使用此方法,用户将不会自动收到任何确认,因此您必须在成功消息中向他们显示他们的登录名和密码或使用wp_mail向他们发送电子邮件。

希望有所帮助

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM