impress-org / givewp

GiveWP - The #1 Donation Plugin for WordPress. Easily accept donations and fundraise using your WordPress website.
https://givewp.com/
GNU General Public License v3.0
339 stars 191 forks source link

fix: ensure `Delete All Data` actually deletes all data #3638

Closed raftaar1191 closed 5 years ago

raftaar1191 commented 6 years ago

User Story

As an Admin I do not want that when deleting the donation from the Tools > Data > Delete All Data it should leave any meta in wp_give_donationmeta, wp_give_donormeta, wp_give_donors, wp_give_formmeta, wp_give_logmeta, wp_give_logs, wp_give_sequential_ordering

Current Behavior

I currently can see that meta are not getting delete from wp_give_donationmeta, wp_give_formmeta, wp_give_logmeta, wp_give_logs, wp_give_sequential_ordering

Expected Behavior

I expect all the meta should get deleted

Steps to Reproduce

Check the video

Visuals

Video Link: https://screencast-o-matic.com/watch/cFjvQGqwse

Acceptance Criteria

Environment

WordPress System Info ### WordPress Environment ### Home URL: http://givewp.local Site URL: http://givewp.local WP Version: 4.9.8 WP Multisite: – WP Memory Limit: 256 MB WP Debug Mode: ✔ WP Cron: ✔ Language: en_US Permalink Structure: /%year%/%monthnum%/%day%/%postname%/ Show on Front: posts Table Prefix Length: wp_ Table Prefix Length: 3 Table Prefix Status: Acceptable Admin AJAX: Accessible Registered Post Statuses: publish, future, draft, pending, private, trash, auto-draft, inherit, request-pending, request-confirmed, request-failed, request-completed, refunded, failed, revoked, cancelled, abandoned, processing, preapproval, give_subscription ### Server Environment ### Hosting Provider: DBH: localhost, SRV: givewp.local TLS Connection: Connection uses TLS 1.2 TLS Connection: Probably Okay Server Info: Apache/2.4.10 (Debian) PHP Version: 7.0.3 PHP Post Max Size: 1,000 MB PHP Time Limit: 900 PHP Max Input Vars: 3000 PHP Max Upload Size: 1,000 MB cURL Version: ❌ 7.38.0, OpenSSL/1.0.1t - We recommend a minimum cURL version of 7.40. SUHOSIN Installed: – MySQL Version: ❌ 5.5.55 - We recommend a minimum MySQL version of 5.6. See: WordPress Requirements Default Timezone is UTC: ✔ fsockopen/cURL: ✔ SoapClient: ✔ DOMDocument: ✔ gzip: ✔ GD Graphics Library: ✔ Multibyte String: ✔ Remote Post: ✔ Remote Get: ✔ ### Give Configuration ### Give Version: 2.2.3 Give Cache: Enabled Database Updates: All DB Updates Completed. Give Cache: Enabled Give Cache: ✔New Donation✔Donation Receipt✔New Offline Donation✔Offline Donation Instructions✔New User Registration✔User Registration Information✔Email access✔Daily Email Report✔Weekly Email Report✔Monthly Email Report✔Renewal Receipt Email✔Subscription Cancelled Email✔Subscription Completed Email❌Subscription Reminder Email✔Subscriptions Email Access Upgraded From: – Test Mode: Enabled Currency Code: USD Currency Position: Before Decimal Separator: . Thousands Separator: , Success Page: http://givewp.local/donation-confirmation/ Failure Page: http://givewp.local/donation-failed/ Donation History Page: http://givewp.local/donation-history/ Give Forms Slug: /donations/ Enabled Payment Gateways: Test Donation, Offline Donation, Authorize.net, Authorize.net eCheck (ACH), Braintree, PayPal Payments Pro, PayPal Website Payments Pro (REST API), Paytm, Razorpay, WePay, Stripe - Credit Card, Stripe + Plaid, Stripe iDEAL, Dwolla Account Default Payment Gateway: Test Donation PayPal IPN Verification: Enabled PayPal IPN Notifications: N/A Donor Email Access: Enabled ### Active Give Add-ons ### Give - 2Checkout Gateway: ❌ Unlicensed – by WordImpress – 1.1.1 Give - Authorize.net Gateway: ❌ Unlicensed – by WordImpress – 1.4.2 Give - AWeber: ❌ Unlicensed – by WordImpress – 1.0.3 Give - Braintree Gateway: ❌ Unlicensed – by WordImpress – 1.2.2 Give - CCAvenue Gateway: ❌ Unlicensed – by WordImpress – 1.0.1 Give - ConvertKit: ❌ Unlicensed – by WordImpress – 1.0.1 Give - Currency Switcher: ❌ Unlicensed – by WordImpress – 1.2.2 Give - Display Donors: ❌ Unlicensed – by WordImpress, LLC – 1.0 Give - Dwolla Gateway: ❌ Unlicensed – by WordImpress – 1.1.2 Give - Email Reports: ❌ Unlicensed – by WordImpress – 1.1.2 Give - Fee Recovery: ❌ Unlicensed – by WordImpress – 1.7.2 Give - Form Countdown: ❌ Unlicensed – by WordImpress – 1.0 Give - Form Field Manager: ❌ Unlicensed – by WordImpress – 1.4.0 Give - Gift Aid: ❌ Unlicensed – by WordImpress – 1.1.6 Give - GoCardless Gateway: ❌ Unlicensed – by WordImpress – 1.2 Give - Google Analytics Donation Tracking: ❌ Unlicensed – by WordImpress – 1.2.1 Give - MailChimp: ❌ Unlicensed – by WordImpress – 1.4.1 Give - Manual Donations: ❌ Unlicensed – by WordImpress – 1.4.1 Give - Mollie Gateway: ❌ Unlicensed – by WordImpress – 1.1.2 Give - Paymill Gateway: ❌ Unlicensed – by WordImpress – 1.1 Give - PayPal Pro Gateway: ❌ Unlicensed – by WordImpress – 1.1.7 Give - Paytm Gateway: ❌ Unlicensed – by WordImpress – 1.0 Give - PDF Receipts: ❌ Unlicensed – by WordImpress – 2.3 Give - Razorpay: ❌ Unlicensed – by WordImpress – 1.2.0 Give - Recurring Donations: ❌ Unlicensed – by WordImpress – 1.7.2 Give - Stripe Gateway: ❌ Unlicensed – by WordImpress – 2.0.10 Give - Tributes: ❌ Unlicensed – by WordImpress – 1.4.2 Give - WePay Gateway: ❌ Unlicensed – by WordImpress – 1.3.1 Give - Zapier: ❌ Unlicensed – by WordImpress – 1.1.2 ### Other Active Plugins ### ### Inactive Plugins ### BuddyPress: by The BuddyPress Community – 3.0.0 Caldera Forms: by Caldera Labs – 1.5.9.1 Charitable: by WP Charitable – 1.6.1 Debug Bar: by wordpressdotorg – 0.9 Debug Bar Console: by koopersmith – 0.3 Debug Bar Cron: by Zack Tollman, Helen Hou-Sandi – 0.1.2 Debug Bar Extender: by Thorsten Ott, Automattic – 0.5 Developer: by Automattic – 1.2.6 Duplicate Post: by Enrico Battocchi – 3.2.2 Email Cop: by Ashfame – 0.1.1 Give - AmeriCloud Payments: by AmeriCloud Solutions, Inc. – 1.2.0 Give - Donation Upsells for WooCommerce: by WordImpress – 1.0.1 Give - Razorpay Recurring: by WP Buffs – 1.0 Gravity Forms: by rocketgenius – 2.2.6 Gravity Forms Signature Add-On: by Rocketgenius – 3.4 Gutenberg: by Gutenberg Team – 3.6.2 Loco Translate: by Tim Whitlock – 2.1.4 Log Deprecated Notices: by Andrew Nacin – 0.4 Log Viewer: by Markus Fischbacher – 14.05.04 Monster Widget: by Automattic – 0.3 PHP Compatibility Checker: by WP Engine – 1.4.5 Polylang: by Frédéric Demarle – 2.3.6 qTranslate-X: by qTranslate Team – 3.4.6.8 Query Monitor: by John Blackbourn & contributors – 3.0.1 Rewrite Rules Inspector: by Daniel Bachhuber, Automattic – 1.2.1 User Switching: by John Blackbourn & contributors – 1.3.1 WooCommerce: by Automattic – 3.4.1 WordPress Beta Tester: by Peter Westwood – 1.2.2 WP Hide & Security Enhancer: by Nsp Code – 1.4.9.1 WPML Multilingual CMS: by OnTheGoSystems – 3.9.4 WPS Hide Login: by WPServeur, NicolasKulka, tabrisrp – 1.3.4.2 ### Active MU Plugins ### Local by Flywheel Relative URL (for Live Links): by Flywheel – 1.0 ### Theme ### Name: Twenty Seventeen Version: 1.7 Author URL: https://wordpress.org/ Child Theme: No – If you're modifying Give on a parent theme you didn't build personally, then we recommend using a child theme. See: How to Create a Child Theme
mehul0810 commented 5 years ago

