Have you ever thought of what would happen if you wake up tomorrow and realize that your site is no longer functional?

For many of us, our websites are a gateway to reach our clients and bring in business. You spend a lot of time carefully designing your site and having the best content possible. What would happen if you lost all of that in an instant? Whenever I have posed this question during meetups, many people have asked me “How likely is that my site will crash? Hosting companies do take care of stuff like that right?” Well, yes and no.

Hosting companies do provide you with options to backup your site. Some hosting companies do an automatic backup every day. That is the good news. But, the bad news is that even with hosting companies doing that, it is advisable to have a plan to create a backup regularly and store it away from your server. Hosting companies with very good intentions might also lose your data because of reasons beyond their control. In that case, your backups are also lost.

Using WordPress plugins is one of the easiest ways to backup your site regularly. These plugins let you schedule backups, store them off site, and also help you restore your site from a backup if needed. They make all this very easy. There are many backup plugins for WordPress – both free and premium. Choosing one of them could be very time consuming if you don’t know what you are looking for.

Here are some pointers to help you choose the right backup plugin for your site.

Cost

Free plugins are almost always preferred. Even if the plugin is not entirely free, it is always nice to be able to install a free version and get the hang of it. I always start with a search in the WordPress plugins repo to see what plugins I can find.

Ease of use

The plugin should be easy to use for the average user. If you have a dedicated developer taking care of your site, then you don’t have to worry about this. If you are managing the site yourself, then you do not want to spend hours trying to configure the plugin. Most backup plugins are pretty easy to use, but everybody is different and has a different knowledge level when it comes to WordPress. So, if you download a plugin and are not sure about it, deactivate it and download another one. Try out a few plugins before you decide which one works for you.

Provide backup of entire site

You should be able to backup your entire site – the site files and the database. The files include all the WordPress content, your plugins, themes, uploads etc. Some plugins do not provide a database backup or they might just provide an xml file of the content along with the database. That is not enough. You should have the option to backup not just the site files and the database, but also be able to include non-WordPress files in the backup.

Easy restoration of backups

The entire point of a backup is to be able to restore it back when you need it. So, make sure you understand how the restoration process works. The plugin should give you the option to restore only parts of the backup if needed – for example if you only want to restore your plugins, but not the entire site, you should be able to do so.

If you are restoring an entire site, you should be able to keep the downtime to a minimal. Make sure there is a way to restore your site even when you are not able to access the WordPress admin.

Save the backup in a remote cloud storage

This is one of the most important things. When you create a backup, you should save it away from your hosting server. This ensures that even if you cannot access your site via FTP, you will still have a complete backup of your site in case you need to re-install the site. It will be very easy if the backup plugin lets you store the backup in a remote cloud storage like Dropbox, OneDrive, Amazon cloud storage etc. Being able to do that takes out one more step in your list. You can also directly download it to your cloud storage, but I prefer to set it up and not have to worry about it. This is especially important if you are scheduling automatic backups.

Setting up automatic backups

Being able to set up automatic backups is another important thing to consider. This is especially true if you have a large site with lots of content. It is advisable to take a backup every day or at least every week. So, you can set up a backup job to run on a particular day or time and forget about it. I would still go in and check randomly to make sure the plugin is doing its job, but at least you don’t have to worry about it on a daily basis.

Customer Support

Having good customer support is important for any plugin (free or premium). If you have a question or an issue about the plugin, you should be able to contact customer support easily. And, you should have your questions answered in a timely manner. They might not always be able to fix your issue right away or give you help without you paying for the support. But, you should get a response from them regarding your question. If the customer support is good, it is likely that they will fix any issues with the plugin.

Plugin Updates

This is as important as customer support. WordPress is constantly changing with new features being added and bugs being fixed. All the WordPress plugins also need to be maintained and updated on a regular basis. They should be compatible with a fairly recent version of WordPress even if not with the latest version. If you look on the plugin page, it tells you when the plugin was last updated. Now, WordPress does give you a warning if the plugin was not updated for more than 2 years, so that’s easy. But, with a backup plugin, I would be slightly wary if it wasn’t updated in the last 6 – 8 months or so. That doesn’t necessarily mean that the plugin is broken, it just means that you should be cautious when you use it.

It might be difficult to find a free plugin that gives you all the above mentioned features. You might have to pick what is more important and what works best for your site. Here are a couple of plugins that I use for myself and my clients.

 

 

I have been working on integrating the Chamber Dashboard plugins with WooCommerce (WC) to give our users payment options other than PayPal. As part of this WC integration, I have had to create products, orders and add line items to the orders to show the custom information coming in from our plugins. Although there is a ton of documentation when it comes to WC, I had to struggle to get the line items added correctly. This was especially difficult because the orders were being created from the admin side and not by the user.

