<?php // Рассчитать возраст по датам YYYY-MM-DD. Возвращает int или null. function my_calculate_age($birthDate, $deathDate) { if (empty($birthDate) || empty($deathDate)) return null; $b = DateTime::createFromFormat('Y-m-d', $birthDate); $d = DateTime::createFromFormat('Y-m-d', $deathDate); if (!$b || !$d) return null; if ($b->format('Y-m-d') !== $birthDate || $d->format('Y-m-d') !== $deathDate) return null; if ($d < $b) return null; return (int)$d->diff($b)->y; } // Общая функция сохранения возраста в метаполе поста function my_wpuf_save_deceased_age($post_id) { if (empty($post_id) || wp_is_post_revision($post_id)) return; $birth = isset($_POST['birth_date']) ? sanitize_text_field($_POST['birth_date']) : ''; $death = isset($_POST['death_date']) ? sanitize_text_field($_POST['death_date']) : ''; $age = my_calculate_age($birth, $death); if ($age !== null) { update_post_meta($post_id, '_deceased_age', $age); } else { delete_post_meta($post_id, '_deceased_age'); } } // Хуки WP UF 6.8.2 для создания и обновления поста add_action('wpuf_after_post_create', 'my_wpuf_save_deceased_age', 10, 1); add_action('wpuf_after_post_update', 'my_wpuf_save_deceased_age', 10, 1); ?>