protected function save_data($post_id, $data, $enable_permissions) { $entity = new WPFront_User_Role_Editor_Entity_Post_Type_Permissions(); $post_data = $entity->get_all_by_post_id($post_id); foreach ($post_data as $value) { $post_data[$value->get_role()] = $value; } $entity->update_enable_permissions($post_id, $enable_permissions); foreach ($data as $role_name => $permission) { if (isset($post_data[$role_name])) { $entity = $post_data[$role_name]; } else { $entity = new WPFront_User_Role_Editor_Entity_Post_Type_Permissions(); } $entity->set_role($role_name); $entity->set_post_type($this->type); $entity->set_post_id($post_id); $entity->set_enable_permissions($enable_permissions); $entity->set_has_read(in_array('read', $permission)); $entity->set_has_edit(in_array('edit', $permission)); $entity->set_has_delete(in_array('delete', $permission)); $entity->save(); } }