There is a front end form that comes with the Member Manager plugin that users use to either register their business for the first time or renew their businesses with the Chambers. Either way, when they fill out the form, there is an invoice being created on the back end which gets sent to the user who would pay with either a check or using PayPal.

Since we are replacing PayPal with whatever payment options are set in WC, the users will be taken to the order page when they submit the form. When the chambers decide to use WC payments, an order gets created along with the invoice when the form is filled. But this order by default only has the product information (products here are the membership levels that have been already set).

Why are line items needed here?

The chambers can choose to add processing fee, tax, or donation amount fields to the front end form, which need to be added to the WC order as well. These numbers usually change for each order, so they have to be added to the order when the order is created (when the front end form is filled out). Fortunately, WC has an easy way of adding line items to the orders using the function wc_add_order_item().

Below is the function used to add an order in WC. As part of that process, wc_add_order_item() is called which creates the line items with the information from the form.

Creating a new order in WooCommerce

//Create a new order in WooCommerce
function cdashmm_create_wc_order($address, $product_id, $total, $customer_id, $donation, $tax, $processing_fee){
   if(cdashmm_check_mm_connected_to_wc()){
       global $woocommerce;
       $args = array(
           'customer_id'   => $customer_id,
           'created_via'   => 'Chamber Dashboard Member Manager',
           'add_order_note' => 'Created via Chamber Dashboard Member Manager');
       // Now we create the order
       $order = wc_create_order($args);
       // The add_product() function below is located in /plugins/woocommerce/includes/abstracts/abstract_wc_order.php
       $order->add_product( get_product($product_id), 1); // This is an existing SIMPLE product
       $order->set_address( $address, 'billing' );
       $order->set_created_via(  $args['created_via'] );
       $order->add_order_note( $args['add_order_note'] );
       $order->set_total( $total );
       $order->update_status("Completed", 'Imported order', TRUE);
       $order_id = $order->id;
               
       if($donation){
        $item_id = wc_add_order_item($order_id, array('order_item_name'    =>    __('Donation', 'cdashmm'), 'order_item_type'    =>    'fee'));
          if ($item_id) {
           wc_add_order_item_meta($item_id, '_line_total', $donation);
           wc_add_order_item_meta($item_id, '_line_tax', 0);
           wc_add_order_item_meta($item_id, '_line_subtotal', $donation);
           wc_add_order_item_meta($item_id, '_line_subtotal_tax', 0);
          }
       }
       if($processing_fee){
        $item_id = wc_add_order_item($order_id, array('order_item_name'    =>    __('Processing Fee', 'cdashmm'), 'order_item_type'    =>    'fee'));
          if ($item_id) {
           wc_add_order_item_meta($item_id, '_line_total', $processing_fee);
           wc_add_order_item_meta($item_id, '_line_tax', 0);
           wc_add_order_item_meta($item_id, '_line_subtotal', $processing_fee);
           wc_add_order_item_meta($item_id, '_line_subtotal_tax', 0);
          }
 }
       if($tax){
        $item_id = wc_add_order_item($order_id, array('order_item_name'    =>    __('Tax', 'cdashmm'), 'order_item_type'    =>    'fee'));
          if ($item_id) {
           wc_add_order_item_meta($item_id, '_line_total', $tax);
           wc_add_order_item_meta($item_id, '_line_tax', 0);
           wc_add_order_item_meta($item_id, '_line_subtotal', $tax<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>);
           wc_add_order_item_meta($item_id, '_line_subtotal_tax', 0);
       }
 }
   }
   return $order_id;
}

In the function above, the wc_add_order_item() is called for each line item that needs to be created.
For example, if there is a donation field enabled on the front end form, I would like to include the donation amount as a line item in the order.

if($donation){
   $item_id = wc_add_order_item($order_id, array('order_item_name'    =>    __('Donation', 'cdashmm'), 'order_item_type'    =>    'fee'));
  if ($item_id) {
    wc_add_order_item_meta($item_id, '_line_total', $donation);
    wc_add_order_item_meta($item_id, '_line_tax', 0);
    wc_add_order_item_meta($item_id, '_line_subtotal', $donation);
    wc_add_order_item_meta($item_id, '_line_subtotal_tax', 0);
  }
}

So, this creates a line item with the value of donation from the user submitted form. The same is done for Processing Fee and the tax. Here is a screenshot of the WC order on the back end with processing fee and the tax added as items to the order. The donation was disabled on the site. So, it was not added to the order.

 

