parent && !in_array($term->parent, $existingMetiersTermIds)) { $parentTerm = get_term($term->parent, 'metiers'); if ($parentTerm && !is_wp_error($parentTerm)) { wp_add_object_terms($post_id, $parentTerm->term_id, 'metiers'); // Update les posts terms directement $existingMetiersTermIds[] = $parentTerm->term_id; // Ajoute l'ID du parent à une liste pour éviter de pusher plusieurs fois le parent } } } } // ###### ELEMENTS BATIMENTS — ADD PARENT TAXONOMIES IF NOT ALREADY ADDED ###### if ($elementsBatimentsTerms) { $existingElementsBatimentsTermIds = array_column($elementsBatimentsTerms, 'term_id'); foreach ($elementsBatimentsTerms as $term) { if ($term->parent && !in_array($term->parent, $existingElementsBatimentsTermIds)) { $parentTerm = get_term($term->parent, 'elementsbatiments'); if ($parentTerm && !is_wp_error($parentTerm)) { wp_add_object_terms($post_id, $parentTerm->term_id, 'elementsbatiments'); // Update les posts terms directement $existingElementsBatimentsTermIds[] = $parentTerm->term_id; // Ajoute l'ID du parent à une liste pour éviter de pusher plusieurs fois le parent } } } } } add_action('acf/save_post', 'metiers_patrimoine_artisans_post_taxonomies_updater', 20); /* ----------------------------------------------- AUTOMATIZE POST STATUS DEPENDING ON MDP STATUS --------------------------------------------------*/ function update_post_status_based_on_mdp_status($post_id) { if (get_post_type($post_id) !== 'artisans') return; $mdp_status = get_field('mdp_status', $post_id); $post_update = array( 'ID' => $post_id ); // Définir le statut en fonction de la valeur du statut de travail mdp_status if ($mdp_status && isset($mdp_status['value'])) { switch ($mdp_status['value']) { case 'ok': case 'to_actualize': $post_update['post_status'] = 'publish'; break; case 'to_contact': case 'deleted': case 'rejected': case 'none': $post_update['post_status'] = 'offline'; break; default: return; } wp_update_post($post_update); } } add_action('acf/save_post', 'update_post_status_based_on_mdp_status', 20); /* --------------------------------------- CUSTOM TOP CONTENT AFTER POST TYPE TITLE ------------------------------------------*/ add_action('edit_form_after_title', function () { $screen = get_current_screen(); $status_mdp = get_field('mdp_status', get_the_ID()); $post_status = get_post_status(); $translatedStatus = translate_wordpress_online_statuses($post_status); $post_link = get_preview_post_link(); if ($screen && $screen->post_type === 'artisans') { ?>

action !== 'add') : ?>

État :

Statut de travail :

Aucun !!
'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()) { $artisan_id = get_the_ID(); $return_to = get_edit_post_link($artisan_id); echo '

Chantiers réalisés

'; echo ''; echo 'Ajouter un chantier'; } else { echo '

Chantiers réalisés

'; echo '

Aucun chantier pour cette entreprise

'; echo 'Ajouter un chantier'; } } /** REMOVE SUBMITDIV METABOX **/ add_action('admin_menu', 'remove_submit_div'); function remove_submit_div() { remove_meta_box('submitdiv', 'artisans', 'side'); remove_meta_box('postimagediv', 'artisans', 'normal'); remove_meta_box('postimagediv', 'artisans', 'side'); remove_meta_box('postimagediv', 'artisans', 'advanced'); $user = wp_get_current_user(); $metaboxes = get_user_meta($user->ID, 'metaboxhidden_artisans', true); $metabox_order = get_user_meta($user->ID, 'meta-box-order_artisans', true); } /** UPDATE USER METABOX PREFERENCES WITH MANUAL ARRAY **/ function set_user_metabox_order($user_id) { $user_id = get_current_user_id(); // $metaboxes_order = get_user_meta($user_id, 'meta-box-order_artisans', true); // $user_info = get_user_meta($user_id); $metaboxes_hidden = get_user_meta($user_id, 'metaboxhidden_artisans', true); $new_order = [ 'acf_after_title' => '', 'side' => 'postimagediv,icl_div', 'normal' => 'acf-group_670d265c6ec0e,admin_artisan_chantier_list,acf-group_67581cdaf3262,acf-group_672358433051b,submitdiv,slugdiv,revisionsdiv', 'advanced' => 'rank_math_metabox', ]; update_user_meta($user_id, 'meta-box-order_artisans', $new_order); if ($metaboxes_hidden === false || !is_array($metaboxes_hidden)) return; $newArrray = array_merge($metaboxes_hidden, ['postimagediv', 'icldiv']); update_user_meta($user_id, 'metaboxhidden_artisans', $newArrray); } add_action('admin_init', 'set_user_metabox_order'); /** RE-ENQUEUE SUBMITDIV METABOX **/ add_action('do_meta_boxes', 'reinsert_submitdiv_meta_box'); function reinsert_submitdiv_meta_box() { add_meta_box( 'submitdiv', __('Sauver'), 'post_submit_meta_box', 'artisans', 'normal', 'low' ); } /** DE ACTIVATE SCREEN OPTIONS **/ function de_activite_screen_options() { $current_user = wp_get_current_user(); if (isset($current_user->roles) && is_array($current_user->roles) && isset($current_user->roles[0]) && $current_user->roles[0] !== 'administrator') { add_filter('screen_options_show_screen', '__return_false'); } } add_action('admin_init', 'de_activite_screen_options'); /** FORBID SAVING USER REORGANISATION ON DRAG **/ add_action('check_ajax_referer', 'prevent_meta_box_order'); function prevent_meta_box_order($action) { // if ('meta-box-order' == $action /* && $wp_user == 'santa claus' */) { // die('-1'); // } } /* --------------------------------------- DELETE USER PREFERENCES ------------------------------------------*/ // function reset_user_metabox_order() // { // $user_id = get_current_user_id(); // if ($user_id && !current_user_can('administrator')) { // delete_user_meta($user_id, 'meta-box-order_artisans'); // } // } // add_action('load-post.php', 'reset_user_metabox_order'); // add_action('load-post-new.php', 'reset_user_metabox_order'); /* ------------------------------------------------- ADD LAST MODIFIED DATE TO SUBMIT DIV PUBLISH BOX -------------------------------------------------*/ function add_last_modified_date_to_publish_box() { global $post; // Vérifiez que vous êtes dans un post et que l'ID du post est valide if ($post && $post->ID) { // Récupérer la date de dernière modification $dashicon = ''; $last_modified_date = get_the_modified_date('j F Y \à H:i', $post->ID); // Afficher la date de dernière modification dans le panneau echo '
'; echo $dashicon . ' Dernière update : '; echo $last_modified_date; echo '
'; } } // add_action('post_submitbox_start', 'add_last_modified_date_to_publish_box'); // post_submit_meta_box($post, array('side' => 'core')); /* ------------------------------------------------- CHANGE ACF GALLERY ADD BUTTON TEXT TO "Ajouter des photos 📸" -------------------------------------------------*/ add_action('admin_enqueue_scripts', function () { wp_add_inline_script('acf-input', " jQuery(function($) { $('.acf-gallery-add').text('🏞️ Ajouter des photos'); }); "); });