User generated content with images in Wordpress

744 Views Asked by At

I'm searching for Wordpress plugins to achieve the following scenario.

  1. User A clicks "Add new Restaurant" and fills out the form and submits Restaurant "ACME Food"
  2. Admin in /wp-admin/ opens up the queue and approves "ACME Food" (Version/Revision 1)
  3. User B clicks "Edit ACME Food" and edits the address (custom field).
    • User gets a feedback message that the update has been received and is Pending
  4. /Wordpress system/ Keeps the "ACME Food" (Version/Revision 1) Published and adds a copy as "ACME Food" (Version/Revision 2) to the queue.
  5. Admin aprooves the "ACME Food" (Version/Revision 2) and it replaces the Version/Revision 1

In addition, I'm looking for Image upload of the foods in that particular Restaurant. So any user can upload their image of the food at ACME Food, which is again added to the queue.

User A and B both may or may not be signed up (I don't want to force them to sign-up).

1

There are 1 best solutions below

1
On

You could do something along the lines of what you want (but not exactly) with Gravity Forms. It's a paid plugin but well worth it with good support IMO.

I used GF's Post Fields on this site to create a form to allow the public to upload a photo and some text to the website. A draft post is created and the uploaded image is attached. Notification emails are sent. Admins then approve the image (basically to make sure no one's submitted a photo of a dick) and set it to publish.

The following is from the Gravity forms website:

Post Fields are form fields that enable you to capture data that is then used to create a WordPress Post. These fields make it quick and easy for you to create forms that allow users to submit content to your site. The result posts will be set as a Draft and will need to be published before they are visible.

Post Title
Post Body
Post Excerpt
Post Tags
Post Category
Post Image Post Custom Field

That's about as close as I can think of as far as a plugin solution goes.


Alternatively...

...you could look at the wp_insert_post function. Here's an example usage from S.O. I haven't tested this code, but from my experience with wp_insert_post it looks about right.