WooCommerce Automatic Google Cloud Printing – Documentation

Documentation index

Plugin installation

This plugin is quite large (over 7Mb), because it contains a lot of code for creating PDF files. Normally, a plugin that you download can be installed and activated in your WordPress dashboard, in the Plugins -> Add New -> Upload page.

If your website gives you an error, telling you that you are not allowed to upload large files, then you can use either of these two methods instead:

  1. Go to the Plugins -> Add New page in your WordPress dashboard. Search for the plugin “Upload Larger Plugins”, and then install and activate it. Then return to the Plugins -> Add New -> Upload page, and try again.
  2. Or, unzip the plugin zip on your computer. You will then have a directory called “woocommerce-printorders”. Upload this whole directory via FTP into your WordPress plugins directory (wp-content/plugins). Then visit the Plugins page in your WordPress dashboard and activate the plugin.

Plugin configuration and usage

There are three things to do to configure this plugin, after you have installed it:

  • Firstly, you need to set up your printer with Google Cloud Print. To learn about how to do this, go to the Google Cloud Print website. Come back to this documentation once you have successfully printed a test page to your printer from the Google Cloud Print website.
  • Secondly, you need to connect your website to Google Cloud Print. In your WordPress dashboard, go to the Settings -> Google Cloud Print page. Follow these instructions to set up the connection to Google Cloud Print.
  • Thirdly, you need to choose which print-outs to send to Google Cloud Print when an order is completed. This is done in your WordPress dashboard, in the WooCommerce -> Settings page. You simply need to check all the boxes for all the print-outs which you wish. To customise the print-outs, follow the links shown (and see the section below).

Plugin support and FAQs (including pre-sale FAQs)

How do I access my email?

You can use webmail, here: https://www.simbahosting.co.uk/webmail

Or, to download email into an application on your computer, phone or tablet (e.g. Outlook, Windows Mail, iPhone, Eudora, Thunderbird, Entourage, iPad, etcetera), use these details, below. For some particular programs, there are also screenshots in further questions, below. If you are using Outlook or Thunderbird, then you may find that you need to know nothing except your email address and password – those programs have automatic configuration features.

Server: mail.simbahosting.co.uk
Username: Same as your full email address, in lower case
Other options: Choose encryption (may be called “TLS”, “SSL” or “STARTTLS”)

Outgoing mail also requires a username and password, so enter these as well as for incoming.

In Outlook (and any other programs that show it), do NOT tick the “SPA” option.

Your mail program may ask you about “ports”. The defaults should work; however, in Outlook if you tick “SSL” then for your outgoing mail you will need to change the outgoing port from 25 to 465. See the screenshots in the Outlook question, below.

If your program asks you to choose between “POP” and “IMAP” and you do not understand the meaning of these, then choose POP unless you are on a phone in which case choose IMAP.

Where can I download my plugin purchase?

After purchasing one of our WordPress plugins, you can download from any of three or four places:

  1. The “thank you” page in your web browser, that appears immediately after completing payment.
  2. From your Simba account, here.
  3. Using the link in your order confirmation email.
  4. If you have already installed and begun using the plugin, you can obtain updates (when available) from the “Plugins” page in your WordPress dashboard.

My shop has opening hours that go across midnight. How do I configure this?

If you are open past midnight, then enter two sets of opening hours (one until 24:00, the other starting from 00:00 the next day).

Hours crossing midnight

(If you close at midnight, enter that as “until 24:00”, not “until 00:00”).

What do I need to set up on my phone/tablet (etc.) in order to generate the codes?

This depends on your particular make of phone, and your preferences. Google have produced a popular app called “Google Authenticator”, which is a preferred option for many people because it is easy to use and can be set up via just scanning a bar code off your screen – follow this link, and ignore the first paragraph that is talking about 2FA on your Google account (rather than being relevant to this plugin).

What if I do not have a phone or tablet?

Many and various devices and programs can generate the codes. One option is an add-on for your web browser; for example, here are some apps and add-ons for Google Chrome. Wikipedia lists various programs for different computers.

What is two factor authentication?

Basically, it’s to do with securing your logins, so that there’s more than one link in the chain needing to be broken before an unwanted intruder can get in your website.

By default, your WordPress accounts are protected by only one thing: your password. If that’s broken, then everything’s wide open.

“Two factor” means adding a second requirement. Usually, this is a code that comes to a device you own (e.g. phone, tablet) – so, someone can’t get into your website without getting hold of your device. You can get a longer answer from Wikipedia.

Sometimes it is also called multi-factor authentication instead of two-factor – because someone could secure their systems with as many factors as they like.

How does two factor authentication work?

Since “two factor authentication” just means “a second something is necessary to get in”, this answer depends upon the particular set-up. In the most common case, a numeric code is shown on your phone, tablet or other device. This code could be sent via an SMS, but this depends on the mobile phone network working, and is technically easy to hijack (and so is not recommended by security professionals). So, this plugin does not uses that method. Instead, it uses a standard mathematical algorithm to generate codes that are only valid once each, or for only for 30 seconds (depending on which algorithm you choose). Your phone or tablet can know the code after it has been set up once (often, by just scanning a bar-code off the screen).

What are the shortcodes available in the two factor authentication plugin?

The following short-codes are available:

twofactor_user_settings : This short-code will display the whole user configuration. Use this to allow your users to get/set their TFA settings. Alternatively, to design the page yourself, you can use the individual short-codes, following:

twofactor_user_settings_enabled : Display the option to turn TFA on or off. If you supply the parameter style=”require_current” then the user will have to enter the current code correctly to be allowed to activate TFA.

twofactor_user_qrcode : Display the user’s QR code for scanning.

twofactor_user_emergencycodes : Display the user’s emergency codes.

twofactor_user_advancedsettings : Display the user’s advanced settings (e.g. selecting TOTP or HOTP).

twofactor_user_privatekeys : Display the user’s private keys. Use the ‘type’ parameter, with values ‘full’ (default), ‘plain’, ‘base32’ or ‘base64’ to control exactly what is displayed.

twofactor_user_privatekeys_reset : Display a link for the user to reset (change) their private key.

twofactor_user_currentcode : Display the current TFA code.

twofactor_user_presstorefresh : Wrap this shortcode around any HTML that you want to cause the current TFA code (displayed by the twofactor_user_currentcode shortcode) to refresh when clicked. i.e. Use both an opening and closing shortcode tag; and whatever you put inside will cause an update if the user clicks on it. Example:

Example short-code usage

twofactor_conditional : Wrap this shortcode around any content that you wish to be displayed only if the condition is met. The condition is specified by the “onlyif” parameter, with valid values: active, inactive, available, unavailable. The content will be shown depending on whether the user has TFA available (i.e. the administrator has allowed it for their user level)/activated. You can use this, for example, to display notices to your users to suggest that they activate TFA, or to remind them that it is available, etc.

Here are a couple of screenshots of examples of using these shortcodes. In the first, the site owner is using the WordPress page editor to design his own TFA-setup page for users, using short-codes:

Designing your own page for users, using short-codes

In the second is an example of the twofactor_conditional shortcode (make sure that you do not have anything cacheing a page it is used on):

Conditional shortcode example

I lost my device that has pass-codes – or, they don’t work. What to do?

If your pass-code used to work, but no longer does, then check that the time on your device that generates them is accurate (it needs to agree with the webserver within around 30 seconds; note that time zones are irrelevant to this – what they need to agree on is how many seconds have passed since it became the year 1970 in London).

If you cannot get in and need to disable two-factor authentication, then add this to your wp-config.php file, using FTP, SFTP, shell access or the file manager in your hosting control panel:

define('TWO_FACTOR_DISABLE', true);

Add it next to where any other line beginning with “define” is.

Alternatively, if you have FTP, SFTP, shell access or cPanel access to your web hosting space, you can de-activate the plugin; see this article: https://updraftplus.com/understanding-wordpress-installs-plugins/

What are HOTP and TOTP?

These are the names of the two mathematical algorithms that are used to create the special codes. These are industry-standard algorithms, devised by expert cryptographers. HOTP is less popular, but the device that generates the codes does not need to know the correct time (instead, the codes are generated in a precise sequence). TOTP is much more popular, and generates codes that are only valid for 30 seconds (and so your device needs to know the time). I’d recommend TOTP, as HOTP can be annoying if something causes the sequences to get out of sync.

How can I change the position of the VAT number box on the WooCommerce checkout page?

You can do this using the wc_eu_vat_number_position filter. You should set the filter value to be any position which your WooCommerce template supports, using WordPress’s standard filtering mechanism. In this context, a “position” means an WordPress action which your template calls.

The default position is woocommerce_checkout_billing . (This corresponds to the WordPress action of that name; it is the default because all templates will somewhere call that action). Here is an example of changing it to woocommerce_checkout_after_customer_details:

add_filter('wc_eu_vat_number_position', 'my_wc_eu_vat_number_position');
function my_wc_eu_vat_number_position() { return 'woocommerce_checkout_after_customer_details'; }

To know what positions (actions) exist in your template, you need to either read its code (if you know how to do that), or to speak to a competent developer, or the theme author. Unfortunately it is not easy to automatically get such a list, and beyond the scope of the VAT plugin.

Note that not every template position is a technical possibility – you need to keep it within the main body of address selection.

Concerning customisation of the above code, if you do not have your own PHP developer working on the project: this FAQ may also be relevant: Can you write some code for me, to customise the plugin?

How can I customise the plugin’s behaviour or particular messages?

Beyond the settings (which you can find in WooCommerce -> Settings -> General in your dashboard), the plugin has many hooks for WordPress developers to use, which allow editing both of the plugin’s behaviour and of any particular messages it shows the customer.

As well as discovering them through inspection of the code, developers can find them described under the “Developer’s Information” section on the product page, together with examples and a link to a tutorial. Go to that section to see how it’s done.

To customise WooCommerce email templates used by the plugin, copy the email template (from the subdirectory “wootemplates” within the plugin’s directory) into your child theme, using the WooCommerce documentation available here. For example, if editing the “email-addresses.php” template, this would be copied to wp-content/themes/(your child theme)/woocommerce/emails/email-addresses.php . Then you can edit it as you will.

Please note that your purchase of the plugin does not include the cost of providing customisations for you.

What versions of WooCommerce and WordPress does the plugin support?

We support WordPress 3.2 onwards, and WooCommerce 2.1 onwards. We will always support the latest versions. Please do make sure that you are running the current, and not an out-dated, version of our plugin before requesting support from us.

How can I configure an opening time that spans midnight?

If you are open from before midnight until after it, then you should enter two separate sets of opening hours: one that ends at midnight (which is entered as 24:00), and the second of which begins at the start of the next day (entered as 00:00), as in this screenshot (in which the shop is open from 8pm until 4am the next day):

Spanning midnight

Where do I download the plugin from?

You should have been shown a download link immediately after purchase; the link is also in your order receipt email. If you have not got either of those, then you can download it from your account page, here.

How can I make the time selection to use drop-downs instead of sliders?

This is done via a WordPress filter. You can find this and other possible modifications described under the “Developer’s Information” section on the product page, together with examples and a link to a tutorial.

In this case, the PHP code snippet involved is:

add_filter('openinghours_timepickercontroltype', 'my_openinghours_timepickercontroltype');
function my_openinghours_timepickercontroltype($t) { return 'select';}

How long do you provide access to new plugin releases and support for?

All plugin purchases come with included access to support and access to downloads for 12 months. After 12 months, you can renew access if you want to.

If you do not want to renew, then your existing plugin will not be de-installed or de-activated or changed in any other way. Of course, we cannot guarantee what level of compatibility it will have with future releases of WordPress or (if relevant) WooCommerce.

