This is an interesting request. I think you could do it so long as you required the user to be logged in. I would create a post, maybe make it private or in a different category or something, and ensure that does not end up on the site somewhere, visible to the public.
Then, you could allow the logged in user to go back and edit their post. One problem with that is that the post and entry are disconnected, so the post becomes the order for printing, especially if there are any changes. The changes to the post would not be reflected in the entry. So, the company would have to do the printing off the post.
To prevent editing after the order is printed, you could change the author so that the original author, the person who submitted the form, can no longer edit the post. The post could be update with a status of "Printed" or "Processing" or "Printing" or something. You could get creative with custom fields which could hold the date processed. You would have post revisions to see the edits that were made and when.
You could use a plugin like the Members plugin from Justin Tadlock to create a role specifically for the logged in user who is submitting an order. http://wordpress.org/extend/plugins/members/
You could also use a front-end post editor to allow customers to edit the posts up front. http://wordpress.org/extend/plugins/front-end-editor/
You could also create posts with some sort of hard-to-guess random permalink, or even a useful permalink, something with the name, date, job, etc, and then allow comments on the post, not allow editing of the post. The only person who would have the link would be the original customer (you'd have to make sure to exclude this category from the blog posts and site search) and you could require any comment be by a logged in user only, and comments could be moderated, which would send a notification to the admin as well.
That would take care of submitting and editing the original order. For a new order by the same customer, if they are logged in, you can pre-populate any of the information in your form which is stored in their usermeta. Just set the default value for that field.
Does that give you any ideas?
Posted 11 years ago on Friday February 1, 2013 |
Permalink