Description
The action hook is executed at the end of “update published content” of a page. Use this hook to copy over data from the revised page to the already published page.
The page hook supports hierarchical articles.
Usage
add_action('owf_update_published_page', 'update_post_meta_info', 10, 2);
Parameters
- $original_page_id – ID of the published/original page
- $revised_page- revised page to copy the data from
Example
add_action('owf_update_published_page', 'update_post_meta_info', 10, 2);
function update_post_meta_info($original_post_id, $revised_post) {
$post_meta_keys = get_post_custom_keys($revised_post->ID);
if (empty($post_meta_keys)) return;
foreach ($post_meta_keys as $meta_key) {
$meta_key_trim = trim($meta_key);
if ( '_' == $meta_key_trim{0} || strpos($meta_key_trim,'oasis') !== false ) //ignore keys like _edit_last, _edit_lock, oasis
continue;
$revised_meta_values = get_post_custom_values($meta_key, $revised_post->ID);
$original_meta_values = get_post_custom_values($meta_key, $original_post_id);
// find the bigger array of the two
$meta_values_count = count($revised_meta_values) > count($original_meta_values) ? count($revised_meta_values) : count($original_meta_values);
// loop through the meta values to find what's added, modified and deleted.
for($i = 0; $i < $meta_values_count; $i++) {
$new_meta_value = "";
// delete if the revised post doesn't have that key
if (count($revised_meta_values) >= $i+1) {
$new_meta_value = maybe_unserialize($revised_meta_values[$i]);
}
else {
$old_meta_value = maybe_unserialize($original_meta_values[$i]);
delete_post_meta($original_post_id, $meta_key, $old_meta_value);
continue;
}
// old meta values got updated, so simply update it
if (count($original_meta_values) >= $i+1) {
$old_meta_value = maybe_unserialize($original_meta_values[$i]);
update_post_meta($original_post_id, $meta_key, $new_meta_value, $old_meta_value);
}
// new meta values got added, so add it
if (count($original_meta_values) < $i+1) {
add_post_meta($original_post_id, $meta_key, $new_meta_value);
}
}
}
Source Code
The action hook is located in class-ow-revision-service.php
Didn't find what you are looking for? Submit a Query
Make Revision Post hookUpdate Published Post hook
Make Revision Post hookUpdate Published Post hook