允许“customer”用户角色使用acf_form上传前端文件

时间:2015-06-20 21:34:21

标签: wordpress woocommerce advanced-custom-fields user-roles

我在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"插件,但它也不起作用

请帮助我!

4 个答案:

答案 0 :(得分:1)

我也遇到了这个问题,试图允许新的WooCommerce客户根据订单上传文件。除了上述权限之外,您还需要:

  1. 确保您使用ACF Pro(必须购买)。
  2. acf_form()数组中定义'uploader' => 'basic'
  3. 将功能添加到'edit_pages''edit_posts'到客户角色。
  4. 您需要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');