• Resolved l3gacy

    (@l3gacy)


    I recently transferred my website to a new website that I had redesigned. However, my WooCommerce reports and Analytics are a complete mess, and I need to get it fixed before tax time, and Woo just stopped responding to my tickets. They told me to just use Analytics as reports are not supported any longer. But both are busted, and I don’t know what to do. It’s not recording refunds properly. When I imported my data, it took all 5 years of refunds and put them into last month. So it’s showing I had a loss of $17,333.34, even though I can see what orders were refunded and when. Reports does not see it that way and only links to 4 times, drastically causing issues come tax time. Now, as I only had a few refunds this year, I was going to try and work it out on paper for taxes and just focus on using Analytics. But I had a refund the other day, and it made a ghost refund, thus doubling my refund.

    Furthermore, it was a partial refund, and I ran it through the system, clicked refund, and selected the quantity for each of the items. However, this was a custom-made product, so there was a restocking fee. So I just deducted that on the item’s price. It did give the customer the right amount, but it flagged it in the system at the whole amount and then made a ghost refund. So for this month it’s showing -$826.64 when it should be showing -$388.32, and I’m at a loss. I can’t keep running this site this way and have been thinking about abandoning WP/Woo altogether and just going to Shopify or something. But this is the last thing I want, but this system is FOOKED, and I’m at a loss at trying to fix it. Even more, someone with Woo stopped replying.

    The page I need help with: [log in to see the link]

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Support Frank Remmy (woo-hc)

    (@frankremmy)

    Hi @l3gacy,

    Thank you for sharing the update and the links to your ongoing discussions. I understand how frustrating it is to experience such issues with WooCommerce reporting and refunds, especially with tax time approaching. It’s absolutely critical for your business to have accurate financial data and smooth operations.

    I also took a look at your site, and to narrow things down, could you let us know:

    • Was the recent partial refund processed via Stripe, PayPal, or manually? Since your site uses both gateways, identifying which one handled it can help us trace how the data was logged.
    • In the refund that created a “ghost” entry, did you notice any duplicate transaction IDs or mismatched amounts in Stripe or PayPal? If you haven’t checked yet, you can isolate ghost refunds by:
      • Searching for the order number or customer name in the gateway dashboard.
      • Comparing the WooCommerce refund amount with the actual transaction amount in Stripe/PayPal.
      • Looking for multiple refund entries tied to the same order or timestamp, especially ones without a corresponding WooCommerce action.
    • If you check WooCommerce → Status → Logs, do you see any Stripe or PayPal related entries? If so, you could share them here via pastebin.com

    Also, I noticed two refund entries for A. Gonz… on December 9 on the screenshot; one with no order number and one tied to order #26114. Do you recall if both were triggered from the same refund action, or was one manually added?

    Regarding your note about Analytics vs. Reports: WooCommerce has shifted focus to Analytics, but it’s worth checking both. Analytics should reflect refunds more accurately, but if your import skewed historical data, Reports might still show distorted figures. Have you tried filtering Analytics by order status and date to see if the ghost refund appears twice?

    Since your imported data combined five years of refunds into a single month, was it done via Analytics → Settings → Import historical data, or via a third-party tool? There might be mapping errors.

    Lastly, did you get a chance to follow the guide shared in the previous topic? This one here. Was it helpful in clarifying how WooCommerce logs refunds?

    Let’s keep digging. Once we know which gateway processed the refund and how it’s reflected in both WooCommerce and the payment logs, we’ll be in a better spot to troubleshoot.

    Thread Starter l3gacy

    (@l3gacy)

    It was done via Stripe.
    No duplicate transaction IDs The ghost was Blank
    Only his one order showed up when I search his name and or order ID
    did not see anything for multiple refund entries

    Have no idea what this is? If you check WooCommerce → Status → Logs, do you see any Stripe or PayPal related entries? If so, you could share them here via pastebin.com
    But the only error I seen for that day is the webhook via Strip - I think I have that fixed now

    When I did the one refund This is what happened an could be the problem not sure. We made a new Status: called In production: When I refunded him, I noticed the stats did not change like it has in the past.

    Yes I ran the Crons
    ------------------------------



    WordPress Environment<br><br>WordPress address (URL): https://www.gntac.com<br>Site address (URL): https://www.gntac.com<br>WC Version: 10.4.2<br>Legacy REST API Package Version: The Legacy REST API plugin is not installed on this site.<br>Action Scheduler Version: ✔ 3.9.3<br>Log Directory Writable: ✔<br>WP Version: 6.9<br>WP Multisite: –<br>WP Memory Limit: 2 GB<br>WP Debug Mode: –<br>WP Cron: ✔<br>Language: en_US<br>External object cache: – Server Environment<br><br>Server Info: LiteSpeed<br>Server Architecture: Linux 4.18.0-553.83.1.lve.el8.x86_64 x86_64<br>PHP Version: 8.1.33<br>PHP Post Max Size: 128 MB<br>PHP Time Limit: 60<br>PHP Max Input Vars: 3000<br>cURL Version: 8.14.1<br>OpenSSL/1.1.1w<br><br>SUHOSIN Installed: –<br>MySQL Version: 11.4.9-MariaDB-log<br>Max Upload Size: 84 MB<br>Default Timezone is UTC: ✔<br>fsockopen/cURL: ✔<br>SoapClient: ✔<br>DOMDocument: ✔<br>GZip: ✔<br>Multibyte String: ✔<br>Remote Post: ✔<br>Remote Get: ✔ Database<br><br>WC Database Version: 10.4.2<br>WC Database Prefix: wph5_<br>Total Database Size: 350.31MB<br>Database Data Size: 237.89MB<br>Database Index Size: 112.42MB<br>wph5_woocommerce_sessions: Data: 3.02MB + Index: 0.06MB + Engine InnoDB<br>wph5_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB<br>wph5_woocommerce_order_items: Data: 0.47MB + Index: 0.14MB + Engine InnoDB<br>wph5_woocommerce_order_itemmeta: Data: 6.52MB + Index: 5.03MB + Engine InnoDB<br>wph5_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB<br>wph5_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_actionscheduler_actions: Data: 11.52MB + Index: 15.41MB + Engine InnoDB<br>wph5_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_actionscheduler_logs: Data: 6.52MB + Index: 5.03MB + Engine InnoDB<br>wph5_cleantalk_ac_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_cleantalk_connection_reports: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_cleantalk_sessions: Data: 2.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_cleantalk_sfw: Data: 1.52MB + Index: 1.52MB + Engine InnoDB<br>wph5_cleantalk_sfw_logs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_cleantalk_sfw_personal: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_cleantalk_spamscan_logs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_cleantalk_ua_bl: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_cleantalk_wc_spam_orders: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_commentmeta: Data: 0.05MB + Index: 0.03MB + Engine InnoDB<br>wph5_comments: Data: 2.52MB + Index: 3.44MB + Engine InnoDB<br>wph5_cr_local_forms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_cr_reminders_log: Data: 0.02MB + Index: 0.08MB + Engine InnoDB<br>wph5_EWD_OTP_Customers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_EWD_OTP_Fields_Meta: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_EWD_OTP_Orders: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_EWD_OTP_Order_Statuses: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_EWD_OTP_Sales_Reps: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_e_events: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_e_notes: Data: 0.02MB + Index: 0.17MB + Engine InnoDB<br>wph5_e_notes_users_relations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_e_submissions: Data: 0.02MB + Index: 0.27MB + Engine InnoDB<br>wph5_e_submissions_actions_log: Data: 0.02MB + Index: 0.11MB + Engine InnoDB<br>wph5_e_submissions_values: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_gla_attribute_mapping_rules: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_gla_budget_recommendations: Data: 0.19MB + Index: 0.14MB + Engine InnoDB<br>wph5_gla_merchant_issues: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_gla_merchant_price_benchmarks: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_gla_shipping_rates: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_gla_shipping_times: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_litespeed_avatar: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_litespeed_img_optming: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_litespeed_url: Data: 0.05MB + Index: 0.03MB + Engine InnoDB<br>wph5_litespeed_url_file: Data: 0.17MB + Index: 0.44MB + Engine InnoDB<br>wph5_mailpoet_automations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_mailpoet_automation_runs: Data: 0.02MB + Index: 0.08MB + Engine InnoDB<br>wph5_mailpoet_automation_run_logs: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_mailpoet_automation_run_subjects: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_automation_triggers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_mailpoet_automation_versions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_custom_fields: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_dynamic_segment_filters: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_feature_flags: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_forms: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_mailpoet_log: Data: 0.05MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_migrations: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_newsletters: Data: 0.05MB + Index: 0.05MB + Engine InnoDB<br>wph5_mailpoet_newsletter_links: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_mailpoet_newsletter_option: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_newsletter_option_fields: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_newsletter_posts: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_newsletter_segment: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_newsletter_templates: Data: 2.52MB + Index: 0.00MB + Engine InnoDB<br>wph5_mailpoet_scheduled_tasks: Data: 0.16MB + Index: 0.09MB + Engine InnoDB<br>wph5_mailpoet_scheduled_task_subscribers: Data: 1.52MB + Index: 0.33MB + Engine InnoDB<br>wph5_mailpoet_segments: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_sending_queues: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_settings: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_statistics_bounces: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_mailpoet_statistics_clicks: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_mailpoet_statistics_forms: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_statistics_newsletters: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_statistics_opens: Data: 0.02MB + Index: 0.08MB + Engine InnoDB<br>wph5_mailpoet_statistics_unsubscribes: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_mailpoet_statistics_woocommerce_purchases: Data: 0.02MB + Index: 0.08MB + Engine InnoDB<br>wph5_mailpoet_stats_notifications: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_subscribers: Data: 0.25MB + Index: 0.69MB + Engine InnoDB<br>wph5_mailpoet_subscriber_custom_field: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_subscriber_ips: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_subscriber_segment: Data: 0.13MB + Index: 0.13MB + Engine InnoDB<br>wph5_mailpoet_subscriber_tag: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_mailpoet_tags: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_user_agents: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_mailpoet_user_flags: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_options: Data: 8.23MB + Index: 0.30MB + Engine InnoDB<br>wph5_pmxe_exports: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxe_google_cats: Data: 0.39MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxe_posts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxe_templates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_files: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_geocoding: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_pmxi_hash: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_history: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_images: Data: 0.09MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_imports: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_posts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_pmxi_templates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_postmeta: Data: 82.58MB + Index: 54.20MB + Engine InnoDB<br>wph5_posts: Data: 85.52MB + Index: 1.81MB + Engine InnoDB<br>wph5_redirection_404: Data: 2.02MB + Index: 0.48MB + Engine InnoDB<br>wph5_redirection_groups: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_redirection_items: Data: 0.02MB + Index: 0.09MB + Engine InnoDB<br>wph5_redirection_logs: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_revslider_css: Data: 0.13MB + Index: 0.02MB + Engine InnoDB<br>wph5_revslider_layer_animations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_revslider_navigations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_revslider_sliders: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_revslider_sliders7: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_revslider_slides: Data: 0.06MB + Index: 0.02MB + Engine InnoDB<br>wph5_revslider_slides7: Data: 0.06MB + Index: 0.02MB + Engine InnoDB<br>wph5_revslider_static_slides: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_snippets: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_termmeta: Data: 0.05MB + Index: 0.03MB + Engine InnoDB<br>wph5_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_term_relationships: Data: 0.06MB + Index: 0.05MB + Engine InnoDB<br>wph5_term_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_usermeta: Data: 1.52MB + Index: 1.91MB + Engine InnoDB<br>wph5_users: Data: 0.08MB + Index: 0.05MB + Engine InnoDB<br>wph5_wc_admin_notes: Data: 0.06MB + Index: 0.00MB + Engine InnoDB<br>wph5_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wc_customer_lookup: Data: 0.19MB + Index: 0.14MB + Engine InnoDB<br>wph5_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_wc_orders: Data: 1.52MB + Index: 0.78MB + Engine InnoDB<br>wph5_wc_orders_meta: Data: 4.52MB + Index: 10.06MB + Engine InnoDB<br>wph5_wc_order_addresses: Data: 0.48MB + Index: 0.53MB + Engine InnoDB<br>wph5_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_wc_order_operational_data: Data: 0.38MB + Index: 0.19MB + Engine InnoDB<br>wph5_wc_order_product_lookup: Data: 0.36MB + Index: 0.75MB + Engine InnoDB<br>wph5_wc_order_stats: Data: 0.28MB + Index: 0.34MB + Engine InnoDB<br>wph5_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_wc_product_attributes_lookup: Data: 0.06MB + Index: 0.05MB + Engine InnoDB<br>wph5_wc_product_download_directories: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_wc_product_meta_lookup: Data: 0.19MB + Index: 0.42MB + Engine InnoDB<br>wph5_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_woo_shippment_provider: Data: 0.17MB + Index: 0.00MB + Engine InnoDB<br>wph5_wpvivid_options: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_wsal_custom_notifications: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wsal_generated_reports: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wsal_metadata: Data: 2.23MB + Index: 3.73MB + Engine InnoDB<br>wph5_wsal_occurrences: Data: 2.02MB + Index: 0.47MB + Engine InnoDB<br>wph5_wsal_periodic_reports: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wsal_sessions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wt_iew_action_history: Data: 2.52MB + Index: 0.00MB + Engine InnoDB<br>wph5_wt_iew_cron: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wt_iew_email_template: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wt_iew_ftp: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_wt_iew_mapping_template: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wph5_yoast_indexable: Data: 0.30MB + Index: 0.36MB + Engine InnoDB<br>wph5_yoast_indexable_hierarchy: Data: 0.06MB + Index: 0.05MB + Engine InnoDB<br>wph5_yoast_migrations: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wph5_yoast_primary_term: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wph5_yoast_prominent_words: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wph5_yoast_seo_links: Data: 0.17MB + Index: 0.14MB + Engine InnoDB Post Type Counts<br><br>acf-field: 1<br>acf-field-group: 1<br>attachment: 1625<br>custom_css: 1<br>custom-css-js: 2<br>customize_changeset: 130<br>elementor_library: 14<br>elementor-hf: 9<br>mailpoet_page: 2<br>metform-entry: 9<br>metform-form: 3<br>nav_menu_item: 13<br>page: 48<br>post: 24<br>product: 105<br>product_variation: 574<br>revision: 3064<br>shop_coupon: 11<br>shop_order: 1840<br>shop_order_refund: 259<br>tactiko-breadcrumb: 3<br>vpc-config: 1<br>wp_font_face: 33<br>wp_font_family: 12<br>wp_navigation: 1<br>wpcf7_contact_form: 2 Security<br><br>Secure connection (HTTPS): ✔<br>Hide errors from visitors: ✔ Active Plugins (40)<br><br>Advanced Custom Fields: by WP Engine – 6.7.0<br>Classic Editor: by WordPress Contributors – 1.6.7<br>Anti-Spam by CleanTalk: by CleanTalk - Anti-Spam Protection – 6.69.2<br>Contact Form 7: by Rock Lobster Inc. – 6.1.4<br>Simple Custom CSS and JS: by SilkyPress.com – 3.51.1<br>Customer Reviews for WooCommerce: by CusRev – 5.93.1<br>Yoast Duplicate Post: by Enrico Battocchi & Team Yoast – 4.5<br>ELEX EasyPost Shipping Plugin (UPS, FedEx, Canada Post & USPS): by ELEXtensions – 4.2.0<br>Elementor Pro: by Elementor.com – 3.33.2<br>Elementor: by Elementor.com – 3.33.4<br>Google for WooCommerce: by WooCommerce – 3.5.1<br>Site Kit by Google: by Google – 1.168.0<br>Ultimate Addons for Elementor Lite: by Brainstorm Force – 2.7.0<br>KIA Subtitle: by Kathy Darling – 4.0.1<br>LiteSpeed Cache: by LiteSpeed Technologies – 7.6.2<br>MailPoet: by MailPoet – 5.17.4<br>MetForm: by Wpmet – 4.1.0<br>Order Tracking - WordPress Status Tracking Plugin: by Etoile Web Design – 3.4.3<br>Redirection: by John Godley – 5.5.2<br>Slider Revolution: by ThemePunch – 6.7.36<br>Theme My Login: by Theme My Login – 7.1.14<br>Visual Products Configurator Multiple Views addon: by Orion Origin – 3.1.2<br>Visual Products Configurator Save For Later Addon: by Orion – 3.1.1<br>Visual Products Configurator Social Share Addon: by Orion – 2.0.2<br>Visual Products Configurator: by ORION – 7.6.5<br>Advanced Shipment Tracking for WooCommerce: by zorem – 3.8.8<br>WPC Smart Compare for WooCommerce: by WPClever – 6.5.3<br>WPC Smart Quick View for WooCommerce: by WPClever – 4.2.8<br>WPC Smart Wishlist for WooCommerce: by WPClever – 5.0.8<br>WooCommerce.com Update Manager: by Automattic – 1.0.3<br>Variation Swatches for WooCommerce: by Emran Ahmed – 2.2.2<br>Print Invoice & Delivery Notes for WooCommerce: by Tyche Softwares – 5.8.0<br>WooCommerce Stripe Gateway: by Stripe – 10.2.0<br>Google Analytics for WooCommerce: by WooCommerce – 2.1.19<br>WooCommerce PayPal Payments: by PayPal – 3.3.1<br>WooCommerce: by Automattic – 10.4.2<br>Yoast SEO Premium: by Team Yoast – 26.6<br>Yoast SEO: by Team Yoast – 26.6<br>WP Crontrol: by John Blackbourn – 1.19.3<br>WP Activity Log (Premium): by Melapress – 5.5.4 Inactive Plugins (5)<br><br>Image Optimizer - Compress, Resize and Optimize Images: by Elementor.com – 1.6.9<br>Maintenance: by WebFactory Ltd – 4.19<br>WP Bulk Delete: by Xylus Themes – 1.3.8<br>WP Bulk Delete Pro: by Xylus Themes – 1.4.2<br>Yoast SEO: WooCommerce: by Team Yoast – 16.5 Must Use Plugins (1)<br><br>Elementor Safe Mode: by Elementor.com – 1.0.0 Settings<br><br>Legacy API Enabled: –<br>Force SSL: –<br>Currency: USD ($)<br>Currency Position: left<br>Thousand Separator: ,<br>Decimal Separator: .<br>Number of Decimals: 2<br>Taxonomies: Product Types: external (external)<br>grouped (grouped)<br>simple (simple)<br>variable (variable)<br><br>Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)<br>exclude-from-search (exclude-from-search)<br>featured (featured)<br>outofstock (outofstock)<br>rated-1 (rated-1)<br>rated-2 (rated-2)<br>rated-3 (rated-3)<br>rated-4 (rated-4)<br>rated-5 (rated-5)<br><br>Connected to WooCommerce.com: ✔<br>Enforce Approved Product Download Directories: ✔<br>HPOS feature enabled: ✔<br>Order datastore: Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore<br>HPOS data sync enabled: ✔<br>Enabled Features: analytics<br>marketplace<br>order_attribution<br>site_visibility_badge<br>hpos_datastore_caching<br>blueprint<br>point_of_sale<br>custom_order_tables Logging<br><br>Enabled: ✔<br>Handler: Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2<br>Retention period: 30 days<br>Level threshold: –<br>Log directory size: 329 KB WC Pages<br><br>Shop base: #10 - /shop/<br>Cart: #11 - /cart/ - Contains the &#091;woocommerce_cart] shortcode<br>Checkout: #12 - /checkout/ - Contains the &#091;woocommerce_checkout] shortcode<br>My account: #13 - /my-account/ - Contains the &#091;woocommerce_my_account] shortcode<br>Terms and conditions: #6902 - /returns/ Theme<br><br>Name: Tactiko Child<br>Version: 1.1.0<br>Author URL:<br>Child Theme: ✔<br>Parent Theme Name: Tactiko<br>Parent Theme Version: 1.1.0<br>Parent Theme Author URL: https://wpopal.com/<br>Theme type: Classic theme<br>WooCommerce Support: ✔ Templates<br><br>Overrides: tactiko/woocommerce/archive-product.php<br>tactiko/woocommerce/cart/mini-cart.php<br>tactiko/woocommerce/checkout/form-checkout.php<br>tactiko/woocommerce/content-product.php<br>tactiko/woocommerce/content-single-product.php<br>tactiko/woocommerce/content-widget-product.php<br>tactiko/woocommerce/content-widget-reviews.php<br>tactiko/woocommerce/global/quantity-input.php<br>tactiko/woocommerce/loop/loop-end.php<br>tactiko/woocommerce/loop/loop-start.php<br>tactiko/woocommerce/loop/pagination.php<br>tactiko/woocommerce/myaccount/form-login.php<br>tactiko/woocommerce/order/form-tracking.php<br>tactiko/woocommerce/product-searchform.php<br>tactiko/woocommerce/single-product/add-to-cart/grouped.php<br>tactiko/woocommerce/single-product/photoswipe.php<br>tactiko/woocommerce/single-product/product-image.php<br>tactiko/woocommerce/single-product/rating.php<br>tactiko/woocommerce/single-product/tabs/tabs.php<br>tactiko/woocommerce/single-product-reviews.php<br>tactiko/woocommerce/single-product.php WooCommerce Stripe Payment Gateway<br><br>Version: 10.2.0<br>Account ID: acct_1CnEEjBpjSXxgl39<br>Test Mode Enabled: ✔<br>No<br>OAuth Connected: ✔<br>Yes<br>Sync Enabled: ✔<br>Yes<br>Optimized Checkout Enabled: ✔<br>Yes<br>Enabled Payment Methods: apple_pay,card,google_pay,link<br>Express Checkout: ✔<br>Enabled (product,cart)<br>Auth and Capture: ✔<br>Yes<br>Logging: No MailPoet<br><br>Sending Method: MailPoet<br>Send all site's emails with: Default WordPress sending method<br>Task Scheduler method: Action Scheduler<br>Cron ping URL: https://www.gntac.com?mailpoet_router&endpoint=cron_daemon&action=ping WooCommerce PayPal Payments<br><br>Onboarded: ✔<br>Branded only: ✔<br>New UI active: ✔<br>Shop country code: US<br>WooCommerce currency supported: ✔<br>Advanced Card Processing available in country: ✔<br>Pay Later messaging available in country: ✔<br>Webhook status: ✔<br>PayPal Vault enabled: –<br>ACDC Vault enabled: –<br>Logging enabled: –<br>Reference Transactions: ✔<br>Used PayPal Checkout plugin: –<br>Subscriptions Mode: Disabled<br>PayPal Shipping Callback: ✔<br>Apple Pay: –<br>Google Pay: –<br>Fastlane: – Admin<br><br>Enabled Features: activity-panels<br>analytics<br>product-block-editor<br>experimental-iapi-mini-cart<br>coupons<br>core-profiler<br>customize-store<br>customer-effort-score-tracks<br>import-products-task<br>experimental-fashion-sample-products<br>shipping-smart-defaults<br>shipping-setting-tour<br>homescreen<br>marketing<br>mobile-app-banner<br>onboarding<br>onboarding-tasks<br>pattern-toolkit-full-composability<br>product-custom-fields<br>remote-inbox-notifications<br>remote-free-extensions<br>payment-gateway-suggestions<br>printful<br>shipping-label-banner<br>subscriptions<br>store-alerts<br>transient-notices<br>woo-mobile-welcome<br>wc-pay-promotion<br>wc-pay-welcome-page<br>launch-your-store<br><br>Disabled Features: product-data-views<br>experimental-blocks<br>experimental-iapi-runtime<br>coming-soon-newsletter-template<br>minified-js<br>product-pre-publish-modal<br>products-catalog-api<br>settings<br>async-product-editor-category-field<br>product-editor-template-system<br>use-wp-horizon<br>rest-api-v4<br><br>Daily Cron: ❌ Not scheduled<br>Options: ✔<br>Notes: 57<br>Onboarding: completed Google for WooCommerce<br><br>Products API Pull: ❌ Disabled<br>Products MC Push: ❌ Disabled<br>Coupons API Pull: ❌ Disabled<br>Coupons MC Push: ❌ Disabled<br>Shipping API Pull: ❌ Disabled<br>Shipping MC Push: ❌ Disabled<br>Settings API Pull: ❌ Disabled<br>Settings MC Push: ❌ Disabled Action Scheduler<br><br>Canceled: 9<br>Oldest: 2025-11-25 12:57:39 -0500<br>Newest: 2025-11-25 12:57:39 -0500<br><br>Complete: 28,636<br>Oldest: 2025-11-22 01:31:56 -0500<br>Newest: 2025-12-15 17:01:44 -0500<br><br>Pending: 18<br>Oldest: 2025-12-16 11:49:24 -0500<br>Newest: 2025-12-23 06:00:22 -0500 Status report information<br><br>Generated at: 2025-12-16 11:49:22 -05:00<br>

    Hi @l3gacy,

    Thank you for reaching out and for the additional clarification. I completely understand how challenging this situation can be, especially when it comes up close to tax filing. Losing money and having your reports affected is understandably frustrating.

    To better understand what may have caused this, could you please clarify how the site was moved? Was it a full site migration using a tool such as All-in-One WP Migration or Migrate Guru, followed by a redesign, or did you selectively export and import data such as orders, products, reports, or other records?

    You stated “I recently transferred my website to a new website that I had redesigned”

    How were your analytics data, refunds, and reports exported and imported, if at all? Starting with this information will help us identify the original cause of the issue and focus on addressing the root problem.

    Thread Starter l3gacy

    (@l3gacy)

    I used Import export for WooCommerce. I guess that data came with the order data yes?

    Hi @l3gacy,

    Thanks for confirming, that helps a lot.

    When using Import Export for WooCommerce, refund records can be imported along with orders, depending on the export configuration. Refunds are stored as a separate post type (shop_order_refund) and, when imported without the correct date or relationship mapping, they can appear grouped into a single period. This is why historical refunds may show up in a single recent month in Analytics or Reports.

    Based on what you’ve shared, there are a few important points to highlight:

    1. Refund import behavior: If refund post dates or parent order relationships were not preserved during import, WooCommerce Analytics may reprocess them as new refunds. This commonly results in older refunds appearing in the most recent reporting period.
    2. Ghost refund and partial refund behavior: Since Stripe was used and the ghost refund shows no transaction ID, this suggests WooCommerce may have recorded a local or manual refund in addition to the Stripe refund. This can happen if the refund is processed while the order is in a custom order status rather than a core WooCommerce status.
    3. Custom order status impact: WooCommerce Analytics and Reports rely on standard order statuses. If a refund is processed while the order is in a custom status such as “In production,” it may not be properly linked to the original order or Stripe transaction, resulting in duplicated or unlinked refund entries in reporting.
    4. HPOS considerations: Since HPOS is enabled, Analytics data is generated from the custom order tables. If the import occurred before HPOS sync completed, or before Analytics finished recalculating, this can further skew refund data. 

    Next steps to help isolate this:

    • Please confirm whether refunds were explicitly included in the import file, or if only orders were intended to be imported.
    • For recent refunds, try temporarily changing the order to a standard WooCommerce status, such as Completed, then process a test partial refund and check whether Analytics still creates a duplicate entry.
    • Go to WooCommerce > Analytics > Settings and run a full “Recalculate historical data” after confirming no additional imports are pending.
    • If possible, share one affected order ID, a screenshot of the refund as shown on the order screen, and the corresponding Stripe refund entry with amounts and timestamps (redacted).

    This should help determine whether the issue is caused by import mapping, custom order status behavior, or Analytics recalculation.

    We’ll keep working through this with you.

    Thread Starter l3gacy

    (@l3gacy)

    I just made a new order, and then marked it complete, and then refunded the order. It did not duplicate. However I used paypal would that matter?

    As far as running the recalculate do I keep the Skip previously imported customers and orders clicked?

    Also what all needs clicked here?

    • This reply was modified 3 months ago by l3gacy.
    Sai (woo-hc)

    (@saivutukuru)

    Hi @l3gacy,

    Thank you for testing that and for the detailed follow-up. That result is very helpful.

    The fact that a new order marked to a core WooCommerce status and refunded via PayPal did not duplicate strongly suggests that WooCommerce refunds themselves are functioning correctly. This points to a specific combination of factors rather than a global WooCommerce issue.

    Why PayPal vs Stripe can matter: Stripe relies heavily on webhooks to sync refund events back to WooCommerce. If a refund is processed while the order is in a custom order status (for example, “In production”), or if a webhook is delayed or fails, WooCommerce may record a local refund first and then later record the Stripe refund when the webhook arrives. This can result in duplicated or “ghost” refund entries in Analytics, often without a transaction ID.

    PayPal tends to handle this more defensively, which explains why your PayPal test behaved as expected.

    About recalculating Analytics data: When running WooCommerce → Analytics → Settings → Recalculate historical data:

    • Please keep “Skip previously imported customers and orders” checked
    • You do not need to enable any additional options there

    This will rebuild Analytics from existing order data without re-importing anything.

    A few targeted checks to help confirm the root cause:

    1. Custom order status
      When the duplicated refunds occurred, was the order still in your custom status (“In production”) at the time of the refund?
      Also, is this status added via a plugin, theme, or custom code?
    2. Stripe webhook logs
      Please check WooCommerce → Status → Logs for recent Stripe-related logs and let us know if you see webhook errors, retries, or delays around the refund timestamps.
    3. One affected order
      If possible, please share one order ID where Analytics shows a duplicated or ghost refund. This will help confirm whether both refunds exist as actual refund records or if one is analytics-generated.

    Short-term workaround, until this is fully stabilized, I recommend:

    • Moving Stripe orders to a core WooCommerce status (Processing or Completed) before issuing refunds
    • Using the Stripe dashboard as the source of truth for refunded amounts for accounting purposes if needed

    We’re making good progress here, and your PayPal test was an important data point. Once we confirm the role of the custom order status and Stripe webhook behavior, we’ll know whether this is a configuration issue or something that needs escalation.

    Looking forward to your update.

    Plugin Support Ejay F – a11n

    (@ejayfernandes)

    Hi @l3gacy,

    I hope you are doing well. Since we have not heard back, I will close this out for now. Please feel free to reach out again if you need help in the future.

    If you are enjoying the plugin or found our support helpful, we would appreciate a quick review here:
    https://ww.wp.xz.cn/support/plugin/woocommerce/reviews/#new-post

    Thread Starter l3gacy

    (@l3gacy)

    Sorry for not replying sooner. I’ve had a lot going on. I ended up hiring a team to try and work this out. I gave them the URL’s to these post. Not sure if they can reply here or not.

    • This reply was modified 2 weeks, 5 days ago by l3gacy.
    Plugin Support Frank Remmy (woo-hc)

    (@frankremmy)

    Hi @l3gacy,
    No worries at all! Life gets busy, and we completely understand. Thanks for checking back in.

    It’s great to hear that you’ve brought a team on board to help you work through the refund and analytics inconsistencies. They’re absolutely welcome to review the threads you shared, and if they need to clarify anything or add details here, they can certainly do so as long as they have access to the account or you relay their findings. They can also open a new ticket and reference this one.

    If any new information comes up or you’d like us to take another look at something specific, feel free to reopen the discussion anytime. We’re here to help you get things running smoothly again.

    Wishing you the best as you continue sorting everything out!

Viewing 10 replies - 1 through 10 (of 10 total)

The topic ‘WooCommerce Refund Data not working’ is closed to new replies.