Forum Replies Created
-
AuthorPosts
-
Vladimir
KeymasterAdd “edit_theme_options” capability to the “editor” role:
1) Open “Users->User Role Editor”, select “Editor” role.
2) Turn ON checkbox for the “edit_theme_options” capability, click “Update”.After that user with “Editor” role will receive access to the full “Appearance” menu, as all its submenu items are protected by the same “edit_theme_options” capability.
If you wish to allow to the ‘editor’ role to work just with “Menu” and “Widgets” items of the “Appearance” menu, you need to block other items with “Admin Menu Access” add-on.Vladimir
KeymasterI will publish stable Pro version 4.28.2 tomorrow.
Vladimir
KeymasterCurrently I can not recommend another workaround then that you use already.
But it’s a good point to extend User Role Editor Pro functionality. I will think on it. May be something similar to the “force custom taxonomies to use own capabilities” option will be possible to add. I will post here as I will find a decision.15/09/2016 at 01:22 in reply to: Hide Product Content Editor (Visual/Text + Visual Composer) from Role #2742Vladimir
KeymasterHi,
Try this recipe:
add_action('admin_init', 'remove_product_editor'); function remove_product_editor() { if (current_user_can('product-meta-editor')) { remove_post_type_support('product', 'editor'); } }
Replace role ID ‘product-meta-editor’ with your own as ‘sales-manager’. Add this code to the active theme functions.php file or setup it as a must use plugin.
Vladimir
KeymasterHi Urs,
Thanks for your help in finding this.
“Admin menu access” add-on works with this rule: if something is not directly allowed – it’s prohibited. I extended the list of allowed arguments for the ‘edit.php’ command to fix the issues your noted. Try development version 4.28.2.b8. It’s available after login from the download page as always.Vladimir
KeymasterYou have to call
current_user_can()
for every role you wish to check, e.g.:if (current_user_can('role_1') || current_user_can('role_2')) { ... }
This means “if current user have role_1 or current user have role_2”.
For our code:
if (!current_user_can('sales') && !current_user_can('shipping')) { return; }
That is ‘do not execute code below if user does not have role ‘sales’ and user does not have role ‘shipping’.
Vladimir
KeymasterThanks for the clarification. I missed ‘Order status’ field yesterday. Try this version. It removes dropdown list of statuses if order was refunded already and just shows “Refunded” text and removes ‘Refunded’ item from the dropdown list options in other cases:
add_action('admin_head', 'hide_wc_refund_button'); function hide_wc_refund_button() { global $post; if (!current_user_can('sales')) { return; } if (strpos($_SERVER['REQUEST_URI'], 'post.php?post=') === false) { return; } if (empty($post) || $post->post_type != 'shop_order') { return; } ?> <script> jQuery(function () { jQuery('.refund-items').hide(); jQuery('.order_actions option[value=send_email_customer_refunded_order]').remove(); if (jQuery('#original_post_status').val()=='wc-refunded') { jQuery('#s2id_order_status').html('Refunded'); } else { jQuery('#order_status option[value=wc-refunded]').remove(); } }); </script> <?php }
Vladimir
KeymasterTry this updated version:
add_action('admin_head', 'hide_wc_refund_button'); function hide_wc_refund_button() { global $post; if (!current_user_can('sales')) { return; } if (strpos($_SERVER['REQUEST_URI'], 'post.php?post=') === false) { return; } if (empty($post) || $post->post_type != 'shop_order') { return; } ?> <script> jQuery(function () { jQuery('.refund-items').hide(); jQuery('.order_actions option[value=send_email_customer_refunded_order]').remove(); }); </script> <?php }
Vladimir
KeymasterHi,
The only way to hide “Refunds” button from order edit form is to change HTML page CSS via JavaScript. Add code below to the active theme functions.php file or setup it as a must-use plugin. It is executed for the ‘orders-manager’ role only. Replace it with you own role ID.
add_action('admin_head', 'hide_wc_refund_button'); function hide_wc_refund_button() { global $post; if (!current_user_can('orders-manager')) { return; } if (strpos($_SERVER['REQUEST_URI'], 'post.php?post=') === false) { return; } if (empty($post) || $post->post_type != 'shop_order') { return; } ?> <script> jQuery().ready(function () { jQuery('.refund-items').hide(); }); </script> <?php }
13/09/2016 at 02:35 in reply to: Limit user's editing rights to other specific cobtributors only #2725Vladimir
KeymasterHi,
Yes, it’s possible. Input ‘Authors user ID’ list for the teacher instead of posts ID list. Use “with author user ID (comma separated)” field for that.
Vladimir
KeymasterHi,
Thanks for letting me know.
Vladimir
KeymasterHi,
It could be suitable for admin to manage it this way. Thanks for the right direction.09/09/2016 at 17:56 in reply to: Restrict access/view of admin notifications for custom user role #2718Vladimir
KeymasterHi,
I have a recipe how to make it as an additional option to the role. It’s possible to convert the functional part to the must-use plugin for any subsite of your network.
Vladimir
KeymasterHi,
Check the browser JavaScript console for the error messages.
05/09/2016 at 06:35 in reply to: How to disable the Text Editor? – just Visuell Editor should be displayed #2711Vladimir
KeymasterIf you wish to have more control it’s possible to integrate this code snippet with User Role Editor as the additional options for role:
add_filter('ure_role_additional_options', 'add_visual_editor_only_option', 10, 1); function add_visual_editor_only_option() { $item = URE_Role_Additional_Options::create_item('visual_editor_only', esc_html__('Visual Editor Only', 'user-role-editor'), 'admin_init', 'ure_remove_text_editor'); $items[$item->id] = $item; return $items; } function ure_remove_text_editor() { add_filter('wp_editor_settings', 'ure_editor_settings'); add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') ); } function ure_editor_settings($settings) { if (!current_user_can('administrator')) { $settings['quicktags'] = false; } return $settings; }
-
AuthorPosts