在WordPress中通过Get While注册添加额外信息

时间:2011-03-04 作者:Ayaz Malik

我正在尝试为我的网站建立一个小小的推荐系统。因此,我在注册url中设置了一个额外的参数:

www.domain。com/wp登录。php?动作=寄存器&register_me=site_name

一个是在注册时添加ip地址,起初我认为这将是wp登录中的一种简单形式。php,但我刚刚发现它完全基于过滤器等。。非常复杂的东西。

我在wp\\u user表中设置了两个额外的字段。调用\'reg_ip\' and \'referral\' ..

现在我需要了解如何在wp登录中添加这两件事。php,以便在注册时将它们插入到数据库中。

非常感谢您的帮助:)谢谢

1 个回复
最合适的回答,由SO网友:wyrfel 整理而成

我最近写了一个附属插件,我必须做几乎相同的事情。以下是相关部分的截图:

要处理从注册表中获得的额外信息,请执行以下操作:

add_action(\'user_register\', \'my_handle_signup\', 10, 2);

function my_handle_signup($user_id, $data = null) {
    $reg_ip = $_REQUEST[\'reg_ip\'];
    $referrer = $_REQUEST[\'referrer\'];
    if (isset($reg_ip) && isset($referrer)) {
        add_user_meta($user_id, \'my_referrer\', $referrer);
        add_user_meta($user_id, \'my_reg_ip\', $reg_ip);
    }
}
并向注册表单中添加字段:

add_action(\'register_form\', \'my_add_signup_fields\');

function my_add_signup_fields() {
    if (!empty($_GET[\'register_me\'])) {
        ?>
        <input type="hidden" name="reg_ip" value="<?php echo esc_attr($_SERVER[\'REMOTE_ADDR\']); ?>" />
        <input type="hidden" name="referrer" value="<?php echo esc_attr($_GET[\'register_me\']); ?>" />
        <?php
    }
}
对于我的解决方案,我实际上是设置一个cookie,然后在注册表上检索它。

结束

相关推荐