{"id":332734,"date":"2014-02-07T08:29:22","date_gmt":"2014-02-07T08:29:22","guid":{"rendered":"http:\/\/wpml.org\/?p=332734"},"modified":"2014-02-28T11:12:10","modified_gmt":"2014-02-28T11:12:10","slug":"maintaining-client-sites-centrally-using-wpml-and-domain-mapping","status":"publish","type":"post","link":"https:\/\/wpml.org\/de\/case-studies\/2014\/02\/maintaining-client-sites-centrally-using-wpml-and-domain-mapping\/","title":{"rendered":"Maintaining client sites centrally using WPML and Domain Mapping"},"content":{"rendered":"<p><strong>Patricia is a WordPress freelancer. She builds and maintains sites for many different clients. To make life easier, Patricia uses a single WordPress install, running a multi-site network. This way, she can update WordPress and plugins once and keep all client sites up-to-date. Working with many European clients, naturally, some of Patricia&#8217;s sites are multilingual.<\/strong><\/p>\n<p>In this article, <strong>Patricia Brun Torre from Switzerland<\/strong> explains how she configures and manages a multisite WordPress network, with WPMUDev Domain Mapping plugin and WPML.<\/p>\n<h2>How to manage a network of client sites using Domain Mapping and WPML &#8211; the challenges and the idea<\/h2>\n<p>Making use of <strong>WordPress MultiSite<\/strong> install is a good point to start to manage a network of your clients sites. You will have a separate child site for each of your client\u2019s website. Updating the entire network of client sites now reduces to a single click!<\/p>\n<p>But this also means potential new questions:<\/p>\n<ul>\n<li>Your customers want to see their sites under their <strong>original domain<\/strong> names. Theirs, not yours. So instead of your default WordPress MutiliSite client-1.my-main-domain.com subdomain, you client wishes to see client-1-preferable-domain.net.\n<\/li>\n<li>Some of the sites have to be <strong>multilingual<\/strong>. So to make things more complicated, you will have <strong>different languages<\/strong> for these different sites on the network.<\/li>\n<\/ul>\n<p>Look at the picture below which summarizes the idea:<br \/>\n<figure id=\"attachment_332818\" aria-describedby=\"caption-attachment-332818\" style=\"width: 700px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-multisite-wpml-domain-mapping.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-multisite-wpml-domain-mapping.jpg\" alt=\"WP MultiSite, WPML and domain mapping\" width=\"700\" height=\"500\" class=\"size-full wp-image-332818\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-multisite-wpml-domain-mapping.jpg 700w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-multisite-wpml-domain-mapping-150x107.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-multisite-wpml-domain-mapping-300x214.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><figcaption id=\"caption-attachment-332818\" class=\"wp-caption-text\">WP MultiSite, WPML and domain mapping &#8211; the idea<\/figcaption><\/figure><\/p>\n<h2>What you will need to handle WPML with different domains in a single WordPress<\/h2>\n<p>There are numerous solutions to combine multilingual sites with management of multiple sites from one place using domain mapping.<\/p>\n<p>Below we present both the general idea and a specific solution which has been working well for Patricia.<\/p>\n<h3>Network of client sites, WPML and domain mapping &#8211; what you will need<\/h3>\n<ol>\n<li>A site with WordPress installation switched to <a target=\"_blank\" href=\"http:\/\/codex.wordpress.org\/Create_A_Network\">WordPress Multisite mode<\/a>. This is going to be the main (and only) site to manage all your customers sites. Sounds great? Right, we share your opinion. <\/li>\n<li>A plugin which gives your users the option to map one \u2013 or multiple \u2013 domains to their own sites, example:\n<ul>\n<li>client-1.my-main-domain.com -> client-1-prefereable-domain.org<\/li>\n<li>client-2.my-main-domain.com -> client-2-other-domain.com<\/li>\n<\/ul>\n<\/li>\n<li>A plugin for WordPress Multilingual.<\/li>\n<\/ol>\n<h3>WordPress MultiSite, WPML and domain mapping &#8211; Patricia&#8217;s choice<\/h3>\n<ol>\n<li>WordPress Multisite under <a href=\"http:\/\/virtuaza.net\/\">virtuaza.net<\/a> domain\n<li><a href=\"https:\/\/premium.wpmudev.org\/project\/domain-mapping\/\">WPMUDev Domain Mapping Plugin<\/a><\/li>\n<li>WPML plugin for managing sites in different languages<\/li>\n<\/ol>\n<p>Patricia decided to use this<strong> WPMUDev Domain Mapping Premium Plugin<\/strong> because it comes from the same developers as another handy plugin Patricia uses, WPMUDev Multi-Domains, described further, in the last section.  <\/p>\n<blockquote><p><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/patricia.jpg\" alt=\"patricia, wp developer \" width=\"100\" height=\"118\" class=\"alignleft size-full wp-image-332844\" \/>Patricia explains: WPMUDev Domain Mapping and WPMUDev Multi-Domains both share and modify wp-content\/sunrise.php. <\/p>\n<p>In my opinion this is the reason why it\u2019s safer to have only one developer (WPMUDev) to provide both plugins, compared to use of the popular <a href=\"http:\/\/wordpress.org\/plugins\/wordpress-mu-domain-mapping\/\">WordPress MU Domain Mapping<\/a> (free in wordpress.org repo), which I&#8217;m sure would also work very well.<\/p><\/blockquote>\n<h2>Network of client sites, domain mapping and WPML &#8211; how to configure<\/h2>\n<p>Here are the steps to be taken to achieve a similar effect Patricia gained:<\/p>\n<ol>\n<li>Switch your WordPress to WordPress Multisite network.<\/li>\n<li>Install the WPMUDev Domain Mapping plugin at your network level.<\/li>\n<li>Install WPML plugin at your network level.<\/li>\n<li>For each new customer site:\n<ol>\n<li>In your network dashboard add a new site. Assuming your main domain is called my-main-domain.com your new child site name will be client-1.my-main-domain.com.<\/li>\n<li class=\"clearfix\"><figure id=\"attachment_332875\" aria-describedby=\"caption-attachment-332875\" style=\"width: 150px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-child-site-to-customer-domain-mapping.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-child-site-to-customer-domain-mapping-150x111.jpg\" alt=\"WP child site to customer domain mapping\" width=\"150\" height=\"111\" class=\"size-thumbnail wp-image-332875\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-child-site-to-customer-domain-mapping-150x111.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-child-site-to-customer-domain-mapping-300x222.jpg 300w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wp-child-site-to-customer-domain-mapping.jpg 800w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><figcaption id=\"caption-attachment-332875\" class=\"wp-caption-text\">WP child site to customer domain mapping<\/figcaption><\/figure>Let your customer map his\/her domains  (you can also do it yourself as superadmin). This way your customer will see the website under his\/her original domain name (see pictures below, in the next section).\n<p>Note. You might need manually set the mapped domain in the network admin dashboard under \u201cSites\u201d, and replace the default WP MulitiSite domain with your customer real domain.<\/li>\n<li>Let your customer translate the contents using WPML.<\/li>\n<\/ol>\n<\/ol>\n<h2>Managing different languages within a single site &#8211; how it looks like from a customer point of view<\/h2>\n<p>Now let\u2019s see how your WordPress child site looks like from your single customer point of view.<\/p>\n<p><strong>Due to using WPMUdev domain mapping plugin<\/strong> a customer can see his\/her site under their real domain (nice name), both within the dashboard and in the front end (look at the URLs in pictures below).<\/p>\n<p>Since your customer can see his\/her WordPress site as if it were a single standard WordPress install, there is nothing new in using WPML plugin. <strong>It works out of the box.<\/strong> <\/p>\n<p>Below we present <a target=\"_blank\" href=\"http:\/\/pjmartin.ch\/\">pjmartin.ch<\/a> website, one of Patricia\u2019s clients who uses WPML to present her site in three languages: <strong>English, German, French<\/strong>. pjmartin.ch site is accessible both from Patricia\u2019s WP network (by Patricia as a super admin user) and directly by her customer under the nice domain due to <strong>domain mapping<\/strong>.<\/p>\n<figure id=\"attachment_332997\" aria-describedby=\"caption-attachment-332997\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-in-customer-domain-dashboard.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-in-customer-domain-dashboard-300x228.jpg\" alt=\"WPML in a customer dashboard (pjmartin.ch)\" width=\"300\" height=\"228\" class=\"size-medium wp-image-332997\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-in-customer-domain-dashboard-300x228.jpg 300w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-in-customer-domain-dashboard-150x114.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-in-customer-domain-dashboard.jpg 779w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-332997\" class=\"wp-caption-text\">Using WPML to manage different languages in a customer site (pjmartin.ch dashboard)<\/figcaption><\/figure>\n<figure id=\"attachment_332893\" aria-describedby=\"caption-attachment-332893\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-and-customer-site-front-end.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-and-customer-site-front-end-300x228.jpg\" alt=\"Different languages in a customer site (fron-end)\" width=\"300\" height=\"228\" class=\"size-medium wp-image-332893\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-and-customer-site-front-end-300x228.jpg 300w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-and-customer-site-front-end-150x114.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpml-and-customer-site-front-end.jpg 741w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-332893\" class=\"wp-caption-text\">Different languages in a customer site (pjmartin.ch front-end)<\/figcaption><\/figure>\n<div class=\"clearfix\"><\/div>\n<p>Note, now a customer doesn\u2019t have to bother about:<\/p>\n<ul>\n<li>WP updates<\/li>\n<li>installing, buying and updating plugins<\/li>\n<li>installing and updating themes<\/li>\n<\/ul>\n<h2>Moving a step further &#8211; other handy plugins to manage your WordPress Mulitisite network<\/h2>\n<p>For all who have liked the approach and taken their appetites for more, Patricia reveals some other interesting plugins which have helped her in better maintaining various customer sites. <\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/premium.wpmudev.org\/project\/multi-domains\/\">WPMUDev Multi-Domains<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/premium.wpmudev.org\/project\/pro-sites\/\">WPMUDev Pro Sites<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/premium.wpmudev.org\/project\/ultimate-branding\/\">WPMUDev Ultimate Branding<\/a><\/li>\n<\/ul>\n<h3>WPMUDev Multi-Domains<\/h3>\n<p><figure id=\"attachment_332938\" aria-describedby=\"caption-attachment-332938\" style=\"width: 150px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/multi-domain-mapping.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/multi-domain-mapping-150x92.jpg\" alt=\"multi domain mapping\" width=\"150\" height=\"92\" class=\"size-thumbnail wp-image-332938\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/multi-domain-mapping-150x92.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/multi-domain-mapping-300x184.jpg 300w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/multi-domain-mapping.jpg 700w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><figcaption id=\"caption-attachment-332938\" class=\"wp-caption-text\">multi domain mapping<\/figcaption><\/figure>This plugin allows you to run an unlimited number of different domains from one WordPress Multisite installation. <\/p>\n<p>In practice this means that you can manage <strong>your own<\/strong> different domain in one place (from one WordPress) to have them for different purposes. Let\u2019s see an example:<\/p>\n<div class=\"clearfix\"><\/div>\n<ul>\n<li>my-business-domain.com &#8211; my master domain<\/li>\n<li>my-customers.net &#8211; domains for my customers<\/li>\n<ul>\n<li>client-1-my-customers.net maps to -> client-1-prefereable-domain.org (en, de, fr)<\/li>\n<li>client-2-my-customers.net maps to -> client-2-other-domain.com<\/li>\n<\/ul>\n<li>my-private-domain.com &#8211; another domain, for private purposes<\/li>\n<\/ul>\n<p><strong>Now let\u2019s see how it works for Patricia\u2019s case.<\/strong><\/p>\n<ul>\n<li>virtuaza.net &#8211; Patricia\u2019s main domain<\/li>\n<li>lesforums.ch &#8211; some other domain<\/li>\n<li>lessites.ch &#8211; domain for maintaining all customer domains (note, this is the name used before mapping to customer target domain)\n<ul>\n<li>pjmartin.lessites.ch -> pjmartin.ch<\/li>\n<li>biengrandir.lessites.ch -> biengrandir.ch<\/li>\n<\/ul>\n<\/ul>\n<blockquote><p><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/patricia.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/patricia.jpg\" alt=\"patricia, wp developer\" width=\"100\" height=\"118\" class=\"alignleft size-full wp-image-332844\" \/><\/a>Patricia says: lessites.ch is an added domain to virtuaza.net, which allows me to create a customer under lessites.ch instead of virtuaza.net. <\/p>\n<p>I want to keep subsites of virtuaza.net to mine ones only like support.virtuaza.net, etc.\n<\/p><\/blockquote>\n<h3>WPMUDev Pro Sites<\/h3>\n<p><figure id=\"attachment_332962\" aria-describedby=\"caption-attachment-332962\" style=\"width: 150px\" class=\"wp-caption alignright\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpmudev-pro-sites.jpg\"><img decoding=\"async\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpmudev-pro-sites-150x95.jpg\" alt=\"wpmudev pro sites\" width=\"150\" height=\"95\" class=\"size-thumbnail wp-image-332962\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpmudev-pro-sites-150x95.jpg 150w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpmudev-pro-sites-300x190.jpg 300w, https:\/\/wpml.org\/wp-content\/uploads\/2014\/02\/wpmudev-pro-sites.jpg 911w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><figcaption id=\"caption-attachment-332962\" class=\"wp-caption-text\">wpmudev pro sites<\/figcaption><\/figure><br \/>\nThis WordPress Plugin lets you create <strong>your own profitable site hosting network<\/strong>, like Edublogs.org or WordPress.com. Your users can upgrade their sites and access features like premium themes, plugins, extra storage, domain mapping or removing advertising.<\/p>\n<p>In Patricia\u2019s case Pro Sites plugin allowed to have customers registered on different levels and then to manage themes and plugins per level. See picture on the right.<\/p>\n<h3>WPMUDev Branding <\/h3>\n<p>Branding Plugin lets you completely revamp the WordPress backend in minutes. Here, it allowed Patricia to remove Permalinks from WordPress Setting menu for her customers sites. This way all customers sites are forced to use the same type of permalinks. <\/p>\n<p>&#8222;I like Ultimate Branding as I can make the dashboard a bit less confusing for beginners, and I could add my logo in the admin bar and a customized code in the footer of all subsites. I can even hide the permalinks menu entry if necessary.&#8220; Patricia comments.<\/p>\n<h2>What is your way to handle WPML and managing different domains?<\/h2>\n<p><strong>How do you like Patricia\u2019s approach?<\/strong> Do you think it could also work for you? What is your way to manage WPML and domain mapping from one place? Feel free to share your comment with us. <\/p>\n<p>If there is anything special about your site using WPML, please also let us know. Most interesting cases will be covered in the next articles in this new <a href=\"https:\/\/wpml.org\/de\/category\/fallstudien\/\">Case Studies<\/a> series. <\/p>\n<h3>Other articles related to WPML and Domain Mapping<\/h3>\n<ul>\n<li><a href=\"http:\/\/wpml.org\/faq\/server-setting-for-languages-in-different-domains\/\">Server setting for languages in different domains<\/a><\/li>\n<li><a href=\"\/?page_id=8986\">Multilingual Site Network with Domain Mapping<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Patricia is a WordPress freelancer. She builds and maintains sites for many different clients. To make life easier, Patricia uses a single WordPress install, running a multi-site network. This way, she can update WordPress and plugins once and keep all client sites up-to-date. Working with many European clients, naturally, some of Patricia&#8217;s sites are multilingual. [&hellip;]<\/p>\n","protected":false},"author":59141,"featured_media":850059,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"ep_exclude_from_search":false,"footnotes":""},"categories":[7965],"tags":[],"class_list":["post-332734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies"],"_links":{"self":[{"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/posts\/332734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/users\/59141"}],"replies":[{"embeddable":true,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/comments?post=332734"}],"version-history":[{"count":52,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/posts\/332734\/revisions"}],"predecessor-version":[{"id":850058,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/posts\/332734\/revisions\/850058"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/media\/850059"}],"wp:attachment":[{"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/media?parent=332734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/categories?post=332734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpml.org\/de\/wp-json\/wp\/v2\/tags?post=332734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}