Adding line items to WooCommerce order

This enables us to store all the order information in one place and the total now correctly reflects the items in the order.

 

Almost 2 years ago, when I was planning to learn more about WordPress plugin development and get my hands dirty with some coding, I was given an amazing opportunity.

Morgan Kay who developed the Chamber Dashboard plugins asked me if I would be interested in taking over the development of those plugins. She was taking up a full time job and wouldn’t have time to work on these plugins anymore. I was honored that she considered me. I was very happy for the opportunity, but was also very scared. I hadn’t written a proper plugin before except for some custom scripts for clients.

Though the code was all pretty straightforward, the actual process was new to me. It took me a few months to get on board and get acquainted with the plugins. Morgan was working with Lisa Kruczynski from Lisa K digital media consulting. So, the three of us started working together. Morgan is a great mentor. I got started with answering support questions for which I had to dig into the code to figure out what was happening. The more questions I answered, the better I understood the plugins.

In addition to the plugins, I also had learn git. I knew about git before, but I had never really spent the time to learn how to work with it. So, I learned it all together. Initially, the progress was very slow as I was in the learning phase and was worried about screwing things up. My husband helped me a lot with all of this. He spent hours trying to help me write good, reusable code, teaching me how to debug and giving me tips and tricks to troubleshoot.

I started working on a couple of pressing issues. They went well, and my confidence level went up, too. The first time I had to push my changes to the repo, it was a nightmare. It took me forever to do that and I was dead scared about breaking something. Finally, when I pushed the code and nothing broke, it felt wonderful. Morgan walked me through the entire thing over Slack.

Since that first code push almost two years ago, I haven’t looked back. I started working on a premium plugin that would let members edit their businesses. It took a lot longer than I had anticipated, but every minute was worth it. We released the Member Updater plugin in February this year. That was my first WordPress plugin and releasing it felt like a dream come true. The best part was what I learned along the process. I had to obviously put in long hours trying to learn the little things. I remember last year during Christmas break, I was working on finishing the Member Updater and getting it ready for release. Can’t believe it has already been an year.

This entire year was good in terms of Chamber Dashboard plugin development. After releasing the Member Updater, we updated all the plugins with some essential features users have been asking for. The big thing I worked on this year was integrating WooCommerce with Chamber Dashboard so that the members can use payment systems other than PayPal. It was a very challenging project. It started out as a WooCommerce addon for the Chamber Dashboard Member Manager plugin and finally, it morphed into being a pro version of the Member Manager plugin. This plugin also took much longer than we expected, but there was a big learning curve with WooCommerce.

I am very proud today to say that the Member Manager Pro version is ready to be released. Even though I have been pushing updates and have released my own plugin this year, I am as nervous as I am happy about the new plugin.

One of the big things I learned in the past two years was dealing with plugin support. Lisa helps me a lot with support and honestly, I am not sure I can deal with support as nicely as she does. Sometimes the users are patient and understand when we ask them to check for plugin or theme conflicts. Other times, they want answers right away. I also learned not to be afraid of taking up big things. If I hadn’t taken up these plugins, I probably would still be figuring out how to write small plugins. I am also glad that my husband pushed me to accept this and work on it.

We have already planned a couple of more premium plugins to add to the collection along with adding a bunch of interesting features to Member Updater and Member Manager Pro. I am excited about them and can’t wait to get started.

I have been using WordPress for more than 5 years and I have played around with plugins a lot. Plugins are an essential part of any WordPress site. Every WordPress site is unique and the plugins we use for the site will depend on the functionality of the site.  Here, I am going to list a few plugins that are essential to any WordPress site irrespective of it’s functionality. The plugins I will be talking about here do not have anything to do with how the site functions. These plugins do not add anything new to the front end of the site (except for one). They are tools that help with site maintenance and ease of use from the back end.

There are a lot of plugins out there and most of them are very good. The plugins I mention here are the ones that I have been using or have used it on a client’s site and I know that it wrorks well. Here are the plugins in no particular order. For each of these plugins, we will be looking at why these plugins are important, what are the easy to use plugins for each and some details of the plguins.

  1. Backup Plugins
  2. Security Plugins
  3. SEO Plugins
  4. Contact Form Plugins
  5. Plugins that enhace the WYSIWYG editor capabilities

Let’s look at each of them in detail:

Backup Plugins

Why are backup plugins important?

They make it very easy for you to make a backup of your site. It is very important to make a backup of your site on a regular basis. Even if your hosting is providing backup, it is still a good practice to make a backup of your site. It is also important to store your backup away from your site so that if your site gets affected by malware, you can restore it from your backup. It is always a good idea to save the backup in a cloud server – Dropbox, OneDrive, Amazon S3 etc…

