1. Home
  2. Knowledge Base
  3. WooCommerce Wholesale Order Form
  4. Troubleshooting the Wholesale Order Form shortcode

Troubleshooting the Wholesale Order Form shortcode

Added the Wholesale Order Form shortcode to a page, and now the form is missing, shows an error, or breaks the page? Most cases come down to the shortcode itself, the form status, a page builder template, or a conflict with another plugin. This guide walks you through each symptom so you can find the cause and get the form showing again.

Before you start: check your shortcode syntax

In version 3 of WooCommerce Wholesale Order Form, the correct shortcode format is:

[wwof_product_listing id="XX"]

where XX is your Order Form’s numeric ID. A shortcode placed without the id attribute, or using an incorrect ID, either shows an error message or shows nothing at all.

To find the correct shortcode for your form:

  1. Go to Wholesale → Order Forms in your WordPress admin.
  2. Open the form you want to embed.
  3. Copy the shortcode shown in the form editor.
  4. Paste it onto the page where you want the form to appear.
Order Forms list in WP Admin showing the Wholesale Order Listing form, its shortcode, location, and Published status
Order form editor showing the form settings and the wwof_product_listing shortcode field

If you have been using [wwof_order_form] without an id attribute, that shortcode format is no longer in use. Replace it with the shortcode copied from the form editor.

Common issues and fixes

The page shows “No order form ID specified”, “does not exist”, or “There is a config error”

Administrators who see “No order form ID specified.” are using the shortcode without the required id attribute. Administrators who see a message like “Order form ID 123 does not exist!” are using an ID that does not match any order form, for example the ID of a form that was deleted. In both cases, replace the shortcode with the one copied from Wholesale → Order Forms.

Non-admin visitors see “There is a config error on this form. Please contact the site administrator.” instead, for a missing ID and for a wrong ID. This is the same underlying problem. Fix the shortcode and the message disappears for both.

Frontend view of the WWOF config error message: "There is a config error on this form. Please contact the site administrator."

The order form is not showing at all

Customers can only see an order form when its status is Published. A draft form still shows to administrators and shop managers, so the page can look fine while you’re logged in. Customers and logged-out visitors see an “Access Denied” message (“You do not have permission to view this order form.”) instead, so a draft form often looks like a permission problem rather than a missing form. To see what your customers see, open the page in a private or incognito window.

  1. Go to Wholesale → Order Forms.
  2. Check the status of the form. If it shows Draft, open it and click Publish.
Wholesale Suite Order Forms list showing a form with Draft status alongside a Published form

The form stays blank inside a page builder template

The page loads, but the space where the order form should be stays empty. This happens when the shortcode sits in a theme builder template, such as a Divi Theme Builder template or an Elementor Pro theme template, instead of in the page’s own content.

The Wholesale Order Form loads its form script only when it finds the shortcode in the content of the page being viewed. A template is stored separately from the page, so the plugin does not see the shortcode there. The empty form container prints, but the script that fills it never loads.

The simplest fix is to place the shortcode in the page’s own content, for example in the block editor or in a builder module on that page. If you want to keep the form in the template, add a short code snippet that tells the plugin to load the form on that page.

To add the snippet:

  1. Go to Wholesale → Order Forms and note the ID of your form. It is the number in the form’s shortcode, for example 123 in [wwof_product_listing id="123"].
  2. Note the slug of the page that shows the template, for example wholesale-ordering for yourstore.com/wholesale-ordering/. The page ID also works.
  3. Add the snippet below with a code snippets plugin such as WPCode, or add it to your child theme’s functions.php file.
  4. Replace wholesale-ordering with your page slug and 123 with your form ID, then save.
  5. Clear your site cache and reload the page.
add_filter( 'wwof_force_load_form_posts', function ( $form_posts ) {
	// Replace 'wholesale-ordering' with the slug or ID of the page that shows the form.
	if ( is_page( 'wholesale-ordering' ) ) {
		// Replace 123 with your order form ID.
		$form_posts[123] = \RymeraWebCo\WWOF\Factories\Order_Form::get_instance( get_post( 123 ) );
	}

	return $form_posts;
} );

One snippet can load as many forms as you need. Add one line per form inside the check for the page that shows it:

add_filter( 'wwof_force_load_form_posts', function ( $form_posts ) {
	if ( is_page( 'wholesale-ordering' ) ) {
		$form_posts[123] = \RymeraWebCo\WWOF\Factories\Order_Form::get_instance( get_post( 123 ) );
	}

	if ( is_page( 'trade-restock' ) ) {
		$form_posts[456] = \RymeraWebCo\WWOF\Factories\Order_Form::get_instance( get_post( 456 ) );
		$form_posts[789] = \RymeraWebCo\WWOF\Factories\Order_Form::get_instance( get_post( 789 ) );
	}

	return $form_posts;
} );

On a page where the snippet loads forms, the plugin uses the snippet’s list and stops looking for shortcodes in the page content. If that page also has an order form in its content, add that form to the snippet too.

The is_page() check matches normal WordPress pages. If your template shows on another type of screen, change the check to match that screen.

A critical PHP error appears when the shortcode is on the page

Critical errors that only appear when the shortcode is present are caused by a plugin conflict, a caching or optimisation plugin that mishandles the order form’s JavaScript bundle, or a PHP memory limit that is too low. Work through the steps below in order.

