Tagged: edit post
I am wondering I have another plugin for user roles and what category they can post too but it is not showing up for my posting area it is showing all categories how do we limit them per a user role?
Hi Brendan,
Thank you for posting. Can you please point me to the plugin you are using to restrict categories. I will need to add compatibility for the specific plugin to make it work together.Thank you
BrajeshHi Brendan,
There are many I have seen in the past. I don’t have any particular choice. It will be nice to know your preference and provide a way to have it.Thank you
BrajeshI like to use restrict-categories https://wordpress.org/plugins/restrict-categories/screenshots/
Hi Brendan,
Brajesh Sir is away so I am posting here. Please use the following code in your bp-custom.php file
and let me know if it works or not.function buddydev_filter_buddyblog_settings( $settings ) { if ( ! is_user_logged_in() ) { return $settings; } // Get the current user in the admin $user = new WP_User( get_current_user_id() ); // Get the user role $user_cap = $user->roles; // Get the user login name/ID if ( function_exists( 'get_users' ) ) $user_login = $user->user_nicename; elseif ( function_exists( 'get_users_of_blog' ) ) $user_login = $user->ID; $defaults = array( 'RestrictCategoriesDefault' ); // Get selected categories for Roles $settings = get_option( 'RestrictCats_options' ); // Get selected categories for Users $settings_user = get_option( 'RestrictCats_user_options' ); $user_key = $user_login . '_user_cats'; $term_ids = []; if ( is_array( $settings_user ) && array_key_exists( $user_key, $settings_user ) && count( $settings_user[ $user_key ] ) > 1 ) { $settings_user[ $user_key ] = array_values( array_diff( $settings_user[ $user_key ], $defaults ) ); $user_terms = $settings_user[ $user_key ]; foreach ( $user_terms as $term ) { $term_ids[] = get_term_by( 'slug', $term, 'category')->term_id; } } else{ foreach ( $user_cap as $key ) { if ( is_array( $settings ) && !empty( $settings[ $key . '_cats' ] ) ) { $settings[ $key . '_cats' ] = array_values( array_diff( $settings[ $key . '_cats' ], $defaults ) ); foreach ( $settings[ $key . '_cats' ] as $category ) { $term_ids[] = get_term_by( 'slug', $category, 'category' )->term_id; } } } } $settings['tax'] = array( 'category' => array( 'include' => array_unique( $term_ids ), 'view_type' => 'checkbox' ) ); return $settings; } add_filter( 'buddyblog_post_form_settings', 'buddydev_filter_buddyblog_settings' );
Thank You
RaviDo I have to create the bp-custom.php? Cant find it anywhere.
Ok had to create it and it worked! Thanks a lot!
- This reply was modified 8 years, 7 months ago by Brendan Cotterell.
Hello Brendan,
It should be in “wp-content/plugins/” directory. If it is not present create one. You can refer following url
https://buddydev.com/docs/guides/guides/buddypress-guides/what-is-bp-custom-php/
Thank You
Ravi
You must be logged in to reply to this topic.