Do you have a trial version of your plugins available / what is your refund policy?

We do not have trial versions of our plugins available, or refund trial purchases. However, we are committed to providing support for any technical issues you have with any of our plugins, and all plugins include 12 months of support. If the plugin does not do what the product description says it does, then you can have a refund (this should be requested within 10 days of purchase), subject to allowing us to investigate the problem.

This policy specifically excludes third-party failures; for example, if a plugin depends upon a third-party service which malfunctions or closes down, you will not be eligible for any refund for the plugin purchase. It also explicitly excludes failed attempts by the customer to implement PHP code customisations to the plugin, and faults in third-party code. Refunds are not offered for “speculative” purchases where the customer is hoping that the software can do something which is not advertised; plugins are priced cheaply and you should check your requirements before purchase.

For EU customers, your right to a refund of digital goods that you have not requested a download of remain intact. You can request a refund of goods that have not yet been downloaded for up to 14 days after purchase. These requests will be verified using our download logs.

How do I apply a cut-off time for next-day service (but allow them to choose any time the next day)?

To do this, you will need version 1.5.18 or later of the plugin (October 2015). This adds a new capability to make the “minimum order fulfilment time” vary, depending upon what the time is now, and adds the ability to make that clock not start ticking until the shop first opens. This opens up all kinds of possibilities – some of which would make little sense, but others do!

In this example, we have a shop that customers can collect orders from at any time from 10.00am to 6.30pm (i.e. 10:00 until 18:30, on the 24-hour clock). The shop owner wants people to be able to pick up from the next day onwards, at any time, but only if they order before 18:30. If you order after 18:30, then you can’t pick up the next day, and will need to wait until the day after that.

To do that, you need a minimum order fulfilment time that:

  • Does not allow any times to be chosen from ‘today’ in any case
  • Does allow you to choose a time from tomorrow, as long as it’s not yet 18:30.

To do that, you:

  1. Enter a minimum order fulfilment time that equals the length of time that the shop is open during the day – which is 8 hours and 30 minutes = 8*60 + 30 = 510 minutes. (This will mean that the first criteria above is partially fulfilled – it’ll hold as long as the time today has reached opening time).
  2. Choose the option to “Count the minimum fulfilment time beginning from the time that the customer is ordering”. This now causes the first criteria above to be fully fulfilled.
  3. Enter 18:30 in the “if the time has gone past” box, and enter the number of minutes from 18:30 until 10:00 the next day as the number of minutes to then add on – which is 15 hours and 30 minutes = 15*60 + 30 = 930. This fulfils the second criteria – if the time today is after 6:30pm, then the minimum order time will now take them beyond 6:30pm the next day, meaning that their possible times aren’t until the day after the next day.

All this will look like this:

Cut-off time for next-day delivery

Where can I get the free base plugin for use with the WooCommerce connector?

The free base “Plugins Manager” plugin that the WooCommerce connector works with can be obtained from the wordpress.org plugins directory. Search for “Simba plugin updates manager”.

How do I connect a WooCommerce product to a plugin, so that licences are automatically created and renewed?

In WooCommerce, edit the product.

Add two custom meta fields. N.B. These are not product attributes, but custom fields. To display the “custom fields” meta box (seen in the screenshot below), you must use the “screen options” in the top-right of the product editing screen.

  1. simbamanager_key : the value of this should equal your plugin slug (i.e. the slug of the plugin you are selling), followed by a colon, followed by the word all, followed by a colon, followed by how many months you wish a purchase to create a valid licence for (e.g. 12, for 1 year – or -1 for unlimited). (If you are using plugins with built-in add-ons (an expert feature), the “all” can be modified to indicate the specific add-on for the plugin).
  2. simbamanager_licences : this is optional, and is used to indicate how many licences this purchase is for (default: 1). For a variable product, you instead enter a comma-separated list of variation IDs followed by a colon, followed by the number of licences for each variation.

Here is an example (of the entry for this product itself, in our shop):

Editing WooCommerce product custom fields

Where do I get the plugin updater class and instructions and how to use it?

For the code to add to your own plugins, to connect them back to your updates server (i.e. your WordPress install that has the Simba Plugins Manager installed on it), follow this link to the Github project.

Does the plugin keep a count of downloads?

Yes; these are counted and stored by plugin and by day.

How can I download a PDF invoice/receipt for my purchase?

You can download a PDF invoice/receipt for plugins purchases from your account page, here.

How can I put the plugin into “date-only” mode, so that it does not show times to customers?

You can do this by adding a line to your wp-config.php file, after the opening <?php near the top:


Alternatively, you can use a WordPress filter – add this to your functions.php, or wherever you add filters:

add_filter('openinghours_date_only', '__return_true');

What is your support and updates policy?

All customers will have access to future releases of the plugin, and for support to help with trouble-shooting, for 12 months.

Whilst we are happy to give general advice as part of support, support has reasonable limits. For example, hiring a developer (if one is available) to extend or customise the plugin for you, or trouble-shooting problems in other plugins on your site (or other things beyond scope – e.g. problems in your printer, or other third-party products), is not included in the purchase price.

Note that this does not affect your ability to continue using an installed plugin. Your installed plugins will remain installed forever. What is limited to 12 months is access to our future work on the plugin and support.

How can I show some content only if the shop is open/closed?

A shortcode, [openinghours_conditional only_if=”(open|closed)”], is available.

Content contained inside the opening and shortcode tags will only render if the shop is open/closed, according to your default opening hours (i.e. it does not depend upon considerations of category, or minimum order fulfilment times).


[openinghours_conditional only_if=”closed”]The shop is closed now.[/openinghours_conditional].

Remember that you must exclude pages with conditional content from cacheing plugins.

Further parameters are available to use the hours for a specified shipping method: shipping_method=”(shipping_method_textual_id|default)”, instance_id=”(shipping_zone_instance_id)”, consult_slot_usage=”0|1″.  The shipping method textual ID is the one used internally in WooCommerce; ask the shipping method extension author, or a PHP developer to help you, if you do not know how to find this. The parameter for consulting slot usage (default=0) controls whether the availability of slots should be taken into account or not.

Conditional shortcodes

How do I make it so that the default choice is blank (i.e. no time chosen by default)?

You can do this using the openinghours_frontend_initialvalue filter in an mu-plugin.


Place a file in wp-content/mu-plugins/no-initial-value.php (you may need to create the mu-plugins directory if it does not yet exist):