Step 1: enable WP_DEBUG to see the actual error

  1. Open your site’s wp-config.php file (located in your WordPress root directory).
  2. Find the line define( 'WP_DEBUG', false ); and change false to true.
  3. Directly below that line, add: define( 'WP_DEBUG_LOG', true );
  4. Save the file and reload the page that triggers the error.
  5. Open wp-content/debug.log.
  6. Note the exact error message and the file path it points to.

Keep this error message and file path handy. You need them if you contact support.

See Debugging in WordPress for full details on the available constants.

Step 2: check the PHP memory limit

The order form loads a JavaScript application that makes several background requests to your server. If PHP runs out of memory during this process, a fatal error can result. The recommended minimum for WooCommerce sites, including those running the Wholesale Order Form, is 256 MB.

To check your current limit, go to WooCommerce → Status, open the System status tab, and look for the WordPress memory limit row. If it is below 256 MB, contact your hosting provider to increase it, or add the following line to wp-config.php:

define( 'WP_MEMORY_LIMIT', '256M' );
WooCommerce System status tab showing the WordPress memory limit row

Step 3: switch to a default theme

A theme that adds conflicting JavaScript or overrides WooCommerce templates can break the order form. Switching to a default theme rules this out quickly.

  1. Go to Appearance → Themes in WordPress admin.
  2. Activate Storefront or Twenty Twenty-Four.
  3. Reload the page with the shortcode.

If the error disappears with the default theme active, your original theme is the source of the conflict. Re-activate it and share the debug log with your theme’s support team.

Step 4: isolate the conflicting plugin

  1. Go to Plugins → Installed Plugins.
  2. Deactivate all plugins except WooCommerce and your Wholesale Suite plugins: WooCommerce Wholesale Prices, WooCommerce Wholesale Order Form, and WooCommerce Wholesale Prices Premium if you use it.
  3. Reload the page with the shortcode. If the error is gone, a plugin conflict is the cause.
  4. Re-activate plugins one at a time, reloading the page after each. The last plugin you activated when the error reappears is the conflicting one.
WordPress Installed Plugins list showing active plugins including WooCommerce and WooCommerce Wholesale Order Form

Known plugin conflicts and workarounds

Several optimisation and caching plugins require special handling to work alongside the order form. The plugin includes built-in compatibility for some of these, meaning no manual steps are needed for them.

WP Rocket. The Wholesale Order Form automatically excludes pages containing its shortcode from WP Rocket’s page cache. No manual exclusion rule is needed.

SiteGround Optimizer. The plugin automatically excludes its scripts from SiteGround Optimizer’s JavaScript and CSS combination and minification. If you’re still seeing issues after confirming this is the conflict, manually disable Combine JavaScript Files and Minify JavaScript Files (and the equivalent CSS combine and minify options) for the page containing the order form.

Other caching plugins (WP Super Cache, W3 Total Cache, LiteSpeed Cache, etc.). Add the order form page URL to the plugin’s cache exclusion list and disable JavaScript minification and combination for that page.

Page builders (Elementor, Divi, WPBakery). If the form sits in a theme builder template and stays blank, follow the steps in The form stays blank inside a page builder template above. For Breakdance, the plugin reads shortcodes from Breakdance elements from WooCommerce Wholesale Order Form version 3.0.9 onwards, so no extra step is needed.

What to include when contacting support

If the error persists after working through the steps above, the Wholesale Suite support team needs the following details to investigate:

  • The exact error message from wp-content/debug.log
  • A list of your active plugins at the time of the error
  • Your PHP version and current memory limit (visible on the System status tab under WooCommerce → Status)
  • The active theme name and version
  • Any changes made to the site shortly before the error appeared

Frequently asked questions

What is the correct shortcode for the Wholesale Order Form?

The correct shortcode in version 3 is [wwof_product_listing id="XX"], where XX is the Order Form ID. Copy it directly from the form editor at Wholesale → Order Forms.

Why does the order form show “There is a config error on this form”?

This message appears when the id attribute is missing from the shortcode, or when the specified Order Form ID does not exist. Check that your shortcode includes the correct id copied from the form editor.

Why doesn’t my order form appear even though the shortcode is correct?

The most common cause is that the form is still saved as a Draft. A draft form shows to administrators and shop managers, but customers and logged-out visitors see an “Access Denied” message until the form is Published. Open the form at Wholesale → Order Forms and click Publish. Logged-out visitors may also see an “Access Denied” message if the form is restricted to specific roles.

Do I need to configure my caching plugin to work with the order form?

For WP Rocket and SiteGround Optimizer, no manual configuration is needed. The plugin handles compatibility automatically. For other caching plugins, add the order form page to the cache exclusion list and disable JavaScript minification for that page.

Why does the order form stay blank in my Divi or Elementor template?

The plugin loads the form only when it finds the shortcode in the page’s own content, and a theme builder template is stored separately. Move the shortcode into the page, or add the wwof_force_load_form_posts snippet from The form stays blank inside a page builder template above.

Can I use the order form to place an order for one of my customers?

No. The order form always shows prices for the account that is logged in, and there is no mode to shop as a customer on the front end. If you open the form while logged in as an administrator, you see the prices for your own account. To place an order at a customer’s wholesale price, use a backend order instead. With Wholesale Prices Premium active, go to WooCommerce → Orders, click Add order, select the customer, and tick Apply Wholesale Pricing. For the full steps, see how to create manual wholesale orders.

Need help?

If you have a question or run into any issues, we’re here to help.

Was this article helpful?

Related Articles

Complete Your Purchase