124 lines
3.3 KiB
PHP
124 lines
3.3 KiB
PHP
<?php
|
|
function metiers_patrimoine_artisans_post_updater($post_id)
|
|
{
|
|
|
|
|
|
if (!$post_id) return;
|
|
|
|
$my_post = array();
|
|
$my_post['ID'] = $post_id;
|
|
$name = get_field("name", $post_id);
|
|
$address = get_field("adresse", $post_id);
|
|
|
|
if (get_post_type() == 'artisans' && $name) {
|
|
$my_post['post_title'] = "";
|
|
$my_post['post_title'] = $name;
|
|
}
|
|
|
|
if ($address && isset($address['country'])) {
|
|
$stateGenericName = getGenericStateNameFromAcfStateName($address['state']) ?? "";
|
|
// write_log($stateGenericName);
|
|
// Met à jour le champ personnalisé 'country' avec la valeur du pays de l'adresse
|
|
update_post_meta($post_id, 'state', $stateGenericName);
|
|
}
|
|
|
|
// write_log($address);
|
|
wp_update_post($my_post);
|
|
}
|
|
add_action('acf/save_post', 'metiers_patrimoine_artisans_post_updater', 20);
|
|
|
|
|
|
function metiers_patrimoine_chantiers_post_updater($post_id)
|
|
{
|
|
if (!$post_id || get_post_type() !== 'chantiers') return;
|
|
|
|
$my_post = array();
|
|
$my_post['ID'] = $post_id;
|
|
|
|
$artisan = get_field("artisan", $post_id) ?? "";
|
|
$chantier_name = get_field("chantier_name", $post_id) ?? "";
|
|
$date = get_field("date", $post_id) ?? "";
|
|
$localisation = get_field("localisation", $post_id) ?? "";
|
|
|
|
if (!$artisan || !$chantier_name) return;
|
|
|
|
$title = $artisan->post_title . " | " . $chantier_name;
|
|
|
|
if ($localisation && isset($localisation['city'])) {
|
|
$title .= " | " . $localisation['city'];
|
|
}
|
|
if ($date) {
|
|
$title .= " | " . $date;
|
|
}
|
|
$my_post['post_title'] = $title;
|
|
wp_update_post($my_post);
|
|
}
|
|
add_action('acf/save_post', 'metiers_patrimoine_chantiers_post_updater', 20);
|
|
|
|
|
|
|
|
/* ---------------------------
|
|
CUSTOM CODE FOR TITLE
|
|
---------------------------*/
|
|
add_action('edit_form_after_title', function () {
|
|
// Vérifie si on est sur le bon post type
|
|
$screen = get_current_screen();
|
|
if ($screen && $screen->post_type === 'artisans') {
|
|
echo '<h1 class="admin-artisan-title">' . get_the_title() . '</h1>';
|
|
}
|
|
});
|
|
|
|
|
|
/* ---------------------------
|
|
CUSTOM CHANTIER META BOX AT THE END OF THE PAGE
|
|
---------------------------*/
|
|
add_action('add_meta_boxes', function () {
|
|
// Ajout de la metabox uniquement pour le post type 'artisans'
|
|
add_meta_box(
|
|
'admin_artisan_chantier_list', // ID de la metabox
|
|
'Chantiers réalisé par l\'entreprise', // Titre de la metabox
|
|
'render_custom_chantier_box_content', // Fonction de rendu
|
|
'artisans', // Post type
|
|
'normal', // Contexte
|
|
'low' // Priorité
|
|
);
|
|
});
|
|
|
|
/**
|
|
* Fonction de rendu du contenu de la metabox.
|
|
*/
|
|
function render_custom_chantier_box_content($post)
|
|
{
|
|
|
|
$args = array(
|
|
'post_type' => 'chantiers',
|
|
'posts_per_page' => -1,
|
|
'post_status' => 'publish',
|
|
'meta_query' => array(
|
|
array(
|
|
'key' => 'artisan',
|
|
'value' => $post->ID,
|
|
'compare' => '=',
|
|
),
|
|
),
|
|
);
|
|
|
|
$chantiers = new WP_Query($args);
|
|
|
|
|
|
// Afficher les chantiers
|
|
|
|
if ($chantiers->have_posts()) {
|
|
|
|
echo '<ul>';
|
|
while ($chantiers->have_posts()) {
|
|
$chantiers->the_post();
|
|
$chantier_name = get_field('chantier_name');
|
|
echo '<li><a href="' . get_edit_post_link() . '"> <img src=' . get_stylesheet_directory_uri() . '/resources/img/icons/document-inspect.svg' . ' /> ' . $chantier_name . '</a></li>';
|
|
}
|
|
echo '</ul>';
|
|
} else {
|
|
echo '<p style="font-size: 1rem;">Aucun chantier pour cette entreprise.</p>';
|
|
}
|
|
}
|