All new user posts receive the status "Approved" and must be published by the administrator. But, after the post is published, the user can safely change it.
How to make so that after editing the record again was "On Approval" ?
Hang the hook on the "save_post" event, check the role of the record-editing (there is a good table of user rights to their roles http://codex.wordpress.org/Roles_and_Capabilities ). If the user is below the rank of the editor and the entry has the status "published", change the status of the entry to "pending" ("under approval").
function my_func_on_save_post($post_id) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if (!current_user_can('edit_pages', $post_id) && get_post_status($post_id) == 'publish') { wp_update_post(array( 'ID' => $post_id, 'post_status' => 'pending' )); } } add_action('save_post', 'my_func_on_save_post'); In the admin panel, in the edit post, in the right sidebar (at the very top), there is a "Publish" window. In it "Status". Point there "On approval" and save. 
Source: https://ru.stackoverflow.com/questions/527006/
All Articles