gocodebox / lifterlms

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

Course Builder: some icons are not visible due to plugin conflicts #1563

Open toyinogun opened 3 years ago

toyinogun commented 3 years ago

Reproduction Steps

There are three plugin conflicts with LifterLMS. The plugins are:

I was able to install the free version of Qubely to confirm this: https://wordpress.org/plugins/qubely/

When any or all of the plugins are installed and activated, some icons in the course builder do not appear.

Expected Behavior

Course builder Icons should appear

Actual Behavior

Some Icons do not appear

Error Messages / Logs


### System and Environment Information

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

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

System Report: Wordpress

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

Settings

Version: 4.19.0 Db Version: 4.19.0 Course Catalog: Courses (#22) [[removed]/courses/] Membership Catalog: Membership Catalogue (#83966) [[removed]/memberships/] Student Dashboard: My account (#99) [[removed]/my-account/] Checkout Page: Purchase (#83967) [[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-voucher Autogenerate Username: yes Password Strength Meter: yes Minimum Password Strength: strong Terms Required: no Terms Page: Not Set Checkout Names: required Checkout Address: hidden Checkout Phone: hidden Checkout Email Confirmation: yes Open Registration: no Registration Names: required Registration Address: hidden Registration Phone: hidden Registration Voucher: optional Registration Email Confirmation: no Account Names: required Account Address: optional Account Phone: optional Account Email Confirmation: yes Confirmation Endpoint: confirm-payment Force Ssl Checkout: no Country: AU Currency: AUD 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: AdvanceMed on behalf of Great Mynds Pty Ltd ABN 13 613 634 343 Email Header Image: 84993 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: Disabled Manual Logging: Manual Order: 1

Server

Mysql Version: 5.7.32 Php Curl: Yes Php Default Timezone: UTC Php Fsockopen: Yes Php Max Input Vars: 1000 Php Max Upload Size: 300 MB Php Memory Limit: 256M Php Post Max Size: 300M Php Soap: Yes Php Suhosin: No Php Time Limt: 300 Php Version: 7.4.16 Software: Flywheel/5.1.0 Wp Memory Limit: 256M

Browser

HTTP USER AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36

Theme

Name: BuddyBoss Child Version: 1.0.0 Themeuri: https://www.buddyboss.com/ Authoruri: https://www.buddyboss.com/ Template: buddyboss-theme Child Theme: Yes Llms Support: No

Plugins

301 Redirects Pro: 5.70 Advanced Coupons for WooCommerce Free: 1.3.5 Advanced Coupons for WooCommerce Premium: 2.5.1 Amelia: 3.1.2 Analytify - Email Notifications: 2.0.0 Analytify - Google Analytics Dashboard: 4.0.0 Analytify - UTM Campaigns Tracking: 2.0.0 Analytify - WooCommerce Tracking: 4.0.0 Analytify Pro: 4.0.0 BuddyBoss Platform: 1.5.7.3 BuddyBoss Platform Pro: 1.1.0.2 CartFlows: 1.6.9 CartFlows Pro: 1.6.7 Code Snippets: 2.14.1 Cookie and Consent Solution for the GDPR & ePrivacy: 2.4.1 Duplicate Page: 4.3 Elementor: 3.1.4 Elementor Pro: 3.1.1 FluentCRM - Marketing Automation For WordPress: 1.1.93 FluentCRM Pro: 1.1.92 Fluent Forms: 3.6.70 Fluent Forms Pro Add On Pack: 3.6.68 FluentSMTP: 1.0.1 Google Analytics Goals by Analytify: 1.1.4 Google Tag Manager for Wordpress: 1.11.6 Happy Elementor Addons: 2.21.1 Happy Elementor Addons Pro: 1.14.0 Kadence Blocks - PRO Extension: 1.4.26 Kadence Blocks – Gutenberg Blocks for Page Builder Features: 1.10.5 LifterLMS: 4.19.0 LifterLMS Advanced Quizzes: 1.1.1 LifterLMS Assignments: 1.1.12 LifterLMS Helper: 3.1.0 LifterLMS Labs: 1.5.3 LifterLMS PDFs: 1.0.0 LifterLMS WooCommerce: 2.1.3 Login and Logout Redirect: 1.0.6 Monobunt Syncspider: 1.0.21 PixelYourSite PRO: 8.1.2 PixelYourSite Super Pack: 2.1.7 Presto Player: 0.0.50 Presto Player Pro: 0.0.5 Publitio: 2.1.1 Qubely - Advanced Gutenberg Blocks: 1.6.7 Qubely Pro: 1.2.9 Rank Math SEO: 1.0.59.1 Rank Math SEO PRO: 2.3.1 reCaptcha by BestWebSoft: 1.60 Resize Image After Upload: 1.8.6 ShortPixel Adaptive Images: 2.1.4 SmartVideo: 2.0.22.1 Uncanny Automator: 2.11 Uncanny Automator Pro: 2.11 User Switching: 1.5.6 VdoCipher: 1.25 WooCommerce: 5.1.0 WooCommerce Cart Abandonment Recovery: 1.2.11 WooCommerce PayPal Checkout Gateway: 2.1.1 WooCommerce Stripe Gateway: 4.9.0 WooCommerce Subscriptions: 3.0.13 WooCommerce Zapier: 2.0.7 WordPress Forum Plugin – PeerBoard: 0.7.2 WP-Optimize - Clean, Compress, Cache: 3.1.8 WP Extra File Types: 0.4.4.1 WP Fusion: 3.36.16 WP Remote Users Sync: 1.2.7 WP Rocket: 3.8.1

Integrations

BbPress: No BuddyPress: No WooCommerce: Yes

Template Overrides

content-certificate.php (ver: 4.5.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 4.5.0) achievements/loop.php (ver: 3.14.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.0) achievements/template.php (ver: 3.14.6): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.6) certificates/loop.php (ver: 3.14.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.0) certificates/preview.php (ver: 3.14.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.0) course/author.php (ver: 4.11.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.25.0) course/lesson-preview.php (ver: 4.4.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 4.4.0) course/syllabus.php (ver: 4.4.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 4.4.0) loop/author.php (ver: 3.0.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.0.0) loop/content.php (ver: 3.14.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.0) loop/featured-image.php (ver: 3.35.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.35.0) myaccount/dashboard-section.php (ver: 3.30.1): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.30.1) myaccount/header.php (ver: 3.14.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.14.0) myaccount/my-grades-single-table.php (ver: 3.24.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.24.0) myaccount/my-notifications.php (ver: 3.30.3): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.30.3) myaccount/my-orders.php (ver: 3.17.6): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.17.6) myaccount/view-order.php (ver: 3.35.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.35.0) product/access-plan-pricing.php (ver: 3.29.0): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.29.0) quiz/results-attempt-questions-list.php (ver: 3.17.8): /www/wp-content/themes/buddyboss-theme/lifterlms/ (ver: 3.17.8)