Re-opening this issue as it is not working properly and PHP notices are also generated

WordPress database error Unknown column 'comment_id' in 'IN/ALL/ANY subquery' for query DELETE FROM wp_give_commentmeta WHERE comment_id NOT IN (SELECT comment_ID FROM wp_comments) made by do_action('wp_ajax_give_do_ajax_export'), WP_Hook->do_action, WP_Hook->apply_filters, give_do_ajax_export, Give_Tools_Reset_Stats->process_step, Give_Tools_Reset_Stats->get_data, QM_DB->query

kevinwhoffman commented 5 years ago

Call Summary

Participants: @kevinwhoffman @mehul0810
Topic: Which data is getting left behind when Delete All Data is selected Result: Mehul explained that after Give 2.2.0, custom tables were not being removed when Delete All Data was selected. This issue was meant to remove all custom tables, however there is an error occurring related to comment_id that is preventing the deletion from completing successfully. See https://github.com/impress-org/give/issues/3638#issuecomment-431823574 for more info.

kevinwhoffman commented 5 years ago

@mehul0810 Please move forward with the fix for this issue. If you can resolve by end of day, we'll merge it into 2.3.0. Otherwise bump it to 2.3.1.

kevinwhoffman commented 5 years ago

@mehul0810 While investigating this issue, please check that we are also properly removing all Give data including custom tables when Give is uninstalled with the option to Remove Data on Uninstall selected.

mehul0810 commented 5 years ago

@kevinwhoffman Let me simplify a bit: (1) With "Delete All Data" Tool, we will remove all the data from the Give related tables, not removing the tables itself. (2) With "Remove Data on Uninstall" under Settings > Advanced, we will remove the related Give tables.

I'm updating the acceptance criteria in the description of this issue.

kevinwhoffman commented 5 years ago

@mehul0810 Yes, good point of clarification. I updated the acceptance criteria to be as clear as possible.