• Resolved jd

    (@janedilkes)


    This problem has just started. When someone tries to download a product, the error message “Unable to insert download log entry in database.” is shown, and the product is not downloaded.

    I have seen this topic, which has been marked as resolved:
    https://wordpress.org/support/topic/cannot-download-purchased-download/

    I have tried the suggestions on that topic.

    This problem is happening on all orders.

    Any idea what I can do about this?
    Thanks.

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

Viewing 15 replies - 16 through 30 (of 39 total)
  • Has anyone been able to resolve this? Or suggest other ideas that worked?

    I’ve worked through every fix listed above and everything that I can find elsewhere and I still have the problem.

    “Unable to insert download log entry in database.” error message on digital download link.

    Same issue for me – everything was working perfectly in a sub folder, then failed after very careful migration to root folder.

    I have spend hours going around in circles.

    Please help

    I have some help for people experiencing this issue, the problem is simple, but unless you are familiar with mySQL you may have to hire a database expert to fix it.

    My issue occurred when migrating Woocommerce to a new domain name and in the error logs I saw this error:

    16-Nov-2018 05:20:54 UTC] WordPress database error Cannot add or update a child row: a foreign key constraint fails

    (livesite_wp522.wplive_wc_download_log,

    CONSTRAINT fk_wc_download_log_permission_id FOREIGN KEY (permission_id)

    REFERENCES wpdev_woocommerce_downloadable_product_permissions (permission_id) for query INSERT INTOwp01_wc_download_log`

    The clue is that the table prefix in the REFERENCED database tables did not get updated to the new prefix. So when it tries to pull data into the wc_download_log it is attempting to do it from a non-existent table. Triggering the error: Cannot add or update a child row: a foreign key constraint fails.

    You can see the prefix for REFERENCES ‘wpdev_woocommerce_downloadable_product_permissions’ has not been updated to reflect the new new table prefix which is: ‘wplive_’

    The solution is to update that table prefix in the REFERENCE call.

    I can’t tell you how to do this, because I hired a developer to do it, but it took him about 10 minutes…

    Thank you, @ajd

    Yes, in the meantime I narrowed my problem down to the identical issue you had.

    And same thing, the fix looked ‘simple’ for someone who knows their way around databases, but is beyond my capabilities!

    Given my site is only a small one (20 or so digital products), I ‘fixed’ it in a couple of hours, by essentially starting again, but it wasn’t a total rebuild…

    After backing up and restoring to another site, I reset WordPress (careful…you lose everything, including customizations! but the database tables are all reset) Then I re-imported all my products, categories and media from the back-up site.

    Then I manually re-created all my theme customizations by referring to my backup site set up.

    Super-clumsy layman’s work-around, but for me with such a small site, probably a similar time-frame to finding/hiring/briefing/paying a developer.

    Might help someone out there…

    PS, I’ll make sure I have a developer handy for if there’s a next time, though!

    If I comment out this line in class-wc-customer-download-log-data-store.php, the download works (i.e. does not die when it can not insert the log data into the non-existent table)

    wp_die( __( ‘Unable to insert download log entry in database.’, ‘woocommerce’ ) );

    How do you mean to comment out the line?
    I checked that file and I dont even have that line.

    • This reply was modified 5 years, 2 months ago by mrbambocha.

    When I created the table from the script, I did not add the correct prefix. With the table correctly named this has solved this problem.

    How did you create the table and how did you figure out what to name it?

    I checked my database and the only table with similar name has this name: 2743_wc_download_log. Do I need to change or add something?

    • This reply was modified 5 years, 2 months ago by mrbambocha.

    Background info: we were experiencing this issue after a migration from WP Engine to Flywheel (via the Migrate Guru plugin). None of the parties is at fault – the fact that the wc_download_log table’s prefix changed is likely to blame.

    We found that table in our DB and dropped it.

    Then we deactivated and reactivated the WooCommerce core plugin. It re-created the table and downloads work fine now. No code was touched.

    Dropping the wc_download_log and re-activating woocommerce core plugin worked for us as well. We had also migrated to flywheel as well, from liquidweb. We also used migrate guru.

    Not sure why it worked though, the table prefix matched what I saw in woocommerce settings screen under database prefix. The table it created had the same prefix before as well.

    Thanks @thinkcodenyc and @tannyr

    Renaming the wc_download_log and de-activating then re-activating core woocommerce core plugin worked for me as well. A new wc_download_log table was created.

    I had migrated my website and changed the database table prefix in the process.

    I’m certain that in my case changing the database table prefix was the cause of my problem.

    Hi,

    I have the same problem, but without the site being migrated or anything, pretty sure from readying this that the change in the table prefix is the problem.

    My ‘wc_download_log’ is called ”wpmh_wc_download_log’ all my db table names are prefixed with ‘wpmh_’, Im guessing this has just happened causeing the issue to just start?!

    Can I ask will removing the table prefix, deactivating and reactivating woocommerce, delete all the products in the database?!

    What has caused the name change?

    cheers

    Sorry forget to check the ‘Notify me of follow-up replies via email’ checkbox, so Im doing it now.

    @ajd

    Hello I have this issue on my site

    Can I ask where you found the developer ??

    tannyr (@tannyr)
    4 months, 2 weeks ago
    Dropping the wc_download_log and re-activating woocommerce core plugin worked for us as well. We had also migrated to flywheel as well, from liquidweb. We also used migrate guru.

    Not sure why it worked though, the table prefix matched what I saw in woocommerce settings screen under database prefix. The table it created had the same prefix before as well.

    This completely solved my problem!
    Thanks, Guys!

    Had this issue today as well – dropped the table then deactivated Woo and re-activated, and now it all works again. Thanks guys

    Just did the same and it worked.

Viewing 15 replies - 16 through 30 (of 39 total)
  • The topic ‘Unable to insert download log entry in database.’ is closed to new replies.