2012-04-18 10 views
7

Estoy trabajando en un sistema para temporizadores/temporizadores a tiempo parcial usando Wordpress. Para ir sobre esto que estoy haciendo un nuevo empleado tipo de envío personalizado y necesito 2 usuarios del Agente y el cliente correspondiente para ello:Cómo configurar funciones de usuario sencillas para Wordpress Tipo de entrada personalizada

usuario
  • el agente puede crear y editar su propio empleado (s), pero no editar los EMPLEADOS de otros AGENTES.
  • El puesto de empleado puede ser mirado y comentado por todos los agentes, clientes y público en general,
  • que también implica que el usuario cliente puede solamente vista todos los mensajes de los empleados.
  • El usuario CLIENTE debe diferenciarse del público en general porque una vez que contratan un EMPLEADO, el sistema debe asociarlos con el EMPLEADO, por lo tanto, la necesidad de que el CLIENTE sea un usuario registrado.
  • Finalmente, los usuarios de AGENTE y CLIENTE pueden crear/editar sus propios perfiles de usuario vanidosos de Wordpress e iniciar sesión con su combinación de nombre de usuario/contraseña.

¿Cómo ejecuto esta disposición? La documentación en línea sobre usuarios y capacidades me hizo tirar de mi cabello y correr en círculos. Hasta ahora, aquí está mi costumbre tipo de entrada de registro, y en la actualidad Soy la creación de las cajas del meta para otra información para este tipo de mensaje:

register_post_type('employee', 
    array(
     'labels' => array(
      'name' => __('Employees','tdom'), 
      'singular_name' => __('Employee','tdom'), 
      'add_new' => __('Add New'), 
      'add_new_item' => __('Add New Employee'), 
      'edit' => __('Edit'), 
      'edit_item' => __('Edit Employee'), 
      'new_item' => __('New Employee'), 
      'view' => __('View Employee'), 
      'view_item' => __('View Employee'), 
      'search_items' => __('Search Employees'), 
      'not_found' => __('No Employees found'), 
      'not_found_in_trash' => __('No Employees found in Trash'), 
      'parent' => __('Parent Employee') 
     ), 
     'public' => true, 
     'show_ui' => true, 
     'query_var' => true, 
     'menu_icon' => get_stylesheet_directory_uri() . '/images/emp_icon.png', 
     'menu_position' => 4, 
     'capability_type' => 'post', 
     'hierarchical' => false, 
     'rewrite' => true, 
     'supports' => array('title', 'thumbnail', 'author') 
    ) 
); 

me he encontrado Members plug-in de Justin Tadlock (muy populares en Google y foros), pero esperaba que mis requisitos fueran lo suficientemente simples como para no usar más un complemento. También es demasiado para entender.

Ayuda. Gracias por adelantado.

+0

Te aconsejo un complemento, es lo suficientemente complicado – janw

+0

** Nota para los mods **: esta pregunta sería una mejor opción para WPSE. –

Respuesta

4

Esto realmente no debería ser terriblemente difícil.

El primer paso es crear una capacidad medida Tipo para corresponder a su medida Tipo de correos, a través del parámetro 'capability_type' pasado a register_post_type(). Usted está utilizando el valor por defecto, es decir:

'capability_type' => 'post', 

Conjunto que a otra cosa, tal vez 'employee', y de acuerdo con el Codex, también establece 'map_meta_cap' a true:

'capability_type' => 'employee', 
'map_meta_cap' => true, 

El siguiente paso es añadir las capacidades relacionadas con sus usuarios personalizados, a través del parámetro $capabilities pasaron a su llamada al add_role(). Para el rol de usuario "empleado", querrá agregar edit_employee y otros (edit_, delete_, etc.), y para el rol de usuario "agente", querrá incluir edit_employee y otros, junto con edit_others_employee y otros .

+0

gracias @Chip! Trabajaré en esto y te avisaré cuando lo ponga a funcionar o me toparé con un obstáculo. gracias de nuevo –

+0

Hola, @Chip estoy trabajando en esta parte de mi código nuevamente. entonces, 'pregunta más sincera, lo siento si nobb: D, ¿dónde pongo mi llamada 'add_role()'?en mi 'functions.php' después de crear el tipo de publicación? tia –

+0

Recomiendo ponerlo en la misma devolución de llamada que incluye la llamada de función 'register_post_type()'. –

Cuestiones relacionadas