</details>

This issue has be recreated:
+ [x] Locally
+ [x] 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)
HS-159401
thomasplevy commented 3 years ago

We're using Font Awesome 4.7. It's possible that these other plugins are using either a newer (or older) version which is missing the icons we're referencing in these areas.

I can see two solutions for preventing a conflict like this:

A) Switch to a fork of FA that adds a prefix. This would also require us to update CSS in a large number of places (mostly on the admin panel) but these icons are used in some add-ons as well (on the front end too sometimes). A change like this would be time consuming and we'd also have some backwards compatibility to consider since it's possible add-ons, custom code, themes, etc... are also already relying on our icons which are, as of now, unprefixed.

B) A better option (albeit more complicated, probably) would be to deprecate and phase out font awesome icons in general. Still load them (without a prefix) but stop using them internally.

To replace them I'd suggest we rely on dashicons from the WP core, primarily, and, when needed, add our own (custom) SVG icons bundled (and prefixed) with the core plugin.

I don't think upgrading to a newer version of Font Awesome would work since 5.x (and later) is a bit of a different structure and architecture than what we're using now.

Either one of these options would prove difficult and time consuming, although we will, at some point, have to phase this out and proceed with option B.

I believe the best case scenario here is that the other plugins only enqueue their fonts on screens that they need them or, at the very least, don't load them on this LifterLMS screen. Perhaps this is a bit of an arrogant stance but I believe that these plugins are breaking LifterLMS currently so I don't know if it's entirely our responsibility to "fix" this.

I'm not sure how prevalent these plugins are and whether or not we need to execute on a fix for these immediately. It's conceivable that users encountering this conflict could patch this by dequeuing stylesheets from the conflicting plugins on LifterLMS screens (or just on the builder screen). But this isn't code I'd consider including in the core plugin unless absolutely necessary.

@eri-trabiccolo any thoughts on this?

eri-trabiccolo commented 3 years ago

@thomasplevy Yeah b) is what I think would be the best. And yes both are time consuming. I don't think what you say it's arrogant. I don't know what to do though, as you say, to fix this right now...

thomasplevy commented 3 years ago

@toyinogunseinde thoughts on sharing the above "problem" with the customer and seeing if they'd be amendable to opening support tickets with the other plugins to request them to remove their stylesheets on pages they don't need them on?

toyinogun commented 3 years ago

Sure! It's fine sharing this with the customer. Thanks