add_filter('openinghours_frontend_initialvalue', '__return_empty_string');
add_filter('openinghours_frontend_initialvalue_formethod', '__return_empty_string');
add_filter('openinghours_frontend_initialvalue_formethod_raw', '__return_empty_string');
add_action('wp_footer', function() {
jQuery(document.body).on('openinghours_initialised', function() {

How many licences should I buy?

You will need a separate licence for each WordPress installation which you wish to receive plugin updates (i.e. future releases), or to request support for.

A WordPress Network is a single installation of WordPress, so only requires one licence, regardless of how many blogs you have on the network.

How can I accept an empty time?

If you wish to accept an empty time from the customer, then use this code snippet as an mu-plugin (or in your functions.php):

add_filter('openinghours_check_cart_items', 'my_openinghours_check_cart_items');
function my_openinghours_check_cart_items($r) {
return empty($_POST['openinghours_time']) ? true : $r;

This requires version 1.6.12 or later of the plugin.

Can you write some code for me, to customise the plugin?

Plugin purchase prices do not include hand-written code, even if it is only a few lines.

At commodity prices, and including 12 months of updates to new versions (including compatibility with future releases of WordPress and (where relevant) WooCommerce), and personal support, the margins when selling plugins are small. As a result, plugin sellers rely upon selling to many customers – and personal customisations are not economic (even if potentially useful for other customers).

You are, of course, welcome to send in ideas for new features. If you need a developer to customise for you, though, then we suggest Codeable – https://codeable.io – where there is a large marketplace of WordPress and WooCommerce experts offering their services.

How can I be more restrictive with possible spam?

We employ a range of anti-spam filters, and estimate that we prevent over 95% of spam from reaching your inbox. However, inevitably, some will reach it – spammers are working constantly to try to get their mails through. It is their professional expertise. Spam filters are always more annoying if they filter out real mail, rather than letting some spam through.

However, if you want to make Simba’s filters more restrictive, then you can set up a filter in your email program (you will need to search for instructions for your particular program for this). It should look at the header X-Spam-Bar . This header contains a spam score, and some symbols. For each point, there will be a plus sign (+). Simba will refuse to accept mail at fifteen points and above (and at lower than that, runs some extra checks before delivering it to your inbox). If you want to be more restrictive, you could delete (or put in a different folder) mails at fewer. To do this, you would add a filter that matches that number of consecutive pluses.

e.g. in your mail program, you could set up a filter rule like this:

Filter on header: X-Spam-Bar
Match: ++++++++++
Action: Move to folder “Probable spam”

If you are using a mail program on a device (rather than using webmail), then you can also look for whatever anti-spam solutions are available for your mail program. i.e. You can run your own anti-spam checks in addition to the ones that Simba’s servers are configured to run – ones that suit your needs rather than needing to be suitable across our whole range of customers. e.g. Perform a web search for “Outlook anti-spam tools”, etcetera.

How can I have multiple countries treated as my base country?

In the EU VAT plugin settings, there are several settings which make your “base country” differ from other countries. The “base country” is set within your WooCommerce core settings.

Occasionally, a business wants another country to also be subject to the “base country” rules which the EU VAT compliance extension applies.

This can be done with a few lines of code placed in an mu-plugin, or in your functions.php. The filter to use is wc_eu_vat_get_base_countries. You should use the two-letter country codes used internally by WooCommerce.

add_filter('wc_eu_vat_get_base_countries', 'my_wc_eu_vat_get_base_countries');
function my_wc_eu_vat_get_base_countries($countries) {
// Add Germany to the existing array of countries;
$countries[] = 'DE';
return $countries;

What is your data processing policy? (Including GDPR-specific information)

Signed copies and physical paperwork

If you require a formally signed copy of this policy, signed by a director of Simba IT Services Ltd., then please print it out, provide the date, the signature, the name and position of the signer within your company, and then post it to us with a stamped and addressed envelope for the return, using the address on our contact form. You must not amend any details of this policy without prior agreement before sending the document, and without clearly highlighting the changed sections. You must be willing to pay, in advance, any costs we incur in processing or legal evaluation of them. The same willingness to pay costs shall apply to any other formal legal procedures, or physical paperwork, which you request us to handle.

You can download a PDF copy of this policy here.


This policy applies during the time that you have a paid account with us. All of your data will be deleted when, for whatever reason, your account with us is closed. When you no longer have a paid account with us, all appropriate regulations (e.g. the GDPR) continue to apply for as long as we still hold your data, but after an appropriate time (e.g. in which we inquire if you wish to continue services, and encourage you to pay any outstanding invoices), all your data stored with us will eventually be deleted (including that retained in automated backups until they are automatically deleted), and all our obligations in relation to your data (and any capacity we previously had to process it) will thereby end.

Data processing policy

Simba IT Services Ltd. (the owners of www.simbahosting.co.uk) are registered as a data processor with the Information Commissioner’s Office (ICO) in the UK. We aim to comply with both the letter and the spirit of all relevant laws, including the General Data Protection Regulation (GDPR).

In respect of website and email hosting services (i.e. if this applies to you, having purchased such services), our systems (i.e. computers belonging to us) will process data as a necessary part of providing your purchased services. If this applies to you, then you should read the following details. Note that in relation to services provided, we are a data processor, not a data controller. i.e. We do not inherit the responsibilities of a “data controller” in respect of the running of your business (your website, associated database, email accounts, etc.). Those responsibilities remain with the website owner, not with us. We are a data controller only in respect of our own website/business (not yours). In particular, the data processing liabilities and responsibilities for all code (or equivalent – e.g. email filter settings, webserver settings or the like) that you upload into your web hosting account or set as settings, remains with you, notwithstanding that processing having been carried out using our rented facilities. As part of this, it is entirely the responsibility of the customer to ascertain that he has purchased the correct facilities to satisfy any legal requirements on their side (e.g. appropriate facilities for PCI card processing compliance for a website that processes online payments).

Unwritten yet existing liabilities

As a UK-based company, we are subject to the relevant privacy laws (e.g. the GDPR). Note that there are various data processing practices which it is only mandated to formally describe when an EU entity contracts with an entity outside the EU. For entities in the UK, it is not formally necessary to write down obligations which already exist by virtue of these laws. It is understood that therefore this policy does not attempt to duplicate the mention of every obligation under the GDPR (e.g. the obligation to notify of breaches).

Modifications to this document

Some customers may have purchased services with a specific configuration – e.g. a tailored VPS to a particular specification. In such cases, this document should be read with appropriate modifications in mind where any specifics or technical details are supplied.

Activities performed

As part of providing our services, we may perform these activities:

  • Process incoming web (HTTP/HTTPS or any other future protocol) or email (POP3, IMAP, SMTP, HTTP/HTTPS (webmail) or any other protocol), and respond to them in accordance with the protocols, the incoming data and your account configuration.
  • Automatically log details of these incoming requests and of the results. These logs may include IP addresses, browser user agents, dates, times, usernames and other technical details. We automatically delete logs after an appropriate time period (by default on web hosting, the current week’s logs and 4 weeks’ of past logs are kept, then automatically deleted).
  • Some technical activities may involve passing data to third-party services in order to provide our essential services – e.g. passing the name of your website to an SSL certificate provider in order to obtain an SSL certificate.
  • We use helpdesk software provided by HelpScout. As such, filling in any form requesting any kind of information or assistance will usually result in data being copied to their systems. HelpScout’s GDPR and privacy policies are contained on or linked from this page. To aid us in providing support and development, we keep a record of the contents of support tickets in Helpscout for up to 25 months after the last reply on the ticket, after which they are automatically purged. Help requests going through our website may also be logged in our database. This is purged automatically on a weekly basis of old entries (any older than 90 days old).
  • Any other activities unwittingly omitted from the above list which are technically essential to the provision of your purchased services, necessary monitoring, logging or auditing (whether necessary for the integrity of our services, the measurement of performance, legal compliance, or any other similarly compelling reason).

Other than these, we do not make data available to any third parties, except by the account owner’s explicit request.

(Lack of) marketing partners

Since our launch in 2007 we have not bought any marketing services from any third party that involved the passing of any customer identifiers or customer data to them.


Copies of your data may be stored in our backup systems, for the necessary task of being able to restore services in the event of a catastrophic failure, criminal break-in, or other similar event. These backups are stored encrypted, and deleted after a period of time in the region of two months. They cannot have individual portions deleted from them upon request because this is technically infeasible due to the nature of aggregated, encrypted backups.


We aim to protect all our services using suitable technology and in accordance with best practices. For example:

  • Our servers deploy firewalls to prevent unwanted traffic, including automated traffic analysis and blocking.
  • We apply anti-spam and anti-virus software, IP blocklists and other associated technical measures to protect mailboxes
  • Our mailserver, webmail and FTP server can only be accessed over an encrypted connection. Our website is only available over https (SSL).
  • We do not store any card details; payment processing is handled by reputable third parties (PayPal and Stripe).
  • Our own computers that we operate the business through are protected with disk encryption and strong passwords.
  • Our backups are also stored on encrypted storage, and/or using file-level encryption.
  • We regularly apply patches to our server components to block discovered security issues. These are usually automated for the quickest possible application, unless there was a specific technical reason why that was not the best approach.

Note that our performance of these tasks on our own systems does not mean that no similar needs exist for code installed by you in your web hosting space, for which you are liable (e.g. WordPress updates, using a third-party payment processor for payments, using https if appropriate, etc.).

Right to obtain a copy of all your data

EU consumers have the right to request a copy of all the data which we hold upon them. In respect of the data in their web hosting account, this can be obtained by using an FTP client to log in to your account, and to download all the data in that account (which comprises your own uploaded website data, and access logs). In respect of email hosting, this data can be obtained by using any IMAP client to log in to your mailbox, and downloading a copy of all your mailboxes. We do not maintain any marketing databases and do not build profiles of customer (or visitor) behaviour that contain personal information; other data we hold on you is visible inside your Simba account at https://www.simbahosting.co.uk/s3/client-details/.

Right of deletion

EU consumers have a right to request that all data relating to them is deleted. This is, by its nature, a request to close your account and end services. Note that (as explained in other parts of this document), some data may only be deleted when automated rotation/deletion of old data takes place (e.g. backups and log files). Note that rights to deletion may also be limited by other laws or other essential business needs (e.g. the need to maintain accurate accounting/taxation information) which take precedence over the GDPR’s right of deletion.

Privacy breaches

We will inform of data privacy breaches in line with the requirements of the GDPR.

Relevant third party policies

We do not transfer data to third parties except as required to perform technical tasks essential to the provision and maintenance of our services. Please also consult the above section on marketing partners.

  • Stripe (our payment processor for card payments) – general policy on data transfers, and privacy shield policy.
  • Linode, Inc., who are one of our suppliers to provide server capacity, with whom we have a data processing agreement (which authorises Linode only to provide the contracted technical services, and not to process data for any other purpose).
  • Digital Ocean, Inc., who are one of our suppliers to provide server capacity, with whom we have a data processing agreement (which authorises Digital Ocean only to provide the contracted technical services, and not to process data for any other purpose).
  • Amazon Web Services (used by us to store backups of our servers) adhere to the Cloud Infrastructure Services Providers in Europe Code of Conduct – https://aws.amazon.com/compliance/cispe/ – as part of their GDPR compliance. Also, see here. Note that we only stored backups that are pre-encrypted, and Amazon have no access to the encryption key. As such, Amazon have no access to the actual data, and are not a data processor.
  • We may form arrangements with other data processors, but only on the same, GDPR-compliant, principles.

Limits upon costs

In all circumstances, indemnification against any costs, claims, damages, expenses or any other liability incurred by you due to any failure on behalf of us, our employees or any agents we employ, will be limited to a refund of the total amount paid by you to us for the services purchased from us, from the time that those liabilities were incurred.

Correction of deficiencies

If you find any deficiencies in this policy document, then please let us know using the contact facility available on this website.

Legal authority

Simba IT Services Ltd. is a UK company, and all disputes that cannot be settled by mutual agreement or arbitration mutually agreed to, will be settled under the authority of the courts of England and Wales. All customers agree to make a maximum good faith effort to settle any disputes before entering any formal legal proceedings, or raising the prospect of them, and are willing for any court to look upon their case with prejudice if they have not done so.

Where can I see the plugin changelog?

For a plugin that you have purchased, the changelog is in the file “readme.txt” in the plugin zip.

For our current on-sale version (i.e. the latest version), you can see the changelog by going to the shop, and then going to the product page, and then clicking the link “Plugin changelog” from the left-hand side of the page.

When downloading a detailed CSV, how can I add an extra column?

A PHP developer can do this by using the hooks built-in to the plugin. We assume that the desired column has been stored in your database as an ‘order meta’ item. (If it is not, then you will need more complex processing). Below is a code example which takes an order meta item with key “PayPal Transaction Fee” and adds it to a new “PayPal Fee” column in the CSV. A developer can use and customise this example to achieve the desired result.

// Make sure that the order meta field 'PayPal Transaction Fee' is fetched from the database when selecting data for the report.
add_filter('wc_eu_vat_compliance_report_meta_fields', 'my_wc_eu_vat_compliance_report_meta_fields', 10, 2);
function my_wc_eu_vat_compliance_report_meta_fields($fields, $print_as_csv) {
return $print_as_csv ? $fields.", 'PayPal Transaction Fee'" : $fields;

// Give the order meta field 'PayPal Transaction Fee' the (internal) key 'pp_fee'
add_filter('wc_eu_vat_compliance_get_report_results_store_key', 'my_wc_eu_vat_compliance_get_report_results_store_key', 10, 2);
function my_wc_eu_vat_compliance_get_report_results_store_key($store, $res) {
return ('PayPal Transaction Fee' == $res->meta_key) ? 'pp_fee' : $store;

// Add a column header 'PayPal Fee' to the spreadsheet
add_filter('wc_eu_vat_compliance_csv_header_columns', 'my_wc_eu_vat_compliance_csv_header_columns');
function my_wc_eu_vat_compliance_csv_header_columns($columns) {
$columns[] = 'PayPal Fee';
return $columns;

// For the 'PayPal Fee' column, insert the value that we fetched earlier (pp_fee)
add_filter('wc_eu_vat_compliance_csv_data_entries', 'my_wc_eu_vat_compliance_csv_data_entries', 10, 3);
function my_wc_eu_vat_compliance_csv_data_entries($data, $order_id, $order) {
$data['PayPal Fee'] = isset($order['pp_fee']) ? $order['pp_fee'] : '';
return $data;

How do I install my plugin?

If you’ve purchased one of our WordPress plugins, then thank you! Here’s how to install…

1. Go to the “Plugins” page in your WordPress dashboard, and press “Add New”

Add a new plugin

2. Press the “Upload Plugin” button

Upload a plugin

3. Press the button to select a zip file. Select the zip file for your plugin. Then press “Install Now”.

Uploading the zip file

4. When the plugin has uploaded, press the “Activate” button.

N.B. If you have the free version of any of our plugins (e.g. WooCommerce EU VAT Compliance, or Two Factor Authentication), then you should also de-activate and de-install the free version. Your settings will be retained by the paid version. It does not matter whether you de-activate and de-install before, or after, installing the paid version.

How do I change which site is using a licence?

If you wish to stop using one of your plugin licences on one site, and instead use it on another, then do this:

1. Disconnect the “old” site.

Go to the “Plugins” page in the WordPress dashboard, and find the plugin’s entry. Press the “Disconnect” button.


2. Connect the “new” site.

Go to the “Plugins” page in the WordPress dashboard on the new site, and connect.


I want to forbid VAT numbers from specified EU countries

This requires version 1.11.26 or later of the plugin.

If you want to not allow valid (according to the EU) VAT number from certain countries, you can do this using the following code fragment (but adapt it according to the country code that you wish to use; the example below will forbid VAT numbers everywhere except Ireland, IE):

add_filter('wc_eu_vat_check_vat_number_country', 'my_wc_eu_vat_check_vat_number_country', 10, 2);

function my_wc_eu_vat_check_vat_number_country($allowed_country, $country) {
  // If it is not Ireland, then forbid it
  if ('IE' != $country) return false;
  // Otherwise, let the existing value pass through
  return $allowed_country;

Note that you will like want to also change the message shown. The default is “You cannot use a VAT number since your country (%s) is outside of the EU.”. The code fragment below changes the message to make it more appropriate for our example above:

add_filter('wc_eu_vat_disallowed_country_message', 'my_wc_eu_vat_disallowed_country_message', 10, 2);
function my_wc_eu_vat_disallowed_country_message($error, $country) {
  return sprintf(__('You cannot use a VAT number for this country (%s) - we only accept them from Ireland.', 'woocommerce-eu-vat-compliance'), $country);

How can I trigger an action when the user saves their TFA settings on the front-end?

When settings are successfully saved, the plugin triggers a jQuery event upon the document:

jQuery(document).trigger('tfa_settings_saved', resp);

So, you just need to add some JavaScript to your site (e.g. using one of the popular plugins for doing this, or using your own hand-coding) to hook that event.

For example, to reload the page after the settings are saved:

jQuery(document).on('tfa_settings_saved', function() {

What are the parameters for the “udmanager” shortcode?

The main parameters for the `udmanager` shortcode are as follows:

slug: The slug of the plugin that you wish to show information for. This needs to match what you have set in the general plugin configuration (which in turn, should match the plugin’s directory name).

userid: The WordPress user ID that the plugin belongs to; i.e. the user ID of the account that you have set the plugin up in in the plugins manager.

showaddons: If your plugin is set up in the plugins manager to use the ‘add-ons’ mode, and you want to show per-add-on information, then set this to true.

showunpurchased: If set to “true”, then show information even if there are no purchases for the indicate plugin/add-ons.


Can I change where the VAT number field is displayed?

The VAT number field (if it is configured to be displayed) is printed, by default, when the WordPress action woocommerce_checkout_billing is called by your theme, with priority 40. This usually means it appears at the end of the “billing” section.

This can be changed by using a filter – you can change both the action, and the priority. You need to use an action that is called by your theme’s version of the WooCommerce checkout template (if it over-rides the default template), or the default template bundled with WooCommerce.

Note that not all positions are possible. There are assumptions in WooCommerce core, and sometimes in themes, about how the DOM (HTML structure) of the checkout is constructed. The only real way to find out what is possible is for you to experiment. Here is (PHP 5.3+) code that implements the default behaviour:


add_filter('wc_eu_vat_number_position', function() { return 'woocommerce_checkout_billing'; });

add_filter('wc_eu_vat_number_priority', function() { return 40; });

Please note that we can provide customisation services to order, but that they are not part of standard support upon plugin purchase (beyond these FAQs).

I deliberately entered a wrong password, and the Two Factor Authentication plugin let me log in

You have a password manager extension installed in your web browser, with the correct password entered in it. It has automatically replaced your wrong password with the right one from its saved store. This behaviour has been observed and confirmed by several users. You can verify it by using the web developer tools in your browser to look at the HTTP data sent to WordPress, and observe which password is actually in it. You can also open a fresh web browser with no such extension in it to re-test.

Note that the two factor authentication plugin has no mechanism to compare or approve passwords; this is done by WordPress core. If the wrong password is sent, then this is handled by WordPress, and the login will not proceed.

I sent an email which the recipient’s system classified as spam – what can be done?

Firstly, it is important to understand that all classification of an email as “spam” or “not spam” is done on the receiving end, not the sending end. This is because, if it was done the other way round, all spammers would, of course, classify their mails as “not spam” – i.e. all such classification would be worthless.

This means that ultimately, only the administrators of the recipients email account can know why the email was wrongly classified, and what to do about that. Perhaps their spam-filters are badly configured. Perhaps something in your email looked quite like a pattern used by spammers. But generally, only they can say. As such, the best thing to do is to ask them to find out. In the case of some systems (e.g. GMail), when you look at a message in the “spam” folder, it tells you why the mail was identified as spam at the top. So, the recipient, having found the mail in their “spam” folder, can read the reason why there.

Generally, it can help to not place too many website links in emails you send. For example, if you already have one or more in the footer, perhaps removing these might help. Also, if you are in the habit of sending out mass-mailings from your email account (i.e. the same mail to lots of people), this may result in your domain getting a reduced “reputation score” on other people’s systems – this can mean that other mails are looked at as more suspicious than they would be otherwise, even if these mass-mailings are not themselves spam. (Please note that sending of all spam, i.e. unsolicited commercial email, via a Simba Hosting service, is prohibited).

Unfortunately, spam filters are often unreliable. Spammers are always testing and tweaking their campaigns to try to make sure they get past spam filters. If spam filters could be 100% accurate, then spam would not exist. Experience shows that even huge mail providers, like GMail, regularly mis-classify large amounts of mail – especially if the recipient (i.e. GMail user) does not carefully press the “Spam” or “Not Spam” button on every mis-classified mail and continue to do so. If they don’t, then the system becomes self-re-inforcing: in future it assumes its previous decisions were correct, and becomes more confident in making similar decisions.

Is any user personal information processed (for GDPR etc.) purposes by the plugin?

No. Logging in, setting up TFA, and all other operations of plugin functionality do not send any data to any remote service.

If you connect the plugin to receive plugin updates using the WordPress plugin update mechanism, then it will periodically request information on update availability from our servers. The information contained in this update check (e.g. the identifier for your account with us, the WordPress and PHP version the plugin is running on) is not processed by us for any further purpose. It does not contain any information on how or by whom the plugin is used (i.e. “telemetrics”) beyond the URL of the website it is installed upon. The HTTP request as logged by our webserver may remain in our webserver logs until they are periodically and automatically rotated, up to 6 months later.

Can the two-factor code be sent by email?

Our two-factor authentication plugin does not support sending codes by email, because this is not secure. This is because WordPress also sends password reset links by email (via the link on the login form for people who have forgotten their password). Thus, the email account would have access to both the ability to set passwords and read two-factor codes, meaning that it was not truly a second factor. This would be mitigated somewhat if the email itself was protected by two-factor authentication via another mechanism – but in this case a) users are already being expected to use something other than email, so that shouldn’t be a problem for WordPress either, and b) it is outside of the control of the administrator of the WordPress website, which would nullify the plugin’s features for handing them this control.

Email delivery is also unreliable and often unencrypted, which makes it an unsuitable communications channel to rely upon for time-dependent (two factor codes are time-limited) and security-related functions.

How can I adjust the styling of the line added to WooCommerce emails?

To do this, apply CSS styling. The paragraph has CSS ID openinghours_adminlabel, and the chosen time has CSS ID openinghours_email_timechosen.

One way to do this is by adding a CSS rule via a code filter. e.g.:

add_action('woocommerce_email_header', function ($email_heading, $email) {
// Adds CSS to "new order" email only
if ($email->id != 'new_order') return;
<style type="text/css">
p#openinghours_adminlabel { font-size: 28px; }
}, 20, 2);

When buying a plugin, what is the difference between manual or automatic renewal?

All our plugins come with included access to personal support and updates (new versions of the software) for 12 months (more information). After this 12 months, you can keep on using the software, without any restrictions. However, if you want to renew, you can either do so manually (i.e. come back to the shop and make a fresh purchase) or automatically (i.e. an order will automatically be created and emailed to you, and payment taken if you have a payment method on your account). We offer a discount to those who choose automatic renewal. You can cancel a subscription at any time (yes, even 5 minutes after you purchased it).

I have found a problem in the plugin, or a question not answered here. Where do I get personal support?

Please go here and open a support ticket. (Or, if you forgot your login details for your account with us, then please go here).

Is this plugin still supported and maintained?

Yes. If it ever stops being, then we would withdraw it from sale.

What is PrintNode and how do I use it?

PrintNode (printnode.com) is a service for connecting your printers to the Internet, bringing a range of benefit such as the ability to print directly from a website and not being hindered by firewalls. This plugin uses PrintNode to automatically print new WooCommerce orders. You can begin using PrintNode for free by signing up at their website.

To use PrintNode, you need a printer and a computer that it is attached to (which can be almost anything – including Windows, Mac, Linux, Raspberry PI). Just sign up for an account, install their software on your computer, test it out, obtain your API key, and add it to the settings of our plugin.

How can I change the PHP version that my hosting account is using?

You can change to a different PHP version by going to your control panel, and then choosing the domain name you wish to change settings for (if you have more than one in your account), and then into the “Advanced” settings for the web hosting. The option to change your PHP version is found in there.

Before updating your PHP version to a newer version, you should make sure that all your components (e.g. plugins and themes) are up-to-date. Old components may not be compatible with newer PHP versions that did not exist at the time they were last updated.

No time/date selector is appearing on the checkout. Why might that be?

Here are some things you should check…

  1. Is shipping turned on? If it is turned off for the store, then no selector will ever appear, because then there is no concept of delivery activate. Check in WooCommerce -> Settings – if it is turned off, like in this screenshot, then turn it back on:

    Disabled shipping

  2. Do you have any physical goods in the shopping cart? If all your products are marked in WooCommerce as “virtual”, then you need to make sure that you have enabled the setting in WooCommerce -> Opening Hours -> Settings to include virtual goods (usually, virtual goods don’t require any particular time to be associated with them):

    Apply to virtual goods setting
    One user was automatically importing products into WooCommerce via a marketplace-integration-automation plugin. That plugin was marking all goods as virtual, which was not what they wanted (they were physical goods).

  3. Have you configured the plugin to always show a time/date selector? One option asks under what conditions a time/date should be asked for. If you were expecting to see one, but did not, then check that setting:

    Check-out choice settings

  4. Have you configured the plugin to only notice goods in particular shipping classes? If you have ticked any boxes for particular classes, then others will be ignored. This might catch you out if you later create new shipping classes and forget to select them:

    Shipping class settings

  5. Is your theme, or some other component, hiding it? Sometimes themes contain bad layering code and hide the date/time picker behind something else; or sometimes other plugins have bugs and try to get involved when they shouldn’t. Test this by temporarily de-activating all other plugins, and switching to a default theme, and then reload the checkout page. If it is not there, then you should re-activate the other components in a “bisection” method, trying to narrow down eventually to which particular one is the culprit. e.g. Re-enable half of them and reload the checkout page; if it is still there, then those weren’t the faulty ones – the other half were. If it is gone, then one of the re-enabled ones is faulty. Choose half of those half, and go again…
  6. Perhaps it is really there? Sometimes we’ve had support requests from people who presumably had long days: it was there, but they overlooked it.

How can I manage my e-mail addresses? (Add/change/delete addresses etc.)

Go to your control panel, and choose the “mail management” option from there.

What is the status of this plugin?

The code in this plugin is actively used and relied upon by many businesses across the world. It began life in the middle of 2013 (used on a take-away site running on WordPress 3.5 and WooCommerce 2.0, via Google Cloud Print). It has been continuously maintained and updated since then, being completely audited and re-engineered to work with PrintNode beginning in 2020. Since the first launch its code has been purchased for use with over a thousand live shops, running on all subsequent WordPress and WooCommerce versions.

How do I change the password on my mailbox?

Log in to your webmail, and choose “Options”.


How do I install this plugin?

This plugin is quite large (over 7Mb), because it contains a lot of code for creating PDF files. Normally, a plugin that you download can be installed and activated in your WordPress dashboard, in the Plugins -> Add New -> Upload page.

If your website gives you an error, telling you that you are not allowed to upload large files, then you can use either of these two methods instead:

  1. Go to the Plugins -> Add New page in your WordPress dashboard. Search for the plugin “Upload Larger Plugins”, and then install and activate it. Then return to the Plugins -> Add New -> Upload page, and try again.
  2. Or, unzip the plugin zip on your computer. You will then have a directory called “woocommerce-printnode”. Upload this whole directory via FTP into your WordPress plugins directory (wp-content/plugins). Then visit the Plugins page in your WordPress dashboard and activate the plugin.

How can I set up an “out of office” message, or other filters?

Log in to your webmail, and follow the “Settings” link, and then the “Filters” link. With filters you can file different e-mails in different folders, forward e-mails, automatically delete e-mails, set vacation messages, and all sorts of other possibilities.

Below is a screenshot of an example filter. Note that your screen may look different, as software gets updated periodically.


How do I configure and use this plugin?

There are three things to do to being using this plugin, beyond installing and activating it:

  • Firstly, you need to set up your printer with PrintNode. You will need to a) open an account with them, on a free or paid plan, b) Download and install their software on the computer that is driving your printer, and test printing successfully through it from your account. To learn about how to do this, go to the PrintNode website. Come back to this documentation once you have successfully printed a test page to your printer from your account on the PrintNode website.
  • Secondly, you need to connect your website to PrintNode. In your WordPress dashboard, go to the WooCommerce -> PrintNode -> Settings page. Enter your PrintNode API key by following the instructions, and then save your settings. Then choose which printers you want to use in WooCommerce -> PrintNode -> Printers, and save your settings there also.
  • Thirdly, you need to choose which print-outs to send to PrintNode when an order is completed. This is done in your WordPress dashboard, in the WooCommerce -> PrintNode -> Settings page. You simply need to check all the boxes for all the print-outs which you wish. To customise the print-outs, follow the links shown (and see the section below).

What are the settings for Microsoft Outlook Express?

  1. Click on the “Tools” menu in the menu bar.
  2. Click on “Accounts”, and it will open the accounts window.
  3. Create a new mail account.
  4. When asked, enter your name, email address (in lower case), password and the server “mail.simbahosting.co.uk” (without the quotes).
  5. Then, back in the accounts window, click on the “Properties” for your new account, and make sure you copy the settings from these two screenshots:

Outlook Express Outlook Express Screenshot 2

Do you have a recommended printer, or list of compatible printers?

We do not have a particular recommended printer. PrintNode is designed to be compatible with any printer at all, because it is ultimately itself just a transport, getting a print job across the Internet, past firewalls, to your existing printer setup. It is unfortunately not economic for us to invest in testing different printers, given the pricing expectations of the WooCommerce extensions market.

If you already possess your printer, then note that (at the time of writing this FAQ at least), PrintNode offer 1 month of free service. You can simply sign up for a free account, and test it directly.

So, any printer at all that you can connect to your computer and print from is suitable for use with this plugin. We are aware of customers successfully using a wide range of makes and models of printers, including different thermal printers.

We first tested and developed the first version of this plugin using (among other things) a Star TSP-100 thermal printer in 2013, and are aware of customers happily using this printer still today several years on, but this does not constitute a formal recommendation.

What are the settings for Microsoft Entourage?

Tell Entourage to create a new account, and enter settings like this:


Click the button for advanced receiving options:

Advanced Receiving

Click the button for advanced sending options:

Advanced Sending


What other WooCommerce add-ons is this plugin compatible with?

We are not aware of any WooCommerce extensions that this plugin is not compatible with. If you find one that causes a problem, then please let us know. In particular, this plugin is compatible with WooCommerce Opening Hours (it displays the customer’s chosen delivery/collection time on its printouts), WooCommerce Invoices and Packing Slips by WP Overnight (options set in these plugins for your print-out layout will be honoured), WooCommerce Delivery Notes, WooCommerce Product Add-Ons from woocommerce.com (it displays the customer’s chosen choices in the print-out), and WooCommerce Currency Switcher by Aelia (the print-outs will use the proper currency symbols).

What are the settings for Microsoft Outlook ?

Recent versions of Outlook support automatic configuration. If you begin the steps below, then Outlook can/should pick up some of the settings automatically and save you some of the steps.

(N.B. The screenshots below may not be from the same version as Microsoft Outlook as you have; so don’t be too confused if they differ a little).

First, choose ‘Account Settings’ from the ‘Tools’ menu:

Account Settings...

Secondly, press the button to create a new account.

When asked for user information, enter your email address, and enter it again as your User Name. Enter your password. Do NOT tick the “Secure Password Authentication” box:

Account Details

Press the “More Settings” button (towards the bottom right). The resulting window has four tabs. The ones that need modification are ‘Outgoing’ and ‘Advanced’, as follows (N.B. if you chose an IMAP account instead of a POP account, then this will be port 993 instead of 995 in the second screenshot):

Outgoing settings

How can I test whether PrintNode will work for me?

PrintNode have a free service-level offering. Go to their website, sign up for an account and then you can download their software to your computers and test it with your printers. You can test sending documents through PrintNode by uploading them within your PrintNode account on their website. If all is set up and working, then they should then print. If so, then this means that your printer is connected to PrintNode.

What are the settings for Windows Live Mail?

Create a new account, with details as below. The screenshots below are not the “new account” wizard, but the settings which you can reach any time (including just after using the wizard).

Screenshot Screenshot

I am migrating from automatic order printing via your Google Cloud Print plugin – what do I need to do?

  1. Follow all instructions for the ordinary setup of this plugin.
  2. If you had any customisations applied via PHP code using WordPress action/filter hooks, then you will need to change the references of all these. The plugin uses similar names, but not identical ones. Please look in the other FAQs, and/or the plugin source code, to find the new names. Note that some things which in the Google Cloud Print plugin could only be performed via code are now achievable via settings, so you should check the settings first.

What are the settings for a mobile phone?

Screenshots for the iPhone are below – if you have an iPhone, skip straight to that question.

If your phone has a web browser, then you can browse to https://www.simbahosting.co.uk/webmail. In practice though, that might be difficult on a small screen and you will probably want to use your phone’s e-mail application. Your phone needs to support TLS or SSL connections. (The included e-mail programs on the Apple iPhone, Android, Blackberry, Windows Mobile, Nokia series 40 and series 60 (Symbian) phones are known to work; and as the mail protocols are standardised, we expect it will work on any other e-mail-capable phone also).

The settings are exactly as for your PC. Let us know if you find any problems. Some phones may ask you to verify a “certificate” the first time you connect. This allows you to be certain that you are sending your password and e-mail to Simba Hosting and not someone else. Some phones will do the verification automatically. If your phone tells you that that the certificate’s “finger-print” is 14:6D:4E:C4:B5:01:6A:ED:C1:46:63:0C:3A:EE:4D:1F:01:E2:80:D9 or 64:E9:0D:24:7C:48:32:7F:BF:4B:4B:9F:84:72:7C:24 (or before 12th January 2012, 1B:EC:C9:29:2C:33:3D:73:A3:01:34:02:39:BF:BB:85:90:01:70:E9 or C5:F6:BD:E0:6D:EF:46:40:9C:48:A4:6E:37:13:B2:54) (lower-case letters are also acceptable) then you should accept, otherwise you should decline and contact support to tell us what value was shown.

I wish to filter the items printed, or change their order

The code sample below sorts order items by SKU. A competent PHP developer will easily be able to adapt this to fulfil other requirements (e.g. sort in a different way, or omit unwanted items). Please note that our general FAQ on customisations applies.


add_filter('woocommerce_printorders_printnode_print_order_items', function ($order_items) {
  if (is_array($order_items)) {
    uasort($order_items, 'my_print_order_sorting_function');
return $order_items;

// This function sorts based on SKU
function my_print_order_sorting_function($a, $b) {

  // Confirm that both items are order product items
  if (!is_a($a, 'WC_Order_Item_Product')) return is_a($b, 'WC_Order_Item_Product') ? 1 : 0;
  if (!is_a($b, 'WC_Order_Item_Product')) return -1;

  $product_a = $a->get_product();
  $product_b = $b->get_product();

  // Confirm that both products exist
  if (!is_a($product_a, 'WC_Product')) return is_a($product_b, 'WC_Product') ? 1 : 0;
  if (!is_a($product_b, 'WC_Product')) return -1;

  // In this example, we sort via SKU
  return strcmp($product_a->get_sku(), $product_b->get_sku());

What are the settings for an iPhone?

Go into the mail application and set up a new incoming (POP) account. Here are the settings to copy. Make sure that you copy the authentication, SSL and port settings exactly. Your incoming and outgoing passwords are the same (don’t forget to add the outgoing password – otherwise you will only be able to send mails to other Simba Hosting customers).

iPhone screenshot
iPhone screenshot
iPhone screenshot
iPhone screenshot

Are orders created manually in the WooCommerce back-end automatically printed?

No; manual orders are not automatically printed. If you want them to be printed, then you should press the button on the order page in the back-end as part of your process for manually creating them.

What are the settings for an iPad?

These screenshots should help:

iPad screenshot - setup incoming mail

iPad screenshot – setup incoming mail

One user sent us the following screenshot; another said that he needed to change “465” to “587” under the port setting, and then it worked:

iPad screenshot - sending mail (SMTP)

iPad screenshot – sending mail (SMTP)

How can I automatically print when the order status changes?

This can be controlled in the plugin settings. You can print either upon payment events, or upon order status events (these things can overlap, of course – you most likely won’t want to print upon both; the screenshot below is only illustrative):

Printing upon an order status change

Should I use POP or IMAP?

This depends on how many different computers or devices you want to view your e-mail from.

If you are simply wanting to collect mail from your account to your e-mail program on a single computer, POP is best for this – it downloads the mails to your computer then removes them from the server. (You can normally also select to leave them on the server for a certain amount of time, allowing you also to download them to a second computer).

IMAP allows you to view what mails are in your mailbox on the server, and it leaves them there. This requires an Internet connection – i.e. when you disconnect from the Internet you can no longer see your mailbox. This method is best if you do not want to be tied to a particular computer, or if you are using a mobile phone but want to leave your mail where it is and collect it from a computer later.

How can I print to more than one printer, or print only if further conditions are fulfilled?

You can choose as many printers as you like, using the settings in your WordPress dashboard in WooCommerce -> PrintNode -> Settings:

Configure copies per-printer

If you want to filter orders in a more complicated way, so that orders go to a printer only sometimes (depending on something to do with the order itself) then you will need to do a little custom PHP development for this, in order to implement the logic of your particular requirements. (i.e., you’ll either need to write a little PHP code yourself, or hire a PHP coder – somewhere like codeable.io or freelancer.com is an option if you don’t already have a developer. Please note that customised development isn’t part of your plugin purchase – i.e. we can’t contribute time to do this for you as part of your purchase. However, we’ve done 90% of the work for you, below).

The way to do it is to use the woocommerce_printorders_printnode_copies filter. Using the passed parameters, you can apply arbitrary criteria based upon anything you like concerning the order. Here is a code fragment to start your developer off with:

add_filter('woocommerce_printorders_printnode_copies', function ($copies, $order, $printer_id, $source, $source_info, $printers) {

	// Get the order details
	$order_meta_data = $order->get_meta_data();
	Do something based on the order, according to what you require...
	if ($order_meta_data['key'] ... ) {
		// Suppress this print job (print no copies)
		return 0;
	// If our conditions did not match, then leave things as they were
	return $copies;



Alternatively, to suppress all automatic printing (so that printing is manual-only):

add_filter('woocommerce_printorders_printnode_print_on_payment_complete', '__return_false');
add_filter('woocommerce_printorders_printnode_print_order_now', '__return_false');

What are my settings for sending mail?

You can use webmail through any web browser, or if you have your own computer with you, you can use the following settings in your e-mail program:

SMTP Server: mail.simbahosting.co.uk
Username: (your e-mail address)
Password: (password – same as for webmail)
Connection options: TLS (may be called STARTTLS or STLS or encryption or secure connection)
Port: 587 (or 465 if using Outlook / Outlook Express / SSL)

It is not compulsory to use Simba’s servers to send e-mail; if you are at home, then your Internet Service Provider may also have given you settings which allow you to send through their servers. If those settings work, you do not need to change them unless you find your ISP’s mail delivery unreliable.

If you are not using a mailbox (i.e. you are just using forwarding), then you can obtain a password by using “Mail Manager” and setting up one using the facility there.

If using Microsoft Outlook, do NOT choose the “Secure Password Authentication (SPA)” option. As the connection is already encrypted, your password is already secure. SPA is not supported.

This will allow you to send e-mail from any location in the world, provided that you send it from the e-mail address used as your username (or using any e-mail address from your domain name, if you have set up a domain-wide password in “Mail Manager”). Otherwise you will get an error message like “relay not permitted”. You should use port 587 in preference to the default (25) because increasing numbers of Internet access providers block use of port 25 in order to reduce the amount of spam originating from computers infected with viruses.

I am trying to print in a language or using characters that are not appearing correctly – what can I do?

If the characters you are trying to print are part of standard PDF fonts, then you may need to switch the PDF engine from the default (“DomPDF”) to a different engine which has support for a wider range of languages (“mPDF”). To do this, additionally install and activate one of these plugins:

If this does not work, then likely you are using a font that is not part of the PDF standard. You should either a) switch to one of the standard fonts or b) follow this FAQ to embed your font.

How do I set up Google Mail to receive mail from my Simba mailbox?

If you want to use Google’s feature for collecting mail from a mailbox, then log into your GMail account, find the option for collecting mail, choose the options for POP, SSL, enter the mailserver mail.simbahosting.co.uk and change the port from 110 to 995.

Alternatively, log in to your Simba webmail and set up a filter that will forward all mail to your Google account. This allows you the added flexibility of only forwarding some mail if you want to, and having it forwarded instantly (not just when Google collects).

I am using a customised template – how can I add a new font to the PDF?

This FAQ refers to the plugin’s built in “simple” template. If using a PDF generated by another plugin (e.g. WP Overnight’s PDF Invoices and Packing Slips), then you need to follow their documentation instead.

In PDFs, standard Windows core fonts are available. Our plugin also adds Deja Vu, which has good UTF-8 coverage (which the Windows standard fonts don’t). But in case you want to import another font…

If you are printing the output of another plugin, then you will need to consult that plugin’s documentation for guidance on how to embed extra fonts into its output.

If using this plugin’s default template, then you can add extra fonts, like so:

  1. Log in to the shell on your webserver
  2. Navigate to the directory wp-content/plugins/woocommerce-printnode/vendor/dompdf/dompdf/lib/fonts
  3. Copy the font you wish to import, which must be in TrueType format, into this directory. Include bold and italic versions, if you intend to use them.
  4. Navigate to the base directory of the plugin, and run the script load_font.php in the “utils” directory  (run “php utils/load_font.php” to show the syntax). Make sure that the font name matches the font name you will use in your template HTML.

Remember to use the CSS font-family selector where appropriate in your template HTML to actually select your chosen font.

Note that the above changes will be wiped out if/when you upgrade the plugin. To avoid this, after adding the font, you can copy the fonts directory (wp-content/plugins/woocommerce-printnode/vendor/dompdf/dompdf/lib/fonts) to a different directory on your webserver, and define the constant DOMPDF_FONT_DIR in your wp-config.php to point to your new directory.

e.g. if you copied it to the folder /home/myuser/public_html/dompdf-fonts, then you’d put:

define(‘DOMPDF_FONT_DIR’, ‘/home/myuser/public_html/dompdf-fonts’);

What extra information about a product will be included in the print-out?

WooCommerce has a standard mechanism for adding “meta” information to a product, and our built-in simple template will include this information. This is the same extra information as you see in WooCommerce’s built-in order notification emails. So, as long as whatever plugin or code it is that allows/records extra information for a product is using this mechanism, it will be included.

If your print-outs are being generated by a third-party plugin (e.g. “WooCommerce PDF Packing Slips and Invoices), then you will have to refer to that plugin’s documentation to see, but generally they will also be including this information in the same way, since shop owners almost always want to see this information and hence an order summary excluding it would be of limited of use. (Of course, you can also look at the PDFs being generated by the plugin, and seeing what is in them).

For further customisations to the output, please see this FAQ.

I seem to be blocked from sending e-mail. What can I do?

If the network you connect from is also used to send spam, then your computer may end up with an Internet address that has been banned from using e-mail. Simba Hosting tries to prevent this from happening by not banning any computer that has recently succesfully supplied an e-mail username and password. If you are banned then the first time you may get an error message but on further attempts you may not be able to connect at all. You can remove any block from your computer by visiting https://www.simbahosting.co.uk/mail-unblock.php – if this does not work then your problem is something else.

How can I customise this plugin (including the document printed), beyond the obvious settings?

To customise the output of your invoices/packing notes/etc., for all formats except the “internal” (short) format, you should follow the link (from the WooCommerce -> PrintNode page, in the ‘Settings’ tab) to the settings for the plugin that creates the document, and use the options provided there. You can also create your own templates for those options (guided by the documentation for the relevant plugin). If you are using “PDF Invoicing and Packing Slips” by WP Overnight (which is our recommended partner plugin), then their documentation is available here.

To customise the “internal” format’s template, you have various options. The output is created by the file templates/cloud-print.php found in the plugin’s directory (wp-content/plugins/woocommerce-printorders). You can copy this file as templates/cloud-print.php in your theme or child theme directory, and then modify it. Instructions are at the top of that file. If you simply wish to add or change CSS styles, then this can also be done with a hook (the woocommerce_printorders_css filter). Alternatively, you can use the woocommerce_printorders_printtemplate filter to use a template of your own devising at a different location. There are various other hooks that may be better than copying the template, for simple tasks.

For customising other aspects of its behaviour, this plugin uses WordPress’s standard customisation mechanisms – hooks and filters. As with every other such plugin, a competent developer can read the plugin code, and hook into it at any of those points (see here, or here for a tutorial). (Please note that customised development is not included in the purchase price of any plugins).

Finally, you may find the debugging log feature useful – this is configured in WooCommerce -> PrintNode -> Settings. WooCommerce’s standard logging mechanism is also used, so you can also find logs in your WooCommerce log directory (usually wp-content/uploads/wc-logs).

What is the mail backup service? Why is it useful?

The mail backup service stores a copy of every incoming or outgoing e-mail for you (or just those addresses you choose). If you ever lose your e-mail (e.g. your hard disk perishes, your computer is stolen, your house burns down), then you can get all your e-mail back.

I haven’t managed to connect my printer to PrintNode. Please can you help?

Unfortunately, the price we have pitched the plugin at does not allow us to help with any general printing issues. The plugin is a connector between PrintNode and your WordPress site, and we are only specifically able to support that aspect. (To use an analogy, if you buy new tyres for your car, then you’ll understand that the tyre supplier’s after-sales support will not include investigating engine issues). To use this plugin, you need to ensure that your printer, any device driving the printer, network and connection to PrintNode are all working, as pre-requisites. You can and should ask PrintNode for support with any issues with your PrintNode account and the associated service.

Do I really need a backup of my e-mail?

If you use your e-mail seriously, then losing it all could be a big inconvenience. Documents people have sent you, people’s contact details, e-mail addresses you forgot to put in your address book, business correspondence, invoices and receipts, login details – there’s a lot in our e-mail. The peace of mind that a backup brings is very cheap.

I wish to print when an order is placed, not when it is paid (or vice-versa)

This can be controlled in the plugin settings:

Settings for when to print

N.B. In  WordPress/WooCommerce developer terms, this means “when the woocommerce_checkout_order_processed action is called, rather than the woocommerce_payment_complete action.”.

Why should I use Simba Hosting to backup my e-mail?

If you backup your e-mail at your home or office, then you must remember to do it at regular intervals, and you’re not safe from thefts or fires which could destroy your backup along with the original. Simba Hosting’s backups are away from your location, and take place instantly and automatically every time a new e-mail comes in.

An order has been placed, but not printed – what should I do?

Firstly, if relevant, has payment been made for the order? This plugin will instantly print orders made via manual payment methods, even before payment (e.g. cheque, cash, BACS); for other payment methods where payment notification is automated (e.g. PayPal, Stripe, Authorize.Net, etc.), the order is printed when payment is made. If using PayPal, then please check your PayPal account to see that the payment has actually completed – more than one customer has tested using a freshly-created PayPal account that isn’t capable of processing payments yet, because PayPal haven’t lifted the initial restrictions on the account. Note that “when payment is made” does not mean the same as “when the order status changes” (technically, it is when WooCommerce fires the internal action woocommerce_payment_complete). Often when people are testing they do not realise this and expect something to print if they manually manipulate order status. (If you do want to always print when order status changes, go here for help).

Have you selected any templates to actually be printed? Check the plugin settings in WooCommerce -> PrintNode -> Settings

Is your printer yet connected to PrintNode? This plugin sends a print job to PrintNode… until your printer is actually connected to PrintNode, it won’t print anything. Use the “Print” button in your PrintNode account – https://app.printnode.com/app/print – to send test print jobs to your printer via PrintNode. (Please note that for support for issues with PrintNode itself or your account with them, you should go to PrintNode).

If your printer is connected to PrintNode, then is your website correctly set up to connect to it? Go to the WooCommerce -> PrintNode -> Printers  page in your WordPress dashboard and print out a test. If that does not work, then your website is not yet connected to PrintNode.

Is your printer switched on? If it needs to be connected to a computer, then is it – and is the computer switched on? You can check at this link to see if PrintNode has received your job: https://app.printnode.com/app/print. If the job is in your PrintNode queue, then this plugin has finished its work – the problem lies further down the line, and you need to look at where.

You should also make use of the option to send an email with debugging information (in WooCommerce -> PrintNode -> Settings), as in this screenshot (send this log to us if requesting support, together with information from all the above items, e.g. payment method, etc.):

Email debugging

How much does it cost?

It is very economical. You only pay for the amount of total storage you are using at the end of each month, at 15 pence per 100 megabytes per month, with a minimum charge of 50p per month on each domain name. How many megabytes of storage you use depends mostly on how many large attachments you receive (e.g. if you receive a lot of photos). If you received 20 large, high-quality photos every week and as a result used 100 additional megabytes each month, then in your first year you would spend a total of £11.70. If you do not receive many large attachments, then you could go for a few years only paying 50p each month. Your first invoice will be £6 to cover the first year in advance, and then any extra charges will be invoiced in arrears.

What code can I use to trigger a print-out from a PHP context?

The code fragment below should work:

global $woocommerce_simba_printorders_printnode;

This will print using your default settings.

Can I backup outgoing mail as well as incoming mail?

Yes, you can backup both, or either, as you choose.

Print-outs through PrintNode have unwanted blank space at the bottom of my print-out. What can I do about this?

We have heard from a few users who, generally using “continuous paper” printers, get more blank space after each print-out than they want. What can be done about this? Here are some things to look at:

1. Is the unwanted space inside the document that is being printed?

PrintNode is a service which receives a PDF file from another source (in the case of our plugin, from your website), and sends it to your printer. So, one possibility is that the PDF file itself has lots of blank space within it.

To investigate this, go to your WordPress dashboard, and to the page for the particular order you are looking at (WooCommerce -> Orders -> (Specific order). In the PrintNode meta-box, you can download the PDF file that is being generated, and look at it:

Getting the PDF

If, at the bottom of your document, there is lots of unwanted white-space, this might be just because you have to use a standard page size, and the order was a very short one, and there’s not much to do about it there. But, if your page size is much longer than your typical order, you could consider shortening it.

If the PDF is generating by another plugin, you will need to follow the documentation in that other plugin (and/or ask its providers for support) to achieve that. For example, for “WooCommerce PDF Invoices & Packing Slips”, their documentation is here. If you are using the “Simple summary” template provided within our plugin, then the settings for that, including generated page sizes, are withing WooCommerce -> PrintNode -> Settings:

Simple summary settings

2. Do you need to change the page size in your printer settings?

As well as the page size within the PDF document being sent to PrintNode, there is also the page size setting used in the printer driver itself. PrintNode clients (such as our plugin) do not directly communicate with the printer, but they are able to set a setting when sending the job to PrintNode. This setting is to choose a list of page sizes from the list advertised by PrintNode for each particular printer. In WooCommerce -> PrintNode -> Printers in your WordPress dashboard, you can choose your page size. So, you should look at that setting, and perhaps experiment with different possibilities there to see what works best. If you choose “Leave to printer driver”, then the plugin will not send any request for any particular page size; PrintNode and your computer/printer driver will handle it themselves. But if you make another choice, then this request will be passed on to PrintNode:

Choosing a paper size


3. Look at PrintNode’s FAQs / ask PrintNode for advice

In PrintNode’s FAQs – https://www.printnode.com/en/faq – there is a question “My PDF is printed correctly by Adobe Reader / Chrome / system tools, but with PrintNode it is rotated / the wrong size. What can I do?”, which you may wish to consult.

Beyond this, you could try printing the PDF (from step 1.) directly using PrintNode’s web app at https://app.printnode.com/app/print. Do you have the same problem? If so, then you should ask PrintNode for advice. In this situation, the extra margin is not coming from the plugin, but is between PrintNode and your printer. As such, there’s likely nothing you can change in the plugin to get a different result, so you will need to call upon the support that is available through your PrintNode account.

Does this service back up individual addresses, or every e-mail address on the domain?

You can choose which you prefer. You can backup all addresses, only chosen addresses, or all addresses with the exception of chosen addresses.

PrintNode support have told me to add specific “job options” – how can I do this?

To do this, you will need to use a WordPress filter:

  1. Create (if it does not already exist) the folder mu-plugins inside your wp-content folder, i.e. wp-content/mu-plugins
  2. In that folder, create a file with a name ending in .php – e.g. printnode-options.php
  3. Put content like this in the file:<?php
    add_filter('woocommerce_printorders_printnode_printing_job_options', function($options) {
    $options['printer_options']['rotate'] = 180;
    return $options;

In the above example, we have set the “rotate” option to a value of 180. PrintNode’s documentation on supported job options is available here: https://www.printnode.com/en/docs/api/curl#printjob-options. Please note that customisations of this sort are outside of the scope of our standard support; we provide this documentation as a courtesy for those whom PrintNode support have advised to set specific options, and ask that you continue to work through that with them. The above is the mechanism for setting job options, but we cannot advise you as to whether they will achieve what you hope for or not, as that is beyond our control.

N.B. If after saving the above file your WordPress website crashes with the “white screen of death”, then you introduced a syntax error; you can bring your site back up by emptying or deleting the file, and trying again.

How do I retrieve email when I need it?

Our website allows you to search all your backed-up e-mails, so you can identify exactly what you need. You can search for mails by dates, senders and receivers. You then contact our support desk and request the ones you want. If there is enough demand for it, we will bring in a service allowing you to fetch e-mails instantly – let us know if you are interested.

If I receive a mail on two different addresses, or a mail is forwarded internally on my domain, how many times is it stored?

The mail is only stored in our database once, and hence will only contribute once to your storage quota. All instances of receiving the mail are recorded, so that you can easily search for it.

How can I calculate how much storage I am using?

You will receive an e-mail each month showing how much storage you are using, and how much it costs. You can also use “Mail Manager” (go to your control panel to search for stored mails and the results will give you a grand total of storage used. (Note that the total storage used can be less than the sum of every individual e-mail, as some e-mails are received twice but only need to be stored once, e.g. they are sent to two separate addresses on the same domain, or forwarded locally within the domain).

How do you give my e-mail back to me when I request it?

We can either place it back into your inbox, or give you a link to download a mailbox to your machine, or (for a small handling charge) send the data in the post by CD.

What else does the service include?

Using your control panel, you can monitor how much storage you are using and you can search through a list of all e-mails that have been backed up.

Can I have a free trial?

Yes, a one-month free trial is available; please just contact our support desk.

How do I sign up?

Log into your account (at http://www.simbahosting.co.uk/cp), and follow the link for managing your e-mail settings. You will then see the options available there. The service becomes active straightaway.

What are my login details for FTP?

Host: ftp.simbahosting.co.uk
Username: (your username – usually the same as your domain name)
Password: (your password)

You may also need to tell your FTP program to use encryption. The option may be called “encryption” or “TLS” or “STARTTLS” or “SSL”. The first time you connect, your FTP program may ask you to verify that the secure connection has been made – by asking you to “accept” a “certificate”. When it does this, you should accept if the certificate is issued by LetsEncrypt for ftp.simbahosting.co.uk, and is currently valid. Though, ideally your FTP program will validate this automatically, and only tell you if there is a problem.

Example of connection settings:

FTP Settings

What is FTP?

FTP (File Transfer Protocol) is used to transfer files from your computer to your website.

Where do I put my files?

When you log in, there will be (at least) three directories, as follows:

Image: View after logging in

The “htdocs” directory is the one which your website files should go in to – for example, if your website is “www.example.com” and you have a file called “home.htm” which you place in “htdocs”, then it will be available as “www.example.com/home.htm”. “logs” contains the log files recording visits to your website; in the directory “private” you can place any files you wish to store in your account without making them available to anyone else. You cannot create any files or directories of your own in this top level.

Can you recommend an FTP program?

If you do not already have an FTP program, then you can get a free one from here (Filezilla). It is full of features, has no adverts and runs on Windows, Linux and Mac. Below there is information on the correct settings for CuteFTP, Filezilla, CoffeeCup Direct and CoffeeCup FreeFTP, though many others should work.

Can you recommend a command-line FTP client?

lftp will automatically select encryption for you – http://lftp.yar.ru/. The standard /usr/bin/ftp which most UNIX systems have does not normally support encryption.

Can I use a different method to transfer files?

You can use SFTP; use the same username and password, but choose port 20023. (And you must use the main username for your site – for technical reasons you cannot use any extra usernames that you have set up).

Some FTP operations work and some do not – what can I do?

FTP failing to work is normally due to a firewall which is failing to allow through legitimate traffic. The FTP protocol is complicated and was designed in the 1970s, but was not designed with firewalls in mind. For very similar reasons, connections for which your Internet Service Provider uses a technology called “Carrier-grade NAT” will not work. Carrier-grade NAT is a way in which service providers who haven’t yet upgraded their networks to the modern IPv6 Internet protocol attempt to work around some of the limitations of the older IPv4 protocol and the problems of lack of available IPv4 addresses. Unfortunately, carrier-grade NAT is inherently (unfixably) incompatible with encrypted FTP connections. Carrier-grade NAT is most commonly seen on mobile telephone networks. If you are on a mobile network and FTP is not working for you, then this is almost certainly the cause.

If you have a personal firewall product on your computer, such as ZoneAlarm, you should turn it off and see if your problem continues. If this solves your problem, you should configure your firewall to add an exception for traffic coming from ftp.simbahosting.co.uk.

You can also try the same operation from a different computer or network; if it works from there but not from your own computer then the problem is somewhere at your end and you should ask a technically knowledgeable person for help.

Alternatively you can use SFTP instead of FTP – your FTP program may have an option for this. SFTP is much more firewall-friendly than FTP. If you only have an Internet connection which uses carrier-grade NAT then this is your only option.

What are the settings to use with CuteFTP?

The CuteFTP “wizard” does not always set up the settings correctly. To connect to Simba Hosting with CuteFTP, you should do this:

1. Open “Site Manager” by opening the “Tools” menu and then choosing “Site Manager” and then “Display Site Manager”.

2. Add a new site, using the details described in FAQ question 1 above. In the “General” tab you should choose “Normal” as your “Login method”, and in the “Type” tab you should choose “FTP with TLS/SSL (AUTH TLS – Explicit)”.

Image: CuteFTP Site Manager - General

Image: CuteFTP Site Manager - Type

If you are asked to accept a certificate, you should do so.

Image: CuteFTP - Accept Certificate

What are the settings for CoffeeCup Direct / CoffeeCup Free FTP?

When setting up the site in “My Servers”, make sure that you choose “Passive” and “FTP over TLS (explicit encrpytion)” as the protocol. (This is available by pressing the “More Options” button). Here is a screenshot (you could also add /htdocs as the “Remote Folder” in order to get straight to the directory which files for your website are meant to go into). If you do not have these options then perhaps you need to upgrade your version of CoffeeCup – we tested Direct 6.5 and FreeFTP 4.0.

CoffeeCup screenshot


What are the settings to use with Filezilla?

Set up the site in Filezilla’s “Site Manager”. In current versions of Filezilla, choose “FTP” as the protocol, and “Require explicit FTP over TLS” for “encryption. In earlier versions, (3.3 and earlier) you choose a “servertype” of “FTPES – FTP over explicit TLS/SSL”.

Filezilla 3 screenshot

Does Dreamweaver’s built-in FTP client work?

In the options, select SFTP, and use port 20023. If you instead select FTP instead of SFTP then it will not work, as Dreamweaver’s built-in FTP lacks necessary features.

What security measures are in place to protect me from other users’ scripts?

All CGI/PHP scripts are run under your own unique UID. This means that they can only access files and resources accessible by this UID. Your own hosting directory is by default set to have permissions that do not allow other users any access to it.

What is the path to my files?

You can discover this by logging in, choosing “Domains”, clicking the “View” icon next to your domain, and then the answer will be shown next to the label “Server Account Path”.

However, you should not need to use this information in any PHP scripts, as the current directory is set to the directory with the running script in. You can either use relative paths, or detect within the script.

What files will get passed to the PHP interpreter?

If you have PHP enabled (as it is on all the packages we sell, unless you are an existing customer on a legacy package from a number of years ago), then any files with a .php extension will get passed to PHP.

If you would like any additional extension to be passed to a particular interpreter, then just contact our support team (follow the “Support” link from this website) and we will see what we can do.

How can I code securely?

Your scripts are run under a unique user ID, and your hosting directory does not have permissions for other users to enter into it.

You can also store sensitive information (e.g. database passwords) in files ending in .inc, also only accessible via your scripts as above – the web server will never serve these up as it will refuse any requests for .inc files.

Otherwise, the same rules will apply to coding on Simba’s webspace as elsewhere.

How can I see errors from my PHP scripts?

You can use PHP’s display_errors setting to control this. If you are using WordPress or another CMS package, it will likely have its own configuration settings to control error reporting (e.g. here is WordPress’s documentation).

You can also see PHP’s logging in your “logs” directory – log in by FTP.

What are my MySQL login details?

You should have been given a database name, user name and password for MySQL; this will not be the same as your FTP or e-mail passwords.

The host name to use is “mysql1.simbahosting.co.uk”. Do not use “localhost” or “” – these are not correct.

How can I keep my MySQL password safe?

As any PHP or Perl scripts are run under your own UID, and since only your UID can access your directory, your details should be safe if you store them in the ordinary way (in a PHP/Perl file which stores them as PHP/Perl configuration variables, as is standard in CMS systems, e.g. WordPress, Joomla, etc.).

How can I administrate my MySQL database?

Use the “Database Administration” link from your control panel, and enter your MySQL username/password when prompted.

I have tried to import a MySQL database, but got an “access denied” error.

The most likely cause for this is that the MySQL file you are trying to import contains a “CREATE DATABASE” line.

The permission to create databases is not granted to ordinary users – and is not necessary, as your database is already created for you.

To fix the problem, simply edit the MySQL file your are trying to import and remove the lines beginning with the words “CREATE DATABASE” and “USE” and then you should be able to import successfully.

When I enter ‘localhost’ as the database server in my code, it does not work

Don’t use localhost, or; rather, use: mysql1.simbahosting.co.uk.

Why does visiting my website show a 404 error?

When you upload a file, e.g. with the name “gubbins.html”, to view it, you need to visit “http://www.example.com/gubbins.html” (changing www.example.com to match your domain name).

There is one set of special exceptions to this. If you don’t supply a file name when you visit, then any page named “index.html” or “index.htm” will be shown. So, if you are wanting to have a page show when you visit http://www.example.com, then you need to upload a page with one of these two names.

Will my website appear in Google? When?

You can add your site to Google here:


However, note that Google and other search engines work by estimating how popular your website is, according to how many other websites contain links to it. If they find links to your site in other places, they will automatically add your site. If your site is not linked from anywhere, it will not appear highly in Google’s rankings. So, what you should do is find friendly website and blog owners and ask them to place a link to your website on theirs.

I am managing my domain name elsewhere. What nameservers should I use?

ns1.simbahosting.co.uk and ns2.simbahosting.co.uk

What is the basic procedure for transferring an existing service?

A transfer must be done carefully. If certain rules are kept, there is no reason for there to be any break in service.

One general rule is that you must begin the transfer process before your renewal comes up with your existing provider. Otherwise, they will likely charge you for another year’s service (or however long your contract period is).

The questions below address how to perform the different services available. The basic order to do things in (unless advised otherwise) is as follows:

1. Transfer your domain name to Simba

2. Set up your e-mail settings at Simba (and in your computer’s e-mail program)

3. Copy your website (including database) over to Simba, and let Simba know that you are now ready

4. Simba will then make the e-mail and website on our computers the “real” one that the rest of the Internet uses, and you can then delete your settings and account at your previous provider.

How do I transfer my domain name to Simba?

If your domain name ends in .uk, then you need to ask your existing provider to transfer the domain name to Simba’s IPS tag, which we can advise you of by e-mail. They will know what this means, even if you do not!

Most larger providers will provide a way for you to do this through logging in at their website. It may be called “transfer domain name”, “transfer IPS tag”, “tag transfer”, or something of that kind.

For a .com, .org, .info and many other domain names, you will be asked to provide an “EPP code”, which your existing provider will need to advise you of. Again, this can often be found by logging in at their website. This code is the authorisation code needed for Simba to take over your domain.

In all cases, the changes above can take a day or two to become fully active, so you need to be aware of this if you are approaching your renewal date. If you find that the time is very short, e-mail us so that we can make your case a priority. Once the renewal date has passed, some transfers are not possible until you have paid a fee to your existing provider.

It is important to note that transferring a domain name does not make any difference to any actual services. It is a risk-free step. It merely passes control over to allow future changes and transfers to be made.

What do I need to do about transferring name servers?

Firstly, if this question means nothing to you, then do not worry – Simba will take care of it all.

If you are transferring your domain name, then normally things work most smoothly if you transfer the domain name first, and then leave the change of nameservers up to Simba.

Alternatively, if you know that all your settings (websites, mailboxes, domains) are set up on Simba, then you can log in to your existing provider’s website, and use these three name servers:


What needs to be done to transfer e-mail settings?

You must use “Mail Manager” (linked from the left side of this page) and re-create the settings for mail boxes and forwarding addresses that you have with your existing provider.

You should set up your mail boxes in your e-mail program (Outlook, Thunderbird, Eudora, etc.), and check that they are working. Your e-mail program will allow you to check both your new and old accounts (i.e. those with your previous provider and those with Simba), so that once your settings are ready, you will not have to worry about losing mail as it will come to one or the other.

Mail will only start being delivered to your mail boxes at Simba once the relevant name server record is transferred (see the relevant question for more information). It is important to have your settings ready so that you do not lose mail, which could happen if the Internet starts sending your mail to Simba but Simba has no settings for you.

How do I transfer my website?

You can copy across your existing website to Simba Hosting’s computers and thoroughly test it before “flicking the switch” to make the version at Simba the “real” one that the Internet sees.

Your setup e-mail will have given you the details of how to upload your content to Simba, and how to view it before your domain name is transferred.

If this is done, then there will be no time during which your website is not available. However, if your website is database driven then you may need to take the old version off the Internet to avoid problems with having two different versions of your database existing. If your website does not use any database then there will not be any issue of this kind.

How do I set up my email address?

Use the “Mail Manager” link from your control panel. From there you can add mail boxes and forwarding addresses.

All anti-spam and anti-virus facilities are automatic – there is nothing to configure.

To add filters, vacation messages and the like, you must log in to your e-mail account using “Web Mail” (here), and choose the “Filters” option.

What do I do if I have forgotten my password and/or username?

On the “login” box, there is a link for you to follow if you forget your password, as long as you can remember your user name and your e-mail address.

If you cannot remember your user name and/or e-mail address, then you may be able to find them by searching your past e-mails from Simba Hosting.

If you still cannot find them, you will need to e-mail us and ask for help – use the “Contact” button at the top of this page.

How do I change my password?

Log in, and then follow the “My Account Summary” link, and then choose the edit link which appears in the “Client Information” table.

That is for your account password. For FTP or email, log in to your control panel, and choose the option from the menu which then appears.

What are my login details for SFTP?

If you prefer to use SFTP instead of FTP, then your details are as follows:

– Server: ftp.simbahosting.co.uk
– Username, password: as given in your setup email
– Port: 20023

If your SFTP program asks you to confirm the “fingerprint” of the remote server, then the correct fingerprint is:

46:06:9f:ae:d4:98:66:12:03:e3:09:58:e1:09:d5:0b (RSA)
60:37:d1:4f:cc:fb:54:90:a0:9d:c6:3e:69:41:ac:ba (DSA)

Note that if you add extra FTP usernames to your account (using the control panel), then these will not have SFTP available. For technical reasons, SFTP is only possible for your master account.

I think my website has been hacked. What shall I do?

Don’t panic. Simba Hosting keep backups of your website, so if you get in touch then we should be able to restore your site from before it was hacked, for a small fee.

How can I avoid my website getting hacked?

Every website is different, but here are some general tips. At Simba Hosting we do our part, monitoring various threats at the server level, and keeping a strong fence between different customer accounts. But you also need to do your part. Here are some general tips:

  • Keep any software in use on your website up-to-date. If you don’t know how, then we can help.
  • Make sure you use strong passwords, not-easily-guessable for any logins on your website. It only takes one weak one to bring a breach. For WordPress, we recommend you install the “No Weak Passwords” plugin.
  • If your website is not SSL-protected, then do not log in to it from any locations with free, unencrypted wifi (e.g. coffee shops, fast food restaurants), as it is easy for other customers at such places to learn your passwords.
  • When building your website, only use modern, maintained software. Do not install obsolete components or components from sources which you are not sure whether you can trust.
  • It can be cheap to get your 12 year-old nephew to help you build a website, and he might be a genius. On the other hand, he might be a learner, and have very little idea of best practices or today’s security threats. Build your website through a reputable company if its security is important to you.
  • Pay for a security audit of your site – Simba Hosting can offer these, and have experience of finding weaknesses that hackers can use, even in expensive sites. You may be surprised what we turn up!

What happens if you discover that my site has been hacked?

Normally we will disable hacked sites, as they are a threat to more than just your own services. We will then notify you, possibly with the results of a brief investigation, together with your options going forward.

Customisation and developer information and common usage issues

This plugin uses WordPress’s standard customisation mechanisms – hooks and filters. As with every other such plugin, a competent developer can read the plugin code, and hook into it at any of those points (see here, or here for a tutorial). (Please note that customised development is not included in the purchase price of this plugin).


To customise the output of your invoices/packing notes/etc., for all formats except the “internal” (short) format, you can follow the link on the WooCommerce -> Settings page, and use the options found in the dashboard there. You can also create your own templates for those options.


To customise the “internal” format’s template, you have various options. The output is created by the file templates/cloud-print.php found in the plugin’s directory (wp-content/plugins/woocommerce-printorders). You can copy this file as templates/cloud-print.php in your theme or child theme directory, and then modify it. Instructions are at the top of that file. If you simply wish to add or change CSS styles, then this can also be done with a hook. Alternatively, you can use the woocommerce_printorders_printtemplate filter to use a template of your own devising at a different location. There are various other hooks that may be better than copying the template, for simple tasks.


Thirdly, you may find the debugging log feature useful – this is configured in WooCommerce -> Settings. WooCommerce’s standard logging mechanism is also used, so you can also find logs in your WooCommerce log directory (usually wp-content/uploads/wc-logs).

I am using a customised template, and don’t know how to add a new font to the PDF?

In PDFs, standard Windows core fonts are available. Our plugin also adds Deja Vu, which has good UTF-8 coverage (which the Windows standard fonts don’t). But in case you want to import another font…

If you are printing the output of another plugin, then you will need to consult that plugin’s documentation for guidance on how to embed extra fonts into its output.

If using this plugin’s default template, then you can add extra fonts, like so:

  1. Log in to the shell on your webserver
  2. Navigate to the directory wp-content/plugins/woocommerce-printorders/gcpl/dompdf
  3. Copy the font you wish to import, which must be in TrueType format, into this directory. Include bold and italic versions, if you intend to use them.
  4. Run the script load_font.php in that directory (run “php load_font.php” to show the syntax). Make sure that the font name matches the font name you will use in your template HTML.

Remember to use the CSS font-family selector where appropriate in your template HTML to actually select your chosen font.

Note that the above changes will be wiped out if/when you upgrade the plugin. To avoid this, after adding the font, you can copy the fonts directory (wp-content/plugins/woocommerce-printorders/gcpl/dompdf/lib/fonts) to a different directory on your webserver, and define the constant DOMPDF_FONT_DIR in your wp-config.php to point to your new directory.

e.g. if you copied it to the folder /home/myuser/public_html/dompdf-fonts, then you’d put:

define(‘DOMPDF_FONT_DIR’, ‘/home/myuser/public_html/dompdf-fonts’);

My thermal printer is printing large vertical margins (i.e. blank sections) when I print through Google Cloud Print – how can I prevent this?

All users who have reported this issue also eventually found the same solution – they were connecting to Google Cloud Print via a Windows machine, and in the advanced printer options in Windows, they found settings for applying page margins. Changing/removing these settings removed the margins. Exactly what options your printer provides, and what it looks like, will vary between printers.

Alternatively, you may be able to resolve the issue by instructing the plugin to use a different paper size. To do this, edit the settings in WooCommmerce -> Settings -> General.

You may need to experiment with size to see what works for you – some users have found that there printer responds better at an apparently “wrong” size.

My thermal printer is printing fonts too small – how can I make them bigger?

Firstly, you can change the print-out template in any way you like, using the advice in the customisation paragraphs immediately preceding this section. If you just want to boost the font size, then you can also do this without tweaking your template at all, but just by using CSS. Go to “Settings -> Google Cloud Print” in your WordPress dashboard, and add this as the print header, and then remember to save your settings:

<style type="text/css">
html, body, p { font-size: 150%; }

You can test the effect of this by viewing any order (WooCommerce -> Orders -> (Order Page)) and pressing the button to send the order to Google Cloud Print. You can then adjust the “150%” above to a value that is appropriate for your printer.

Alternatively, it may be that your fonts are small because the printer driver is doing a “fit-to-width”, based on a wide paper size. You may be able to resolve the issue by instructing the plugin to use a different, smaller paper size. To do this, add this to your wp-config.php file, after the opening lines:


The above line will set the paper size to A5 (i.e. the ISO standard A5 paper size). You can use any of a0-a10, b0-b10, c0-c10, letter, and various other values (use lower case) – you may need to experiment to see what works for you.