gocodebox / lifterlms

LifterLMS, a WordPress LMS Solution: Easily create, sell, and protect engaging online courses.
https://lifterlms.com
GNU General Public License v3.0
180 stars 134 forks source link

Fatal Error during importing course #2249

Closed nrherron92 closed 1 year ago

nrherron92 commented 2 years ago

Reproduction Steps

Expected Behavior

Actual Behavior

Error Messages / Logs


### System and Environment Information

<details>
<summary>System Report</summary>

<!-- Paste your System Report between the three backticks below this line -->

waxkabaro.com report:

Wordpress

Home Url: https://waxkabaro.com Site Url: https://waxkabaro.com Login Url: https://waxkabaro.com/wp-login.php Version: 6.0.1 Debug Mode: No Debug Log: No Debug Display: Yes Locale: en_US Multisite: No Page For Posts: Not Set Page On Front: Home Page (#2) [https://waxkabaro.com/] Permalink Structure: /%postname%/ Show On Front: page Wp Cron: Yes

Settings

Version: 6.10.0 Db Version: 6.10.0 Course Catalog:(#26) [] Membership Catalog:(#27) [] Student Dashboard:(#29) [] Checkout Page: Check out Page (#2275) [] Course Catalog Per Page: 9 Course Catalog Sorting: menu_order Membership Catalog Per Page: 9 Membership Catalog Sorting: menu_order Site Membership: Not Set Courses Endpoint: my-courses Edit Endpoint: edit-account Lost Password Endpoint: lost-password Vouchers Endpoint: redeem-voucher Autogenerate Username: no Password Strength Meter: no Minimum Password Strength: Terms Required: no Terms Page: Not Set Checkout Names: Checkout Address: Checkout Phone: Checkout Email Confirmation: no Open Registration: no Registration Names: Registration Address: Registration Phone: Registration Voucher: Registration Email Confirmation: no Account Names: Account Address: Account Phone: Account Email Confirmation: no Confirmation Endpoint: confirm-payment Force Ssl Checkout: no Country: US Currency: USD Currency Position: left Thousand Separator: , Decimal Separator: . Decimals: 2 Trim Zero Decimals: no Recurring Payments: yes Email From Address: [removed] Email From Name: [removed] Email Footer Text: Email Header Image: Cert Bg Width: Cert Bg Height: Cert Legacy Compat:

Constants

LLMS_REMOVE_ALL_DATA: undefined LLMS_REST_DISABLE: undefined LLMS_SITE_FEATURE_RECURRING_PAYMENTS: undefined LLMS_SITE_IS_CLONE: undefined

Gateways

Manual: Enabled Manual Logging: no Manual Order: 1

Server

Mysql Version: 5.5.5 Php Curl: Yes Php Default Timezone: UTC Php Fsockopen: Yes Php Max Input Vars: 1000 Php Max Upload Size: 2 MB Php Memory Limit: 256M Php Post Max Size: 8M Php Soap: Yes Php Suhosin: No Php Time Limt: 30 Php Version: 7.4.30 Software: Apache Wp Memory Limit: 40M

Browser

HTTP USER AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36

Theme

Name: WaxkabaroTheme Version: 3.8.5.1657082551 Themeuri: http://Waxkabaro.com Authoruri: http://Waxkabaro.com Template: astra Child Theme: Yes Llms Support: Yes

Plugins

Elementor: 3.7.3 LifterLMS: 6.10.0 LifterLMS Advanced Quizzes: 3.0.0 UpdraftPlus - Backup/Restore: 1.22.19 User Switching: 1.7.0

Integrations

BbPress: No BuddyPress: No

Template Overrides

waxkabaro.net report

Wordpress

Home Url: [removed] Site Url: [removed] Login Url: [removed]/wp-login.php Version: 6.0.1 Debug Mode: No Debug Log: No Debug Display: Yes Locale: en_US Multisite: No Page For Posts: Not Set Page On Front: New home page (#19013) [[removed]/] Permalink Structure: /%postname%/ Show On Front: page Wp Cron: Yes

Settings

Version: 6.10.0 Db Version: 6.10.0 Course Catalog: Course Catalog (#9) [[removed]/courses/] Membership Catalog: Membership Catalog (#10) [[removed]/memberships/] Student Dashboard: Members Dashboard (#72) [[removed]/members-dashboard/] Checkout Page: Purchase (#11) [[removed]/purchase/] Course Catalog Per Page: 9 Course Catalog Sorting: menu_order,ASC Membership Catalog Per Page: 9 Membership Catalog Sorting: menu_order Site Membership: Not Set Courses Endpoint: my-courses Edit Endpoint: edit-account Lost Password Endpoint: lost-password Vouchers Endpoint: redeem-vouchers Autogenerate Username: yes Password Strength Meter: no Minimum Password Strength: weak Terms Required: no Terms Page: Not Set Checkout Names: required Checkout Address: hidden Checkout Phone: required Checkout Email Confirmation: no Open Registration: no Registration Names: required Registration Address: hidden Registration Phone: hidden Registration Voucher: required Registration Email Confirmation: no Account Names: required Account Address: hidden Account Phone: required Account Email Confirmation: no Confirmation Endpoint: confirm-payment Force Ssl Checkout: no Country: US Currency: USD Currency Position: left Thousand Separator: , Decimal Separator: . Decimals: 0 Trim Zero Decimals: no Recurring Payments: yes Email From Address: [removed] Email From Name: [removed] Email Footer Text: Waxkabaro.net- Baro wax cilmiga adigo hoygaga joogo Email Header Image: 1042 Cert Bg Width: 800 Cert Bg Height: 616 Cert Legacy Compat: no

Constants

LLMS_REMOVE_ALL_DATA: undefined LLMS_REST_DISABLE: undefined LLMS_SITE_FEATURE_RECURRING_PAYMENTS: undefined LLMS_SITE_IS_CLONE: undefined

Gateways

Manual: Enabled Manual Logging: no Manual Order: 0

Server

Mysql Version: 5.5.5 Php Curl: Yes Php Default Timezone: UTC Php Fsockopen: Yes Php Max Input Vars: 5000 Php Max Upload Size: 64 MB Php Memory Limit: 2024M Php Post Max Size: 64M Php Soap: Yes Php Suhosin: No Php Time Limt: 3000 Php Version: 7.4.30 Software: Apache Wp Memory Limit: 40M

Browser

HTTP USER AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36

Theme

Name: waxkabaro Child Version: 1.3.2.1533155516 Themeuri: http://waxkabaro.net Authoruri: http://somatso.com Template: astra Child Theme: Yes Llms Support: Yes

Plugins

Easy WP SMTP: 1.4.7 Elementor: 3.7.3 Fullwidth Page Templates: 1.1.1 LifterLMS: 6.10.0 LifterLMS Customizations: 1.0.0 Nav Menu Roles: 2.1.0 Really Simple SSL: 5.3.3 Redirection: 5.3.2 UpdraftPlus - Backup/Restore: 1.22.19 User Switching: 1.7.0 Yoast SEO: 19.6 Yoast SEO Premium: 19.2

Integrations

BbPress: No BuddyPress: No

Template Overrides



</details>

This issue has be recreated:
+ [ ] Locally
+ [ ] On a staging site
+ [x] On a production website
+ [ ] With only LifterLMS and a default theme

### Browser, Device, and Operating System Information

+ Browser name and version
+ Operating System name and version
+ Device name and version (if applicable)
eri-trabiccolo commented 2 years ago

I think you're experiencing two different problems. Where do you get the timeout issue? On a local site? That course export file is ~1.5MB, that would take a while so you need to increase your server limits (you know usual timeouts, memory ecc).

What the user is experiencing on his website is not related to the import. What's happening is that a notification (email), is generating a fatal error here: $code = $order->get( 'product_title' );

Meaning that the $order doesn't exist anymore... Like it has been deleted. This notification error is likely blocking a bunch of other notifications: you can see in Status/Tools that there are 147 pending batches...

The easiest way to get rid of this fatal is to use the tool to delete the batches. Although this also means that those 147 pending batches will be lost.

Need to explore more conservative solutions... E.g. removing all the merge codes from the Manual Payment Due email notification subject/title/body? Have to check if that would work, it might now that we only actually parse used merged codes.

eri-trabiccolo commented 2 years ago

@nrherron92 I've been able to successfully import the course locally, no server timeout. Can you give me more information o where you got that timeout issue? Might depend on some plugins... I suggest to test disabling all other plugins. We import courses (lessons, ecc) using the WordPress API (meaning that we insert the course, lessons, images ecc, using WordPress functions). This means that various filter/action hooks are triggered during the process, and other plugins can hook into them, and perform their (not asynchronous) actions. That can be the reason of the timeout.

The plugins can also be the cause of the fatal the user is experiencing. It's hard to say which fatal, among the them in the provided error log (the one provided by the user in the ticket) is the one. Maybe this:

[28-Jul-2022 01:55:00 UTC] PHP Fatal Exception error (UDP_Google_IO_Exception) has occurred during deleteset subaction. Error Message: The stream IO handler requires the allow_url_fopen runtime configuration to be enabled (Code: 0, line 51 in /home/{redacted}/public_html/wp-content/plugins/updraftplus/includes/Google/IO/Stream.php)

So I'd say to suggest to disable all the other plugins while doing the import.

For which regards to the notification error, I'm working on it, but to me it's unrelated (runs in background).

thomasplevy commented 2 years ago

@nrherron92 any update here?

eri-trabiccolo commented 1 year ago

@nrherron92 ^

nrherron92 commented 1 year ago

User worked it out with their webhost. We're good to close. Sorry guys <3