/** * Add capabilities to an existing role * * Usage: add_role_caps( 'contributor', array( 'upload_files' ) ); * * @param string $role Role name * @param array $caps Capabilities to add to the role */ function add_role_caps($role, $caps) { if (function_exists('wpcom_vip_add_role_caps')) { wpcom_vip_add_role_caps($role, $caps); } else { $filtered_caps = array(); foreach ((array) $caps as $cap) { $filtered_caps[$cap] = true; } merge_role_caps($role, $filtered_caps); } }
protected function add_capabilities() { $admin_roles = array('brightcove_manipulate_accounts', 'brightcove_set_site_default_account', 'brightcove_set_user_default_account', 'brightcove_get_user_default_account', 'brightcove_manipulate_playlists', 'brightcove_manipulate_videos'); $editor_roles = array('brightcove_manipulate_playlists', 'brightcove_manipulate_videos'); if (defined('WPCOM_IS_VIP_ENV') && WPCOM_IS_VIP_ENV) { wpcom_vip_add_role_caps('administrator', $admin_roles); wpcom_vip_add_role_caps('editor', $editor_roles); } else { $administrator = get_role('administrator'); $editor = get_role('editor'); foreach ($admin_roles as $admin_role) { $administrator->add_cap($admin_role); } foreach ($editor_roles as $editor_role) { $editor->add_cap($editor_role); } } }
/** * Helper function for vip_contrib_add_upload_cap() to change the user roles * * @link http://vip.wordpress.com/documentation/allow-contributors-to-upload-images/ Allow Contributors to Upload Images * @see vip_contrib_add_upload_cap() */ function _vip_contrib_add_upload_cap() { if (!is_admin() && !defined('XMLRPC_REQUEST')) { return; } wpcom_vip_add_role_caps('contributor', array('upload_files')); }
/** * Helper function for vip_contrib_add_upload_cap() to change the user roles * * @link http://vip.wordpress.com/documentation/allow-contributors-to-upload-images/ Allow Contributors to Upload Images * @see vip_contrib_add_upload_cap() */ function _vip_contrib_add_upload_cap() { if (!is_admin() && !defined('XMLRPC_REQUEST')) { return; } if (function_exists('wpcom_vip_add_role_caps')) { wpcom_vip_add_role_caps('contributor', array('upload_files')); } else { // Temp debug to track down broken themes if (function_exists('send_vip_team_irc_alert')) { send_vip_team_irc_alert('[vip-helper fatal] ' . site_url() . ' add_role_cap no exist for _vip_contrib_add_upload_cap: ' . wp_debug_backtrace_summary()); } } }
<?php // Add capabilities to admin + editor + author roles for the Post Forking plugin add_action('init', function () { if (!function_exists('wpcom_vip_add_role_caps')) { return; } wpcom_vip_add_role_caps('administrator', array('edit_forks', 'edit_fork', 'edit_others_forks', 'edit_private_forks', 'edit_published_forks', 'read_forks', 'read_private_forks', 'delete_forks', 'delete_others_forks', 'delete_private_forks', 'delete_published_forks', 'publish_forks')); wpcom_vip_add_role_caps('editor', array('edit_forks', 'edit_fork', 'edit_others_forks', 'edit_private_forks', 'edit_published_forks', 'read_forks', 'read_private_forks', 'delete_forks', 'delete_others_forks', 'delete_private_forks', 'delete_published_forks', 'publish_forks')); wpcom_vip_remove_role_caps('editor', array('edit_others_forks', 'delete_others_forks')); wpcom_vip_add_role_caps('author', array('edit_forks', 'edit_private_forks', 'edit_published_forks', 'read_forks', 'read_private_forks', 'delete_forks', 'delete_private_forks', 'delete_published_forks', 'publish_forks')); wpcom_vip_add_role_caps('contributor', array('edit_forks', 'edit_published_forks', 'read_forks', 'delete_forks')); wpcom_vip_remove_role_caps('contributor', array('edit_others_forks', 'edit_private_forks', 'read_private_forks', 'delete_others_forks', 'delete_private_forks', 'delete_published_forks', 'publish_forks')); });