{"id":399327,"date":"2026-11-14T14:32:51","date_gmt":"2026-11-14T14:32:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/intouchdesign-companion\/"},"modified":"2026-11-14T14:32:17","modified_gmt":"2026-11-14T14:32:17","slug":"intouchdesign-companion","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/intouchdesign-companion\/","author":23531578,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.2","stable_tag":"1.5.2","tested":"7.1.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"InTouchDesign Companion","header_author":"InTouchDesign","header_description":"Starter sites and demo importer for the InTouchDesign theme.","last_updated":"2026-11-14 14:32:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/intouchdesign.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.2":{"tag":"1.5.2","author":"intouchdesigndev","date":"2026-11-14 14:32:17","revision":3802090}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3802090,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3802090,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3802090,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[150371,167556,4516,262590],"plugin_category":[43],"plugin_contributors":[275672],"plugin_business_model":[],"class_list":["post-399327","plugin","type-plugin","status-publish","hentry","plugin_tags-demo-importer","plugin_tags-starter-sites","plugin_tags-templates","plugin_tags-theme-companion","plugin_category-customization","plugin_contributors-intouchdesigndev","plugin_committers-intouchdesigndev"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/intouchdesign-companion\/assets\/icon.svg?rev=3802090","icon":"https:\/\/ps.w.org\/intouchdesign-companion\/assets\/icon.svg?rev=3802090","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>InTouchDesign Companion adds an <strong>InTouchDesign<\/strong> menu to your dashboard, with <strong>Starter Sites<\/strong> as its first entry. Pick a starter site, review exactly what it will create, and import it in two separate steps:<\/p>\n\n<ol>\n<li><strong>Content<\/strong>: pages, menus and images. By default nothing that already exists is overwritten, and importing twice does not duplicate anything. If a page with the same address already exists you can choose, with a box that is off by default, to replace it instead of creating a numbered copy.<\/li>\n<li><strong>Look<\/strong>: colors, fonts, header options, the footer widgets (contact details, opening hours), the front page and menu locations. The widgets already in those footer columns are kept among your inactive widgets. You see the differences first, and a restore point is saved so you can go back with one click.<\/li>\n<\/ol>\n\n<p>It needs the free InTouchDesign theme. The starter sites included in this plugin are imported entirely on your own site: importing one does not contact any external server.<\/p>\n\n<p>The screen has three tabs. <strong>Home<\/strong> shows your site's current look, with links into the Customizer, and the status of the theme, the imported starter site and Contact Form 7. <strong>Starter Sites<\/strong> lists the starter sites, with a search box and filters by plan and category. <strong>Changelog<\/strong> shows what changed in each version of the theme and of this plugin.<\/p>\n\n<p>The <strong>Pro<\/strong> plan filter of the Starter Sites tab shows the Pro starter sites as examples: a picture, a description, a link to the live demo and one to the InTouchDesign website, where Pro is sold. They cannot be imported with this plugin, and the list and its pictures ship inside the plugin, so showing them contacts no server.<\/p>\n\n<p>Also included: the <code>[itdcompanion_contact_form]<\/code> shortcode, which shows a Contact Form 7 form when that plugin is active and a simple \"Email Us\" button otherwise. A starter site can mark one of its pages for a reservation form (<code>form=\"reservation\"<\/code>); the importer creates it in Contact Form 7 when that plugin is active, and falls back to a mailto button otherwise.<\/p>\n\n<h3>External services<\/h3>\n\n<p>The free plugin contacts no external server: the starter sites it imports, and the pictures and descriptions of the Pro starter sites it shows, are files inside the plugin.<\/p>\n\n<p>Companion Pro, sold separately, uses more external services: they are listed in the Pro version's readme and documentation.<\/p>\n\n<p><strong>Links to the InTouchDesign website.<\/strong> The plugin's admin screens link to <code>dev.intouchdesign.it<\/code>, the InTouchDesign website: the documentation (<code>\/themes\/docs\/<\/code>), the starter sites and Companion Pro (<code>\/themes\/<\/code>). The starter sites' Live preview buttons link to their demo on <code>demo.intouchdesign.it<\/code>. These are ordinary links: a page opens in your browser only when you click one, and the plugin itself sends nothing to these sites. As on any website, the page you open receives your IP address and the usual browser data. Terms: https:\/\/dev.intouchdesign.it\/terms\/ - Privacy: https:\/\/dev.intouchdesign.it\/privacy\/<\/p>\n\n<h3>Source code<\/h3>\n\n<p>The plugin's JavaScript and CSS ship as they are written, not minified.<\/p>\n\n<h3>Copyright<\/h3>\n\n<p>InTouchDesign Companion, (C) 2026 InTouchDesign\nInTouchDesign Companion is distributed under the terms of the GNU General Public License v2 or later.<\/p>\n\n<p>InTouchDesign Companion bundles the following resources, all GPL-compatible:<\/p>\n\n<ul>\n<li>Archivo (self-hosted in <code>assets\/fonts\/<\/code>, used for the Starter Sites screen only): Copyright 2020 The Archivo Project Authors (https:\/\/github.com\/Omnibus-Type\/Archivo). Licensed under the SIL Open Font License 1.1 (see <code>assets\/fonts\/OFL.txt<\/code>).<\/li>\n<li>The InTouchDesign logo and slash artwork (<code>assets\/brand\/<\/code>): (C) InTouchDesign, released under the GPLv2 or later. The InTouchDesign name and logo are trademarks of InTouchDesign.<\/li>\n<li>Thumbnails of the starter sites (<code>assets\/thumbnails\/*.jpg<\/code>): (C) InTouchDesign, GPLv2 or later; the photos in them are generated images.<\/li>\n<li>Images of the Corporate starter site (<code>demos\/corporate\/media\/<\/code>): created for this plugin by InTouchDesign with the Z-Image Turbo image model (Apache License 2.0), and released under the GPLv2 or later, like the code.<\/li>\n<li>Code: written for this plugin by InTouchDesign, GPLv2 or later.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the InTouchDesign theme.<\/li>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen, and activate it.<\/li>\n<li>Go to InTouchDesign &gt; Starter Sites.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20overwrite%20my%20pages%20or%20settings%3F\"><h3>Does it overwrite my pages or settings?<\/h3><\/dt>\n<dd><p>Not by default. Pages, menus and images are only added. The review screen has one optional box, off by default, that replaces your existing pages using the same address (same address and ID, new title and content) instead of creating numbered copies; the previous version of each replaced page stays in its revisions. Menus are never replaced: a menu with the same name gets a new, separate menu. Your colors, fonts and front page change only after you confirm the second step, and you can undo that step.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20the%20second%20step%3F\"><h3>Can I undo the second step?<\/h3><\/dt>\n<dd><p>Yes. \"Restore previous settings\" puts back the colors, fonts, theme options, footer widgets, front page and menu locations as they were. Imported pages, menus and images stay where they are.<\/p><\/dd>\n<dt id=\"what%20else%20does%20the%20plugin%20change%3F\"><h3>What else does the plugin change?<\/h3><\/dt>\n<dd><p>Two things outside its own screen. With the InTouchDesign theme active, it keeps four behaviours the theme had until its version 1.3.1: pattern previews are not fetched from wordpress.org, the editor does not offer to install block plugins from the Block Directory, pages are sent without the X-Pingback header, and only the first image of a page's content loads at once. With any other theme it changes none of them. And when Contact Form 7 is active, its scripts and styles load only on the pages that show one of its forms, instead of on every page of the site.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens when I delete the plugin?<\/h3><\/dt>\n<dd><p>Its own settings and the restore point are removed. Imported pages, menus and images stay on your site, because they are your content.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20contact%20any%20external%20server%3F\"><h3>Does the plugin contact any external server?<\/h3><\/dt>\n<dd><p>No. The starter sites it imports, and the pictures and descriptions of the Pro starter sites it shows, are files inside the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Security: the Contact Form 7 form printed by <code>[itdcompanion_contact_form]<\/code> is now escaped with an allowed list of form tags and attributes (filter <code>itdcompanion_contact_form_allowed_html<\/code>).<\/li>\n<li>The readme lists the plugin's links to the InTouchDesign website under External services.<\/li>\n<li>The free zip no longer bundles the Italian translation files: translations come from translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>The free version no longer includes the Freemius SDK: there it only offered the optional opt-in, while licences and updates belong to the Pro version. Deleting the plugin still removes its settings.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Every name the plugin gives to WordPress now starts with <code>itdcompanion<\/code> (wordpress.org asks for a prefix of at least four characters): its functions, classes, constants, hooks, options, shortcodes, the admin page (<code>admin.php?page=itdcompanion-starter-sites<\/code>) and the uploads folder (<code>itdcompanion-demos<\/code>). The CSS classes (<code>.itd-\u2026<\/code>) do not change. If you wrote code of your own for the plugin, the lines below give each old name and its new one.<\/li>\n<li>Shortcode: <code>[itd_contact_form]<\/code> is now <code>[itdcompanion_contact_form]<\/code>, with the same attributes.<\/li>\n<li>Hooks: <code>itd_companion_\u2026<\/code> \u2192 <code>itdcompanion_\u2026<\/code> for <code>before_catalog<\/code>, <code>card_actions<\/code>, <code>catalog_entries<\/code>, <code>cf7_needed<\/code>, <code>cf7_plugin_file<\/code>, <code>contact_mailto<\/code>, <code>enable_module<\/code>, <code>fs_loaded<\/code>, <code>has_cf7<\/code>, <code>home_status<\/code>, <code>modules<\/code>, <code>render_tab_{tab}<\/code>, <code>tabs<\/code> and <code>theme_helper_exists<\/code> (for example <code>itd_companion_catalog_entries<\/code> \u2192 <code>itdcompanion_catalog_entries<\/code>); <code>itd_demo_\u2026<\/code> \u2192 <code>itdcompanion_demo_\u2026<\/code> for <code>gallery_meta_key<\/code>, <code>module_options<\/code>, <code>post_writer<\/code> and <code>stage_budget<\/code>.<\/li>\n<li>Constants <code>ITD_COMPANION_VERSION<\/code>, <code>ITD_COMPANION_DIR<\/code>, <code>ITD_COMPANION_FILE<\/code>, <code>ITD_COMPANION_PREMIUM<\/code>, <code>ITD_COMPANION_FS_ID<\/code>, <code>ITD_COMPANION_FS_PUBLIC_KEY<\/code> and <code>ITD_COMPANION_FS_DISABLED<\/code> (which a site can define to keep Freemius off) \u2192 <code>ITDCOMPANION_\u2026<\/code>; the function <code>itd_companion_fs()<\/code> \u2192 <code>itdcompanion_fs()<\/code>; classes <code>ITD_\u2026<\/code> \u2192 <code>ITDCompanion_\u2026<\/code>.<\/li>\n<li>New hooks: the <code>itdcompanion_card_after_actions<\/code> action, after a starter site card's buttons, and the <code>itdcompanion_uninstall_options<\/code>, <code>itdcompanion_uninstall_user_meta<\/code> and <code>itdcompanion_uninstall_transients<\/code> filters, which name more settings to remove when the plugin is deleted. The <code>itdcompanion_form_shortcodes<\/code> filter names the shortcodes that show a contact form, for loading Contact Form 7's files only where one is. The <code>itd_companion_locked_message<\/code> filter is gone: the Pro version writes that message itself.<\/li>\n<li>Every form and background request of the plugin checks, in its own handler and in this order, that the user may manage the site, then its security token, read and cleaned there, and only then the rest of the request.<\/li>\n<li>The admin screens escape what they print at the moment they print it, and the menu icon's style is loaded with WordPress's style functions instead of a <code>&lt;style&gt;<\/code> tag of its own.<\/li>\n<li>A starter site imported by someone who may not post unfiltered HTML (on multisite, a site administrator) no longer arrives unfiltered: its pages and footer widgets go through WordPress's HTML filter with a list of the tags and attributes the starter sites use, so their drawings and forms arrive and scripts do not. For an administrator who may post unfiltered HTML nothing changes.<\/li>\n<li>Freemius, when it runs, shows the plugin's own icon instead of copying a default one into the plugin's folder, and the free version never shows Freemius's trial notice.<\/li>\n<li>The plugin header no longer has a Plugin URI.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Works with InTouchDesign theme 1.4.0, which saves its settings and footer widgets under new names (<code>intouchdesign_\u2026<\/code> instead of <code>itd_\u2026<\/code>), and still with the 1.3 versions: a starter site made for either version imports its colors, fonts, header and footer options and footer widgets under the names the active theme reads. With theme 1.4.0 the Contact and Hours widgets also keep their earlier CSS class, so a starter site's own styles still reach them.<\/li>\n<li>On a site that used an earlier version of the theme, the first page load with theme 1.4.0, on the site or in the dashboard, copies the theme's settings and footer widgets to the new names once (once for each child theme, which has settings of its own), so the site looks as before. The earlier settings are kept: going back to an earlier version of the theme finds them where they were. \"Restore previous settings\" with a restore point from an earlier theme version copies the restored settings again.<\/li>\n<li>On sites that use the InTouchDesign theme, the plugin keeps four things the theme did until its version 1.3.1: pattern previews are not fetched from wordpress.org, the editor does not offer to install block plugins from the Block Directory, pages are sent without the X-Pingback header, and only the first image of a page's content loads at once.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Companion Pro from Freemius installs in its own folder, next to the free Companion. The plugin now follows Freemius's pattern for that: activating one version switches the other off, instead of stopping with a fatal error because both declare the same code.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>A starter site that needs a newer theme names both versions, the one it needs and the one the site has, and the screen links to the theme's install steps. So does the warning shown while the theme is not active.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>When the sample blog posts are left out, the images only those posts use are not uploaded either.<\/li>\n<li>Deleting the plugin removes the same settings as before, now from Freemius's uninstall hook instead of a separate <code>uninstall.php<\/code>.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>A starter site can say which plugins it needs, such as WooCommerce, and which of its pages are the shop, cart, checkout and account pages; the shop, cart, checkout and account settings are pointed at them on the second, separate confirmation, and put back by \"Restore previous settings\".<\/li>\n<li>When a starter site needs a plugin that is missing, switched off or too old, the review screen says so and shows a button to install, activate or update it; the starter site cannot be imported until it is there.<\/li>\n<li>When WooCommerce still has \"coming soon\" mode on, the review screen warns that visitors cannot see the store yet. The starter site does not change that setting.<\/li>\n<li>A starter site that carries products is refused, with nothing imported, when the module that writes products is not available.<\/li>\n<li>A starter site can bring blog posts, with their categories, tags and featured images. The review screen counts them before anything is imported; they are marked as the starter site's, never overwritten by a later import, and taken back if the import fails.<\/li>\n<li>A starter site can ask for a test drive form: with Contact Form 7 active, the import creates it (vehicle, preferred date and time, name, phone, email, notes and a driving licence check), sending each request to the site's administration email. The <code>[itd_contact_form form=\"test-drive\"]<\/code> shortcode shows it, and a link can prefill the vehicle field (<code>?td-vehicle=<\/code>); without Contact Form 7 it shows a button that opens an email with the subject \"Test drive request\".<\/li>\n<li>Starter sites have a new category, Automotive.<\/li>\n<li>The first confirmation of a starter site that brings blog posts has a box, ticked by default, to import them or leave them out: a plugin that announces new posts (a newsletter, a social network) could otherwise send them to the site's subscribers.<\/li>\n<li>A starter site's posts can carry a short excerpt of their own, written by hand, which the import keeps as the post's excerpt.<\/li>\n<li>The pages, posts and images a starter site imports are closed to comments and pings, whatever the site's discussion settings say, so a demo collects no spam; products keep their reviews as WooCommerce sets them. Each can be opened again from its own Discussion settings; the site's defaults do not change.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>The Starter Sites screen is now a single boxed screen with three tabs: Home shows your site's current look, with links into the Customizer and a status panel for the theme, the starter site, Contact Form 7 and your plan.<\/li>\n<li>Starter sites can be searched and filtered by plan and category, and a Changelog tab reads the theme's and the Companion's own changelog without leaving the screen.<\/li>\n<li>A starter site's menu can have sub-items (one level) and custom links: an address on the web, the site's home, or one of the starter site's own pages with an anchor.<\/li>\n<li>Imported image blocks name their picture in the Media Library, as the editor saves them, so WordPress gives them responsive sizes and lazy loading: a phone no longer downloads every full-size photo of a starter site's page at once.<\/li>\n<li>A starter site's widgets can point at its own pages and pictures, and a block widget keeps its markup: before, every tag was stripped out of it.<\/li>\n<li>The strings visitors see come with an Italian translation.<\/li>\n<li>Without Contact Form 7, the \"Email Us\" button now writes to the site's own email address (Settings \u203a General), hidden from spam robots, instead of an example address; and Contact Form 7's scripts now load on every page that shows one of its forms, including its own shortcode and block, a widget and a Pro property page.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>A starter site can ask for a reservation form: <code>[itd_contact_form form=\"reservation\"]<\/code> shows it, and the importer creates it in Contact Form 7 when that plugin is active, lists it on the review screen before creating it, and removes it again if the import fails. Without Contact Form 7 both shortcodes fall back to an email button, the reservation one with its own subject.<\/li>\n<li>Imported pages are written exactly as the starter site wrote them. On a site where the administrator may not post unfiltered HTML, such as a multisite, images, forms and icons are no longer stripped out of the imported pages.<\/li>\n<li>A starter site's settings can point at one of its own pages or pictures (<code>{{page:...}}<\/code>, <code>{{media:...}}<\/code>), so a starter site can bring its own logo and a setting can refer to a page the import just created.<\/li>\n<li>Font names with an underscore, such as <code>playfair_display<\/code>, are accepted.<\/li>\n<li>The Pro tab shows a third Pro starter site, Restaurant.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Starter Sites screen: see exactly what an import will create before it creates anything.<\/li>\n<li>Two-step import. Pages, menus and images first; colors, fonts and the front page only on a second, separate confirmation.<\/li>\n<li>Restore point. One click puts back the settings an import changed, and leaves the imported pages, menus and images alone.<\/li>\n<li>Corporate starter site included.<\/li>\n<li>Applies a starter site's footer widgets (contact details, opening hours) with its look, and puts the previous ones back on restore.<\/li>\n<li>The Pro tab shows the Pro starter sites, each with a picture, a link to its live demo and one to the website where Pro is sold.<\/li>\n<li>A progress bar while a starter site's images are imported.<\/li>\n<li>Imports posts of a starter site's own content types, such as listings.<\/li>\n<li><code>[itd_contact_form]<\/code> shortcode: the first Contact Form 7 form when that plugin is active, an email button otherwise.<\/li>\n<\/ul>","raw_excerpt":"Starter sites for the InTouchDesign theme: see what will be created, import pages, menus and images, and apply colors and fonts if you like.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/399327","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=399327"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/intouchdesigndev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=399327"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=399327"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=399327"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=399327"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=399327"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=399327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}