From 23f430ef73b4f589891bfbeb22edde10d22c10b8 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Thu, 8 May 2025 16:10:55 +0200 Subject: [PATCH] FEATURE Add phone number formatting and detection functions for Belgian numbers in utilities; update artisan templates to utilize new formatting --- includes/utilities.php | 39 +++++++++++++++++++ .../artisans/card-artisans-search.php | 9 ++++- .../artisans/card-artisans-single.php | 18 +++++---- 3 files changed, 56 insertions(+), 10 deletions(-) diff --git a/includes/utilities.php b/includes/utilities.php index 439e352..78206ac 100644 --- a/includes/utilities.php +++ b/includes/utilities.php @@ -241,3 +241,42 @@ function getRelativeTimeFromTimestamp($timestamp) return $relative_time; } + + +function format_phone_number($phoneNumber) +{ + // Nettoyage du numéro : retirer espaces, tirets, points, etc. + + + $cleanedNumber = preg_replace('/\D+/', '', $phoneNumber); + $phoneType = detectBelgianPhoneType($cleanedNumber); + + // 32 42 21 81 11 + // 32 23 58 41 53 + // 32 59 70 11 99 + + if ($phoneType === 'mobile') { + $formattedPhoneNumber = preg_replace('/(\d{2})(\d{3})(\d{2})(\d{2})(\d{2})/', '+$1 $2 $3 $4 $5', $cleanedNumber); + } else if ($phoneType === 'landline') { + $formattedPhoneNumber = preg_replace('/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/', '+$1 $2 $3 $4 $5', $cleanedNumber); + } else { + $formattedPhoneNumber = $cleanedNumber; + } + return $formattedPhoneNumber; +} + + +function detectBelgianPhoneType($number) +{ + + // Détection mobile + if (preg_match('/^324(55|56|60|61|6[5-8]|7[0-9]|80|8[3-9]|9[0-9])[0-9]{6}$/', $number)) { + return 'mobile'; + } + // Détection fixe + if (preg_match('/^32[0-9]{8,10}$/', $number)) { + return 'landline'; + } + + return 'unknown'; +} diff --git a/template-components/artisans/card-artisans-search.php b/template-components/artisans/card-artisans-search.php index 571842c..c90442f 100644 --- a/template-components/artisans/card-artisans-search.php +++ b/template-components/artisans/card-artisans-search.php @@ -12,17 +12,22 @@ $taxonomyTerms = $currentTaxonomy === "elementsbatiments" ? get_the_terms($post $phoneNumber = get_field('phone_number', $postID); -$formattedPhoneNumber = preg_replace('/^(\+\d{2})(\d{3})(\d{2})(\d{2})(\d{2})$/', '$1 $2 $3 $4 $5', $phoneNumber); +$formattedPhoneNumber = format_phone_number($phoneNumber); $email = get_field('email', $postID); $website = get_field('website', $postID); $adresse = get_field('adresse', $postID); // write_log($adresse); +$cover_image = get_field('artisan_cover', $postID); +write_log($cover_image); ?>
+ + <?php echo $post_title ?> +

@@ -50,7 +55,7 @@ $adresse = get_field('adresse', $postID); - + diff --git a/template-components/artisans/card-artisans-single.php b/template-components/artisans/card-artisans-single.php index 34df480..fc11edc 100644 --- a/template-components/artisans/card-artisans-single.php +++ b/template-components/artisans/card-artisans-single.php @@ -7,20 +7,25 @@ $company_members = get_field('company_members', $postID); $phoneNumber = get_field('phone_number', $postID); $gsmNumber = get_field('gsm_number', $postID); -$faxNumber = get_field('fax_number', $postID); -$formattedPhoneNumber = preg_replace('/(\d{2})(\d{3})(\d{2})(\d{2})(\d{2})/', '+$1 $2 $3 $4 $5', $phoneNumber); -$formattedGsmNumber = preg_replace('/(\d{2})(\d{3})(\d{2})(\d{2})(\d{2})/', '+$1 $2 $3 $4 $5', $gsmNumber); + +$formattedPhoneNumber = format_phone_number($phoneNumber); +$formattedGsmNumber = format_phone_number($gsmNumber); $email = get_field('email', $postID); $website = get_field('website', $postID); $adresse = get_field('adresse', $postID); $vatNumber = get_field('vat_number', $postID); -// write_log(gettype($formattedPhoneNumber)); +$cover_image = get_field('artisan_cover', $postID); ?>
+ + <?php echo $post_title ?> + + +

@@ -42,14 +47,11 @@ $vatNumber = get_field('vat_number', $postID); - + - - -