我在woocommerce“查看订单”页面中创建了一个带有acf_form()
(高级自定义字段前端表单)的前端表单,该页面允许客户为我们上传一些文件,该表单适用于管理员但是当您使用客户帐户登录并选择文件时,它会显示“您无权附加文件”,经过一些研究后我通过将以下代码添加到"customer"
来编辑functions.php
:
/**
* Allow customers to upload files
*
* @package Wordpress
* @subpackage Rightec Theme
* @author Dornaweb.com
*/
if ( current_user_can('customer') ) {
add_action('init', 'allow_customer_uploads', 20);
add_action('admin_init', 'allow_customer_uploads', 20);
}
function allow_customer_uploads() {
$customer = get_role('customer');
$customer->add_cap('upload_files');
$customer->add_cap('unfiltered_upload');
}
我也尝试了"user role editor"
插件,但它也不起作用
答案 0 :(得分:1)
我也遇到了这个问题,试图允许新的WooCommerce客户根据订单上传文件。除了上述权限之外,您还需要:
'uploader' => 'basic'
。 'edit_pages'
和'edit_posts'
到客户角色。您需要ACF Pro来支持您需要的基本上传器,因为WP Media上传器永远不会允许从前端上传,除非您是管理员。
希望这有助于某人!
答案 1 :(得分:1)
upload_files
是我需要添加的唯一功能,以实现此功能。请参阅第一个答案中的@toni_lehtimaki评论。
答案 2 :(得分:0)
我正在使用ACF Pro 5.8.0,并且在下面的此功能中添加了作者角色的上限,并定义了'uploader'=>'basic'或'uploader'=>'wp'但作者仍无法上传在前端。
function wp_add_upload_files_cap() {
$role = get_role( 'author' ); //The role you want to grant the capability
$role->add_cap( 'upload_files' );
$role->add_cap( 'edit_pages' );
$role->add_cap( 'edit_posts' );
}
register_activation_hook( __FILE__, 'wp_add_upload_files_cap' );
答案 3 :(得分:0)
解决方案很容易。为用户提供这些功能:
$author->add_cap('manage_options');