OK, szukam najlepszego sposobu na zaatakowanie tego.
Bardzo dobrze czuję się w PHP i tworzeniu niestandardowych typów postów za pomocą niestandardowych pól meta w WordPress.
Oto, na co patrzę:
- Użytkownik rejestruje się i domyślnie jest ustawiony na subskrybenta.
- Użytkownik prosi administratora o zezwolenie na niestandardowy typ postu.
- Administrator przypisuje użytkownika do innej nazwy uprawnienia, na przykład „Właściciel sklepu”.
- Użytkownik może teraz zobaczyć niestandardowy typ postu i wprowadzić wpis do tego typu postu.
- Użytkownik może tylko wyświetlać i edytować swój post.
Potrzebuję pomocy w następujących kwestiach:
- Jak utworzyć nową „rolę” o nazwie „Właściciel sklepu”,
- Jak udzielić poprawnego uprawnienia do wspomnianej roli, aby widzieć i mieć dostęp do niestandardowego typu postu.
- Zezwalaj tylko użytkownikom na wyświetlanie i edytowanie własnych postów do tego niestandardowego typu postów.
Idealnie wolałbym, żeby to wszystko było zrobione z wp-admin, ale domyślam się, że może być konieczne zbudowanie interfejsu, aby uzyskać skończoną kontrolę, której szukam.
Wszelkie uwagi są mile widziane.
Z poważaniem
'map_meta_cap' => true
i'capability_type' => 'shopowner'
na mój niestandardowy typ postu. Utworzyłem nową rolę o nazwieShopOwner
i nadałem jej możliwości odczytu, edycji_właściciela, usuwania_własności. Ustaw użytkownika na rolę ShopOwner i zaloguj się z tym użytkownikiem. Ten użytkownik nie widzi niestandardowego typu postu. Czy coś przeoczyłem?edit_shopowners
idelete_shopowners
.edit_shopowner
idelete_shopowner
są meta możliwościami, które nigdy nie są faktycznie porównywane. Są sprawdzane, gdy ktoś próbuje edytować lub usunąć określony element, a na koniec sprawdzają takie rzeczy, jak: „Czy ten użytkownik może usuwać tego rodzaju elementy? Czy mogą usuwać tylko własne lub inne elementy? Czy mogą usuwać opublikowane elementy?” itd.Typ wpisu rejestru ma parametr zwany „możliwościami”, więc możesz na przykład go mieć
http://codex.wordpress.org/Function_Reference/register_post_type
Aby utworzyć nowego użytkownika / rolę / funkcję, możesz użyć add_role, add_cap, na prosty przykład na początek:
źródło
Czy zastanawiałeś się nad skorzystaniem z formularzy Gravity Forms lub TDO Mini Forms, aby obsłużyć faktyczne przesyłanie treści? Każdy z nich ma funkcjonalność, która ułatwi Ci prawidłowe przejście do treści przesłanych przez użytkowników.
źródło
Łatwiejszy i skuteczniejszy sposób, w jaki można to osiągnąć, instalując wtyczkę o nazwie „Advance Access Manager”, nie będziesz musiał pisać funkcji, ale nadal będziesz mieć przyzwoity poziom kontroli nad użytkownikami, rolami i tym, co mogą zrobić. Ta wtyczka pozwala uzyskać większość potrzebnych funkcji.
źródło