我需要在Ultimate Member中向功能添加检查:
function um_submit_form_login( $args )
您可以在此文件中找到此功能:
https://github.com/ultimatemember/ultimatemember/blob/master/includes/core/um-actions-login.php#L202
在此功能中,我需要围绕do_action添加以下检查:
$current_user_id = get_current_user_id();
$encrypted_secret = get_user_meta( $current_user_id, 'encrypted_secret', true );
$verify_login_url = get_permalink( 1345 );
//If user has two way auth enabled redirect to verify auth page and skip login for now
if ( $encrypted_secret && ! empty( $encrypted_secret ) ) {
wp_redirect( $verify_login_url );
exit;
} else {
do_action( 'um_user_login', $args ); //Do normal login if no two way auth enabled
}
所以我在我的functions.php中做到了这一点:
add_filter( 'um_submit_form_login', 'two_way_auth_redirect', 10, 1 );
function two_way_auth_redirect( $args ) {
$current_user_id = get_current_user_id();
$encrypted_secret = get_user_meta( $current_user_id, 'encrypted_secret', true );
$verify_login_url = get_permalink( 1345 );
//If user has two way auth enabled redirect to verify auth page and skip login for now
if ( $encrypted_secret && ! empty( $encrypted_secret ) ) {
wp_redirect( $verify_login_url );
exit;
} else {
do_action( 'um_user_login', $args ); //Do normal login if no two way auth enabled
}
}
但是当我尝试时,它不起作用。我该如何正确实施呢?
答案 0 :(得分:1)
由于您的链接指向um_user_login
函数代码,因此您的问题尚不清楚100%,但是您似乎想在触发逻辑之前先扩展um_submit_form_login
函数的逻辑。
如果您需要在默认设置之前添加钩子 动作'um_submit_form_login','um_submit_form_login',10被调用。 即
add_action( 'um_submit_form_login', 'my_um_submit_form_login', 1 );
function my_um_submit_form_login( $args ) {
if ( /* your_special_redirect_required */ ) {
wp_redirect( $verify_login_url );
exit;
}
// if nothing special required - execution will continue and default
// UM code called
}
但是您可能想更改um_user_login
功能(在发布登录表单之前挂接),在这种情况下,您可以类似地进行操作。即通过add_action( 'um_user_login', 'my_um_user_login', 1 );