如何在Wordpress的Ultimate Member中加入功能?

时间:2018-10-29 12:06:46

标签: php wordpress

我需要在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
    }
}

但是当我尝试时,它不起作用。我该如何正确实施呢?

1 个答案:

答案 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 );