{"id":133709,"date":"2014-11-08T08:00:50","date_gmt":"2014-11-08T13:00:50","guid":{"rendered":"http:\/\/premium.wpmudev.org\/blog\/?p=133709"},"modified":"2014-11-02T21:47:38","modified_gmt":"2014-11-03T02:47:38","slug":"how-to-keep-your-wordpress-clients-out-of-trouble","status":"publish","type":"post","link":"https:\/\/wpmudev.com\/blog\/how-to-keep-your-wordpress-clients-out-of-trouble\/","title":{"rendered":"How To Keep Your WordPress Clients Out Of Trouble"},"content":{"rendered":"<p>When you\u2019ve created a beautiful WordPress site for a client, the last thing you want is for your client to break it. It\u2019s also the last thing they want. The level of comfort that clients have with operating their new site ranges from confident enough to be dangerous, to being fearful of clicking anything at all.<\/p>\n<p>So from both perspectives it can be beneficial for developers to client-proof their sites. This simply means putting in place a few safety nets that protect the clients from unintended \u201coopsies\u201d and the developer from the fall-out of those \u201coopsies.&#8221;<\/p>\n<p>Philosophically, I don\u2019t believe in crippling WordPress so much that clients can\u2019t do anything at all. I have a lot of clients that come to me after they\u2019ve been handed a site from their developer, confused as to why they can\u2019t do all the things they\u2019ve read about, such as installing plugins. They have no idea they are not in full control of their site. So I definitely advocate for educating your clients about the steps you are taking and why you are taking them. Be transparent with what you are doing and make sure that if the relationship with that client ends, to return to\u00a0them full control of their site.<\/p>\n<p>That said, in this Weekend WordPress Project\u00a0we&#8217;ll take a quick look\u00a0at two plugins that can help you protect clients from themselves and make your life easier. These plugins\u00a0take a two-pronged approach \u2013 firstly, limiting what users can do in the dashboard and, secondly, providing a log of all\u00a0changes on the site.<\/p>\n<figure id=\"attachment_133917\" class=\"wp-caption aligncenter\" data-caption=\"true\"><a rel=\"lightbox[133709]\" class=\"blog-thumbnail\" href=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2014\/11\/keep-clients-out-of-trouble.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"size-ratio-large wp-image-133917\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2014\/11\/keep-clients-out-of-trouble-700x218.jpg\" alt=\"Keep clients out of trouble\" width=\"700\" height=\"218\" \/><\/a><figcaption class=\"wp-caption-text\">Keep your clients out of trouble and protect their websites.<\/figcaption><\/figure>\n<ul class=\"dev-tutorial-list\"><li class=\"dev-tutorial-list__item\"><header class=\"dev-tutorial-list__item__header\"><h3 class=\"dev-tutorial-list__item__title\">Webmaster User Role<\/h3><\/header><section class=\"dev-tutorial-list__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"165\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2014\/11\/webmaster-user-role-600x165.jpg\" class=\"attachment-ratio-large size-ratio-large\" alt=\"Webmaster User Role image\" aria-hidden=\"true\" \/><\/section><!-- end dev-tutorial-list__item__image --><section class=\"dev-tutorial-list__item__content\"><p><a title=\"Webmaster User Role WordPress Plugin\" href=\"https:\/\/wordpress.org\/plugins\/webmaster-user-role\/\" target=\"_blank\">Webmaster User Role<\/a> creates an additional user role called &#8216;Admin&#8217; that sits between the in-built Administrator and Editor roles. The idea is to give the site owner some more useful privileges than editor, such as managing widgets, but without the ability to manage plugins or change themes.<\/p>\n<p>One of the really nice things about this plugin is its built-in integrations with other common plugins. For example, if you\u2019re using Advanced Custom Fields on the site, Webmaster User Role will prevent clients meddling with your custom field settings. It provides similar protections for some other common plugins like Contact Form 7, WordPress SEO by Yoast, Gravity Forms and more.<\/p>\n<p>The <a href=\"http:\/\/tylerdigital.com\/products\/webmaster-user-role\/\" target=\"_blank\">Pro version<\/a>\u00a0of the plugin will give you even more fine-grained control over customizing the settings and the dashboard. However, even with the free version you can still fine tune the privileges of the new user role by installing the free plugin <a href=\"https:\/\/wordpress.org\/plugins\/user-role-editor\/\" target=\"_blank\">User Role Editor<\/a>.<\/p>\n<p>Webmaster User Role\u00a0is great if your client is on a maintenance contract with you. If you need your client to be a little more independent and add their own plugins, you will want to tweak some of the default permissions.<\/p>\n<\/section><!-- end dev-tutorial-list__item__content --><footer class=\"dev-tutorial-list__item__footer\"><p>Interested in Webmaster User Role?<\/p><div class=\"dev-tutorial-list__item__cta\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/webmaster-user-role\/\" class=\"dui-btn dui-btn--sm dui-btn--brand dev-btn--Details\">Details<\/a><\/div><!-- end dev-tutorial-list__item__cta --><\/footer><!-- end dev-tutorial-list__item__footer --><\/li><!-- end dev-tutorial-list__item --><li class=\"dev-tutorial-list__item\"><header class=\"dev-tutorial-list__item__header\"><h3 class=\"dev-tutorial-list__item__title\">Stream<\/h3><\/header><section class=\"dev-tutorial-list__item__image\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"165\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2014\/11\/stream-600x165.jpg\" class=\"attachment-ratio-large size-ratio-large\" alt=\"Stream image\" aria-hidden=\"true\" \/><\/section><!-- end dev-tutorial-list__item__image --><section class=\"dev-tutorial-list__item__content\"><p>Another great tool that lets developers troubleshoot client-created issues is a plugin called <a href=\"https:\/\/wordpress.org\/plugins\/stream\/\" target=\"_blank\">Stream<\/a>.<\/p>\n<p>Stream keeps a log of\u00a0all user activities that occur in\u00a0the backend of the site, such as creating and deleting content, updating plugins etc. This is handy because oftentimes clients will report an issue with a site without letting you\u00a0know what happened in the lead-up to the problem. Or perhaps they updated some plugins or performed some other tasks but they don\u2019t remember exactly what they did.<\/p>\n<p>Stream will let you see exactly what changes have been made, what plugins have been updated and so on,\u00a0therefore helping to speed up the troubleshooting process.<\/p>\n<p>Stream used to save the information in the site\u2019s database, which in some cases could lead to some extra database bloat. In the latest version, this have been switched to a cloud-based model, which means that when you activate the plugin you are asked to connect it with your WordPress.com account.<\/p>\n<p>I saw some pushback from the plugin&#8217;s users in various online groups about this change, but the process is painless enough and the plugin continues to function as it did before. With the data being kept out of your own database it avoids any potential performance issues.<\/p>\n<\/section><!-- end dev-tutorial-list__item__content --><footer class=\"dev-tutorial-list__item__footer\"><p>Interested in Stream?<\/p><div class=\"dev-tutorial-list__item__cta\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/stream\/\" class=\"dui-btn dui-btn--sm dui-btn--brand dev-btn--Details\">Details<\/a><\/div><!-- end dev-tutorial-list__item__cta --><\/footer><!-- end dev-tutorial-list__item__footer --><\/li><!-- end dev-tutorial-list__item --><\/ul><!-- end dev-tutorial-list -->\n<p><em>Image source: <a href=\"\/\/www.flickr.com\/photos\/floringorgan\/7843099636\/\" target=\"_blank\" rel=\"noopener\">Sunset Memories<\/a> by Florin Gorgan.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you\u2019ve created a beautiful WordPress site for a client, the last thing you want is for your client to break it. It\u2019s also the last thing they want. The level of comfort that clients have with operating their new site ranges from confident enough to be dangerous, to being fearful of clicking anything at all.<\/p>\n<p>In this Weekend WordPress Project\u00a0we&#8217;ll take a quick look\u00a0at two plugins that can help you protect clients from themselves and make your life easier. These plugins\u00a0take a two-pronged approach \u2013 firstly, limiting what users can do in the dashboard and, secondly, providing a log of all\u00a0changes on the site.<\/p>\n","protected":false},"author":71840,"featured_media":133917,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[4],"tags":[10810,9993],"tutorials_categories":[],"class_list":["post-133709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plugins","tag-wordpress-security","tag-user-roles"],"_links":{"self":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/133709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/users\/71840"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/comments?post=133709"}],"version-history":[{"count":1,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/133709\/revisions"}],"predecessor-version":[{"id":215738,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/133709\/revisions\/215738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media\/133917"}],"wp:attachment":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media?parent=133709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/categories?post=133709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tags?post=133709"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=133709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}