Phone Flags
v1.4.8
Phone Flags
- Updates and support included for 12 months
- License key delivered immediately by email
- 30-day money-back guarantee
- Full documentation included
- Compatible with Hyvä themes
- Composer-ready installation
Phone Flags
Capture clean, international phone numbers without ever asking your customers to remember a dial code. This module turns every phone field in your store — checkout, customer account, registration, contact form — into an intuitive input with country flags, auto-formatting, and live validation, so that what lands in your database is always callable, regardless of where the customer lives.
Bad phone numbers are one of the most under-rated causes of failed deliveries, undeliverable Mondial Relay parcels, and wasted support time. By making the format unambiguous at entry, this module fixes the problem at the source instead of asking your support team to clean up afterwards.
Who it's for
- Cross-border merchants whose customers come from multiple countries and can't all be expected to know the international format
- Stores using carrier integrations (Mondial Relay, Bpost, DPD…) that depend on a valid phone number in the destination country
- B2C merchants who want a smooth, modern checkout that matches the experience customers see on their banking or travel apps
Key benefits
- Country flags in every form — checkout shipping/billing, customer account address book, registration, and contact page. One consistent UX across the whole store.
- Live formatting & validation — phone numbers are formatted as the user types and validated on blur, with a clear error message if the number isn't valid for the selected country.
- Smart country list — pin your preferred countries at the top of the dropdown, hide irrelevant countries, or restrict the list to a specific set. Optional GeoIP detection pre-selects the visitor's country.
- Mondial Relay safeguard — shows a warning at checkout when the phone country doesn't match the shipping country, so the relay point can actually reach the customer.
- Mobile-friendly — full-screen country picker on mobile, retina flag sprites, no jQuery dependency.
- Plug & play — works on standard Magento and Hyvä-equivalent address forms without theme surgery.
Compatibility
- Magento 2.4.x / Mage-OS equivalent
- PHP 8.1, 8.2, 8.3
- Requires
wimakeit/module-core3.0 or later - Works on Luma frontends; Hyvä projects can reuse the JavaScript helper
- Compatible with Full Page Cache (validation runs client-side)
Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.
$ composer require wimakeit/module-phone-flags:^1.4.8
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permission
A single configuration ACL resource is registered, attached to the standard Stores → Configuration tree:
| Resource | Default |
|---|---|
Wimakeit_PhoneFlags::config | granted to Administrator role only |
Configuration
The module ships with safe defaults tuned for a Benelux audience. Go to Stores → Configuration → Wimakeit → Phone Flags only if you want to change them.
General settings
| Setting | Default |
|---|---|
| Enable Phone Flags | Yes |
| Default Country | BE |
| Preferred Countries (top of dropdown) | be, fr, nl, de, lu |
| Only Countries (whitelist) | empty (all countries) |
| Excluded Countries | empty |
| Show Dial Code Separately | No |
| National Mode | No |
| Auto Placeholder | polite |
Validation settings
| Setting | Default |
|---|---|
| Validate on Blur | Yes |
| Strict Mode (only valid characters accepted) | Yes |
GeoIP detection
| Setting | Default |
|---|---|
| Enable GeoIP Detection | No |
Enable GeoIP only if your hosting stack provides a country-resolution layer (Varnish + GeoIP module, Cloudflare headers, etc.). Without one, leave this off and rely on the Default Country.
Mondial Relay integration
| Setting | Default |
|---|---|
| Show Phone Mismatch Notice | Yes |
The notice only appears when a Mondial Relay shipping method is selected and the phone country differs from the shipping country. No action needed if you don't use Mondial Relay.
- Version
- v1.4.8
- License
- Annual Subscription
- Support
- 12 months
- Last updated
- Aug 25, 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Compatible
- Package
-
wimakeit/module-phone-flags
Compatibility checker
Pick your stack to see if this module fits.
Compatibility 4
Pricing & licensing 4
vendor/wimakeit/ once you composer require the package, so you can read it, audit it, and patch it locally for your own Magento install. You may NOT redistribute it, sublicense it, publish it on a public package registry, or sell it on. One licence = one production domain + one staging/dev domain (see terms for the full EULA). Wimakeit modules are NOT part of Magento's open-source repository on packagist.org — they are distributed exclusively via the private Composer registry packages.wimakeit.be. Installation & updates 6
composer require wimakeit/module-phone-flags:^1.4.6, then bin/magento setup:upgrade, bin/magento setup:di:compile, and finally bin/magento cache:flush. The Installation tab on this page lists every configuration step (ACLs, cron jobs, default values) so a deploy takes minutes, not hours. If you need a hand, Wimakeit offers Magento installation services from our Wallonian office (Presles, between Charleroi and Namur). auth.json: {"http-basic": {"packages.wimakeit.be": {"username": "YOUR-EMAIL", "password": "YOUR-TOKEN"}}}. Step 3: register the repo: composer config repositories.wimakeit composer https://packages.wimakeit.be. Step 4: composer require wimakeit/module-phone-flags:^1.4.6. In CI/CD pipelines, inject COMPOSER_AUTH as a JSON env var instead of committing auth.json. composer require, same module code, same database schema — no fork to maintain, no licence change. composer update is safe within a major. app/design/frontend/{YourVendor}/{theme}/Wimakeit_{Module}/templates/ keeping the same relative path. Blocks, ViewModels and Helpers are overridable via DI preference in your own custom module — declare <preference for="Wimakeit\…\OriginalClass" type="YourVendor\Override\Class" /> in etc/di.xml. Layout XML is extended (preferred) or overridden the standard Magento way. Wimakeit modules never use the final keyword on classes you might reasonably want to override — overriding is a first-class scenario, not a hack. Support & security 3
contact@wimakeit.com with the module name, version, Magento/Mage-OS version and the steps to reproduce. Fixes ship in the next patch release. Wimakeit support is staffed in French, English and Dutch on business days (CET working hours). contact@wimakeit.com with a clear [SECURITY] subject prefix — please include the module name, version and the steps to reproduce. We acknowledge promptly on business days and credit reporters in the Changelog if they wish. Wimakeit is a Belgian SRL (société à responsabilité limitée) bound by Belgian and EU privacy and disclosure law. About Wimakeit 1
Found something not covered by the FAQ?
Report a bug or ask a question — the form is prefilled with this module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.4.8] - 2026-06-05
Deps
- Marketing documentation refreshed to list PHP 8.4 in the supported PHP range.
[1.4.7] - 2026-06-05
Deps
- PHP 8.4 certified — constraint widened to
>=8.1 <8.5.
[1.4.6] - 2026-05-08
Admin
- Admin menu group standardized — module appears under a top-level Wimakeit_PhoneFlags entry with a Settings child that opens directly on the configuration section.
- Config section path renamed from
phoneflagstowimakeit_phone_flagsfor consistency with the other Wimakeit modules. A data patch migrates existingcore_config_datarows automatically onsetup:upgrade— no manual reconfiguration needed.
[1.4.5] - 2026-04-29
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[1.4.4] - 2026-04-14
Admin
- Composer/Satis distribution archives now exclude internal files (
.gitlab-ci.yml,.claude/,docs/,.gitattributes).
[1.4.3] - 2026-04-14
Admin
- Configuration access refactored from
Helper\ConfigtoModel\Config(extendsAbstractConfigfromwimakeit/module-core) — typed getters and consistency with the other Wimakeit modules. The legacy helper is removed.
[1.4.2] - 2026-04-07
Feature
- Native Breeze frontend support. New
breeze_default.xmllayout registers Breeze JS bundles, ships Breeze-nativephone-init.jsandcustomer-address-phone.jswidgets, and adds Breeze-compatible LESS styles with the@criticalguard.
Deps
- Depends on
wimakeit/module-corefor shared config abstractions.
[1.4.1] - 2026-03-17
Admin
- Internal release pipeline consolidated (single auto-tag block).
[1.4.0] - 2026-01-25
Fix
- Flag images failing to load on stores with non-default
pub/staticpaths — asset import path corrected.
[1.3.0] - 2026-01-25
Fix
- Country-code import on customer save no longer fails when the address has no country selected.
[1.2.0] - 2026-01-25
Feature
- Customer account support — phone-flags input now renders on the customer address form (My Account → Address Book) in addition to checkout.
- Country sync — the selected country in the address auto-updates the flag/dial-code prefix without a page reload.
- Enhanced admin configuration — defaults for preferred country, allowed countries and dropdown behaviour are now exposed in the admin.
[1.0.0] - 2025-12-18
Feature
- Initial release of Wimakeit Phone Flags for Magento 2 / Mage-OS.
- Renders phone-number inputs with a flag-and-dial-code prefix on the checkout shipping/billing form (intl-tel-input behaviour, no third-party JS dependency).
- Validates the entered number against the chosen country's format on submit.
- Stores the E.164-formatted number alongside the entered value so downstream integrations (SMS, CRM) always get a usable number.
Found a bug? Tell us about it.
A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.
Report a bug for Phone FlagsNeed help?
Our team is available to assist with integration.