{"id":226093,"date":"2025-03-26T20:51:33","date_gmt":"2025-03-26T20:51:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/brikpanel-admin-panel-dashboard-for-woocommerce\/"},"modified":"2026-06-24T18:49:02","modified_gmt":"2026-06-24T18:49:02","slug":"brikpanel-admin-panel-dashboard-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/kin.wordpress.org\/plugins\/brikpanel-admin-panel-dashboard-for-woocommerce\/","author":21214773,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.1.36","stable_tag":"3.1.36","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BrikPanel: WooCommerce Admin Dashboard Theme","header_author":"Brksoft","header_description":"Beautiful and modern admin panel dashboard for WooCommerce","assets_banners_color":"d3d3d3","last_updated":"2026-06-24 18:49:02","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/donate.stripe.com\/14AdR9ghJcxKaAqdzbc3m00","header_plugin_uri":"","header_author_uri":"https:\/\/brksoft.com\/","rating":5,"author_block_rating":0,"active_installs":400,"downloads":11968,"num_ratings":26,"support_threads":46,"support_threads_resolved":46,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.5":{"tag":"1.1.5","author":"brksoft","date":"2025-03-26 20:51:12"},"1.1.6":{"tag":"1.1.6","author":"brksoft","date":"2025-03-27 14:36:46"},"1.1.7":{"tag":"1.1.7","author":"brksoft","date":"2025-03-27 14:46:41"},"1.1.8":{"tag":"1.1.8","author":"brksoft","date":"2025-03-28 06:46:44"},"1.1.9":{"tag":"1.1.9","author":"brksoft","date":"2025-03-31 11:36:00"},"1.2.0":{"tag":"1.2.0","author":"brksoft","date":"2025-04-03 10:54:12"},"1.2.1":{"tag":"1.2.1","author":"brksoft","date":"2025-04-06 19:08:18"},"1.2.2":{"tag":"1.2.2","author":"brksoft","date":"2025-04-14 00:16:27"},"1.2.3":{"tag":"1.2.3","author":"brksoft","date":"2025-05-02 11:03:13"},"1.2.4":{"tag":"1.2.4","author":"brksoft","date":"2025-05-06 09:55:52"},"1.2.5":{"tag":"1.2.5","author":"brksoft","date":"2025-05-06 10:03:56"},"1.2.6":{"tag":"1.2.6","author":"brksoft","date":"2025-05-12 15:58:13"},"1.2.7":{"tag":"1.2.7","author":"brksoft","date":"2025-05-27 16:52:20"},"1.2.8":{"tag":"1.2.8","author":"brksoft","date":"2025-05-27 17:03:06"},"1.2.9":{"tag":"1.2.9","author":"brksoft","date":"2025-06-04 11:00:59"},"1.3.0":{"tag":"1.3.0","author":"brksoft","date":"2025-06-25 16:27:59"},"1.3.1":{"tag":"1.3.1","author":"brksoft","date":"2025-07-08 09:03:38"},"1.3.2":{"tag":"1.3.2","author":"brksoft","date":"2025-07-09 08:11:49"},"1.3.3":{"tag":"1.3.3","author":"brksoft","date":"2025-10-14 11:15:15"},"1.4.2":{"tag":"1.4.2","author":"brksoft","date":"2026-01-13 05:54:20"},"1.4.3":{"tag":"1.4.3","author":"brksoft","date":"2026-01-13 06:07:33"},"1.4.5":{"tag":"1.4.5","author":"brksoft","date":"2026-01-13 11:41:16"},"1.4.6":{"tag":"1.4.6","author":"brksoft","date":"2026-03-14 13:57:33"},"1.5.1":{"tag":"1.5.1","author":"brksoft","date":"2026-04-02 16:01:47"},"2.0.0":{"tag":"2.0.0","author":"brksoft","date":"2026-04-08 18:39:28"},"2.0.1":{"tag":"2.0.1","author":"brksoft","date":"2026-04-08 19:22:22"},"2.0.2":{"tag":"2.0.2","author":"brksoft","date":"2026-04-09 11:07:04"},"2.0.3":{"tag":"2.0.3","author":"brksoft","date":"2026-04-10 14:34:11"},"2.0.4":{"tag":"2.0.4","author":"brksoft","date":"2026-04-10 16:28:51"},"2.0.5":{"tag":"2.0.5","author":"brksoft","date":"2026-04-12 09:15:16"},"2.0.6":{"tag":"2.0.6","author":"brksoft","date":"2026-04-13 11:56:34"},"2.0.7":{"tag":"2.0.7","author":"brksoft","date":"2026-04-13 11:56:34"},"2.1.0":{"tag":"2.1.0","author":"brksoft","date":"2026-04-16 14:33:55"},"2.1.1":{"tag":"2.1.1","author":"brksoft","date":"2026-04-17 07:39:15"},"2.1.2":{"tag":"2.1.2","author":"brksoft","date":"2026-04-17 19:46:56"},"2.1.3":{"tag":"2.1.3","author":"brksoft","date":"2026-04-18 15:34:29"},"2.1.4":{"tag":"2.1.4","author":"brksoft","date":"2026-04-18 16:39:39"},"2.1.5":{"tag":"2.1.5","author":"brksoft","date":"2026-04-19 19:44:18"},"2.1.6":{"tag":"2.1.6","author":"brksoft","date":"2026-04-20 14:00:14"},"2.1.7":{"tag":"2.1.7","author":"brksoft","date":"2026-04-20 17:01:47"},"2.1.8":{"tag":"2.1.8","author":"brksoft","date":"2026-04-22 09:03:25"},"2.5.0":{"tag":"2.5.0","author":"brksoft","date":"2026-04-25 21:03:55"},"2.5.2":{"tag":"2.5.2","author":"brksoft","date":"2026-04-27 18:54:32"},"2.5.3":{"tag":"2.5.3","author":"brksoft","date":"2026-04-28 10:14:43"},"2.6.0":{"tag":"2.6.0","author":"brksoft","date":"2026-04-28 17:41:24"},"2.6.1":{"tag":"2.6.1","author":"brksoft","date":"2026-04-29 12:46:23"},"2.7.0":{"tag":"2.7.0","author":"brksoft","date":"2026-05-04 14:15:02"},"2.7.1":{"tag":"2.7.1","author":"brksoft","date":"2026-05-04 16:29:05"},"2.8.0":{"tag":"2.8.0","author":"brksoft","date":"2026-05-07 16:42:37"},"2.8.1":{"tag":"2.8.1","author":"brksoft","date":"2026-05-07 17:12:57"},"2.8.2":{"tag":"2.8.2","author":"brksoft","date":"2026-05-08 16:28:44"},"2.8.3":{"tag":"2.8.3","author":"brksoft","date":"2026-05-09 13:46:45"},"2.8.4":{"tag":"2.8.4","author":"brksoft","date":"2026-05-09 20:28:39"},"2.8.5":{"tag":"2.8.5","author":"brksoft","date":"2026-05-10 07:52:04"},"2.8.6":{"tag":"2.8.6","author":"brksoft","date":"2026-05-11 18:01:49"},"2.9.2":{"tag":"2.9.2","author":"brksoft","date":"2026-05-13 19:01:50"},"2.9.3":{"tag":"2.9.3","author":"brksoft","date":"2026-05-13 19:01:50"},"2.9.4":{"tag":"2.9.4","author":"brksoft","date":"2026-05-13 19:01:50"},"3.0.0":{"tag":"3.0.0","author":"brksoft","date":"2026-05-15 11:28:10"},"3.0.1":{"tag":"3.0.1","author":"brksoft","date":"2026-05-17 14:53:09"},"3.0.2":{"tag":"3.0.2","author":"brksoft","date":"2026-05-17 19:16:49"},"3.0.3":{"tag":"3.0.3","author":"brksoft","date":"2026-05-18 06:29:27"},"3.0.4":{"tag":"3.0.4","author":"brksoft","date":"2026-05-18 20:21:14"},"3.0.5":{"tag":"3.0.5","author":"brksoft","date":"2026-05-19 07:02:45"},"3.0.6":{"tag":"3.0.6","author":"brksoft","date":"2026-05-19 16:24:56"},"3.0.7":{"tag":"3.0.7","author":"brksoft","date":"2026-05-20 18:26:13"},"3.0.8":{"tag":"3.0.8","author":"brksoft","date":"2026-05-21 17:18:57"},"3.0.9":{"tag":"3.0.9","author":"brksoft","date":"2026-05-22 14:25:27"},"3.1.0":{"tag":"3.1.0","author":"brksoft","date":"2026-05-25 09:12:18"},"3.1.1":{"tag":"3.1.1","author":"brksoft","date":"2026-05-26 05:45:53"},"3.1.10":{"tag":"3.1.10","author":"brksoft","date":"2026-06-03 19:32:39"},"3.1.11":{"tag":"3.1.11","author":"brksoft","date":"2026-06-04 18:38:27"},"3.1.12":{"tag":"3.1.12","author":"brksoft","date":"2026-06-06 06:41:28"},"3.1.13":{"tag":"3.1.13","author":"brksoft","date":"2026-06-06 12:59:49"},"3.1.14":{"tag":"3.1.14","author":"brksoft","date":"2026-06-08 14:05:00"},"3.1.15":{"tag":"3.1.15","author":"brksoft","date":"2026-06-09 11:08:46"},"3.1.16":{"tag":"3.1.16","author":"brksoft","date":"2026-06-10 05:52:51"},"3.1.17":{"tag":"3.1.17","author":"brksoft","date":"2026-06-10 16:37:27"},"3.1.19":{"tag":"3.1.19","author":"brksoft","date":"2026-06-12 08:27:01"},"3.1.2":{"tag":"3.1.2","author":"brksoft","date":"2026-05-29 07:29:26"},"3.1.21":{"tag":"3.1.21","author":"brksoft","date":"2026-06-12 09:39:42"},"3.1.23":{"tag":"3.1.23","author":"brksoft","date":"2026-06-13 19:04:02"},"3.1.24":{"tag":"3.1.24","author":"brksoft","date":"2026-06-14 10:36:26"},"3.1.25":{"tag":"3.1.25","author":"brksoft","date":"2026-06-15 11:09:21"},"3.1.28":{"tag":"3.1.28","author":"brksoft","date":"2026-06-15 16:33:46"},"3.1.29":{"tag":"3.1.29","author":"brksoft","date":"2026-06-17 12:20:23"},"3.1.3":{"tag":"3.1.3","author":"brksoft","date":"2026-05-29 07:56:17"},"3.1.30":{"tag":"3.1.30","author":"brksoft","date":"2026-06-17 17:54:24"},"3.1.31":{"tag":"3.1.31","author":"brksoft","date":"2026-06-18 14:12:57"},"3.1.32":{"tag":"3.1.32","author":"brksoft","date":"2026-06-21 10:16:30"},"3.1.33":{"tag":"3.1.33","author":"brksoft","date":"2026-06-22 16:23:19"},"3.1.34":{"tag":"3.1.34","author":"brksoft","date":"2026-06-23 17:27:51"},"3.1.35":{"tag":"3.1.35","author":"brksoft","date":"2026-06-23 19:27:06"},"3.1.36":{"tag":"3.1.36","author":"brksoft","date":"2026-06-24 18:49:02"},"3.1.4":{"tag":"3.1.4","author":"brksoft","date":"2026-05-29 15:58:36"},"3.1.5":{"tag":"3.1.5","author":"brksoft","date":"2026-05-30 18:47:49"},"3.1.6":{"tag":"3.1.6","author":"brksoft","date":"2026-05-30 18:47:49"},"3.1.8":{"tag":"3.1.8","author":"brksoft","date":"2026-06-01 13:42:07"},"3.1.9":{"tag":"3.1.9","author":"brksoft","date":"2026-06-03 05:17:39"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":26},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3501915,"resolution":"128x128","location":"assets","locale":"","width":1280,"height":1280},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3501915,"resolution":"256x256","location":"assets","locale":"","width":1280,"height":1280}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3534620,"resolution":"772x250","location":"assets","locale":"","width":2316,"height":750}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3585266,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"BrikPanel Live Preview\",\"description\":\"WooCommerce admin dashboard, sales report, COGS, ad spend, ROAS, net profit, RFM and cohort analytics, pre-seeded with a full demo store.\",\"author\":\"brksoft\",\"categories\":[\"ecommerce\",\"admin\"]},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=brikpanel-dashboard\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"brikpanel-admin-panel-dashboard-for-woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"BrikPanel Demo Store\",\"woocommerce_currency\":\"USD\",\"woocommerce_default_country\":\"US:NY\",\"woocommerce_custom_orders_table_enabled\":\"no\",\"woocommerce_feature_custom_order_tables_enabled\":\"no\",\"woocommerce_onboarding_profile\":{\"skipped\":true},\"woocommerce_task_list_hidden\":\"yes\"}},{\"step\":\"runPHP\",\"code\":\"<?php\\n\\\/**\\n * BrikPanel \\\"full demo\\\" seeder \\u2014 Playground\\\/SQLite safe + fast.\\n *\\n * Orders are written with direct $wpdb inserts (legacy CPT storage) instead of\\n * wc_create_order(), which is ~50x faster under PHP-wasm. RFM \\\/ LTV \\\/ cohort\\n * are computed in PHP and inserted directly, because BrikPanel's own recompute\\n * SQL uses MySQL-only TIMESTAMPDIFF()\\\/NTILE() that the SQLite layer rejects.\\n *\\\/\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\nif ( ! function_exists( 'wc_get_product' ) ) { return; }\\nif ( get_option( 'brikpanel_demo_seeded' ) ) { return; }\\n\\nglobal $wpdb;\\n$diag = array();\\n$t0 = microtime( true );\\n$now = time();\\n\\nif ( class_exists( 'WC_Install' ) ) { WC_Install::install(); }\\nupdate_option( 'woocommerce_feature_cost_of_goods_sold_enabled', 'yes' );\\nupdate_option( 'brikpanel_cogs_default_applied', 'yes' );\\nif ( function_exists( 'brikpanel_create_table' ) ) { brikpanel_create_table(); }\\n\\n\\\/* deterministic PRNG so the demo is identical every boot *\\\/\\n$seed = 987654321;\\n$rnd = function ( $min, $max ) use ( &$seed ) {\\n\\t$seed = ( $seed * 1103515245 + 12345 ) & 0x7fffffff;\\n\\treturn $min + ( $seed % ( $max - $min + 1 ) );\\n};\\n\\n\\\/* ---------------- 1) Products (price + COGS + category + stock) ---------- *\\\/\\n$catalog = array(\\n\\tarray( 'Aurora Desk Lamp', 49.00, 21.00, 120, 'Home & Office' ),\\n\\tarray( 'Nimbus Wireless Headphones', 129.00, 58.00, 80, 'Electronics' ),\\n\\tarray( 'Terra Ceramic Mug', 18.50, 6.50, 240, 'Kitchen' ),\\n\\tarray( 'Halo Smart Speaker', 89.00, 41.00, 0, 'Electronics' ),\\n\\tarray( 'Vega Cotton T-Shirt', 24.00, 8.00, 320, 'Apparel' ),\\n\\tarray( 'Orbit Travel Backpack', 75.00, 33.00, 45, 'Travel' ),\\n\\tarray( 'Lumen LED Strip', 32.00, 12.00, 9, 'Home & Office' ),\\n\\tarray( 'Pebble Bluetooth Tracker', 27.50, 9.50, 150, 'Electronics' ),\\n\\tarray( 'Cedar Cutting Board', 39.00, 15.00, 60, 'Kitchen' ),\\n\\tarray( 'Sol Sunglasses', 59.00, 19.00, 4, 'Apparel' ),\\n\\tarray( 'Drift Yoga Mat', 45.00, 17.00, 90, 'Fitness' ),\\n\\tarray( 'Forge Chef Knife', 68.00, 27.00, 33, 'Kitchen' ),\\n);\\n$cat_ids = array();\\n$products = array();\\nforeach ( $catalog as $row ) {\\n\\tlist( $name, $price, $cost, $stock, $cat ) = $row;\\n\\tif ( ! isset( $cat_ids[ $cat ] ) ) {\\n\\t\\t$term = term_exists( $cat, 'product_cat' );\\n\\t\\tif ( ! $term ) { $term = wp_insert_term( $cat, 'product_cat' ); }\\n\\t\\t$cat_ids[ $cat ] = is_wp_error( $term ) ? 0 : (int) $term['term_id'];\\n\\t}\\n\\t$p = new WC_Product_Simple();\\n\\t$p->set_name( $name );\\n\\t$p->set_regular_price( (string) $price );\\n\\t$p->set_price( (string) $price );\\n\\t$p->set_manage_stock( true );\\n\\t$p->set_stock_quantity( $stock );\\n\\t$p->set_stock_status( $stock > 0 ? 'instock' : 'outofstock' );\\n\\t$p->set_status( 'publish' );\\n\\tif ( $cat_ids[ $cat ] ) { $p->set_category_ids( array( $cat_ids[ $cat ] ) ); }\\n\\tif ( method_exists( $p, 'set_cogs_value' ) ) { $p->set_cogs_value( $cost ); }\\n\\t$pid = $p->save();\\n\\tupdate_post_meta( $pid, '_brikpanel_cogs', $cost );\\n\\t$products[] = array( 'id' => $pid, 'name' => $name, 'price' => $price, 'cost' => $cost );\\n}\\n$diag['products'] = count( $products );\\n\\n\\\/* ---------------- 2) Customers ---------- *\\\/\\n$people = array(\\n\\t'Olivia Bennett','Liam Carter','Emma Davies','Noah Evans','Ava Foster','James Green',\\n\\t'Sophia Hughes','Lucas Irwin','Mia Jensen','Ethan Knight','Isla Lewis','Mason Moore',\\n\\t'Amelia Novak','Henry Owen','Grace Patel','Leo Quinn','Chloe Reed','Max Turner',\\n);\\n$countries = array( 'US','GB','DE','CA','FR','AU','NL','SE' );\\n$cities    = array( 'US'=>'New York','GB'=>'London','DE'=>'Berlin','CA'=>'Toronto','FR'=>'Paris','AU'=>'Sydney','NL'=>'Amsterdam','SE'=>'Stockholm' );\\n$customers = array();\\nforeach ( $people as $i => $full ) {\\n\\t$parts = explode( ' ', $full );\\n\\t$email = strtolower( str_replace( ' ', '.', $full ) ) . '@example.com';\\n\\t$uid = email_exists( $email );\\n\\tif ( ! $uid ) {\\n\\t\\t$uid = wp_insert_user( array(\\n\\t\\t\\t'user_login' => 'cust_' . ( $i + 1 ), 'user_email' => $email,\\n\\t\\t\\t'first_name' => $parts[0], 'last_name' => isset( $parts[1] ) ? $parts[1] : '',\\n\\t\\t\\t'display_name' => $full, 'role' => 'customer', 'user_pass' => wp_generate_password( 16 ),\\n\\t\\t) );\\n\\t}\\n\\tif ( ! is_wp_error( $uid ) ) {\\n\\t\\t$c = $countries[ $i % count( $countries ) ];\\n\\t\\t$customers[] = array( 'id' => (int) $uid, 'email' => $email, 'country' => $c, 'city' => $cities[ $c ], 'first' => $parts[0], 'last' => isset($parts[1])?$parts[1]:'' );\\n\\t}\\n}\\n$diag['customers'] = count( $customers );\\n\\n\\\/* ---------------- 3) Orders via direct SQL ---------- *\\\/\\n$posts_tbl  = $wpdb->posts;\\n$meta_tbl   = $wpdb->postmeta;\\n$items_tbl  = $wpdb->prefix . 'woocommerce_order_items';\\n$itmeta_tbl = $wpdb->prefix . 'woocommerce_order_itemmeta';\\n$stats_tbl  = $wpdb->prefix . 'wc_order_stats';\\n\\n\\\/\\\/ VIP weighting for a realistic RFM spread.\\n$weights = array();\\nforeach ( $customers as $idx => $c ) {\\n\\t$w = ( $idx < 4 ) ? 6 : ( ( $idx < 9 ) ? 3 : 1 );\\n\\tfor ( $k = 0; $k < $w; $k++ ) { $weights[] = $idx; }\\n}\\n\\\/\\\/ Status mix: mostly paid, a few others for the donut.\\n$status_pool = array( 'wc-completed','wc-completed','wc-completed','wc-completed','wc-processing','wc-processing','wc-on-hold','wc-completed','wc-refunded','wc-cancelled','wc-failed' );\\n$counted_for_customer = array( 'wc-completed','wc-processing','wc-on-hold','wc-pending','wc-refunded' );\\n\\n\\\/\\\/ Day buckets => how many orders land in each (full today + 7d + 30d windows).\\n$plan = array();\\nfor ( $x = 0; $x < 6; $x++ )  { $plan[] = 0; }                 \\\/\\\/ today\\nfor ( $x = 0; $x < 18; $x++ ) { $plan[] = $rnd( 1, 6 ); }      \\\/\\\/ last 7 days\\nfor ( $x = 0; $x < 22; $x++ ) { $plan[] = $rnd( 7, 29 ); }     \\\/\\\/ last 30 days\\nfor ( $x = 0; $x < 24; $x++ ) { $plan[] = $rnd( 30, 89 ); }    \\\/\\\/ up to 90 days\\n\\n$cust_agg   = array(); \\\/\\\/ uid => [count,total,first_ts,last_ts, months=>set]\\n$orders_made = 0; $revenue = 0.0;\\n$suppress = $wpdb->suppress_errors( true );\\n\\nforeach ( $plan as $days_ago ) {\\n\\t$ts = $now - ( $days_ago * DAY_IN_SECONDS );\\n\\tif ( $days_ago === 0 ) { $ts -= $rnd( 600, 40000 ); } else { $ts -= $rnd( 0, 80000 ); }\\n\\t$gmt   = gmdate( 'Y-m-d H:i:s', $ts );\\n\\t$local = $gmt; \\\/\\\/ Playground store TZ is UTC.\\n\\t$cust  = $customers[ $weights[ $rnd( 0, count( $weights ) - 1 ) ] ];\\n\\t$status = $status_pool[ $rnd( 0, count( $status_pool ) - 1 ) ];\\n\\n\\t\\\/\\\/ Build line items.\\n\\t$lines = $rnd( 1, 3 );\\n\\t$used = array(); $items = array(); $order_total = 0.0; $order_cogs = 0.0; $num_items = 0;\\n\\tfor ( $j = 0; $j < $lines; $j++ ) {\\n\\t\\t$pr = $products[ $rnd( 0, count( $products ) - 1 ) ];\\n\\t\\tif ( isset( $used[ $pr['id'] ] ) ) { continue; }\\n\\t\\t$used[ $pr['id'] ] = 1;\\n\\t\\t$qty = $rnd( 1, 3 );\\n\\t\\t$line_total = round( $pr['price'] * $qty, 2 );\\n\\t\\t$items[] = array( 'pid' => $pr['id'], 'name' => $pr['name'], 'qty' => $qty, 'line_total' => $line_total );\\n\\t\\t$order_total += $line_total;\\n\\t\\t$order_cogs  += $pr['cost'] * $qty;\\n\\t\\t$num_items   += $qty;\\n\\t}\\n\\t$order_total = round( $order_total, 2 );\\n\\t$order_cogs  = round( $order_cogs, 2 );\\n\\n\\t\\\/\\\/ 3a) wp_posts\\n\\t$wpdb->insert( $posts_tbl, array(\\n\\t\\t'post_author' => 1, 'post_date' => $local, 'post_date_gmt' => $gmt,\\n\\t\\t'post_content' => '', 'post_title' => 'Order &ndash; ' . $gmt, 'post_excerpt' => '',\\n\\t\\t'post_status' => $status, 'comment_status' => 'closed', 'ping_status' => 'closed',\\n\\t\\t'post_password' => '', 'post_name' => 'order-' . $ts . '-' . $orders_made,\\n\\t\\t'to_ping' => '', 'pinged' => '', 'post_content_filtered' => '', 'post_parent' => 0,\\n\\t\\t'guid' => '', 'menu_order' => 0, 'post_type' => 'shop_order', 'post_mime_type' => '',\\n\\t\\t'comment_count' => 0, 'post_modified' => $local, 'post_modified_gmt' => $gmt,\\n\\t) );\\n\\t$oid = (int) $wpdb->insert_id;\\n\\tif ( ! $oid ) { continue; }\\n\\n\\t\\\/\\\/ 3b) postmeta\\n\\t$is_paid = in_array( $status, array( 'wc-completed','wc-processing' ), true );\\n\\t$metas = array(\\n\\t\\t'_order_currency' => 'USD', '_order_total' => number_format( $order_total, 2, '.', '' ),\\n\\t\\t'_order_tax' => '0', '_cart_discount' => '0', '_cart_discount_tax' => '0',\\n\\t\\t'_order_shipping' => '0', '_prices_include_tax' => 'no',\\n\\t\\t'_customer_user' => (string) $cust['id'], '_billing_email' => $cust['email'],\\n\\t\\t'_billing_first_name' => $cust['first'], '_billing_last_name' => $cust['last'],\\n\\t\\t'_billing_country' => $cust['country'], '_billing_city' => $cust['city'],\\n\\t\\t'_payment_method' => 'bacs', '_payment_method_title' => 'Direct bank transfer',\\n\\t\\t'_order_version' => '9.0.0', '_wc_cog_order_total_value' => number_format( $order_cogs, 2, '.', '' ),\\n\\t);\\n\\tif ( $is_paid ) { $metas['_date_paid'] = (string) $ts; $metas['_paid_date'] = $local; }\\n\\tforeach ( $metas as $mk => $mv ) {\\n\\t\\t$wpdb->insert( $meta_tbl, array( 'post_id' => $oid, 'meta_key' => $mk, 'meta_value' => $mv ) );\\n\\t}\\n\\n\\t\\\/\\\/ 3c) order items + itemmeta\\n\\tforeach ( $items as $it ) {\\n\\t\\t$wpdb->insert( $items_tbl, array( 'order_item_name' => $it['name'], 'order_item_type' => 'line_item', 'order_id' => $oid ) );\\n\\t\\t$item_id = (int) $wpdb->insert_id;\\n\\t\\tif ( ! $item_id ) { continue; }\\n\\t\\t$im = array(\\n\\t\\t\\t'_product_id' => (string) $it['pid'], '_variation_id' => '0', '_qty' => (string) $it['qty'],\\n\\t\\t\\t'_line_subtotal' => number_format( $it['line_total'], 2, '.', '' ), '_line_subtotal_tax' => '0',\\n\\t\\t\\t'_line_total' => number_format( $it['line_total'], 2, '.', '' ), '_line_tax' => '0', '_tax_class' => '',\\n\\t\\t);\\n\\t\\tforeach ( $im as $k => $v ) {\\n\\t\\t\\t$wpdb->insert( $itmeta_tbl, array( 'order_item_id' => $item_id, 'meta_key' => $k, 'meta_value' => $v ) );\\n\\t\\t}\\n\\t}\\n\\n\\t\\\/\\\/ 3d) wc_order_stats (powers new-vs-repeat split; best-effort)\\n\\t$returning = isset( $cust_agg[ $cust['id'] ] ) ? 1 : 0;\\n\\t$wpdb->insert( $stats_tbl, array(\\n\\t\\t'order_id' => $oid, 'parent_id' => 0, 'date_created' => $local, 'date_created_gmt' => $gmt,\\n\\t\\t'num_items_sold' => $num_items, 'total_sales' => $order_total, 'tax_total' => 0,\\n\\t\\t'shipping_total' => 0, 'net_total' => $order_total, 'returning_customer' => $returning,\\n\\t\\t'status' => $status, 'customer_id' => $cust['id'],\\n\\t) );\\n\\n\\t\\\/\\\/ 3e) customer aggregation (for RFM\\\/LTV\\\/cohort), counted statuses only\\n\\tif ( in_array( $status, $counted_for_customer, true ) ) {\\n\\t\\t$uid = $cust['id'];\\n\\t\\tif ( ! isset( $cust_agg[ $uid ] ) ) {\\n\\t\\t\\t$cust_agg[ $uid ] = array( 'count' => 0, 'total' => 0.0, 'first' => $ts, 'last' => $ts, 'email' => $cust['email'], 'months' => array() );\\n\\t\\t}\\n\\t\\t$cust_agg[ $uid ]['count']++;\\n\\t\\t$cust_agg[ $uid ]['total'] += $order_total;\\n\\t\\t$cust_agg[ $uid ]['first'] = min( $cust_agg[ $uid ]['first'], $ts );\\n\\t\\t$cust_agg[ $uid ]['last']  = max( $cust_agg[ $uid ]['last'], $ts );\\n\\t\\t$cust_agg[ $uid ]['months'][ gmdate( 'Y-m-01', $ts ) ] = 1;\\n\\t}\\n\\tif ( in_array( $status, array( 'wc-completed','wc-processing' ), true ) ) { $revenue += $order_total; }\\n\\t$orders_made++;\\n}\\n$wpdb->suppress_errors( $suppress );\\n$diag['orders'] = $orders_made;\\n$diag['revenue_paid'] = round( $revenue, 2 );\\n\\n\\\/* ---------------- 4) RFM + LTV \\u2192 customer_metrics ---------- *\\\/\\n$cm_tbl = $wpdb->prefix . 'brikpanel_customer_metrics';\\n$wpdb->query( \\\"DELETE FROM {$cm_tbl}\\\" );\\n\\n\\\/\\\/ NTILE(5)-style quintile helper. $pairs: key => value. $desc=true ranks\\n\\\/\\\/ largest value into tile 1 (used for recency where high=worst).\\n$ntile = function ( $pairs, $desc ) {\\n\\t$keys = array_keys( $pairs );\\n\\tusort( $keys, function ( $a, $b ) use ( $pairs, $desc ) {\\n\\t\\tif ( $pairs[ $a ] == $pairs[ $b ] ) { return 0; }\\n\\t\\t$cmp = ( $pairs[ $a ] < $pairs[ $b ] ) ? -1 : 1;\\n\\t\\treturn $desc ? -$cmp : $cmp;\\n\\t} );\\n\\t$n = count( $keys ); $out = array();\\n\\tif ( $n === 0 ) { return $out; }\\n\\t$base = intdiv( $n, 5 ); $rem = $n % 5; $pos = 0;\\n\\tfor ( $tile = 1; $tile <= 5; $tile++ ) {\\n\\t\\t$size = $base + ( $tile <= $rem ? 1 : 0 );\\n\\t\\tfor ( $s = 0; $s < $size; $s++ ) { $out[ $keys[ $pos++ ] ] = $tile; }\\n\\t}\\n\\treturn $out;\\n};\\n\\n$recency = array(); $freq = array(); $monet = array();\\nforeach ( $cust_agg as $uid => $a ) {\\n\\t$recency[ $uid ] = max( 0, intval( floor( ( $now - $a['last'] ) \\\/ DAY_IN_SECONDS ) ) );\\n\\t$freq[ $uid ]    = $a['count'];\\n\\t$monet[ $uid ]   = $a['total'];\\n}\\n$r_scores = $ntile( $recency, true );   \\\/\\\/ high recency -> tile 1\\n$f_scores = $ntile( $freq, false );     \\\/\\\/ high freq -> tile 5\\n$m_scores = $ntile( $monet, false );    \\\/\\\/ high spend -> tile 5\\n\\n$segment_of = function ( $r, $f, $m ) {\\n\\tif ( $r >= 4 && $f >= 4 && $m >= 4 ) { return 'champions'; }\\n\\tif ( $r <= 2 && $f >= 4 && $m >= 4 ) { return 'cant_lose'; }\\n\\tif ( $r <= 2 && $f >= 3 && $m >= 3 ) { return 'at_risk'; }\\n\\tif ( $r == 1 && $f == 1 && $m == 1 ) { return 'lost'; }\\n\\tif ( $r <= 2 && $f <= 2 ) { return 'hibernating'; }\\n\\tif ( $f >= 3 && $m >= 3 ) { return 'loyal'; }\\n\\tif ( $r >= 4 && $f == 1 ) { return 'new'; }\\n\\tif ( $r >= 4 && $f <= 3 ) { return 'potential_loyalist'; }\\n\\tif ( $r == 3 && $f <= 2 ) { return 'about_to_sleep'; }\\n\\tif ( $f >= 3 ) { return 'need_attention'; }\\n\\treturn 'hibernating';\\n};\\n\\n$cm_rows = 0; $nowgmt = gmdate( 'Y-m-d H:i:s', $now );\\nforeach ( $cust_agg as $uid => $a ) {\\n\\t$r = isset( $r_scores[ $uid ] ) ? $r_scores[ $uid ] : 0;\\n\\t$f = isset( $f_scores[ $uid ] ) ? $f_scores[ $uid ] : 0;\\n\\t$m = isset( $m_scores[ $uid ] ) ? $m_scores[ $uid ] : 0;\\n\\t$wpdb->insert( $cm_tbl, array(\\n\\t\\t'customer_key' => 'u:' . $uid, 'user_id' => $uid, 'customer_email' => $a['email'],\\n\\t\\t'first_order_date' => gmdate( 'Y-m-d H:i:s', $a['first'] ), 'last_order_date' => gmdate( 'Y-m-d H:i:s', $a['last'] ),\\n\\t\\t'order_count' => $a['count'], 'total_spent' => round( $a['total'], 4 ),\\n\\t\\t'aov' => round( $a['count'] ? $a['total'] \\\/ $a['count'] : 0, 4 ), 'recency_days' => $recency[ $uid ],\\n\\t\\t'r_score' => $r, 'f_score' => $f, 'm_score' => $m, 'rfm_segment' => $segment_of( $r, $f, $m ),\\n\\t\\t'computed_at' => $nowgmt,\\n\\t) );\\n\\t$cm_rows++;\\n}\\n$diag['cm_rows'] = $cm_rows;\\n\\n\\\/* ---------------- 5) Cohort retention ---------- *\\\/\\n$coh_tbl = $wpdb->prefix . 'brikpanel_cohort_retention';\\n$wpdb->query( \\\"DELETE FROM {$coh_tbl}\\\" );\\n$cohorts = array(); \\\/\\\/ cohort_month => [ uid => months_set ]\\nforeach ( $cust_agg as $uid => $a ) {\\n\\t$first_month = gmdate( 'Y-m-01', $a['first'] );\\n\\t$cohorts[ $first_month ][ $uid ] = $a['months'];\\n}\\n$cur_month = gmdate( 'Y-m-01', $now );\\n$coh_rows = 0;\\nforeach ( $cohorts as $cmonth => $members ) {\\n\\t$size = count( $members );\\n\\tfor ( $off = 0; $off <= 6; $off++ ) {\\n\\t\\t$target = gmdate( 'Y-m-01', strtotime( \\\"{$cmonth} +{$off} month\\\" ) );\\n\\t\\tif ( strtotime( $target ) > strtotime( $cur_month ) ) { break; }\\n\\t\\t$retained = 0;\\n\\t\\tforeach ( $members as $uid => $monthsSet ) {\\n\\t\\t\\tif ( isset( $monthsSet[ $target ] ) ) { $retained++; }\\n\\t\\t}\\n\\t\\t$rate = $size > 0 ? round( $retained \\\/ $size * 100, 2 ) : 0;\\n\\t\\t$wpdb->insert( $coh_tbl, array(\\n\\t\\t\\t'cohort_month' => $cmonth, 'period_offset' => $off, 'cohort_size' => $size,\\n\\t\\t\\t'retained_customers' => $retained, 'retention_rate' => $rate, 'computed_at' => $nowgmt,\\n\\t\\t) );\\n\\t\\t$coh_rows++;\\n\\t}\\n}\\n$diag['cohort_rows'] = $coh_rows;\\n\\n\\\/* ---------------- 6) Ad spend (USD), expenses, visitors ---------- *\\\/\\n$ad_tbl = $wpdb->prefix . 'brikpanel_ad_spend'; $ad_rows = 0; $ad_total = 0.0;\\nfor ( $d = 0; $d < 90; $d++ ) {\\n\\t$date = gmdate( 'Y-m-d', $now - $d * DAY_IN_SECONDS );\\n\\tforeach ( array( 'google_ads' => 1.0, 'meta' => 0.7 ) as $plat => $mult ) {\\n\\t\\t$spend = round( $rnd( 18, 60 ) * $mult, 2 );\\n\\t\\t$wpdb->insert( $ad_tbl, array(\\n\\t\\t\\t'date' => $date, 'platform' => $plat, 'account_id' => ( $plat === 'google_ads' ? '528-898-0937' : 'act_demo' ),\\n\\t\\t\\t'spend_amount' => $spend, 'spend_currency' => 'USD', 'impressions' => $rnd( 800, 5000 ), 'clicks' => $rnd( 20, 180 ),\\n\\t\\t) );\\n\\t\\t$ad_rows++; $ad_total += $spend;\\n\\t}\\n}\\n$diag['ad_spend_rows'] = $ad_rows; $diag['ad_spend_total'] = round( $ad_total, 2 );\\n\\n$exp_tbl = $wpdb->prefix . 'brikpanel_expenses'; $exp_rows = 0;\\n$exp_items = array( array('Rent','Warehouse rent',1200,'monthly'), array('Software','SaaS subscriptions',240,'monthly'), array('Salaries','Part-time staff',1800,'monthly') );\\nfor ( $mo = 0; $mo < 3; $mo++ ) {\\n\\t$mdate = gmdate( 'Y-m-01', strtotime( \\\"-{$mo} month\\\", $now ) );\\n\\tforeach ( $exp_items as $e ) {\\n\\t\\t$wpdb->insert( $exp_tbl, array( 'expense_date' => $mdate, 'category' => $e[0], 'description' => $e[1], 'amount' => $e[2], 'recurring' => $e[3] ) );\\n\\t\\t$exp_rows++;\\n\\t}\\n}\\n$diag['expense_rows'] = $exp_rows;\\n\\n\\\/\\\/ Daily paid-order counts for realistic conversion.\\n$daily_orders = array();\\nforeach ( $cust_agg as $a ) { \\\/* placeholder *\\\/ }\\n\\\/\\\/ Recount paid orders per day directly from posts.\\n$rowsd = $wpdb->get_results( \\\"SELECT substr(post_date,1,10) d, COUNT(*) c FROM {$posts_tbl} WHERE post_type='shop_order' AND post_status IN ('wc-completed','wc-processing') GROUP BY d\\\", ARRAY_A );\\nforeach ( (array) $rowsd as $r ) { $daily_orders[ $r['d'] ] = (int) $r['c']; }\\n\\n$vis_tbl = $wpdb->prefix . 'brikpanel_visitors'; $vis_rows = 0; $vis_sum = 0;\\nfor ( $d = 0; $d < 90; $d++ ) {\\n\\t$date = gmdate( 'Y-m-d', $now - $d * DAY_IN_SECONDS );\\n\\t$ord_today = isset( $daily_orders[ $date ] ) ? $daily_orders[ $date ] : 0;\\n\\t$visitors = max( 40, $ord_today * $rnd( 25, 40 ) + $rnd( 30, 120 ) );\\n\\t$add_cart = (int) round( $visitors * ( $rnd( 25, 40 ) \\\/ 100 ) );\\n\\t$checkout = max( $ord_today, (int) round( $add_cart * ( $rnd( 35, 60 ) \\\/ 100 ) ) );\\n\\t$mobile = (int) round( $visitors * 0.55 ); $tablet = (int) round( $visitors * 0.10 ); $desktop = $visitors - $mobile - $tablet;\\n\\t$wpdb->insert( $vis_tbl, array(\\n\\t\\t'date_column' => $date, 'visitor_count' => $visitors, 'product_count' => $rnd( 5, 12 ),\\n\\t\\t'add_to_cart_count' => $add_cart, 'checkout_count' => $checkout,\\n\\t\\t'mobile_count' => $mobile, 'tablet_count' => $tablet, 'desktop_count' => $desktop,\\n\\t) );\\n\\t$vis_rows++; $vis_sum += $visitors;\\n}\\n$diag['visitor_rows'] = $vis_rows; $diag['visitor_sum'] = $vis_sum;\\n\\nupdate_option( 'brikpanel_demo_seeded', 1, false );\\n\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.3.0","1.3.1","1.3.2","1.3.3","1.4.2","1.4.3","1.4.5","1.4.6","1.5.1","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.5.0","2.5.2","2.5.3","2.6.0","2.6.1","2.7.0","2.7.1","2.8.0","2.8.1","2.8.2","2.8.3","2.8.4","2.8.5","2.8.6","2.9.2","2.9.3","2.9.4","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.1.0","3.1.1","3.1.10","3.1.11","3.1.12","3.1.13","3.1.14","3.1.15","3.1.16","3.1.17","3.1.19","3.1.2","3.1.21","3.1.23","3.1.24","3.1.25","3.1.28","3.1.29","3.1.3","3.1.30","3.1.31","3.1.32","3.1.33","3.1.34","3.1.35","3.1.36","3.1.4","3.1.5","3.1.6","3.1.8","3.1.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3534620,"resolution":"1","location":"assets","locale":"","width":1320,"height":1480},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3534620,"resolution":"10","location":"assets","locale":"","width":1320,"height":980},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3534620,"resolution":"11","location":"assets","locale":"","width":1320,"height":920},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3534620,"resolution":"12","location":"assets","locale":"","width":1320,"height":1040},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3534620,"resolution":"13","location":"assets","locale":"","width":1320,"height":1040},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3534620,"resolution":"14","location":"assets","locale":"","width":1320,"height":1080},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3534620,"resolution":"15","location":"assets","locale":"","width":1320,"height":1080},"screenshot-16.png":{"filename":"screenshot-16.png","revision":3534620,"resolution":"16","location":"assets","locale":"","width":1320,"height":1080},"screenshot-17.png":{"filename":"screenshot-17.png","revision":3534620,"resolution":"17","location":"assets","locale":"","width":1919,"height":1079},"screenshot-18.png":{"filename":"screenshot-18.png","revision":3534620,"resolution":"18","location":"assets","locale":"","width":1320,"height":760},"screenshot-19.png":{"filename":"screenshot-19.png","revision":3534620,"resolution":"19","location":"assets","locale":"","width":1320,"height":760},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3534620,"resolution":"2","location":"assets","locale":"","width":1320,"height":600},"screenshot-20.png":{"filename":"screenshot-20.png","revision":3534620,"resolution":"20","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3534620,"resolution":"3","location":"assets","locale":"","width":1320,"height":880},"screenshot-4.gif":{"filename":"screenshot-4.gif","revision":3534620,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.gif":{"filename":"screenshot-5.gif","revision":3534620,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.gif":{"filename":"screenshot-6.gif","revision":3534620,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080},"screenshot-7.gif":{"filename":"screenshot-7.gif","revision":3534620,"resolution":"7","location":"assets","locale":"","width":1920,"height":1080},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3534620,"resolution":"8","location":"assets","locale":"","width":1320,"height":1180},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3534620,"resolution":"9","location":"assets","locale":"","width":1320,"height":740}},"screenshots":{"1":"<strong>Modern WooCommerce Dashboard<\/strong> \u2014 a real-time WooCommerce sales report and admin panel: Total Sales, Orders, AOV, Visitors and Conversion Rate with period-over-period deltas, an interactive sales chart, Net Profit, ROAS and a live visitors widget","2":"<strong>Real ROAS &amp; Net Profit with Google Ads + Meta Ads<\/strong> \u2014 native Google Ads and Meta (Facebook \/ Instagram) Ads integration that pulls daily ad spend into the dashboard so you see true return on ad spend and net profit next to store revenue","3":"<strong>WooCommerce Google Sheets Sync<\/strong> \u2014 real-time order sync to a Google Sheet, scheduled bulk export, per-status filters and reorderable columns \u2014 a free GSheetConnector alternative","4":"<strong>WooCommerce Inventory Management &amp; Product List<\/strong> \u2014 clean product table with thumbnails, SKU, regular\/sale price, color-coded stock badges, category and a one-click publish toggle, for both simple and variable products","5":"<strong>Quick Edit Sidebar<\/strong> \u2014 a slide-in panel to edit name, prices, SKU, stock and category without ever leaving the product list","6":"<strong>Bulk Edit WooCommerce Products<\/strong> \u2014 bulk update prices, sale prices and stock for the whole catalog, by category or by selection, with full variation support (e.g. only \"Size: XL\")","7":"<strong>Simplified WooCommerce Product Editor<\/strong> \u2014 drag-and-drop image gallery, clean pricing and an inline variation builder for simple and variable products","8":"<strong>WooCommerce Customer Analytics \u2014 Lifetime Value (LTV)<\/strong> \u2014 total customers, average and top customer lifetime value, the full LTV distribution histogram, and a sortable top-customers table","9":"<strong>WooCommerce Customer Analytics \u2014 RFM Segmentation<\/strong> \u2014 every customer scored on Recency, Frequency and Monetary and grouped into Champions, Loyal, At Risk, Hibernating, About to Sleep and Lost, with revenue per segment","10":"<strong>WooCommerce Customer Analytics \u2014 Cohort Retention<\/strong> \u2014 a month-by-month cohort retention grid plus an average retention by month-offset trend","11":"<strong>Geographic Analytics \u2014 WooCommerce Sales by Country<\/strong> \u2014 a 3D globe of order locations with Top Countries and Top Cities by orders and revenue","12":"<strong>Live Visitors &amp; Conversion Funnel<\/strong> \u2014 real-time WooCommerce live visitors with cart status, plus the Visitors &gt; Add to Cart &gt; Checkout &gt; Orders conversion funnel and order-status breakdown","13":"<strong>Lightning-Fast Order Search (Cmd\/Ctrl + K)<\/strong> \u2014 an instant order search overlay across order ID, customer name, email, phone and product SKU from anywhere in wp-admin","14":"<strong>Segments \u2014 Orders Explorer<\/strong> \u2014 saved segments and quick filters with totals (orders, revenue, AOV) and a clean order list with location, payment method and status","15":"<strong>Segments \u2014 Customers Explorer<\/strong> \u2014 a segmentable customer list (new, repeat, VIP, dormant, high value) with total spent, AOV and first\/last order","16":"<strong>Modern WooCommerce Order Management<\/strong> \u2014 a redesigned orders page with a 30-day overview bar, color-coded status tabs and inline status change","17":"<strong>WooCommerce Categories Page<\/strong> \u2014 drag-and-drop parent\/child category and tag management with circular-reference protection","18":"<strong>WooCommerce Coupon Manager<\/strong> \u2014 a clean coupon table with discount-type badges, usage stats, revenue and expiry highlighting","19":"<strong>Add Coupon Slide-Over Panel<\/strong> \u2014 create or edit coupons with all WooCommerce coupon options without leaving the page","20":"<strong>Custom WP Login Page<\/strong> \u2014 a modern, branded login screen that replaces the default WordPress login"}},"plugin_section":[],"plugin_tags":[25296,257359,230338,76265,156984],"plugin_category":[],"plugin_contributors":[232895],"plugin_business_model":[],"class_list":["post-226093","plugin","type-plugin","status-publish","hentry","plugin_tags-google-sheets","plugin_tags-roas","plugin_tags-woocommerce-bulk-editor","plugin_tags-woocommerce-dashboard","plugin_tags-woocommerce-inventory-management","plugin_contributors-brksoft","plugin_committers-brksoft","plugin_support_reps-niyht"],"banners":{"banner":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/banner-772x250.png?rev=3534620","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/icon-128x128.gif?rev=3501915","icon_2x":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/icon-256x256.gif?rev=3501915","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-1.png?rev=3534620","caption":"<strong>Modern WooCommerce Dashboard<\/strong> \u2014 a real-time WooCommerce sales report and admin panel: Total Sales, Orders, AOV, Visitors and Conversion Rate with period-over-period deltas, an interactive sales chart, Net Profit, ROAS and a live visitors widget"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-2.png?rev=3534620","caption":"<strong>Real ROAS &amp; Net Profit with Google Ads + Meta Ads<\/strong> \u2014 native Google Ads and Meta (Facebook \/ Instagram) Ads integration that pulls daily ad spend into the dashboard so you see true return on ad spend and net profit next to store revenue"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-3.png?rev=3534620","caption":"<strong>WooCommerce Google Sheets Sync<\/strong> \u2014 real-time order sync to a Google Sheet, scheduled bulk export, per-status filters and reorderable columns \u2014 a free GSheetConnector alternative"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-4.gif?rev=3534620","caption":"<strong>WooCommerce Inventory Management &amp; Product List<\/strong> \u2014 clean product table with thumbnails, SKU, regular\/sale price, color-coded stock badges, category and a one-click publish toggle, for both simple and variable products"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-5.gif?rev=3534620","caption":"<strong>Quick Edit Sidebar<\/strong> \u2014 a slide-in panel to edit name, prices, SKU, stock and category without ever leaving the product list"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-6.gif?rev=3534620","caption":"<strong>Bulk Edit WooCommerce Products<\/strong> \u2014 bulk update prices, sale prices and stock for the whole catalog, by category or by selection, with full variation support (e.g. only \"Size: XL\")"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-7.gif?rev=3534620","caption":"<strong>Simplified WooCommerce Product Editor<\/strong> \u2014 drag-and-drop image gallery, clean pricing and an inline variation builder for simple and variable products"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-8.png?rev=3534620","caption":"<strong>WooCommerce Customer Analytics \u2014 Lifetime Value (LTV)<\/strong> \u2014 total customers, average and top customer lifetime value, the full LTV distribution histogram, and a sortable top-customers table"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-9.png?rev=3534620","caption":"<strong>WooCommerce Customer Analytics \u2014 RFM Segmentation<\/strong> \u2014 every customer scored on Recency, Frequency and Monetary and grouped into Champions, Loyal, At Risk, Hibernating, About to Sleep and Lost, with revenue per segment"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-10.png?rev=3534620","caption":"<strong>WooCommerce Customer Analytics \u2014 Cohort Retention<\/strong> \u2014 a month-by-month cohort retention grid plus an average retention by month-offset trend"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-11.png?rev=3534620","caption":"<strong>Geographic Analytics \u2014 WooCommerce Sales by Country<\/strong> \u2014 a 3D globe of order locations with Top Countries and Top Cities by orders and revenue"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-12.png?rev=3534620","caption":"<strong>Live Visitors &amp; Conversion Funnel<\/strong> \u2014 real-time WooCommerce live visitors with cart status, plus the Visitors &gt; Add to Cart &gt; Checkout &gt; Orders conversion funnel and order-status breakdown"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-13.png?rev=3534620","caption":"<strong>Lightning-Fast Order Search (Cmd\/Ctrl + K)<\/strong> \u2014 an instant order search overlay across order ID, customer name, email, phone and product SKU from anywhere in wp-admin"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-14.png?rev=3534620","caption":"<strong>Segments \u2014 Orders Explorer<\/strong> \u2014 saved segments and quick filters with totals (orders, revenue, AOV) and a clean order list with location, payment method and status"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-15.png?rev=3534620","caption":"<strong>Segments \u2014 Customers Explorer<\/strong> \u2014 a segmentable customer list (new, repeat, VIP, dormant, high value) with total spent, AOV and first\/last order"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-16.png?rev=3534620","caption":"<strong>Modern WooCommerce Order Management<\/strong> \u2014 a redesigned orders page with a 30-day overview bar, color-coded status tabs and inline status change"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-17.png?rev=3534620","caption":"<strong>WooCommerce Categories Page<\/strong> \u2014 drag-and-drop parent\/child category and tag management with circular-reference protection"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-18.png?rev=3534620","caption":"<strong>WooCommerce Coupon Manager<\/strong> \u2014 a clean coupon table with discount-type badges, usage stats, revenue and expiry highlighting"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-19.png?rev=3534620","caption":"<strong>Add Coupon Slide-Over Panel<\/strong> \u2014 create or edit coupons with all WooCommerce coupon options without leaving the page"},{"src":"https:\/\/ps.w.org\/brikpanel-admin-panel-dashboard-for-woocommerce\/assets\/screenshot-20.png?rev=3534620","caption":"<strong>Custom WP Login Page<\/strong> \u2014 a modern, branded login screen that replaces the default WordPress login"}],"raw_content":"<!--section=description-->\n<p><strong>Live demo (no install needed):<\/strong> <a href=\"https:\/\/code.brksoft.com\/wp-admin\/\">Explore the full BrikPanel admin on a real WooCommerce store<\/a><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=pmtmVQifZME&amp;t<\/p>\n\n<p><strong>BrikPanel turns the default WooCommerce admin panel into a clean, fast, all-in-one cockpit<\/strong> \u2014 a modern WooCommerce dashboard, a powerful WooCommerce bulk editor, an inventory management workspace, an order management center, a coupon manager, a custom WP login page, and a real-time conversion tracking suite. Everything is free. Forever. No premium tier, no feature locks, no monthly subscriptions. A self-hosted <strong>Shopify alternative for WooCommerce<\/strong> \u2014 own your data, your products, and your customer list, with no monthly platform fee and no transaction fee.<\/p>\n\n<p>Built by a developer who shipped 1000+ WooCommerce stores and got tired of every workflow taking five extra clicks.<\/p>\n\n<h4>Who is BrikPanel for?<\/h4>\n\n<ul>\n<li>Store owners who want a <strong>modern WooCommerce dashboard<\/strong> with real numbers, not the slow built-in reports \u2014 and a <strong>self-hosted WooCommerce analytics<\/strong> solution instead of paying monthly fees to external SaaS tools<\/li>\n<li>Stores that want a lighter <strong>woocommerce inventory management<\/strong> workspace built into a complete admin redesign<\/li>\n<li>Anyone who needs to <strong>bulk edit WooCommerce products<\/strong> \u2014 including variations \u2014 without a premium plugin<\/li>\n<li>Agencies handing off stores to non-technical clients who need a <strong>simplified WooCommerce admin<\/strong><\/li>\n<li>Shop owners migrating from Shopify who want a familiar, modern admin for their WooCommerce store \u2014 a free, self-hosted <strong>Shopify alternative<\/strong><\/li>\n<\/ul>\n\n<h3>What you get (all free)<\/h3>\n\n<h4>Modern WooCommerce Dashboard with Real-Time Sales Analytics<\/h4>\n\n<p>The heart of BrikPanel is a <strong>modern WooCommerce dashboard<\/strong> \u2014 a true <strong>woocommerce admin panel plugin<\/strong>, not a styling layer.<\/p>\n\n<ul>\n<li><strong>Total Sales, Total Orders, Average Order Value (AOV)<\/strong> \u2014 today, yesterday, last 7\/30 days, or any custom range, with <strong>\u00b1% period-over-period delta<\/strong> on every metric<\/li>\n<li><strong>Visitors<\/strong> counted from your own database (admins excluded), and <strong>Conversion Rate<\/strong> computed live from real visitors and real orders<\/li>\n<li><strong>Beautiful sales chart<\/strong> powered by Chart.js, plus an <strong>order status donut<\/strong> (Completed, Processing, Cancelled, Refunded, Failed)<\/li>\n<li><strong>WooCommerce conversion funnel<\/strong> \u2014 Visitors \u2192 Add to Cart \u2192 Checkout \u2192 Orders, with the conversion percentage at every step<\/li>\n<\/ul>\n\n<p>This is the <strong>best WooCommerce dashboard<\/strong> and a complete <strong>WooCommerce sales report<\/strong> for stores that need a <strong>modern WooCommerce admin<\/strong> and a <strong>woocommerce custom dashboard<\/strong>.<\/p>\n\n<h4>Customer Analytics \u2014 LTV, RFM Segmentation &amp; Cohort Retention<\/h4>\n\n<p>BrikPanel ships a complete <strong>WooCommerce customer analytics<\/strong> suite, calculated from your store data and visualized in the dashboard \u2014 no external service.<\/p>\n\n<ul>\n<li><strong>Customer Lifetime Value (LTV)<\/strong> \u2014 total customers, average and top LTV, full LTV distribution histogram, and a sortable top-customers table<\/li>\n<li><strong>RFM segmentation<\/strong> \u2014 every customer scored on Recency, Frequency, and Monetary, then bucketed into Champions, Loyal, At Risk, About to Sleep, Hibernating, and Lost, with revenue per segment<\/li>\n<li><strong>Cohort retention<\/strong> \u2014 month-by-month cohort retention grid plus an average retention by month-offset trend line<\/li>\n<li><strong>Advanced filtering and segmentation<\/strong> \u2014 combine spend range, product, location, date and more to build saved segments for both customers and orders<\/li>\n<\/ul>\n\n<p>A free <strong>woocommerce LTV plugin<\/strong>, <strong>woocommerce RFM<\/strong> tool, and <strong>woocommerce cohort retention<\/strong> report rolled into the same dashboard you already use for sales.<\/p>\n\n<h4>Live Visitors &amp; Real-Time Conversion Tracking<\/h4>\n\n<p>BrikPanel ships a built-in <strong>WooCommerce live visitors<\/strong> widget \u2014 see who is on your store right now, what page they are on, and whether they have items in the cart. Refreshes every 30 seconds. No external service, no Hotjar, no monthly fee.<\/p>\n\n<ul>\n<li><strong>WooCommerce real time visitors<\/strong> widget with cart status (<em>Browsing \/ Has items in cart \/ On thank-you page<\/em>), current page, and customer info<\/li>\n<li><strong>WooCommerce conversion tracking<\/strong> in the same database that powers the dashboard<\/li>\n<li>IP addresses SHA-256 hashed for privacy<\/li>\n<li>Most-viewed pages and most added-to-cart products reports<\/li>\n<\/ul>\n\n<p>A free <strong>woocommerce statistics plugin<\/strong> and <strong>woocommerce sales tracker<\/strong> without any external SaaS.<\/p>\n\n<h4>Geographic Analytics \u2014 WooCommerce Sales by Country<\/h4>\n\n<p>A 3D rotating globe (Cobe.js) plots every order on its real location \u2014 see <strong>WooCommerce sales by country<\/strong> and city without exporting a CSV, with <strong>Top 10 Countries<\/strong> and <strong>Top 10 Cities<\/strong> tables. Works with both HPOS and legacy order storage.<\/p>\n\n<h4>Lightning-Fast Order Search \u2014 Cmd\/Ctrl + K from Anywhere<\/h4>\n\n<p>Hit <code>Ctrl + K<\/code> (or <code>Cmd + K<\/code> on Mac) anywhere in wp-admin and a beautiful order search overlay opens \u2014 the free <strong>woocommerce order search plugin<\/strong> every store owner has been asking for. Searches across order ID, customer first\/last name, email, phone, and product SKU inside order line items at once. True <strong>woocommerce quick search<\/strong> with results as you type, color-coded status badges, totals, and dates.<\/p>\n\n<h4>Modern WooCommerce Order Management<\/h4>\n\n<p>BrikPanel replaces the cluttered default orders page with a clean <strong>woocommerce order list plugin<\/strong> screen.<\/p>\n\n<ul>\n<li><strong>30-day overview bar<\/strong>: total orders, completed, refunded, cancelled, revenue<\/li>\n<li><strong>Inline status change<\/strong> without opening the edit page<\/li>\n<li>HPOS (<code>wc_get_orders<\/code>) and legacy storage (<code>WP_Query<\/code>) both supported<\/li>\n<li>Two new statuses: <strong>Return Draft<\/strong> and <strong>Change<\/strong><\/li>\n<li>Reskinned order edit page with copy-to-clipboard for billing\/shipping<\/li>\n<li><strong>Sold downloadable products column<\/strong> on the order edit page<\/li>\n<li>Optional BrikMarket marketplace stats integration<\/li>\n<\/ul>\n\n<p>A real <strong>woocommerce order management plugin<\/strong>, not a reskin. Disable from settings anytime.<\/p>\n\n<h4>WooCommerce Product List Plugin \u2014 Built for People Who Actually Edit Products<\/h4>\n\n<p>The default <strong>WooCommerce product list<\/strong> is fine for browsing, painful for editing. BrikPanel ships a complete <strong>woocommerce product list plugin<\/strong> that fixes it.<\/p>\n\n<ul>\n<li>Thumbnail, name, SKU, regular\/sale price, stock badge, category<\/li>\n<li><strong>Publish status toggle<\/strong> \u2014 flip draft \u2194 published with one click, no reload<\/li>\n<li>Edit, Duplicate, Delete actions; bulk publish, draft, delete<\/li>\n<li>Status tabs (All \/ Published \/ Draft \/ Trash), live search by name or SKU<\/li>\n<li>Configurable per-page (5\u2013100, default 20), AJAX pagination<\/li>\n<li><strong>Per-user toggles for any third-party \/ SEO column<\/strong> added by Yoast, Rank Math, ASE and other plugins<\/li>\n<li><strong>Admin and Site Enhancements (ASE) custom columns<\/strong> are respected in the BrikPanel product, order and customer lists<\/li>\n<\/ul>\n\n<h4>Quick Edit Sidebar \u2014 Edit Without Leaving the List<\/h4>\n\n<p>A slide-in panel from any product row to edit name, SKU, regular\/sale price, stock, and category \u2014 save without leaving the list. The <strong>woocommerce quick edit<\/strong> experience WooCommerce should have shipped years ago. Update <strong>woocommerce quick edit price<\/strong>, stock, or category in two clicks.<\/p>\n\n<h4>Bulk Edit WooCommerce Products with the Variation Editor \u2014 Full Variation Support<\/h4>\n\n<p>This is where BrikPanel pulls ahead of every other free <strong>woocommerce bulk editor<\/strong>. Most free plugins only handle simple products and only let you \"increase price by X%\". BrikPanel does much more \u2014 and does it for variable products too.<\/p>\n\n<ul>\n<li><strong>WooCommerce bulk price update<\/strong> (regular and sale) \u2014 percentage, fixed amount, or absolute value, across the whole catalog or filtered by category<\/li>\n<li><strong>Bulk update WooCommerce products<\/strong> stock quantities (in\/out of stock, set quantity, add\/subtract)<\/li>\n<li><strong>WooCommerce bulk price by category<\/strong> \u2014 pick a category, set a rule, every product updates<\/li>\n<li><strong>WooCommerce bulk sale price<\/strong> updates with a date range<\/li>\n<li>Confirmation dialog on every bulk action<\/li>\n<\/ul>\n\n<p>Now the part nobody else does for free: <strong>variation support<\/strong>.<\/p>\n\n<ul>\n<li><strong>WooCommerce variation editor<\/strong> \u2014 open any variable product and edit every variation in one modal (regular price, sale price, stock, SKU)<\/li>\n<li><strong>Bulk edit variation prices WooCommerce<\/strong> \u2014 set the same price for all variations of an attribute (every \"Red\" variation, every \"L\" size), or apply a percentage rule<\/li>\n<li><strong>Bulk update variation stock<\/strong> \u2014 set or adjust the stock of every variation in one click<\/li>\n<li>Attribute filter to narrow visible variations when a product has 50+ combinations<\/li>\n<\/ul>\n\n<p><strong>How to bulk edit WooCommerce products<\/strong> including variations without buying a $79\/year plugin? BrikPanel handles both simple and variable products for free.<\/p>\n\n<h4>Simplified WooCommerce Product Editor<\/h4>\n\n<p>The default WooCommerce add-product screen has 11 metaboxes, 3 tabs, and 40+ fields. New owners give up before finishing their first product. BrikPanel ships a complete <strong>woocommerce product editor plugin<\/strong> with the noise removed.<\/p>\n\n<ul>\n<li><strong>Featured image + product gallery<\/strong> with drag-and-drop upload, unlimited images, drag-to-reorder<\/li>\n<li>Regular price, sale price with decimal validation<\/li>\n<li><strong>Searchable category picker<\/strong> with multi-select + <strong>quick create category<\/strong> without leaving the page<\/li>\n<li><strong>Brand field<\/strong> \u2014 the WooCommerce <code>product_brand<\/code> taxonomy is now first-class alongside categories and tags<\/li>\n<li>Short description + full rich-text description (wp_editor)<\/li>\n<li><strong>SEO fields<\/strong> \u2014 custom slug, meta title, meta description, live Google SERP preview<\/li>\n<li><strong>Full SEO plugin compatibility<\/strong> \u2014 Yoast SEO, Rank Math, All in One SEO and SEOPress metaboxes (including the SEO score panel) render and save inside the BrikPanel product editor<\/li>\n<li>Product type (Simple, Variable), <strong>attribute management<\/strong> with inline create<\/li>\n<li><strong>Auto-generate variations<\/strong> from attribute combinations, per-variation price\/sale\/SKU\/stock<\/li>\n<li>Duplicate any product in one click<\/li>\n<\/ul>\n\n<p>Opt-in. Keep the default WooCommerce product page if you prefer.<\/p>\n\n<h4>WooCommerce Variation Gallery<\/h4>\n\n<p>Attach a separate image gallery to each product variation \u2014 the frontend swaps gallery automatically when a customer picks a variation. Image metadata (srcset, sizes, alt text) is fully preserved.<\/p>\n\n<h4>WooCommerce Categories Page \u2014 Drag-and-Drop Parent\/Child Management<\/h4>\n\n<p>The default WooCommerce category screen has not been redesigned in a decade. BrikPanel rebuilds it with per-page settings (5\u2013200), <strong>drag-and-drop parent\/child nesting<\/strong> with circular reference prevention, for both <code>product_cat<\/code> and <code>product_tag<\/code>.<\/p>\n\n<h4>Best WooCommerce Coupon Plugin \u2014 Free Coupon Manager<\/h4>\n\n<p>A complete <strong>WooCommerce coupon manager<\/strong> that makes coupons a first-class part of the admin \u2014 we honestly think this is the <strong>best WooCommerce coupon plugin<\/strong> in the free repository.<\/p>\n\n<ul>\n<li>Coupon table with code copy-to-clipboard, discount type icon, amount, usage count, expiry highlighting, and status<\/li>\n<li>Status tabs, AJAX pagination, <strong>slide-over coupon panel<\/strong> \u2014 create\/edit without a reload<\/li>\n<li>Auto-generate random coupon codes; one-click duplicate<\/li>\n<li>Discount types: percentage, fixed cart, fixed product + free shipping toggle<\/li>\n<li>Expiry date picker, total + per-customer usage limits, min\/max spend, individual use toggle, product\/category include\/exclude rules<\/li>\n<\/ul>\n\n<h4>Custom WordPress Login Page \u2014 Custom WP Login Page for WooCommerce<\/h4>\n\n<p>BrikPanel ships a <strong>custom WP login page<\/strong> that fully replaces the default <code>wp-login.php<\/code> look \u2014 a real <strong>WordPress login customizer<\/strong> built for WooCommerce stores.<\/p>\n\n<ul>\n<li>Centered card layout with your site name as logo<\/li>\n<li>Minimal, distraction-free fields, AJAX submission (no reload)<\/li>\n<li>Toast notification on errors, footer site branding<\/li>\n<li>Default WordPress login styles fully hidden<\/li>\n<\/ul>\n\n<h4>WooCommerce Inventory Management<\/h4>\n\n<p>BrikPanel includes a complete <strong>woocommerce inventory management<\/strong> workspace. The product list, bulk editor, variation editor, and quick edit sidebar work together as one inventory workflow.<\/p>\n\n<ul>\n<li>Current stock for every product and variation in one place, with stock badges in the product list (in stock \/ low stock \/ out of stock)<\/li>\n<li>Update stock inline from the quick edit sidebar, or bulk update across categories and variations<\/li>\n<li>HPOS-enabled stores supported<\/li>\n<\/ul>\n\n<p>A free <strong>woocommerce inventory management plugin<\/strong> that covers the daily workflow without installing another heavy stock control plugin.<\/p>\n\n<h4>Custom Top Admin Bar &amp; Notifications<\/h4>\n\n<p>A <strong>Custom BrikPanel-styled top admin bar<\/strong> replaces the default WordPress toolbar across the entire admin with a larger, e-commerce-focused notification bell and quick links \u2014 toggleable from settings. Notification sound, confetti animation and a top-right popup the moment a new completed order arrives.<\/p>\n\n<h4>Google Sheets Sync \u2014 Real-Time WooCommerce Google Sheets Integration<\/h4>\n\n<p>BrikPanel ships a free <strong>WooCommerce Google Sheets sync<\/strong> \u2014 a fully native <strong>WooCommerce to Google Sheets<\/strong> integration that streams orders, customers and analytics into a Google Sheet you control. The free <strong>GSheetConnector alternative<\/strong> with no Zapier, no Make, no monthly fee.<\/p>\n\n<ul>\n<li><strong>Real-time order sync<\/strong> \u2014 every new WooCommerce order is appended within seconds, one row per line item so variations get their own columns. Free <strong>woocommerce order sync to google sheets<\/strong> with no external automation tool<\/li>\n<li><strong>Scheduled WooCommerce Google Sheets export<\/strong> \u2014 hourly, every 4h or daily catch-up; idempotent so re-runs never duplicate rows<\/li>\n<li><strong>Analytics report snapshots<\/strong> \u2014 Sales Summary, Daily KPIs, Top Products and Funnel tabs refreshed on an interval for pivots and dashboards in Sheets<\/li>\n<li><strong>Customer + RFM snapshot<\/strong> \u2014 chained to the nightly RFM recompute<\/li>\n<\/ul>\n\n<p>HPOS-compatible. A real <strong>google sheets woocommerce sync<\/strong> for stores that want orders, customers and analytics in Sheets without paying a monthly fee.<\/p>\n\n<h4>WooCommerce ROAS, Net Profit &amp; Ad Spend \u2014 Google Ads + Meta Ads<\/h4>\n\n<p>BrikPanel pulls daily spend from <strong>Google Ads<\/strong> and <strong>Meta Ads<\/strong> (Facebook \/ Instagram) so you see real <strong>WooCommerce ROAS<\/strong>, <strong>Net Profit<\/strong> and <strong>ad spend<\/strong> next to revenue. Multi-currency aware. A free <strong>Triple Whale alternative<\/strong> and <strong>woocommerce profit tracking<\/strong> dashboard with no monthly fee.<\/p>\n\n<h4>BrikMarket Marketplace Analytics<\/h4>\n\n<p>When BrikMarket is active, marketplace orders are excluded from the storefront conversion rate and a dedicated dashboard block breaks down orders, share and top categories per marketplace.<\/p>\n\n<h4>Subscription &amp; Membership Plugin Compatibility<\/h4>\n\n<p>Compatible with major subscription and membership plugins (WooCommerce Subscriptions, MemberPress, Paid Memberships Pro and more) \u2014 subscription products and member orders show up in the same product list, order screens and customer analytics.<\/p>\n\n<h4>Developer Hooks &amp; Filters<\/h4>\n\n<p>A <strong>developer hooks and filters system<\/strong> for agencies \u2014 actions and filters like <code>brikpanel_after_product_save<\/code>, plus a built-in docs popup in settings with one-click copy buttons.<\/p>\n\n<h4>Navigation &amp; Admin UI Cleanup<\/h4>\n\n<ul>\n<li>BrikPanel dashboard becomes the first WordPress admin menu item; admin bar gains quick links, footer rebranded<\/li>\n<li>Optional <strong>simplified mode<\/strong> hides the full WordPress menu, showing only BrikPanel + WooCommerce for non-technical clients<\/li>\n<\/ul>\n\n<h3>A Free, Self-Hosted WooCommerce Analytics &amp; Inventory Suite<\/h3>\n\n<p>Store owners pay monthly SaaS fees for parts of what BrikPanel does free:<\/p>\n\n<ul>\n<li><strong>Self-hosted WooCommerce analytics<\/strong> \u2014 sales, AOV, conversion, funnels, geo data, customer LTV, RFM, cohort retention, no third-party<\/li>\n<li>A simpler inventory workspace for stores that only need stock-level visibility and bulk updates<\/li>\n<li>A free Metorik and Triple Whale alternative \u2014 analytics, ROAS and profit on your own server<\/li>\n<li><strong>Shopify alternative for WooCommerce<\/strong> \u2014 the clean admin experience of Shopify with your storefront, customer data and orders on your own server<\/li>\n<\/ul>\n\n<h3>Why BrikPanel and not the default WooCommerce admin?<\/h3>\n\n<p>WooCommerce's built-in analytics are slow, refresh hourly, and have no live visitor tracking, conversion funnel, geographic data, customer LTV \/ RFM \/ cohort reports, Cmd+K order search, quick edit sidebar, variation bulk editor, custom login or coupon manager. BrikPanel fixes every one of those gaps inside a single <strong>free WooCommerce admin plugin<\/strong>.<\/p>\n\n<h3>WooCommerce HPOS Compatibility &amp; Performance<\/h3>\n\n<ul>\n<li><strong>Zero impact on storefront speed<\/strong> \u2014 only loads inside wp-admin<\/li>\n<li><strong>Hardened performance for low-resource hosting<\/strong> \u2014 heavy queries are batched, cached and run through Action Scheduler so the dashboard, customer analytics and bulk editor stay responsive on shared hosting<\/li>\n<li><strong>HPOS (High-Performance Order Storage)<\/strong> fully supported with dual code paths<\/li>\n<li>WooCommerce 7.x, 8.x, and newer; works alongside Admin Menu Editor, Slider Revolution, Yoast SEO, RankMath, WPML, Polylang<\/li>\n<li>Translation-ready (<code>.pot<\/code> file included), with all JavaScript \/ jQuery strings routed through <code>wp_localize_script<\/code><\/li>\n<li>All AJAX actions verify nonces and <code>manage_woocommerce<\/code> capability; DB writes use prepared statements; IPs SHA-256 hashed; admin activity excluded from analytics<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/brikpanel<\/code>, or install via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Open <strong>BrikPanel<\/strong> in the admin sidebar \u2014 the dashboard loads immediately.<\/li>\n<li>(Optional) Visit <strong>WooCommerce \u2192 Settings \u2192 BrikPanel<\/strong> to enable or disable specific modules.<\/li>\n<\/ol>\n\n<p>That is it. No license key, no email signup, no external account.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20brikpanel%20really%20100%25%20free%3F\"><h3>Is BrikPanel really 100% free?<\/h3><\/dt>\n<dd><p>Yes. Every feature on this page is in the free version. There is no premium tier, no feature lock, no trial period, no upsell. We built this because we needed it for our own 1000+ WooCommerce stores and decided to release it.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20a%20self-hosted%20woocommerce%20analytics%20solution%3F\"><h3>Is BrikPanel a self-hosted WooCommerce analytics solution?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel gives you a complete WooCommerce analytics suite that runs entirely on your own server with no external dependencies. Sales analytics, product reports, conversion tracking, customer LTV, RFM segmentation, cohort retention and customer data are all included \u2014 nothing is sent to any third-party SaaS.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20include%20a%20woocommerce%20sales%20report%3F\"><h3>Does BrikPanel include a WooCommerce sales report?<\/h3><\/dt>\n<dd><p>Yes. The BrikPanel dashboard ships a complete <strong>WooCommerce sales report<\/strong> out of the box \u2014 total sales, total orders, average order value (AOV), refunds, and net revenue, each with a \u00b1% period-over-period delta. Filter the sales report by today, yesterday, last 7 days, last 30 days, or any custom date range. The sales chart is rendered with Chart.js and pairs with the order status donut and conversion funnel for a full sales report you can read at a glance, without ever leaving wp-admin and without paying for an external analytics service.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20offer%20custom%20woocommerce%20reports%2C%20kpis%20and%20a%20profit%20report%3F\"><h3>Does BrikPanel offer custom WooCommerce reports, KPIs and a profit report?<\/h3><\/dt>\n<dd><p>Yes. The dashboard goes far beyond the built-in screens with a complete set of <strong>WooCommerce reports<\/strong> and <strong>WooCommerce sales analytics<\/strong> computed live from your own store data: sales, orders, AOV, conversion rate, customer LTV, RFM segments and cohort retention. Every headline metric is shown as a <strong>WooCommerce KPI<\/strong> card with a period-over-period delta, and a real <strong>profit report<\/strong> (revenue minus COGS, ad spend and manual expenses) sits right next to revenue. Because the LTV, RFM, cohort and geographic views are not part of core, BrikPanel effectively ships <strong>advanced reports<\/strong> for <strong>WooCommerce<\/strong> and <strong>custom WooCommerce reports<\/strong> as a free, self-hosted <strong>WooCommerce reporting<\/strong> layer, with no external SaaS and nothing sent off your server.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20dashboard%20widgets%2C%20sales%20charts%20and%20graphs%3F\"><h3>Can I customize the dashboard widgets, sales charts and graphs?<\/h3><\/dt>\n<dd><p>Yes. The BrikPanel <strong>admin dashboard<\/strong> is built from modular <strong>dashboard widgets<\/strong> (sales, orders, AOV, the conversion funnel, live visitors, the geographic globe, customer analytics and more), and the modules you do not need can be turned off from <strong>WooCommerce \u2192 Settings \u2192 BrikPanel<\/strong>. The <strong>sales charts<\/strong> and <strong>sales graphs<\/strong> are rendered with Chart.js and redraw for any date range you pick, so your <strong>custom dashboard<\/strong> shows exactly the <strong>sales charts<\/strong>, KPIs and reports you care about and nothing you do not.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20show%20customer%20ltv%2C%20rfm%20segments%20and%20cohort%20retention%3F\"><h3>Does BrikPanel show customer LTV, RFM segments and cohort retention?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel ships a full <strong>WooCommerce customer analytics<\/strong> suite directly in the dashboard. Customer Lifetime Value (LTV) is calculated for every customer with average, top, and full distribution histogram. RFM segmentation scores every customer on Recency, Frequency and Monetary and groups them into Champions, Loyal, At Risk, About to Sleep, Hibernating and Lost. Cohort retention shows a month-by-month grid plus an average retention trend line. All three are computed from your own store data \u2014 no external service involved.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20a%20free%20shopify%20alternative%20for%20woocommerce%3F\"><h3>Is BrikPanel a free Shopify alternative for WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, for store owners who want to stay self-hosted. BrikPanel gives your WooCommerce store the clean, modern admin experience of Shopify \u2014 product list with inline editing, bulk price and stock updates, live visitors, conversion tracking, geographic analytics, customer LTV \/ RFM \/ cohort reports, a branded login page \u2014 but your storefront, your customer data, and your orders stay on your own server. No monthly platform fee, no transaction fee, no vendor lock-in. If you were evaluating Shopify but want to own your stack, this is the <strong>Shopify alternative for WooCommerce<\/strong> we built for that exact use case.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20an%20atum%20alternative%20for%20inventory%20management%3F\"><h3>Is BrikPanel an ATUM alternative for inventory management?<\/h3><\/dt>\n<dd><p>For most stores, yes. BrikPanel includes complete <strong>woocommerce inventory management<\/strong> \u2014 stock levels, low stock badges, bulk stock updates, variation stock updates \u2014 all integrated into the same dashboard you use for sales and orders. If you only need daily stock work without advanced supplier or purchase order features, BrikPanel is a much lighter <strong>ATUM alternative<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20a%20faster%20woocommerce%20product%20list%20with%20bulk%20actions%20and%20quick%20edit%3F\"><h3>How do I get a faster WooCommerce product list with bulk actions and quick edit?<\/h3><\/dt>\n<dd><p>The default <strong>WooCommerce product list<\/strong> is built for browsing \u2014 searching, sorting and editing it is slow. BrikPanel ships a complete <strong>woocommerce product list plugin<\/strong> with thumbnail, SKU, regular and sale price, stock badge, category, AJAX pagination, live search, status tabs, one-click publish toggle and a slide-in quick edit panel for every row. Works on both simple and variable products, and the same <strong>woocommerce product list<\/strong> screen powers the bulk price and bulk stock updates so you never leave the page to edit your catalog.<\/p><\/dd>\n<dt id=\"how%20do%20i%20bulk%20edit%20woocommerce%20products%20including%20variations%3F\"><h3>How do I bulk edit WooCommerce products including variations?<\/h3><\/dt>\n<dd><p>Open <strong>BrikPanel \u2192 Products<\/strong> and click the <strong>Bulk Update<\/strong> button in the toolbar. You can update prices, sale prices, and stock for all products, by category, or for selected products. For variable products, open any product, click <strong>Edit Variations<\/strong>, and bulk update prices and stock across every variation in one modal. This is the part most free <strong>WooCommerce bulk editor<\/strong> plugins do not handle \u2014 BrikPanel does.<\/p><\/dd>\n<dt id=\"can%20i%20bulk%20edit%20variation%20prices%20in%20woocommerce%20with%20the%20free%20version%3F\"><h3>Can I bulk edit variation prices in WooCommerce with the free version?<\/h3><\/dt>\n<dd><p>Yes. <strong>Bulk edit variation prices WooCommerce<\/strong> is a core BrikPanel feature, and it is free. Set a percentage rule, set a fixed price, or update by attribute (every \"Red\" variation, every \"Large\" size). The same modal handles <strong>bulk update variation stock<\/strong> for the same products.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20slow%20down%20my%20woocommerce%20store%3F\"><h3>Does BrikPanel slow down my WooCommerce store?<\/h3><\/dt>\n<dd><p>No. BrikPanel only loads inside wp-admin. It has zero impact on your storefront speed, customer experience, page weight, or Core Web Vitals. The frontend never loads any BrikPanel code.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20compatible%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Is BrikPanel compatible with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. Every order query has dual code paths \u2014 <code>wc_get_orders()<\/code> for HPOS, <code>WP_Query<\/code> for legacy. BrikPanel declares HPOS compatibility via <code>FeaturesUtil::declare_compatibility('custom_order_tables', ...)<\/code> and is tested on stores running both modes.<\/p><\/dd>\n<dt id=\"how%20do%20i%20see%20woocommerce%20sales%20by%20country%3F\"><h3>How do I see WooCommerce sales by country?<\/h3><\/dt>\n<dd><p>Open the BrikPanel dashboard. Scroll to the geographic analytics section. The 3D globe shows every order on its real geographic location, and the <strong>Top 10 Countries<\/strong> and <strong>Top 10 Cities<\/strong> tables update in real time. BrikPanel extracts country and city from the billing or shipping address of every order, so this works with no extra setup.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20wordpress%20login%20page%20for%20my%20woocommerce%20store%3F\"><h3>How do I customize the WordPress login page for my WooCommerce store?<\/h3><\/dt>\n<dd><p>BrikPanel includes a built-in <strong>wordpress login customizer<\/strong>. Enable the <strong>custom wp login page<\/strong> module from BrikPanel settings and the default <code>wp-login.php<\/code> is replaced with a clean, branded login form that matches the rest of the BrikPanel admin. No CSS knowledge required.<\/p><\/dd>\n<dt id=\"how%20do%20i%20search%20woocommerce%20orders%20by%20customer%20name%20or%20phone%20number%3F\"><h3>How do I search WooCommerce orders by customer name or phone number?<\/h3><\/dt>\n<dd><p>Press <code>Ctrl + K<\/code> (or <code>Cmd + K<\/code> on Mac) anywhere inside wp-admin. The BrikPanel quick search overlay opens and searches across order ID, customer name, email, phone, and product SKU at the same time. This is the <strong>woocommerce search orders<\/strong> experience the WooCommerce admin should ship with by default.<\/p><\/dd>\n<dt id=\"can%20i%20see%20who%20is%20on%20my%20woocommerce%20store%20right%20now%3F\"><h3>Can I see who is on my WooCommerce store right now?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel includes a <strong>woocommerce live visitors<\/strong> widget on the dashboard that updates every 30 seconds. You can see what page each visitor is on, whether they have items in the cart, and whether they are an existing customer. This is real <strong>woocommerce real time visitors<\/strong> tracking, not estimates.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20track%20woocommerce%20conversion%20rate%20and%20conversion%20funnel%3F\"><h3>Does BrikPanel track WooCommerce conversion rate and conversion funnel?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel includes a complete <strong>woocommerce conversion tracking<\/strong> system that records visitors, add-to-cart events, checkout starts, and completed orders. The dashboard shows your <strong>woocommerce conversion funnel<\/strong> as a four-step visual: Visitors \u2192 Add to Cart \u2192 Checkout \u2192 Orders, with the conversion percentage at every step.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20woocommerce%20conversion%20tracking%20plugin%20built%20into%20brikpanel%3F\"><h3>Is there a free WooCommerce conversion tracking plugin built into BrikPanel?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel ships a free <strong>WooCommerce conversion tracking plugin<\/strong> that records every visitor, add-to-cart, checkout start and completed order in your own database \u2014 no Google Analytics setup, no Hotjar, no monthly fee. The funnel and conversion-rate widgets on the dashboard are computed from this same dataset in real time.<\/p><\/dd>\n<dt id=\"how%20do%20i%20sync%20woocommerce%20orders%20to%20google%20sheets%20for%20free%3F\"><h3>How do I sync WooCommerce orders to Google Sheets for free?<\/h3><\/dt>\n<dd><p>Open <strong>WooCommerce \u2192 BrikPanel \u2192 Google Sheets<\/strong>, click \"Connect Google account\", pick or create a target spreadsheet, and toggle \"Real-time order sync\" on. Every new WooCommerce order is then appended to your Sheet within seconds, with one row per line item so variations land in their own columns. Status changes update the existing row in place. No Zapier, no Make, no monthly fee \u2014 a real <strong>woocommerce google sheets sync<\/strong> built into BrikPanel.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20work%20as%20a%20free%20gsheetconnector%20or%20wpsyncsheets%20alternative%3F\"><h3>Does BrikPanel work as a free GSheetConnector or WPSyncSheets alternative?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel includes a complete <strong>WooCommerce to Google Sheets<\/strong> integration in the free version \u2014 real-time order sync, scheduled bulk export, analytics snapshot tabs (Sales Summary, Daily KPIs, Top Products, Funnel) and a customer + RFM snapshot. All four flows ship free with no row limit, no premium tier, and OAuth-based authentication that requests minimum scopes only (<code>drive.file<\/code> \u2014 never full Drive access).<\/p><\/dd>\n<dt id=\"how%20do%20i%20see%20real%20roas%20and%20net%20profit%20in%20woocommerce%3F\"><h3>How do I see real ROAS and net profit in WooCommerce?<\/h3><\/dt>\n<dd><p>Connect <strong>Google Ads<\/strong> and\/or <strong>Meta Ads<\/strong> from the BrikPanel Ad Platforms page. BrikPanel then pulls your daily ad spend and shows three new dashboard cards: <strong>Ad Spend<\/strong> (summed across every connected platform for the active date range), <strong>WooCommerce ROAS<\/strong> (store revenue \u00f7 ad spend), and <strong>Net Profit<\/strong> (revenue \u2212 COGS \u2212 ad spend \u2212 manual expenses). COGS comes from WooCommerce's native order cost meta and expenses from the BrikPanel expenses table, so the <strong>woocommerce roas<\/strong> and net profit numbers are real, not estimates. The cards are multi-currency aware \u2014 if an ad account reports in a different currency than the store, spend is shown split and ROAS \/ Net Profit are omitted instead of printing a misleading converted number.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20a%20free%20triple%20whale%20alternative%20for%20woocommerce%3F\"><h3>Is BrikPanel a free Triple Whale alternative for WooCommerce?<\/h3><\/dt>\n<dd><p>For self-hosted stores, yes. BrikPanel gives you the <strong>WooCommerce ROAS<\/strong> and <strong>net profit<\/strong> view store owners buy Triple Whale, TrueProfit or BeProfit for \u2014 daily <strong>Google Ads<\/strong> and <strong>Meta Ads<\/strong> spend pulled in next to store revenue, COGS and expenses \u2014 but it runs entirely on your own server with no monthly fee and no data sent to a third party. If you only need true ROAS and profit (not full multi-touch ad attribution), this is the free <strong>Triple Whale alternative<\/strong> built for that exact use case.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20connect%20to%20google%20ads%20and%20meta%20%28facebook%20%2F%20instagram%29%20ads%3F\"><h3>Does BrikPanel connect to Google Ads and Meta (Facebook \/ Instagram) Ads?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel connects to both <strong>Google Ads<\/strong> and <strong>Meta Ads<\/strong> through a secure OAuth proxy (the plugin only ever stores encrypted tokens, never your password). It pulls daily spend per platform, backfills history, and re-syncs recent days automatically so the dashboard ROAS and net profit stay accurate. The integration is spend-and-profit focused \u2014 it does not install a Facebook pixel or do multi-touch attribution; it gives you true <strong>woocommerce roas<\/strong> and net profit without a paid SaaS.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20woocommerce%20variation%20editor%20for%20bulk%20price%20and%20stock%20updates%3F\"><h3>Is there a free WooCommerce variation editor for bulk price and stock updates?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel includes a complete <strong>WooCommerce variation editor<\/strong> in the free version. Open any variable product, click \"Edit Variations\", and you can bulk update every variation's price, sale price, stock and SKU in one modal \u2014 with attribute filtering when a product has 50+ combinations. The same <strong>woocommerce variation editor<\/strong> also supports per-attribute rules (\"set every Red variation to $X\").<\/p><\/dd>\n<dt id=\"what%20makes%20brikpanel%20different%20from%20the%20built-in%20woocommerce%20analytics%3F\"><h3>What makes BrikPanel different from the built-in WooCommerce analytics?<\/h3><\/dt>\n<dd><p>The built-in WooCommerce analytics are slow, refresh on a delay, only show historical data, and have no live visitor tracking, no conversion funnel, no geographic globe, no customer LTV \/ RFM \/ cohort reports, no Cmd+K order search, no quick edit sidebar, no variation bulk editor, no custom login page, and no coupon manager. BrikPanel adds every one of those features inside a single free plugin.<\/p><\/dd>\n<dt id=\"is%20brikpanel%20just%20a%20css%20reskin%20of%20the%20woocommerce%20admin%3F\"><h3>Is BrikPanel just a CSS reskin of the WooCommerce admin?<\/h3><\/dt>\n<dd><p>No. BrikPanel is a real <strong>woocommerce admin dashboard plugin<\/strong> with custom database tables for visitor tracking, custom AJAX endpoints for every interaction, real conversion analytics, a working bulk editor, a real product editor, a real coupon manager, and a real custom login system. Other plugins (Dashify, UiPress) only restyle the admin. BrikPanel rebuilds the parts of WooCommerce that needed to be rebuilt.<\/p><\/dd>\n<dt id=\"can%20i%20use%20brikpanel%20as%20a%20wordpress%20admin%20theme%20or%20admin%20skin%20for%20my%20store%3F\"><h3>Can I use BrikPanel as a WordPress admin theme or admin skin for my store?<\/h3><\/dt>\n<dd><p>In practice, yes. BrikPanel is built specifically for WooCommerce, but for store owners it behaves like a focused <strong>WordPress admin theme<\/strong>: it reskins the WooCommerce parts of wp-admin into a clean, Shopify-style <strong>custom admin panel<\/strong>, replaces the default toolbar, and restyles the product, order, customer and coupon screens. If you have been looking for a <strong>wp admin theme<\/strong> or an <strong>admin skin<\/strong> that makes the WooCommerce admin genuinely pleasant to work in (rather than a generic restyle that breaks on the next WooCommerce update), this is built for exactly that. You can also <strong>hide admin menu<\/strong> items for non-technical clients with the optional simplified mode, leaving only BrikPanel and WooCommerce in the sidebar.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20work%20with%20yoast%20seo%2C%20rankmath%2C%20elementor%2C%20wpml%2C%20and%20polylang%3F\"><h3>Does BrikPanel work with Yoast SEO, RankMath, Elementor, WPML, and Polylang?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel does not interfere with frontend rendering, so it works with every page builder and SEO plugin we have tested. Yoast SEO, Rank Math, All in One SEO and SEOPress metaboxes (including their SEO score panels) render and save inside the BrikPanel product editor. It also has its own translation files and is fully compatible with WPML and Polylang for multilingual stores.<\/p><\/dd>\n<dt id=\"does%20brikpanel%20work%20with%20woocommerce%20subscriptions%20and%20membership%20plugins%3F\"><h3>Does BrikPanel work with WooCommerce Subscriptions and membership plugins?<\/h3><\/dt>\n<dd><p>Yes. BrikPanel is compatible with WooCommerce Subscriptions, Subscriptions for WooCommerce (WP Swings), MemberPress, Paid Memberships Pro, WooCommerce Memberships, YITH WooCommerce Subscription, SUMO Subscriptions, WebToffee Subscriptions for WooCommerce and Restrict Content Pro. Subscription products and member orders show up in the same product list, order screens and customer analytics as the rest of your catalog.<\/p><\/dd>\n<dt id=\"where%20does%20brikpanel%20store%20data%3F\"><h3>Where does BrikPanel store data?<\/h3><\/dt>\n<dd><p>Everything stays in your WordPress database. BrikPanel creates three custom tables: <code>wp_brikpanel_visitors<\/code>, <code>wp_brikpanel_cart_tracking<\/code>, and <code>wp_brikpanel_visited_pages<\/code>. Live visitor data is stored in a transient that auto-expires every 2 minutes. Your store, order, customer and visitor data is never sent anywhere. BrikPanel only contacts an external service for optional features you switch on yourself, described in the next question.<\/p><\/dd>\n<dt id=\"what%20data%20does%20brikpanel%20send%20outside%20my%20site%3F\"><h3>What data does BrikPanel send outside my site?<\/h3><\/dt>\n<dd><p>By default, nothing. BrikPanel only contacts an external service for features you explicitly opt into:<\/p>\n\n<ul>\n<li><strong>BrikMentor early access (optional).<\/strong> After 100 completed orders, or from a dismissible card on the dashboard, BrikPanel may invite you to join the waiting list for BrikMentor, an upcoming separate AI assistant and email marketing platform. Only if you type your email address and tick the consent box is that email (and, if you answer the optional follow-up, which marketing tool you use) sent to our server at brksoft.com so we can email you the beta invite. Nothing is sent unless you fill in the form and consent, and you can unsubscribe at any time. Privacy policy: https:\/\/brksoft.com\/privacy-policy\/ . Terms: https:\/\/brksoft.com\/terms-and-conditions\/<\/li>\n<li><strong>Google Sheets sync and Google \/ Meta Ads (optional).<\/strong> If you connect these, BrikPanel exchanges data with Google, Meta and our authentication helper at brksoft.com to run the sync and read your ad spend. They only run after you connect the relevant account.<\/li>\n<\/ul><\/dd>\n<dt id=\"will%20brikpanel%20always%20be%20free%3F\"><h3>Will BrikPanel always be free?<\/h3><\/dt>\n<dd><p>Yes. The dashboard, the bulk editor, the inventory tools, the order management, the coupon manager, the custom login, the conversion tracking, the customer analytics suite, and every other feature listed above will remain free forever. We may release a separate paid product (BrikMentor) on top of BrikPanel in the future, but it will be additive \u2014 BrikPanel itself stays 100% free.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.1.36 (2026-06-22)<\/h4>\n\n<ul>\n<li>New: <strong>The product editor's attributes and variations section was redesigned<\/strong>. The card now has a clean header (the \"Variable product\" title, a short description and the toggle) above a tidy body, matching the rest of the editor, instead of the previous stacked grey text. The plain attribute drop-down is replaced with a modern, searchable picker: click the field, type to filter your global attributes, and press Enter to add the match. The free-text \"add a value\" box and its Add button are now one joined input, and the \"Size and Color\" shortcut moved into a clear \"Quick add\" chip. Every action behaves exactly as before, on both simple and variable products<\/li>\n<li>New: <strong>Drag to reorder attribute rows<\/strong>. Each attribute row now has a drag handle, so you can reorder your attributes the way WooCommerce does. Because the order decides how variation names are built, reordering marks any already-generated variations as needing a refresh and prompts you to regenerate them<\/li>\n<li>Fix: <strong>WooCommerce's \"Customer history\" and \"Order attribution\" boxes are back on the modern order screen<\/strong>. Both boxes carry useful native data and were being hidden by mistake; they now show with BrikPanel's card styling. Only the raw \"Custom Fields\" box (already replaced by BrikPanel's \"Additional details\" card) and the download-permissions box stay hidden<\/li>\n<li>Fix: <strong>The \"Order actions\" box no longer looks broken with the CURCY multi-currency plugin<\/strong>. CURCY adds a currency selector and a note to that box; the selector now sits on its own full-width row with the note as small helper text underneath, and the Trash and Update buttons line up correctly. Stores without CURCY are unchanged<\/li>\n<li>Improvement: <strong>Security and reliability hardening of the attributes and variations editor<\/strong>. The data the editor embeds in the page is now safely encoded so attribute or term names imported from elsewhere can never break out of the script, saving and the variation preview now run a per-product permission check, and creating a new term or global attribute is limited to users allowed to do so. Removing a taxonomy attribute from a product now cleans up its old term links, a sensible upper limit guards against a runaway number of variations, and several smaller fixes make the variation preview race-safe and stop duplicate attribute rows. Works on both simple and variable products<\/li>\n<\/ul>\n\n<h4>Earlier versions<\/h4>\n\n<p>For the complete release history (and all earlier versions), see changelog.txt bundled with the plugin.<\/p>","raw_excerpt":"Free WooCommerce dashboard &amp; sales report: Google Sheets sync, ROAS, bulk editor, inventory management &amp; live visitors","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/226093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=226093"}],"author":[{"embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brksoft"}],"wp:attachment":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=226093"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=226093"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=226093"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=226093"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=226093"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=226093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}