Title: A1 Profit Reports for WooCommerce
Author: a1plugins
Published: <strong>4 Agosto 2026</strong>
Last modified: 21 Agosto 2026

---

Ricerca i plugin

![](https://ps.w.org/a1-profit-reports-for-woocommerce/assets/icon.svg?rev=3634246)

# A1 Profit Reports for WooCommerce

 Di [a1plugins](https://profiles.wordpress.org/a1plugins/)

[Scarica](https://downloads.wordpress.org/plugin/a1-profit-reports-for-woocommerce.1.2.10.zip)

 * [Dettagli](https://it.wordpress.org/plugins/a1-profit-reports-for-woocommerce/#description)
 * [Recensioni](https://it.wordpress.org/plugins/a1-profit-reports-for-woocommerce/#reviews)
 *  [Installazione](https://it.wordpress.org/plugins/a1-profit-reports-for-woocommerce/#installation)
 * [Sviluppo](https://it.wordpress.org/plugins/a1-profit-reports-for-woocommerce/#developers)

 [Supporto](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/)

## Descrizione

A1 Profit Reports for WooCommerce adds the reporting layer WooCommerce’s own Cost
of Goods Sold feature doesn’t provide:

 * Sortable Profit and Margin columns on the product list.
 * A Profit row on every order, and a Profit column on the orders list — refund-
   aware.
 * A date-range Cost of Goods report: summary cards, a per-product profit breakdown,
   and CSV export.
 * Quick-select date presets (Last 30 Days, This Month, This Quarter, Last Quarter,
   This Year, Last Year).
 * A tool to recalculate historical cost for orders that predate Cost of Goods tracking.
 * Configurable order statuses for what counts as a sale in reports.

This plugin reads and writes cost data through WooCommerce’s own Cost of Goods Sold
field (`WC_Product::get_cogs_value()` / `get_cogs_total_value()`), so cost entry,
Quick Edit, and Bulk Edit all work the way they already do in WooCommerce — this
plugin doesn’t duplicate that, it reports on top of it.

#### Requirements

 * WooCommerce 9.5 or newer (this plugin reports on top of WooCommerce’s own native
   Cost of Goods Sold field, which isn’t available on older versions).
 * WooCommerce’s Cost of Goods Sold feature must be enabled (WooCommerce  Settings
   Advanced  Features). The plugin turns this on automatically on activation.

#### Scale

Not recommended for stores exceeding roughly 10,000 sales/month, particularly when
using wide date ranges like “This Year” — report data is cached, but a first-time
computation over a very large order volume can still be slow.

## Installazione

 1. Upload the plugin files to `/wp-content/plugins/a1-profit-reports-for-woocommerce`,
    or install through the WordPress admin’s Plugins screen.
 2. Activate the plugin. This automatically enables WooCommerce’s Cost of Goods Sold
    feature if it isn’t already on.
 3. Set a cost on your products (Product data  Pricing, or via Quick Edit / Bulk Edit).
 4. Find your report under WooCommerce  Cost of Goods.

## FAQ

### Why don’t I see cost data on old orders?

Orders placed before the Cost of Goods feature was enabled never had a cost snapshotted.
Use the “Recalculate Historical Cost for This Range” button on the report page —
it applies each product’s _current_ cost retroactively. This is an approximation,
not a historical record: if a product’s cost has changed since the sale, the recalculated
value won’t match what it actually cost at the time.

### Why is the report missing cost for some products?

The report flags products sold in the period that currently have no Cost of Goods
value set. They’re counted at $0 cost until you add one.

## Recensioni

Non ci sono recensioni per questo plugin.

## Contributi e sviluppo

“A1 Profit Reports for WooCommerce” è un software open source. Le persone che hanno
contribuito allo sviluppo di questo plugin sono indicate di seguito.

Collaboratori

 *   [ a1plugins ](https://profiles.wordpress.org/a1plugins/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

[Traduci “A1 Profit Reports for WooCommerce” nella tua lingua.](https://translate.wordpress.org/projects/wp-plugins/a1-profit-reports-for-woocommerce)

### Ti interessa lo sviluppo?

[Esplora il codice](https://plugins.trac.wordpress.org/browser/a1-profit-reports-for-woocommerce/)
segui il [repository SVN](https://plugins.svn.wordpress.org/a1-profit-reports-for-woocommerce/),
segui il [log delle modifiche](https://plugins.trac.wordpress.org/log/a1-profit-reports-for-woocommerce/)
tramite [RSS](https://plugins.trac.wordpress.org/log/a1-profit-reports-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.10

 * Fix: clicking “Allow & Continue” on Freemius’s opt-in screen (1.2.9’s fix) connected
   successfully but then redirected back to the same “Sorry, you are not allowed
   to access this page” error — confirmed live on wp.org. Freemius treats this plugin’s
   Account page raw slug as its permanent “default page” and redirects back to it
   immediately after both “Allow & Continue” and “Skip” complete, not just during
   the initial pre-connection click that 1.2.9 fixed. The placeholder page from 
   1.2.9 is now registered unconditionally (instead of only pre-connection) so that
   slug always resolves; it’s hidden from the WooCommerce submenu once actually 
   connected (registered with no visible parent, the same technique Freemius’s own
   SDK uses for its hidden activation page) so there’s still no duplicate “A1 Profit”
   menu item, and it now redirects straight to the real Account page instead of 
   the report page when already connected.

#### 1.2.9

 * Fix: activating the plugin and clicking Freemius’s “Opt In” banner/link led to
   a fatal “Sorry, you are not allowed to access this page” error for every new 
   customer, instead of the license/connect screen — confirmed live on wp.org. Root
   cause: this plugin’s Freemius Account page nests under WooCommerce’s top-level
   menu (rather than owning its own top-level menu, unlike A1-WooBay), and Freemius’s
   SDK only knows how to take over an _already-registered_ submenu page at that 
   slug during the pre-connection activation flow — it has no fallback to create
   one from scratch the way it does for top-level menus. Since nothing in this plugin
   ever registered that page, “Opt In” pointed nowhere. Fixed by registering a placeholder
   submenu page at that exact slug for Freemius to take over, matching A1-WooBay’s
   working pattern; also confirmed this covers the same error recurring immediately
   after clicking “Skip” (a second, related gap), and that it doesn’t create a duplicate
   menu item once actually connected.

#### 1.2.8

 * Fix: `Plugin URI` in the plugin header still pointed at the pre-rename `/a1-woocog/`
   URL (404, flagged in wp.org review round 2) — now points to `/a1-profit-reports-
   for-woocommerce/`.
 * Add: `Requires Plugins: woocommerce` header, per the reviewer’s optional suggestion.
 * Fix: the (Pro-only) report page’s date-preset `<select>` had its JS in a hardcoded`
   <script>` tag instead of being enqueued. This file is excluded from the free/
   wp.org build by Freemius’s `__premium_only` code-stripping (confirmed empirically
   against the built free zip — the file, and every `<script>` tag, is absent), 
   but it does ship in the premium build, so fixed it the same way as the earlier
   product-list CSS finding: registered/enqueued via `wp_enqueue_script()`/`wp_add_inline_script()`.

#### 1.2.7

 * Packaging: added `premium_slug` and `wp_org_gatekeeper` to the Freemius `fs_dynamic_init()`
   config, per Freemius’s dashboard after the plugin rename. No functional change.

#### 1.2.6

 * Rename the Freemius-provided “Account” submenu item (WooCommerce  Account) to“
   A1 Profit” so it’s identifiable as belonging to this plugin instead of reading
   as a generic, unrelated menu item.

#### 1.2.5

 * Rename: renamed from “A1-WooCOG” to “A1 Profit Reports for WooCommerce” (wp.org
   review round 2) — the reviewer flagged the old name for fusing WooCommerce’s “
   Woo” trademark into the plugin name in a way that implies affiliation. Text domain
   changed to `a1-profit-reports-for-woocommerce` to match. Internal constants, 
   function/class prefixes, database meta keys, and the Freemius product slug (tied
   to existing license records) are unchanged.
 * Fix: the product list’s column-width CSS (`admin_head-edit.php` printing a raw`
   <style>` tag) is now registered and enqueued via `wp_enqueue_style()`/`wp_add_inline_style()`,
   per WordPress.org’s Plugin Check.

#### 1.2.4

 * Fix: WordPress.org’s automated submission scan hard-blocked on the bundled Freemius
   SDK’s update-checking code (`plugin_updater_detected`). Per Freemius support,
   this check is waived for SDKs placed under a `vendor/` folder — moved the SDK
   from `freemius/` to `vendor/freemius/` (matching A1-WooBay’s existing structure)
   and updated the bootstrap require path accordingly. No functional change.

#### 1.2.3

 * Fix: `Plugin URI` and `Author URI` in the plugin header were identical, which
   WordPress.org’s submission check rejects. `Plugin URI` now points to the plugin’s
   own product page (https://a1plugins.com/a1-woocog/) instead of duplicating the
   author/company URL.

#### 1.2.2

 * No functional/behavior changes. Adds a checked-in release build script (bin/build-
   release.sh, excluded from the shipped zip itself) replacing an ad-hoc manual 
   process — version bump needed only so Freemius has a distinct build to stage 
   after 1.2.1 was already uploaded.

#### 1.2.1

 * Fix: plugin header was missing the required `License`/`License URI` lines (found
   by WordPress.org’s Plugin Check tool).
 * Fix: `wc_price()` output (which returns HTML) was echoed unescaped in several
   places — the report page, the order detail Profit row, the orders list Profit
   column, and the product list Profit column. All wrapped in `wp_kses_post()`.
 * Packaging: release zips now also exclude `.gitignore` (in addition to the dev-
   only files already excluded).

#### 1.2.0

 * WordPress.org submission compliance (Guideline 5, no trialware): the Cost of 
   Goods Report is now removed entirely from the free build via Freemius’s code-
   stripping (`__premium_only`), not just gated behind a license check. `has_premium_version`
   is now true — Freemius generates a separate free zip (for wp.org) and premium
   zip (for paying/trial customers). Existing customers who unlocked Pro in-place
   under the old model now need to download and install the separate premium zip
   from their Freemius account instead.

#### 1.1.0

 * Add a “Profit by Product” bar chart to the report page (top 10 products by profit),
   rendered with plain CSS — no charting library added, to keep the plugin lightweight.
   CSV export is unchanged.

#### 1.0.1

 * Fix: license activation had no visible entry point. Freemius silently defaulted`
   has_premium_version` to match `has_paid_plans` (true) since it was never set,
   so the plugin was treated as a dual-zip product requiring a separate premium 
   download instead of unlocking Pro in place. Set `has_premium_version` to false
   and added a proper Account menu (nested under WooCommerce) so “Activate License”
   now appears on the Plugins page as expected.

#### 1.0.0

 * First public release.

#### 0.5.0

 * Connect the real Freemius product (id 35412, slug a1-woocog) – license activation
   and updates now work.
 * Add free/Pro gating: the Cost of Goods Report page (summary, per-product breakdown,
   CSV export, historical recalculation, and settings) is now a Pro feature. Profit
   and Margin columns stay free on every plan.

#### 0.4.0

 * Add Freemius SDK integration scaffolding (licensing/updates), pending the real
   Plugin ID and Public Key.
 * Add this readme.txt with a proper changelog.

#### 0.3.1

 * Fix: Profit/Margin columns silently failed to render on the product list, due
   to a WooCommerce filter-priority conflict.
 * Removed the redundant Cost column/row now duplicated by WooCommerce’s own native
   Cost of Goods Sold display.

#### 0.3.0

 * Add a tool to recalculate historical cost for orders that predate Cost of Goods
   tracking.
 * Add configurable order statuses for what counts as a sale in reports.

#### 0.2.4

 * Cache report data for performance, invalidated automatically on order status 
   changes and refunds.

#### 0.2.3

 * Add quick-select date range presets to the report page.

#### 0.2.2

 * Fix: cost/profit/margin cache now syncs when a product is created, not just when
   it’s updated.

#### 0.2.1

 * Add uninstall cleanup for the plugin’s own cached data.

#### 0.2.0

 * Migrate to WooCommerce’s native Cost of Goods Sold field instead of a custom 
   cost field. Adds refund-aware profit calculations and native Quick Edit / Bulk
   Edit support for cost.

#### 0.1.2

 * Add CSV export to the Cost of Goods report.

#### 0.1.1

 * Fix sortable Cost/Profit/Margin product columns.

#### 0.1.0

 * Initial release: cost tracking, profit columns, and a date-range report.

## Meta

 *  Versione **1.2.10**
 *  Ultimo aggiornamento **2 mesi fa**
 *  Installazioni attive **Meno di 10**
 *  Versione WordPress ** 6.0 o superiore **
 *  Testato fino alla versione **7.0.6**
 *  Versione PHP ** 7.4 o superiore **
 *  Lingua
 * [English (US)](https://wordpress.org/plugins/a1-profit-reports-for-woocommerce/)
 * Tag
 * [cost of goods](https://it.wordpress.org/plugins/tags/cost-of-goods/)[margin](https://it.wordpress.org/plugins/tags/margin/)
   [profit](https://it.wordpress.org/plugins/tags/profit/)[reporting](https://it.wordpress.org/plugins/tags/reporting/)
   [woocommerce](https://it.wordpress.org/plugins/tags/woocommerce/)
 *  [Visualizzazione avanzata](https://it.wordpress.org/plugins/a1-profit-reports-for-woocommerce/advanced/)

## Valutazioni

Non sono state ancora inviate recensioni.

[La tua recensione](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/reviews/#new-post)

[Vedi tutte le recensioni](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/reviews/)

## Collaboratori

 *   [ a1plugins ](https://profiles.wordpress.org/a1plugins/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

## Supporto

Hai qualcosa da dire? Ti serve aiuto?

 [Chiedi nel forum di supporto](https://wordpress.org/support/plugin/a1-profit-reports-for-woocommerce/)