Как сделать автообновление родительской мета-записи из мета-записи детей при публикации / редактировании (обновлено)

у меня есть post_type = свойство
Что мне нужно:

Есть (Родительский пост) с мета ценой (Fave_property_price)
а также
У 3 детей пост, связанный с (Родительский пост) также с мета ценой (Fave_property_price)

Я хочу сделать что-то вроде, (Родительский пост) автоматическое обновление цены (fave_property_price) от детей пост, если они редактировать / или будет добавлять в (родительский пост).

Есть уже:

function do_mystuff( $post_id ) {

// Making sure this runs only for properties
$slug = 'property';
if ( $slug != $_POST['post_type'] ) {
return;
}

if (!get_post_meta( $post_id, 'fave_property_price', true )){

$real_price = get_post_meta( $post_id, 'fave_property_price', true );
$parent_id = $post_id->post_parent;
update_post_meta($parent_id, 'fave_property_price', $real_price);
}

}
add_action('wp_insert_post', 'do_mystuff'); // when property is created
add_action('save_post', 'do_mystuff' ); // on property update

Но этот код не работает …

Также… . если какие-либо дети добавляют или редактируют -> после получения детей с более низкой ценой -> и эту цену нужно поставить в (Родительский пост) это будет удивительно:

Что-то вроде:

$args = array(
'posts_per_page' => 1, //get only 1 children with the lower price
'post_type' => 'property',
'property_status' => 'for-sale',
'post_parent'    => $post->ID,
'meta_key' => 'fave_property_price',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);

Пожалуйста, помогите мне и большое спасибо.

Обновлено:

Рабочая функция, если дочерний пост сохранить, то автоматически обновить родительский пост

function update_post_parent_status_on_complete( $post_id ) {
if(!isset($post))
$post = get_post($post_id);

// checking the status you want and also that has a parent
if ($post->post_parent !=0 ){
$parent_id = $post->post_parent;

$old_price = get_post_meta( $post_id, 'fave_property_price', true );

update_post_meta($parent_id, 'fave_property_price', $old_price);
}

}

add_action('save_post_property', 'update_post_parent_status_on_complete');

Теперь … мне нужно получить более низкую цену от всех дочерних сообщений от этого родителя.

$old_price = get_post_meta( $post_id, 'fave_property_price', true );

Код выше поставить и обновить цену с текущего дочернего поста ….
Любая идея, как я могу отфильтровать ASC от всех дочерних сообщений от текущего поста родителя?

может быть, что-то вроде:

$args = array(
'posts_per_page' => 1, // get 1 post low price
'post_type' => 'property',
'property_status' => 'for-sale',
'post_parent'    => $post->ID,
'meta_key' => 'fave_property_price',
'orderby' => 'meta_value_num',
'order' => 'ASC'

);

$old_price = get_post_meta( $args, 'fave_property_price', true );

Но .., а не работа …

Готово. Благодарю.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]