如何创建注册后自动登录的快捷码

时间:2015-02-04 作者:usama sulaiman

我有一个注册后自动登录的代码,它是:

function auto_login_new_user( $user_id ) {
    wp_set_current_user($user_id);
    wp_set_auth_cookie($user_id);
    $request = $_SERVER["HTTP_REFERER"];
    wp_redirect($request);
    exit;
}
add_action( \'user_register\', \'auto_login_new_user\' );
我需要的是创建一个短代码来控制重定向的时间,我不希望它在之后重定向$userID = wp_insert_user( $userDataArr );

我希望在为额外字段添加一些代码后发生重定向,如update_user_meta( $userID, $fieldsArr[$fieldN], $value);

我在想,我可以通过在shortcode函数中对接ADD\\u操作代码来实现这一点

function my_login_shortcode(){
    add_action( \'user_register\', \'auto_login_new_user\' );
}
add_shortcode(\'mogincode\',\'my_login_shortcode\');
我该怎么做?

1 个回复
SO网友:usama sulaiman

因为我试图在注册中使用快捷码进行重定向,但我没有得到答案,这会延迟重定向,直到我将自定义textarea字段日期添加到用户配置文件页面

在此步骤之前$userID = wp_insert_user( $userDataArr ) , 我还没有用户ID,所以我无法对未知用户ID进行更新,在更新之后,重定向会在我到达之前发生update_user_meta( $userID, $fieldsArr[$fieldN], $value); 代码,所以我丢失了来自$\\u POST[$fieldN]的日期,即使我有用户id,我所做的就是在重定向之前为来自$\\u POST[$fieldN]的数据设置cookie,如下所示:

setcookie($fieldN, $value, time()+3600*24,\'/\',\'.MYSITE.com\');
$userID = wp_insert_user( $userDataArr );
我正在检查页面顶部是否存在cookie,并对其进行处理(缓存,当我完成后,通过将其时间设置为负时间来删除cookie-, php普通方式)

if ( is_user_logged_in() ) {
    $userID = $current_user->ID;
    if(isset($_COOKIE[$fieldN])){   
        update_user_meta( $userID, $fieldN, $_COOKIE[$fieldN]);
        setcookie($fieldN, \'\', time()-3600*24,\'/\',$homecookieURL);
    }
}
现在,访问者可以注册,同时为自定义配置文件文本区域字段添加额外的日期。

我解决了我的问题,所以我决定分享这一点,也许有人有更好的解决方案,或者我可以帮助需要类似解决方案的人:)

结束

相关推荐

Children Shortcodes?

几周前我开始创建WordPress插件,我想知道是否有可能在其他一些插件中“嵌入”短代码。基本上,我想做的是根据插件用户输入的一组项目创建一个表或列表。有没有可能有这样的东西: [data] [item1] something [/item1] [item2] something else[/item2] [item3] something else[/item3] [/data] 简而言之,我想基于itemX“children”短代码中