Server Requirements

Where to find #

Path: WooCommerce > PDF Invoices > Advanced > Status > System Configuration.

Starting with version 3.9.2 our our Invoicing solution, we added notices for the server requirements. We did not change the actual requirements however. You may therefore notice this message towards the top of your screen:

” Your server does not meet the requirements for PDF Invoices & Packing Slips for WooCommerce.”

Click on the permalink in this error message in order to be taken to the System Configuration screen. You will likely notice that one or more of your rows is non-green. Instead, you will notice a red or yellow color.

An image of the system configuration table

The non-green part shows which requirement is missing. If the color is red it indicates an error. A yellow color indicates a warning, that you will soon need to take care of (as soon as possible).

In most cases, you will need to ask your host to fix the issue by installing the missing requirement. Some may be fixed by the user, if they have access to their server.

PHP Version #

This must be 7.4 or higher, for us to guarantee functionality. Updating to WordPress’s recommended PHP version (currently 7.4 or higher) your store should deliver a performance and security increase that will benefit all website visitors.

DOMDocument class #

The DOM extension is enabled by default. Otherwise, this needs to be enabled in the php.ini file.

DOM extension

MBString extension #

mbstring is a _non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option.

MultiByte String Installation

GD #

This is a required extension to process images in documents.
When trying to view a document, you may notice errors with the message:

“The PHP GD extension is required, but is not installed”

An image of an error message


Install PHP’s GD Extension
Further troubleshooting for GD installation

WebP Support #

Required when using .webp images.

  • Safari on iOS 14.4 and higher now has full support.

Installing PHP’s GD extension (another requirement in this article) should solve this issue. It is known that via Docker, GD extension does not come with webp support, so additional steps would be needed in that case.

Zlib #

This is used to compress PDF documents. Some hosting providers have an option to disable this, otherwise it has to be done manually.
Installing zlib in Linux Server – StackOverflow thread

It is possible that you may only need to ask your host providers to disable zlib.output_compression on your server for you. To disable it, add the following line into the php.ini file:

zlib.output_compression = Off

opcache #

For better performance. This PHP extension allows servers to handle more requests efficiently, making it easy to scale web applications without increasing server resources.
Installing opcache

GMagick or IMagick #

Either of these is especially useful for handling image files. If you are having issues with PNG images specifically for example, you may need to check the versions of these extensions.

GMagick is a php extension to create, modify and obtain meta information of images using the GraphicsMagick API.

Install GMagick


Imagick is a native php extension to create and modify images using the ImageMagick API. This extension requires ImageMagick version 6.5.3-10+ and PHP 5.4.0+.

Install IMagick

ImageMagick #

Required for IMagick to function. ImageMagick is a powerful, open-source software suite for creating, editing, converting, and manipulating images in over 200 formats.

Install ImageMagick

glob() #

Required to detect custom templates and to clear the temporary folder periodically.
This should be handled by your PHP version. If you are having error messages regarding this function, like…

PHP function glob is not available

…you may have different versions of PHP installed in your directory. One of those directories may have a PHP version that is too low to support the glob function.

WP memory Limit #

Recommended: 128MB (especially for plugin-heavy setups).

A low memory limit could sometimes lead to unexpected issues and terminate a process in the middle of it if it is not high enough. Errors relating to memory generally occur during bulk exports or when generating PDFs with large images. For regular usage, it’s not usually a concern.

Increasing the WordPress Memory Limit

allow_url_fopen #

This directive is disabled by default in PHP. The “allow_url_fopen” directive is necessary when content is displayed by using a URL on your documents, like an external image. So if you don’t have any, you can ignore it and dismiss the notification without any worries.

To enable this functionality, use a text editor to modify the allow_url_fopen directive in the php.ini file as follows:

allow_url_fopen = on

fileinfo #

This PHP extension is enabled by default. It is necessary to verify the MIME type of local images. The server will not know what type of file it is dealing with, without this.

An error message may look like:
“Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)”

Install fileinfo

base64_decode #

This is a PHP function that should be enabled by default. It is used to compress and decompress font and image data. This can be disabled without triggering a fatal error in PHP 7.3 and 7.4. If using any close version of PHP, check that the function is not disabled.

Possible error message:

"Warning: base64_decode() has been disabled for security reasons"

Check for the disable_functions directive in your PHP configuration file (the php.ini file). This directive allows you to disable certain functions for security reasons.
It receives a comma-delimited list of function names. This directive is
NOT affected by whether Safe Mode is turned On or Off. You will need to remove the base64_ function from that list for it to work

Intl #

Required when using the {{spelled_out_total}} placeholder.
Install PHP Intl extension