【问题标题】:tml_new_user_activated hook not workingtml_new_user_activated 挂钩不起作用
【发布时间】:2014-09-17 17:42:49
【问题描述】:

我正在通过管理员批准使用主题我的登录插件用户审核功能。在管理员批准用户后,我想将用户角色从待定更改为我定义的角色。我正在使用这个钩子,但它不起作用,代码如下:

function set_role_on_activation( $user_id ) {
echo "<script>alert('hello');</script>";
}

add_action( 'tml_new_user_activated', 'set_role_on_activation' );

请帮忙

【问题讨论】:

    标签: hook


    【解决方案1】:

    我找到了一个不使用这个钩子的解决方案。只需将下面提到的代码放在 register-form.php 上,例如:

    <p>
            <label for="role<?php $template->the_instance(); ?>"><?php _e( 'Role', 'theme-my-login' ) ?></label>
            <select id="role<?php $template->the_instance(); ?>" name="role">
        <option value="author">Author</option>
        <option value="subscriber">Subscriber</option>
    </select>
    </p>
    

    然后在function.php中放一个函数,比如:

    function set_role_on_registration( $user_id ) {
    
        //$role = sanitize_text_field( $_POST['role'] );
        $role = $_POST['role'];
    
        if ( in_array( $role, array( $role, 'bprofessional' ) ) )
            add_user_meta( $user_id, 'pending_role', $role );
    }
    add_action( 'tml_new_user_registered', 'set_role_on_registration' );
    

    然后转到 plugins/theme-my-login/modules/user-moderation/admin/user-moderation-admin.php 并找到approve_user函数。然后替换这行代码:

    $approval_role = apply_filters( 'tml_approval_role', get_option( 'default_role' ), $user->ID );
    

    通过这一行:

    $approval_role = apply_filters( 'tml_approval_role', get_user_meta($user->ID, 'pending_role', true), $user->ID );
    

    现在,在管理员批准后,将为用户分配您选择的角色。

    希望,这段代码对某人有所帮助。

    谢谢 苏尼尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多