Кнопки радио ACF для добавления и удаления пользовательских ролей не отменяют возможности - PullRequest
0 голосов
/ 16 марта 2020

Я создал пользовательскую роль под названием restaurant_owner. Я хочу иметь раздел с правами администратора, в котором вошедший в систему администратор может добавлять или удалять возможности пользовательских типов записей для этой роли пользователя.

Я создал свою роль пользователя здесь:

//Create Restaurant Owner

add_action('init', 'restaurant_owner_user_role');
function restaurant_owner_user_role() {
    add_role('restaurant_owner', 'Restaurant Owner');
}

Затем я использовал ACF для создания раздела параметров, в этом разделе я добавил несколько переключателей. Если возможность отмечена как «да», я хочу, чтобы возможности были добавлены пользователю (это работает), когда администратор нажимает «Нет», я хочу, чтобы возможности были удалены (это не работает).

//Adds Restaurant Owner Custom Capabilities

$options = get_fields($post_id);
$january = get_field_object('january_offer', 'option', $options);

function add_rest_caps() {

    $restaurant = get_role( 'restaurant_owner' );

    $restaurant->add_cap('read');
    $restaurant->add_cap( 'edit_restaurant' ); 
    $restaurant->add_cap( 'delete_restaurant' ); 
    $restaurant->remove_cap( 'read_restaurant' ); 
    $restaurant->add_cap( 'publish_restaurants' ); 
    $restaurant->add_cap( 'edit_restaurants' ); 
    $restaurant->remove_cap( 'edit_others_restaurants' ); 
    $restaurant->remove_cap( 'delete_restaurants' ); 
    $restaurant->remove_cap( 'delete_others_restaurants' ); 
    $restaurant->remove_cap( 'read_private_restaurants' ); 
    $restaurant->remove_cap( 'manage_categories' ); 




      if ($january = 'yes') {

          $restaurant->add_cap( 'edit_january_offer' ); 
          $restaurant->add_cap( 'delete_january_offer' ); 
          $restaurant->add_cap( 'edit_january_offers' ); 


      } elseif ($january = 'no') {

          //this bit doesn't work

          $restaurant->remove_cap( 'edit_january_offer' );
          $restaurant->remove_cap( 'delete_january_offer' );
          $restaurant->remove_cap( 'edit_january_offers' );

      }



}
add_action( 'init', 'add_rest_caps');

Что я делаю не так? Я не могу понять, почему это не убирает возможности.

Вот пример области администрирования, где они выбирают да или нет для нескольких предложений. Надеюсь, это поможет объяснить это.

Offers Section in Admin area

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...