When using Donation Platform for WooCommerce, you might encounter an issue where the donation progress bar remains stuck at 0%. Here are the common causes and solutions:
1. Caching Plugin Delays
Some caching plugins can delay updates to your site’s data, preventing the progress bar from displaying the latest donation amounts.
Solution:
- Clear your site’s cache in your caching plugin settings.
- Disable the caching plugin temporarily and check if the progress bar updates correctly.
2. Internal Cache Out of Sync
The internal cache of Donation Platform for WooCommerce might be out of sync in certain edge cases.
Solution:
- Wait for up to 6 hours for the cache to refresh automatically.
- If immediate action is needed, go to the plugin’s settings and delete the internal cache manually.
3. WooCommerce Analytics Not Enabled
The progress bar depends on WooCommerce analytics to calculate and display donation data. If WooCommerce analytics is disabled, the progress bar will not work correctly.
Solution:
- Enable WooCommerce Analytics:
- Go to WooCommerce > Settings > Advanced > Features.
- Check the option for Enable WooCommerce Analytics.

- Import Historical Orders:
- Navigate to WooCommerce Analytics settings.
- Import historical orders to ensure the analytics data is up-to-date.

4. Check Product Statistics in WooCommerce Analytics
When using Donation Platform for WooCommerce, the donation progress bar relies on revenue data provided by WooCommerce Analytics. A quick way to verify whether WooCommerce is tracking donations correctly is to inspect the product statistics in the admin area.
How to check product analytics
- Go to WooCommerce → Analytics → Products
- Search for the donation product that is connected to your progress bar
- Check the following values:
- Net revenue
- Orders
- Items sold
If these values are zero or missing, WooCommerce Analytics is not providing the required data, and the progress bar will remain stuck at 0%.
What to do if the numbers look wrong
- Make sure WooCommerce Analytics is enabled (see section above)
- Import historical orders in WooCommerce Analytics
- Confirm that donation orders are:
- Completed (
wc-completed) - Assigned to the correct product
- Not refunded or cancelled
- Completed (
If WooCommerce Analytics shows correct revenue for the product, but the progress bar still does not update, continue with the debugging steps below.
5. Regenerate Product Lookup Tables
If the wc_order_product_lookup table is missing data or out of sync, regenerating it can fix incorrect revenue calculations.
How to regenerate product lookup tables
- Go to WooCommerce → Status → Tools
- Find Product lookup tables
- Click the Regenerate button

Once regeneration is complete, check if the progress bar is now showing the correct data.
6. Debug How Donation Revenue Is Calculated (Advanced)
This section is intended for advanced users or developers.
Donation Platform for WooCommerce calculates product revenue using WooCommerce’s order tables. Depending on your WooCommerce configuration, either the High-Performance Order Storage (HPOS) tables or the classic posts table are used.
How revenue is calculated (for your information)
Internally, the plugin uses logic similar to the following:
- If HPOS (custom order tables) is enabled, revenue is read from
wc_orders - Otherwise, revenue is read from the
poststable
In both cases, the calculation is based on:
- Completed orders only (
wc-completed) - Product net revenue from
wc_order_product_lookup
Run a debugging script in your shop
You can use the following temporary script to check:
- Whether HPOS is enabled
- How many orders are found for a product
- What revenue value is returned by the database query
⚠️ Important:
Run this only in a staging environment or temporarily, and remove it afterward.
<?php
/**
* Debug WooCommerce product revenue lookup for a specific product.
*
* - Checks whether HPOS (custom order tables) is enabled
* - Shows how many orders are found
* - Prints the calculated revenue
* - Prints the raw rows from wc_order_product_lookup
*
* ⚠️ Run temporarily and remove afterward.
*/
use Automattic\WooCommerce\Utilities\OrderUtil;
global $wpdb;
// TODO: Replace with your donation product ID
$product_id = 123;
$is_hpos_enabled = OrderUtil::custom_orders_table_usage_is_enabled();
echo '<h3>Donation Platform Debug</h3>';
echo '<strong>HPOS enabled:</strong> ';
var_dump($is_hpos_enabled);
if ($is_hpos_enabled) {
$summary_query = $wpdb->prepare(
"SELECT
COUNT(*) AS order_count,
SUM(l.product_net_revenue) AS revenue
FROM {$wpdb->prefix}wc_orders o
INNER JOIN {$wpdb->prefix}wc_order_product_lookup l
ON o.id = l.order_id
WHERE
o.status = 'wc-completed'
AND o.type = 'shop_order'
AND l.product_id = %d;",
$product_id
);
} else {
$summary_query = $wpdb->prepare(
"SELECT
COUNT(*) AS order_count,
SUM(l.product_net_revenue) AS revenue
FROM {$wpdb->prefix}posts p
INNER JOIN {$wpdb->prefix}wc_order_product_lookup l
ON p.ID = l.order_id
WHERE
p.post_type = 'shop_order'
AND p.post_status = 'wc-completed'
AND l.product_id = %d;",
$product_id
);
}
$summary = $wpdb->get_row($summary_query);
echo '<h4>Summary</h4>';
echo '<pre>';
print_r($summary);
echo '</pre>';
// Fetch raw lookup table rows
$lookup_rows = $wpdb->get_results(
$wpdb->prepare(
"SELECT *
FROM {$wpdb->prefix}wc_order_product_lookup
WHERE product_id = %d
ORDER BY order_id DESC
LIMIT 50;",
$product_id
),
ARRAY_A
);
echo '<h4>wc_order_product_lookup rows (latest 50)</h4>';
if (empty($lookup_rows)) {
echo '<p>No rows found for this product.</p>';
} else {
echo '<pre>';
print_r($lookup_rows);
echo '</pre>';
}How to interpret the results
- HPOS enabled: true / false
Confirms which order storage WooCommerce is using. - order_count = 0
No completed orders were found for this product. - revenue = NULL or 0
WooCommerce is not reporting net revenue for this product.
If WooCommerce Analytics and the database query both return zero values, the issue is not related to the progress bar but to missing or incomplete order data.
