{"id":308829,"date":"2026-06-27T15:15:18","date_gmt":"2026-06-27T15:15:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/phone-mask-for-contact-form-7\/"},"modified":"2026-06-27T15:14:54","modified_gmt":"2026-06-27T15:14:54","slug":"digitalmakers-phone-mask-with-flags-for-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/","author":14689049,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"6.9.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"DigitalMakers Phone Mask with Flags for Contact Form 7","header_author":"DigitalMakersUA","header_description":"Adds a phone field with country mask and validation to Contact Form 7. 130+ country masks, one per form.","assets_banners_color":"84a3be","last_updated":"2026-06-27 15:14:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/digitalmakers.com.ua\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/","header_author_uri":"https:\/\/digitalmakers.com.ua\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":90,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"DigitalMakers","date":"2026-06-27 15:14:54"}},"upgrade_notice":{"1.0.5":"<p>Fixes a bug where new forms could inherit settings from an empty-id option. Plus admin code cleanup.<\/p>","1.0.3":"<p>Country search in admin now matches name and dialing code, and works on the Default Country selector too.<\/p>","1.0.2":"<p>Security and performance fixes.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3588183,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3588183,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3588183,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3588183,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3588183,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3588183,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3588183,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3588183,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3588183,"resolution":"5","location":"assets","locale":"","width":1200,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3588183,"resolution":"6","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Phone field on the frontend with country flag and mask with Validation messages \u2014 incomplete states.","2":"Phone field on the frontend with country flag and mask with phone Validation messages \u2014 complete states.","3":"Phone Settings tab in the CF7 form editor.","4":"CF7 form builder with Phone field with it.","5":"Setting page with default settings for future forms.","6":"Setting page with Uninstall settings."}},"plugin_section":[],"plugin_tags":[3736,361,269122,149230,269121],"plugin_category":[42],"plugin_contributors":[269123],"plugin_business_model":[],"class_list":["post-308829","plugin","type-plugin","status-publish","hentry","plugin_tags-flags","plugin_tags-form","plugin_tags-input-validation","plugin_tags-phone-field","plugin_tags-phone-mask","plugin_category-contact-forms","plugin_contributors-digitalmakers","plugin_committers-digitalmakers"],"banners":{"banner":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/banner-772x250.jpg?rev=3588183","banner_2x":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/banner-1544x500.jpg?rev=3588183","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/icon.svg?rev=3588183","icon":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/icon.svg?rev=3588183","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-1.png?rev=3588183","caption":"Phone field on the frontend with country flag and mask with Validation messages \u2014 incomplete states."},{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-2.png?rev=3588183","caption":"Phone field on the frontend with country flag and mask with phone Validation messages \u2014 complete states."},{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-3.png?rev=3588183","caption":"Phone Settings tab in the CF7 form editor."},{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-4.png?rev=3588183","caption":"CF7 form builder with Phone field with it."},{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-5.png?rev=3588183","caption":"Setting page with default settings for future forms."},{"src":"https:\/\/ps.w.org\/digitalmakers-phone-mask-with-flags-for-contact-form-7\/assets\/screenshot-6.png?rev=3588183","caption":"Setting page with Uninstall settings."}],"raw_content":"<!--section=description-->\n<p>DigitalMakers Phone Mask with Flags for Contact Form 7 adds a phone field to Contact Form 7. You pick a country in the form settings, and the field gets the right mask, placeholder, and validation pattern.<\/p>\n\n<p><strong>What you get:<\/strong><\/p>\n\n<ul>\n<li>Phone field with input mask (e.g. +38 (0__) _<strong>-<\/strong>-__)<\/li>\n<li>130+ country masks and validation patterns<\/li>\n<li>Country flag next to the input (can be turned off)<\/li>\n<li>Client-side validation as the user types<\/li>\n<li>Server-side validation on submit<\/li>\n<li>Two display modes: plugin styles or your theme's styles<\/li>\n<li>Per-form validation messages (CF7 Messages tab)<\/li>\n<li>Adjustable field size<\/li>\n<li>Default settings applied to new forms<\/li>\n<li>No external requests \u2014 all assets are local<\/li>\n<li>20+ translations included<\/li>\n<\/ul>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open a Contact Form 7 form.<\/li>\n<li>Click the \"Phone\" button in the tag generator to insert a phone field.<\/li>\n<li>Open the \"Phone Settings\" tab, pick a country, set options.<\/li>\n<li>Don't forget to fill in the \"Message for incomplete phone number\" and \"Confirmation hint when phone number is complete\" fields in the \"Messages\" tab.<\/li>\n<li>Save.<\/li>\n<\/ol>\n\n<p><strong>Supported countries:<\/strong><\/p>\n\n<p>130+ countries \u2014 United States, United Kingdom, Germany, France, Spain, Italy, Ukraine, Poland, Japan, Australia, Brazil, India, Canada and others.<\/p>\n\n<p><strong>Premium version:<\/strong><\/p>\n\n<p>If you need country switching on the frontend, dropdown search and extra themes, see <a href=\"https:\/\/digitalmakers.com.ua\/wordpress-plugins\/digital-makers-premium-phone-mask-field-for-contact-form-7\/?utm_source=phone_mask_cf7_lite&amp;utm_medium=wp_plugin&amp;utm_campaign=premium_upgrade&amp;utm_content=readme\">CF7 Phone Mask DM Premium<\/a>.<\/p>\n\n<h3>Third Party Libraries<\/h3>\n\n<p>The plugin bundles one third-party JS library:<\/p>\n\n<ul>\n<li><strong>IMask.js<\/strong> \u2014 used for the input mask on the frontend.\n\n<ul>\n<li>Source: https:\/\/github.com\/uNmAnNeR\/imaskjs<\/li>\n<li>License: MIT (Copyright (c) 2016 uNmAnNeR)<\/li>\n<li>License file: <code>assets\/vendor\/imask\/LICENSE<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>It ships inside the plugin and is loaded with <code>wp_enqueue_script()<\/code>. No CDN calls.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>digitalmakers-phone-mask-with-flags-for-contact-form-7<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Make sure Contact Form 7 is installed and active.<\/li>\n<li>Edit a CF7 form and click the \"Phone\" button in the tag generator toolbar to insert a phone field.<\/li>\n<li>Go to the \"Phone Settings\" tab in the form editor to select a country and configure display options.<\/li>\n<li>Save the form and add it to a page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20contact%20form%207%3F\"><h3>Does this plugin require Contact Form 7?<\/h3><\/dt>\n<dd><p>Yes. CF7 must be installed and active. If it isn't, the plugin shows a notice.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20country%20for%20each%20form%3F\"><h3>Can I use a different country for each form?<\/h3><\/dt>\n<dd><p>Yes. Country is picked per form in the Phone Settings tab.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20validation%20messages%3F\"><h3>Can I customize the validation messages?<\/h3><\/dt>\n<dd><p>Yes. Open the \"Messages\" tab in the form editor \u2014 there are two fields: \"Message for incomplete phone number\" and \"Confirmation hint when phone number is complete\". They are saved per form.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20load%20external%20resources%3F\"><h3>Does the plugin load external resources?<\/h3><\/dt>\n<dd><p>No. JS and other assets are bundled with the plugin, no CDN calls.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20page%20builders%3F\"><h3>Is the plugin compatible with page builders?<\/h3><\/dt>\n<dd><p>It works anywhere CF7 shortcodes work \u2014 Elementor, Divi, WPBakery and so on.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20the%20country%20flag%3F\"><h3>Can I hide the country flag?<\/h3><\/dt>\n<dd><p>Yes. Uncheck \"Show country flag\" in the Phone Settings tab.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20%22use%20theme%20styles%22%20and%20plugin%20styles%3F\"><h3>What's the difference between \"Use theme styles\" and plugin styles?<\/h3><\/dt>\n<dd><p>Both modes work the same. \"Use theme styles\" leaves the field almost unstyled so your theme controls the look. With it off, the plugin adds its own borders, shadow and focus styles.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Country selector in admin is now an always-open listbox \u2014 type to filter, no dropdown to open<\/li>\n<li>Code cleanup: bootstrap refactor, consistent indentation in PHP files, <code>uninstall.php<\/code> switched to <code>$wpdb-&gt;prepare()<\/code> + <code>esc_like()<\/code><\/li>\n<li>Fixed: stale <code>cf7pm_phone_settings_<\/code> option with empty form id no longer leaks into new forms \u2014 <code>get()<\/code> and <code>save_phone_settings()<\/code> require a valid form id<\/li>\n<li>Added: bundled IMask LICENSE file and a Third Party Libraries section in readme.txt<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Internal release \u2014 not published to wordpress.org<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed country search in admin \u2014 now matches country name and dialing code (e.g. \"380\", \"+380\", \"ukr\")<\/li>\n<li>Added country search to the global Default Country selector on the Settings page<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>All POST data sanitized with <code>sanitize_text_field()<\/code><\/li>\n<li>Removed redundant SQL queries and JSON reads<\/li>\n<li>Frontend assets load only when CF7 is present<\/li>\n<li>Per-form validation messages via the CF7 Messages tab<\/li>\n<li>Added a global default settings page<\/li>\n<li>Fixed validation pattern handling<\/li>\n<li>Removed the external CDN option \u2014 assets are bundled locally<\/li>\n<li>Removed unused methods and dead code<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added static cache for phone masks JSON<\/li>\n<li>Added settings helper class<\/li>\n<li>Improved form tag handler<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Phone field with IMask integration<\/li>\n<li>130+ country masks<\/li>\n<li>Client-side and server-side validation<\/li>\n<li>Country flag display<\/li>\n<li>Theme and plugin styling modes<\/li>\n<\/ul>","raw_excerpt":"Adds a phone field with country mask and validation to Contact Form 7. 130+ country masks, one per form.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=308829"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/digitalmakers"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308829"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308829"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308829"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308829"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308829"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}