The backup plugins give you all these features and more. They make it super easy to make backups with the single click of a button. They give you options to automatically email the backup files to yourself or send the backup to a cloud server. You can also schedule backups and not have to worry about it anymore.

There are two backup plguins that I have used and are very good.

BackWpUP – https://wordpress.org/plugins/backwpup/

This is a free plugin with a pro option. For most of the sites, the free version works fine. It is very easy to setup and also has some tutorials to get you started. Free version has options to backup to Microsoft Azure, Dropbox, Rackspace Cloud Files, FTP Server, Web Space and Sugar Sync.

UpDraftPlus – https://wordpress.org/plugins/updraftplus/

This is also a free plugin with a pro option and woks fine for big sites as well. I currently use it on one of my clients’s sites which has a lot of images. The backup is done pretty quickly and is sent to Dropbox. It is very simple to setup and the free version has options to backup to Dropbox, Gogle Drive, FTP, S3, Rackspace and email.

Security Plugins

Why are Security Plugins important?

Security plugins protect your WordPress site. Any WordPress site needs a security plugin. I have met many people who say that they do not have any e-commerce or that their’s is a very small site and so they don’t use a security plugin. But, small or big, ecommerce or not, you need to make sure your site is secure. Websites are hacked because of weak passwords, vulnerabilities in plugins or themes or if the site is not up to date. Server vulnerabilities can also cause your site to be hacked. So, your site must be secure.

A couple of the most popular security plugins and a few features of each of the plugins.

WordFence – https://www.wordfence.com/

  • Gives you a detailed IP info
  • Scanns for malware
  • Repairs files
  • Blocks Brute Force attacks
  • Country blocking

iThemes Security – https://ithemes.com/security/

  • Brute force protection
  • File change detection
  • Strong password enforcement
  • Hide login and admin

SEO Plugins

Search Engines bring traffic to your site and so you want to make sure you have the terms the user is searching for. SEO plugins make it easier for you to add keywords and meta descriptions for every page and post on your site. They actually have a lot of features that help with SEO.

The most popular SEO plugins is Yoast SEO (formerly known as WordPress SEO by Yoast).  It has a free and premium version. Simple to setup and has a bunch of features – post titles and meta descriptions, Breadcrumbs, XML Sitemaps etc. The free version should be pretty good for a small site.

Google Analytics

I want to mention Google Analytics here because it kind of goes hand in hand with your SEO. Google Analytics is a web analytics service that tracks and reports website traffic. If you are trying to improve your SEO, then you should also track your site with Google Analytics. It gives you a lot of statistics about your site like the number of people visiting your site, the pages they viewed, the most popular page on your site etc. It also gives you information regarding keywords used by people to search for your site. This helps with SEO as you can assess the keywords and make improvements.

Google Analytics is free. You can login with your Google account and get a tracking code for your site. After your site is setup, you can either login to Google Analytcs site to view your data or you can install a Google Analytics plugin that will show you the data in your wp-admin dashboard. There are many different Google Analytics plugins. I mentioned the one I use.

Contact Forms

Contact forms are the most important part of any website. They need to be simple and user friendly. The most popular contact form plugin is the Contact Form 7. Very easy to setup and you can have different types of contact forms on your site. You can specify the required fields, can have multiple email addresses in a dropdown etc. The styles can be customized to match your theme (you need to know some CSS for this). You can also add the captcha feature with the form with reCaptcha.

Plugins that enhance the WYSIWYG Editor capabilities

The WYSIWYG editor makes it very easy to write content on the posts and pages. It gives us a number of tools to style the text by changing font sizes and colors. But, there are a few features missing in the default WYSIWYG editor. TinyMCEAdvanced improves the features of the editor. They add features like adding a table, or background color for the text etc right from your editor. It comes in pretty handy when you want to insert a simple table in your post or page.

The TinyMCE Widget plugin gives you a nice little widget on your sidebar. You can use this instead of a text widget and you will get all the functionality of the post/page editor in your sidebar.

There are a few more plugins that can be mentioned here which might be useful for majority of the sites.

JetPack – A huge set of different plugins in one pack. You can enable or disables the individual modules.

Wp-Cache – Helps with caching the site so that the pages load faster

Broken Link Checker – If you have a lot of pages on the site, you can track all the links in different pages/posts using this plugin. It shows you if a link is broken so that you can fix it.

Wp Help – Useful little plugin where you can write helpful instructions for managing your site.

Leave a Reply