lifterlms icon indicating copy to clipboard operation
lifterlms copied to clipboard

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

Open toyinogun opened this issue 3 years ago • 4 comments

Reproduction Steps

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

  • 301 Redirects PRO
  • Qubely
  • Qubely PRO

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

  • Include any relevant error messages or log files
N/A

System and Environment Information

System Report
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)


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

toyinogun avatar Mar 15 '21 12:03 toyinogun

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?

thomasplevy avatar Mar 15 '21 19:03 thomasplevy

@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...

eri-trabiccolo avatar Mar 15 '21 21:03 eri-trabiccolo

@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?

thomasplevy avatar Mar 15 '21 22:03 thomasplevy

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

toyinogun avatar Mar 16 '21 14:03 toyinogun