function ($object) { return get_fields($object['id']); }, 'schema' => null, ] ); }); // API RANK SEO add_filter('rest_prepare_page', function ($response, $post) { $seo_data = [ 'rank_math_title' => get_post_meta($post->ID, 'rank_math_title', true), 'rank_math_description' => get_post_meta($post->ID, 'rank_math_description', true), ]; $response->data = array_merge($response->data, $seo_data); return $response; }, 10, 2); add_action('rest_api_init', function () { register_rest_route('custom/v1', '/contact', array( 'methods' => 'POST', 'callback' => 'handle_contact_form', 'permission_callback' => '__return_true', // Permet l'accès public )); }); // Formulaire function register_contact_endpoint() { register_rest_route('custom/v1', '/contact', [ 'methods' => 'POST', 'callback' => 'handle_contact_form', 'permission_callback' => '__return_true', ]); } add_action('rest_api_init', 'register_contact_endpoint'); function handle_contact_form($request) { $params = $request->get_json_params(); $name = sanitize_text_field($params['name'] ?? ''); $email = sanitize_email($params['email'] ?? ''); $subject = sanitize_text_field($params['subject'] ?? ''); $message = sanitize_textarea_field($params['message'] ?? ''); if (empty($name) || empty($email) || empty($subject) || empty($message)) { return new WP_Error( 'incomplete_fields', 'Tous les champs doivent être remplis.', ['status' => 400] ); } // Logique pour envoyer l'e-mail ou enregistrer les données $to = get_option('admin_email'); // Adresse e-mail de l'administrateur WordPress $headers = ['Content-Type: text/html; charset=UTF-8', 'From: ' . $name . ' <' . $email . '>']; $mail_sent = wp_mail($to, $subject, nl2br($message), $headers); if (!$mail_sent) { return new WP_Error('email_not_sent', 'Le message n’a pas pu être envoyé.', ['status' => 500]); } return [ 'success' => true, 'message' => 'Message envoyé avec succès.', ]; } // Gestion des menus ACF function register_multiple_acf_dashboard_menus() { // Menu principal add_menu_page( 'Gestion des Champs ACF', // Titre de la page principale 'Page d\'accueil', // Texte du menu 'manage_options', // Capacité requise 'acf-manager', // Slug du menu principal 'acf_manager_main_page', // Fonction de rappel pour la page principale 'dashicons-admin-generic', // Icône du menu 2 // Position dans le menu ); // Sous-menu pour le Groupe 1 add_submenu_page( 'acf-manager', // Slug du menu parent 'Groupe 1 ACF', // Titre de la page 'Section Hero', // Texte du sous-menu 'manage_options', // Capacité requise 'acf-manager-group-1', // Slug du sous-menu 'acf_manager_group_1' // Fonction de rappel pour afficher le contenu ); // Sous-menu pour le Groupe 2 add_submenu_page( 'acf-manager', 'Groupe 3 ACF', 'Section Construction', 'manage_options', 'acf-manager-group-3', 'acf_manager_group_3' ); // Sous-menu pour le Groupe 2 add_submenu_page( 'acf-manager', 'Groupe 2 ACF', 'Section Expertise', 'manage_options', 'acf-manager-group-2', 'acf_manager_group_2' ); } add_action('admin_menu', 'register_multiple_acf_dashboard_menus'); // Page principale (facultatif) function acf_manager_main_page() { echo '

Bienvenue dans le Gestionnaire ACF

Choisissez un groupe dans le menu pour gérer ses champs.

'; } // Groupe 1 - Champs ACF function acf_manager_group_1() { ?>

Groupe 1 - Champs ACF

'13', // Remplacez par un ID de page si nécessaire 'field_groups' => array('group_6774f26930ebd'), 'form' => true, 'return' => add_query_arg('updated', 'true', wp_get_referer()), 'submit_value' => __('Enregistrer les modifications', 'acf'), )); } else { echo '

Le plugin ACF n\'est pas activé ou disponible.

'; } ?>

Groupe 3 - Champs ACF

'13', // Remplacez par un ID de page si nécessaire 'field_groups' => array('group_677d3294c3dfa'), 'form' => true, 'return' => add_query_arg('updated', 'true', wp_get_referer()), 'submit_value' => __('Enregistrer les modifications', 'acf'), )); } else { echo '

Le plugin ACF n\'est pas activé ou disponible.

'; } ?>

Groupe 2 - Champs ACF

'13', // Remplacez par un ID de page si nécessaire 'field_groups' => array('group_6779c41fcdc6d'), 'form' => true, 'return' => add_query_arg('updated', 'true', wp_get_referer()), 'submit_value' => __('Enregistrer les modifications', 'acf'), )); } else { echo '

Le plugin ACF n\'est pas activé ou disponible.

'; } ?>