Add more postcode ranges

This commit is contained in:
Remo Zaros
2026-05-18 18:42:26 +02:00
parent 7f32a4bb1b
commit 41f44b1200
2 changed files with 25 additions and 40 deletions

View File

@@ -5,7 +5,7 @@ require_once plugin_dir_path(__FILE__) . "session_dialog.php";
* Plugin Name: prijzen per poscode range * Plugin Name: prijzen per poscode range
* Description: posctcodes in de 5000-5800 range krijgen een lokaal tarief aangeboden. * Description: posctcodes in de 5000-5800 range krijgen een lokaal tarief aangeboden.
* Author: Remo Zaros * Author: Remo Zaros
* Version: 0.9.1 * Version: 0.9.3
* Text Domeain: prijs-per-postcode * Text Domeain: prijs-per-postcode
*/ */

View File

@@ -1,5 +1,6 @@
<?php <?php
session_start();
function init_postcode_handlers($uri) function init_postcode_handlers($uri)
{ {
if (strpos($uri, "/winkel/") !== false) { if (strpos($uri, "/winkel/") !== false) {
@@ -68,6 +69,7 @@ function send_postcode_data()
throw new Error(`HTTP Error! status: ${resp.status}` ); throw new Error(`HTTP Error! status: ${resp.status}` );
} }
const data = await resp.json(); const data = await resp.json();
console.log("Data returnd", data);
if (data.status === "error"){ if (data.status === "error"){
const err = data.message; const err = data.message;
@@ -103,34 +105,39 @@ function render_dialog_html()
{ {
?> ?>
<dialog id="postcode_modal" class="postcode_modal" closedby="none"> <dialog id="postcode_modal" class="postcode_modal" closedby="none">
<h2>Vul postcode en huisnummer in.</h2> <h2>Vul je postcode en huisnummer in.</h2>
<p>Onze prijzen zijn afhankelijk van de regio. Vul daarom de postcode en het huisnummer in om de exacte prijzen te bekijken</p> <p>Onze prijzen zijn afhankelijk van de regio. Vul daarom de postcode en het huisnummer in om de exacte prijzen te bekijken.</p>
<form id="postcode_modal_form" method="post" action="" novalidation> <form id="postcode_modal_form" method="post" action="" novalidate>
<div class="form_fields"> <div class="form_fields">
<div> <div>
<input type="text" name="postcode" <!-- Dutch Postcode Field -->
<input
type="text"
name="postcode"
title="Voer een geldige Nederlandse postcode in (bijv. 1234AB of 1234 AB)." title="Voer een geldige Nederlandse postcode in (bijv. 1234AB of 1234 AB)."
pattern="[1-9][0-9]{3} ?(?!sa|sd|ss)[a-zA-Z]{2}" pattern="[1-9][0-9]{3} ?(?!sa|sd|ss)[a-zA-Z]{2}"
placeholder= "1010 AA" placeholder="1010 AA"
size="8" size="10"
autocomplete="off"
required required
autocomplete="off"
/> />
<input type="text" name="huisnummer" <!-- House Number Field -->
pattern="/\d+([-\\s]?[a-zA-Z]+)?/" <input
type="text"
name="huisnummer"
title="Voer een geldig huisnummer in (bijv. 1, 1A, 1-A, 1a)." title="Voer een geldig huisnummer in (bijv. 1, 1A, 1-A, 1a)."
placeholder= "10A" pattern="\d+([- ]?[a-zA-Z]+)?"
size="4" placeholder="10"
autocomplete="off" size="5"
required required
autocomplete="off"
/> />
</div> </div>
<button id="postcode_modal_submit" type="submit">OK</button> <button id="postcode_modal_submit" type="submit">OK</button>
</div> </div>
</form> </form>
<div class="error_message_modal_postcode" id="error_message_modal_postcode" aria-live="polite"></div> <div class="error_message_modal_postcode" id="error_message_modal_postcode" aria-live="polite"></div>
<div class="loader_modal"></div>
</dialog> </dialog>
<?php <?php
} }
@@ -183,11 +190,7 @@ function handle_postcode_modal($data)
$_SESSION["straatnaam"] = $result["straatnaam"]; $_SESSION["straatnaam"] = $result["straatnaam"];
$_SESSION["woonplaats"] = $result["woonplaats"]; $_SESSION["woonplaats"] = $result["woonplaats"];
$_SESSION["postcode_is_local"] = postcode_in_range( $_SESSION["postcode_is_local"] = postcode_in_range($params["postcode"]);
$params["postcode"],
5000,
5800,
);
$resp = [ $resp = [
"status" => "success", "status" => "success",
@@ -267,19 +270,6 @@ function getStraatnaam($postcode, $huisnummer)
]; ];
} }
// function postcode_in_range($postcode, $start, $end)
// {
// $cleanPostcode = strtoupper(preg_replace("/\s+/", "", $postcode));
// if (!preg_match('/^\d{4}[A-Z]{2}$/', $cleanPostcode)) {
// return false;
// }
// $numberPart = (int) substr($cleanPostcode, 0, 4);
// return $numberPart >= $start && $numberPart <= $end;
// }
function postcode_in_range($postcode) function postcode_in_range($postcode)
{ {
$cleanPostcode = strtoupper(preg_replace("/\s+/", "", $postcode)); $cleanPostcode = strtoupper(preg_replace("/\s+/", "", $postcode));
@@ -290,15 +280,10 @@ function postcode_in_range($postcode)
$numberPart = (int) substr($cleanPostcode, 0, 4); $numberPart = (int) substr($cleanPostcode, 0, 4);
if ( return ($numberPart >= 4800 && $numberPart <= 4899) ||
($numberPart >= 4800 && $numberPart <= 4899) ||
($numberPart >= 5000 && $numberPart <= 5199) || ($numberPart >= 5000 && $numberPart <= 5199) ||
($numberPart >= 5688 && $numberPart <= 5689) || ($numberPart >= 5260 && $numberPart <= 5268) ||
($numberPart >= 5260 && $numberPart <= 5268) ($numberPart >= 5688 && $numberPart <= 5689);
) {
return true;
}
return false;
} }
function modify_checkout_with_js() function modify_checkout_with_js()