carhop__dynamiques-theme__P.../includes/auteurs.php
Nonimart e05c66a6a4
All checks were successful
continuous-integration/drone/push Build is passing
FIX Smoother handling of related member selected on author post type item
2026-02-25 15:36:49 +01:00

72 lines
1.8 KiB
PHP

<?php
// function dynamiques_create_auteurs_posttype() {}
// add_action('init', 'dynamiques_create_auteurs_posttype');
//Acf save post action
add_action('acf/save_post', 'dynamiques_save_auteurs_post');
function dynamiques_save_auteurs_post($post_id)
{
$post_type = get_post_type($post_id);
if ($post_type !== 'auteurs') return;
$is_carhop_member = $_POST['acf']['field_691c8279b6458'];
$carhop_member_id = $_POST['acf']['field_691c831e94029'] ?? null;
if ($carhop_member_id === 0) return;
$first_name = null;
$last_name = null;
if (!$is_carhop_member) {
$first_name = get_field('first_name', $post_id);
$last_name = get_field('last_name', $post_id);
}
if (isset($is_carhop_member) && isset($carhop_member_id)) {
switch_to_blog(1);
$first_name = get_field('first_name', $carhop_member_id);
$last_name = get_field('last_name', $carhop_member_id);
$comity = get_field('comity', $carhop_member_id);
restore_current_blog();
update_field('comity', $comity, $post_id);
}
$full_name = $first_name . ' ' . $last_name;
if (isset($first_name) && isset($last_name) && isset($full_name) && $full_name != '') {
$post_slug = sanitize_title($full_name);
wp_update_post(array(
'ID' => $post_id,
'post_title' => $full_name,
'post_name' => $post_slug
));
}
}
add_filter('acf/load_field/name=carhop_member', function ($field) {
$field['choices'] = [
0 => 'Choisissez un membre à relier à cet fiche auteur',
];
switch_to_blog(1);
$equipe_members = get_posts(array(
'post_type' => 'equipe',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
));
restore_current_blog();
foreach ($equipe_members as $equipe_member) {
$field['choices'][$equipe_member->ID] = $equipe_member->post_title;
}
return $field;
});