我传递了一个推荐代码,我将其保存到wp_usertmeta,并在functions.php中添加了自定义字段
到目前为止,非常好!
链接到wp寄存器:wp-login.php?action = register& ref = 2
我用以下方式保存推荐代码:
<?php $ref = $_GET['ref']?>
它工作但是,如果我输入已经使用的用户名,我会从WordPress获取标准错误消息。
当发生这种情况时,URL会重新加载到:wp-login.php?action = register我无法使用$ _GET [&#39; ref&#39;]
有没有其他方法可以做到这一点?
答案 0 :(得分:1)
解决此问题的最简单方法是将$_GET['ref']
值保存到cookie或PHP会话中。用户注册后,您可以使用user_register
操作挂钩参考cookie /会话以保存到数据库。保存后,如果它是cookie,则应清除此值,除非需要其它内容以减少每个请求的大小。
//set the cookie
if ( isset( $_GET['ref'] ) ){
setcookie( "ref", $_GET['ref'] );
}
然后使用动作挂钩
保存值add_action( 'user_register', 'my_user_register' );
function my_user_register( $user_id ){
if ( isset( $_COOKIE['ref'] ) ){
// save the ref to the user meta
update_user_meta( $user_id, 'ref', $_COOKIE['ref'] );
// delete the cookie
setcookie( "ref", null, -1 );
}
}