FEATURE Add phone number formatting and detection functions for Belgian numbers in utilities; update artisan templates to utilize new formatting

This commit is contained in:
Antoine M 2025-05-08 16:10:55 +02:00
parent ee11cd9874
commit 23f430ef73
3 changed files with 56 additions and 10 deletions

View File

@ -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';
}

View File

@ -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);
?>
<article class="card-artisans">
<?php echo $post_thumbnail ?>
<?php if ($cover_image): ?>
<img src="<?php echo $cover_image['url'] ?>" alt="<?php echo $post_title ?>" class="card-artisans__cover-image">
<?php endif; ?>
<div class="card-artisans__inner">
<h2 class="card-artisans__title"><?php echo $post_title ?></h2>
@ -50,7 +55,7 @@ $adresse = get_field('adresse', $postID);
<?php endif; ?>
<?php if ($phoneNumber): ?>
<a class="card-artisans__phone" href="tel:<?php echo $phoneNumber ?>"><?php echo $formattedPhoneNumber ?></a>
<a class="card-artisans__phone" href="tel:+<?php echo $phoneNumber ?>"><?php echo $formattedPhoneNumber ?></a>
<?php endif; ?>
<?php if ($email): ?>
<a class="card-artisans__email" href="mailto:<?php echo $email ?>"><?php echo $email ?></a>

View File

@ -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);
?>
<article class="card-artisans">
<?php echo $post_thumbnail ?>
<?php if ($cover_image): ?>
<img src="<?php echo $cover_image['url'] ?>" alt="<?php echo $post_title ?>" class="card-artisans__cover-image">
<?php endif; ?>
<div class="card-artisans__inner">
<h2 class="card-artisans__title"><?php echo $post_title ?></h2>
@ -42,14 +47,11 @@ $vatNumber = get_field('vat_number', $postID);
<?php if ($phoneNumber): ?>
<a class="card-artisans__phone" href="tel:<?php echo $phoneNumber ?>"><?php echo $formattedPhoneNumber ?></a>
<a class="card-artisans__phone" href="tel:+<?php echo $phoneNumber ?>"><?php echo $formattedPhoneNumber ?></a>
<?php endif; ?>
<?php if ($gsmNumber): ?>
<a class="card-artisans__gsm" href="tel:<?php echo $gsmNumber ?>"><?php echo $formattedGsmNumber ?></a>
<?php endif; ?>
<?php if ($faxNumber): ?>
<a class="card-artisans__fax" href="tel:<?php echo $faxNumber ?>"><?php echo $formattedFaxNumber ?></a>
<?php endif; ?>
<?php if ($email): ?>
<a class="card-artisans__email" href="mailto:<?php echo $email ?>"><?php echo $email ?></a>
<?php endif; ?>