у меня есть 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 );
Но .., а не работа …
Готово. Благодарю.
Задача ещё не решена.
Других решений пока нет …