Post by timstudio » Wed Dec 02, 2015 3:47 pm

Opencart 2.0.3.1
Checkout and Registration Simple extensie

Ik zit met het volgende probleem:

De verzendkosten binnen Nederland zijn gratis.
De verzendkosten naar Belgie zijn 3,95 euro.

Bij mijn huidige checkout kan een Belgische klant als "landkeuze" Nederland laten staan terwijl zijn opgegeven adres correct is. Hij moet dus handmatig Belgie kiezen zodat de verzendkosten ook berekend worden. Regelmatig maak ik mee dat een Belgische klant 'Nederland' laat staan (per ongeluk of express) en dus geen verzendkosten betaald.

Is er een extensie of functie om ervoor te zorgen dat als een klant Nederland als verzendland kiest de postcode uit 4 cijfers + 2 letters MOET bestaan, en als hij Belgie als verzendland kiest de postcode uit 4 cijfers MOET bestaan? Als een belgische klant dan 'Nederland' laat staan krijgt hij een foutmelding ivm een incorrecte postcode.

Is zoiets mogelijk?

New member

Posts

Joined
Sun Oct 25, 2015 3:51 pm

Post by pprmkr » Wed Dec 02, 2015 9:05 pm

Beetje handig? Bouw het zelf ...

Zoek in de checkout controllers naar:

Code: Select all

			if ($country_info && $country_info['postcode_required'] && (utf8_strlen(trim($this->request->post['postcode'])) < 2 || utf8_strlen(trim($this->request->post['postcode'])) > 10)) {
				$json['error']['postcode'] = $this->language->get('error_postcode');
			}
Vervang door:

Code: Select all

				if ($country_info && $country_info['postcode_required']) {
					$zipcode = strtoupper(preg_replace('/\s/', '', trim($this->request->post['postcode'])));
					// iso_code_2 NL of BE
					if ($country_info['iso_code_2'] == 'NL') {
						if (!preg_match ('/^([0-9]{5})([A-Z]{2})$/', $zipcode)) {
							$json['error']['postcode'] = sprintf($this->language->get('error_postcode2'),$country_info['name']);
						}
					} elseif ($country_info['iso_code_2'] == 'BE') {
						if (!preg_match ('/^[0-9]{4}$/', $zipcode)) {
							$json['error']['postcode'] = sprintf($this->language->get('error_postcode2'),$country_info['name']);
						}
					} else {
						if((utf8_strlen(trim($this->request->post['postcode'])) < 2 || utf8_strlen(trim($this->request->post['postcode'])) > 10)) {
							$json['error']['postcode'] = $this->language->get('error_postcode');
						}
					}
			}
Bewerk het checkout taalbestand en voeg toe:

Code: Select all

$_['error_postcode2']                 = 'Postcode not valid for %s!';

User avatar
Active Member
Online

Posts

Joined
Sat Jan 08, 2011 11:05 pm
Location - Netherlands

Post by timstudio » Wed Dec 02, 2015 9:33 pm

Thanks,

die ga ik proberen.

New member

Posts

Joined
Sun Oct 25, 2015 3:51 pm
Who is online

Users browsing this forum: No registered users and 12 guests