所有用户>用户列表>更新用户元字段行内

时间:2013-10-11 作者:Bhavin Shah

在注册时,我会向用户询问一些问题,如

在注册表中

[] I am blah blah
[] I am blan blah
[] I am blah blah
现在,用户将在管理面板中以挂起状态获得批准。

我想在列表用户表中添加以上(复选框)。因此,管理员可以更改数据,如果他想内联,并尽快点击批准数据保存在该用户的数据库中。

这就是我所尝试的。

function X_member_user_table( $columns ) {
    $columns[\'dbem_X_member_f\'] = \'Member\';
    $columns[\'dbem_X_delegate_f\'] = \'Delegate\';
    $columns[\'dbem_X_sponsor_f\'] = \'Sponsor\';
    return $columns;
}
add_filter( \'manage_users_columns\', \'X_member_user_table\' );

function X_modify_user_table_row( $val, $column_name, $user_id ) {
    $column_value = get_the_author_meta($column_name,$user_id );
    //return "<input type=\'checkbox\' name=\'".$column_name_.$user_id."\' value=\'".$column_value."\' id=\'".$column_name_.$user_id."\'/>";
    //return "<input onclick=\'$(form).serialize();\' type=\'checkbox\' name=\'{$column_name}[]\' id=\'{$column_name}_{$user_id}\' class=\'$role\'    value=\'{$user_id}\' />";
    $checkbox = \'<label class="screen-reader-text" for="cb-select-\'.$column_name."_" . $user_id . \'">\' . \'</label>\'
                    . "<input type=\'checkbox\' name=\'{$column_name}[]\' id=\'user_{$column_name}_{$user_id}\' class=\'$role\' value=\'{$column_value}\' />";
    return $checkbox;
}
add_filter( \'manage_users_custom_column\', \'X_modify_user_table_row\', 10, 3 );
我可以在用户表中获取复选框。现在的问题是如何进入$GET$POST 当用户单击Approve链接时。这个链接只是重定向页面,没有提交页面,所以我不认为它会在帖子中出现。

我创建了以下方法来获取数据GET 属性。我是否需要使用jQuery在其中构建数据?

function X_user_row_actions($actions, $user_object){
    $current_user = wp_get_current_user();
    $u = $user_object->ID;
    if ( $current_user->ID != $user_object->ID ) {
        /*if ( in_array( \'pending\', (array) $user_object->roles ) ) {
            switch ( get_option( \'type\' ) ) {
                case \'admin\' :*/
                    // Add "Approve" link
                    $actions[\'approve-X-user\'] = sprintf( \'<a href="%1$s">%2$s</a>\',
                        add_query_arg( \'wp_http_referer\',
                            urlencode( esc_url( stripslashes( $_SERVER[\'REQUEST_URI\'] ) ) ),
                            wp_nonce_url( "users.php?action=approve&amp;user=$user_object->ID&amp;dbem_X_member_f=1", \'approve-X-user\' ) 
                        ),
                        __( \'Approve with changes\', \'theme-my-login\' )
                    );
                    //break;
            //}
        //}
    }
    return $actions;
    echo "<pre>";
    print "X row";
    print_r($actions);
    print_r($user_object);
    echo "</pre>";
    return $actions;
    //exit;
}
add_filter( \'user_row_actions\', \'X_user_row_actions\' , 10, 2 );
但是,它不起作用。单击“批准”或更改其状态时,是否有要使用的挂钩?

1 个回复
SO网友:brasofilo

是的,我们需要jQuery。第一件事是为元素提供适当的类和ID。

在里面manage_users_custom_column, 将类和数据选择器添加到复选框中:

"<input type=\'checkbox\' data-approval=\'#approval-$user_id\' class=\'my-class\' value=\'{$column_value}\' />"
并且在user_row_actions, 的ID<a> 标签:id=\'approval-$user_id\'.

现在,我们拥有了所有的元素属性,并且可以操作带有更改的Approve链接的URL。

add_action( \'admin_footer-users.php\', \'print_jquery_wpse_117481\' );

function print_jquery_wpse_117481() 
{
    ?>
    <script type="text/javascript">
    jQuery(document).ready(function($) 
    {
        $(\'.my-class\').click(function(e) 
        {
            console.log( \'Is checked: \' + $(this).is(\':checked\') );
            console.log( \'This ID: \' + $(this).attr(\'id\') );

            var a_href_approval_id = $(this).data(\'approval\');
            var a_href_final = $( a_href_approval_id ).attr(\'href\');
            console.log( \'Manipulate this attribute: \' + a_href_final );
        });
    });
    </script>
    <?php
}
提示:使用sprintf 建立$checkbox.

结束

相关推荐

Wp-admin重定向至wp-login.php

当我进入时http://example.com/wordpress/wp-admin 它正在重定向到wp-login.php 页我检查了index.php 并检查了该文件,它包括wp-config.php, wp-settings.php, wp-load.php 中的根文件夹和一些文件wp-include 文件夹,但我无法确定哪个函数正在重定向wp登录。输入时的php文件http://example.com/wordpress/wp-admin. 我甚至检查过auth_redirect() 作用