PoPayPOS Reports for WooCommerce is a WordPress plugin for generating detailed reports of orders created via the Omni POS application.
The plugin allows site administrators to view detailed analytics for POS orders, including:
– Comparison between POS orders and regular orders
– Daily detailed reports
– Visual graphs
– Export data to CSV/Excel
– Detailed statistics
– Full compatibility with High-Performance Order Storage (HPOS)
System Requirements
- WordPress 5.0 or higher
- WooCommerce 5.0 or higher
- PHP 7.4 or higher
Compatibility
This plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS).
It uses the WooCommerce Data Store API instead of direct SQL queries, ensuring compatibility with future database changes.
Supported features:
– HPOS enabled
– HPOS disabled (traditional database)
– Automatic switching between systems
– Support for WooCommerce 5.0+
Usage
= Accessing Reports =
1. Go to the WordPress admin panel
2. Navigate to WooCommerce > POS Reports
Creating a Report
- Select a start date and end date
- Click Generate Report
- View results in summary cards, graphs, and tables
Exporting Data
- Generate a report
- Select an export format (CSV or Excel)
- Click Export Report
Features
= Summary Cards =
– Number of POS orders
– Total POS order amount
– Number of regular orders
– Total regular order amount
– Total revenue
– Percentage of POS orders from all orders
Graphs
- Line chart comparing daily revenue
- Bar chart comparing daily order counts
Detailed Tables
- List of all POS orders with direct links
- Daily breakdown of orders and revenue
Data Export
- Export to CSV
- Export to Excel (basic)
Data Structure
The plugin identifies orders with the meta field:
order_source = pos
Orders without this field or with a different value are considered regular orders.
Technical Architecture
= WooCommerce Data Store API =
Instead of direct SQL queries:
php
$orders = wc_get_orders(array(
'limit' => -1,
'status' => array('completed', 'processing', 'on-hold'),
'meta_query' => array(
array(
'key' => 'order_source',
'value' => 'pos',
'compare' => '='
)
)
));
HPOS Detection
`php
if (class_exists(『AutomatticWooCommerceUtilitiesOrderUtil』)) {
$hpos_enabled = AutomatticWooCommerceUtilitiesOrderUtil::custom_orders_table_usage_is_enabled();
}
Customization
= Adding More Fields =
Edit theget_orders_by_sourcefunction:php
private function get_orders_by_source($source, $start_date, $end_date) {
$args = array(
『limit』 => -1,
『status』 => array(『completed』, 『processing』, 『on-hold』),
『date_created』 => $start_date . 『…』 . $end_date,
『orderby』 => 『date』,
『order』 => 『DESC』,
『meta_query』 => array(
array(
『key』 => 『your_custom_field』,
『value』 => 『your_value』,
『compare』 => 『=』
)
)
);
return wc_get_orders($args);
}
`
Styling
Edit assets/css/admin.css.
Troubleshooting
- Plugin not in menu: Ensure WooCommerce is active and you have
manage_woocommercepermissions. - No data in reports: Make sure orders contain
order_source=posand check the date range. - JavaScript errors: Verify all assets are loading and check browser console.
- HPOS issues: Ensure WooCommerce is updated.
Performance
- Uses WooCommerce Data Store API for efficiency
- HPOS improves performance
- Optimized queries for the active database
- Loads orders in small batches to save memory
Support
For questions or support, contact the plugin developer.
License
This plugin is licensed under the GPL v2 or later.






