在 WordPress 中禁止用户删除某些文章类型中的文章
文 / @UTHEME
自我介绍
小本本是一名WordPress开发者,有多年的WordPress开发经验,擅长使用WordPress开发各种Web应用,并且熟悉WordPress的各种功能和特性,能够熟练使用WordPress进行主题开发和插件开发。
禁止客户删除WordPress自定义文章类型订单
我们用WordPress开发过一个订单系统,当用户在前台提交了一个订单后,订单信息保存在一个自定义文章类型中,客服可以在后台查看、处理订单。为了防止客服不小心删除这个订单信息,我们需要禁用掉这个订单的删除功能,客服只能查看、编辑、不能删除订单。我们是通过下面的代码可以实现这个需求。
add_filter('map_meta_cap',function($caps,$cap,$user_id,$args)
{
//如果不是delete_post权限,什么都不做
if('delete_post' !== $cap || empty($args[0])){
return $caps;
}
//如果是指定的文章类型,修改权限为do_not_allow
if(in_array(get_post_type($args[0]),['messages','transaction'],true)){
$caps[] = 'do_not_allow';
}
return $caps;
},10,4);
移除后,文章类标的操作栏,就只剩下“编辑”这一个功能了,如下图:

移除批量操作中的“移至回收站”链接
虽然我们移除了用户删除文章类型的权限,但是文章类型列表批量编辑功能的“移至回收站”功能还在(如下图),如果我们选择了几篇文章,选择“移至回收站”操作,点击应用,WordPress会报错,告诉我们,我们没有权限删除文章。

我们可以通过下面的代码移除这个功能:
add_filter('bulk_actions-edit-message',function($actions)
{
unset($actions['trash']);
return $actions;
});
除了禁止用户删除文章,我们还可以禁止用户进行其他操作,根据需要对相应的权限进行限制就可以了,WordPress的权限列表请参考官方文档:WordPress角色和权限。如果需要其他角色的用户可以删除订单,可以在上面的代码中加上权限判断,有需要的朋友自行编辑,在这里就不再列出了。

相关文章
-
个人网站选择WordPress还是Typecho? 2023-05-28 23:33:13
-
盘点2023年最好用的三款wordpress知识库主题 2023-05-28 23:20:26
-
wordpress建外贸B2C独立站的五大优势 2023-05-28 23:05:49
-
盘点2023年依然好用的3款wordpress文档主题 2023-05-28 23:02:19
-
盘点2023年依然好用的3款wordpress外贸网站主题 2023-05-28 22:59:41
-
盘点2023年依然好用的3款wordpress轻社区主题 2023-05-28 22:57:54
-
盘点2023年依然好用的3款wordpress电商主题 2023-05-28 22:56:05
-
wordpress后台地址是多少(附:后台地址修改教程) 2023-05-28 22:54:15
-
盘点2023年依然好用的3款wordpress笔记主题 2023-05-28 22:51:13
-
开源wordpress主题:kratos 介绍 2023-05-28 22:47:46