WordPress不提供删除用户链接,因为它提供了删除帖子的功能。因此,我们应该使用Ajax来实现这一点。解决这一问题的方法如下:
将用户id作为属性添加到标记中单击锚定时,获取用户id并发出ajax请求,该请求将删除用户请删除$deleteurl = wp_delete_user ( $user->ID);
来自代码。因为它将在列出之前删除用户,因此将引发错误。我们将在ajax调用中添加它。
让我们从向锚定标记添加属性开始。我们将向锚定标记添加用户id属性和类。因此,您的链接如下所示:
echo \'<li>\' . esc_html( $user->display_name ) . \'|\' . esc_html( $user->ID ) . \'<a class="delete_user" delete-user-id="\' . $user->ID . \'" href="#">Delete User</a></li>\';
在js文件中添加以下jQuery代码。你需要通过
admin_url( \'admin-ajax.php\' )
作为js文件的ajax url。
wp_localize_script 可用于将php值传递给javascript。您可以阅读更多关于
Ajax in WordPress here.
我假设js文件中的Ajax url可以使用ajax_object.ajax_url
. 请使用自己的参数更改此参数。还可以使用wp\\u localize\\u脚本传递nonce字段。因此,在将使用wp\\u localize\\u脚本传递的数组中,还有一个键,如下所示:\'ajax_nonce\' => wp_create_nonce( "security-special-string" )
. 出于安全目的,这是必需的
您不需要文档。ready语句,如果您已经调用了它,并且在这种情况下开始使用jQuery(".delete_user").click(function(){
线
jQuery(document).ready(function(){
jQuery(".delete_user").click(function(){
var data = {
\'action\': \'delete_user_action\',
\'user_id\': jQuery(this).attr(\'delete-user-id\'), //Pass User id
\'security\': ajax_object.ajax_nonce
};
//lets fire ajax request
jQuery.post(ajax_object.ajax_url, data, function(response) {
//Add your code here to show message after deleting the user.
}
});
});
现在让我们编写一段代码来处理ajax请求。您可以在插件的php文件或函数中编写此代码。主题的php。
add_action( \'wp_ajax_delete_user_action\', \'delete_user_action_callback\' );
add_action( \'wp_ajax_nopriv_delete_user_action\', \'delete_user_action_callback\' );
function delete_user_action_callback(){
check_ajax_referer( \'security-special-string\', \'security\' );
wp_delete_user( $_POST[\'user_id\'] );
die();
}
出于安全目的,您应该检查用户是否有权使用删除用户
if( current_user_can( \'delete_users\' ) )
条件
Update
感谢您发布代码。我们需要对代码进行修改。
请尝试此代码:
add_action( \'wp_head\', \'my_action_javascript\' );
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery(".delete_user").click(function() {
var current_element_var = jQuery(this);
var data = {
\'action\': \'delete_user_action\',
\'user_id\': current_element_var.attr(\'delete-user-id\'),
\'security\': \'<?php echo wp_create_nonce( "security-special-string" ) ?>\'
};
jQuery.post(\'<?php echo admin_url( \'admin-ajax.php\' ) ?>\', data, function(response) {
if (response == \'deleted_successfully\') {
current_element_var.hide();
current_element_var.after(\'<span> User Deleted Successfully </span>\');
current_element_var.remove();
}
});
return false;
});
});
</script>
<?php
}
add_action( \'wp_ajax_delete_user_action\', \'delete_user_action_callback\' );
add_action( \'wp_ajax_nopriv_delete_user_action\', \'delete_user_action_callback\' );
function delete_user_action_callback() {
check_ajax_referer( \'security-special-string\', \'security\' );
wp_delete_user( $_POST[\'user_id\'] );
echo \'deleted_successfully\';
die();
}
如果上述代码对您有效,请告诉我。:)