Skip to content

Usability enhancement: Access plan checkout URLs when no checkout page configured #2984

@jack-arturo

Description

@jack-arturo

Reproduction Steps

  • Small UX/UI issue I noticed today— if no Checkout Page is set in the LifterLMS general settings, then after creating an access plan within a course, the checkout URL shows as (for example): https://mysite.com/wp-admin/admin-ajax.php?plan=3778.
  • Opening this URL does nothing but show a white screen with a 0 (since it's an admin-ajax endpoint).
  • This could be potentially confusing to new users, or users who only recently enabled payments on existing courses. It took me a moment to work back through the settings and realize that no checkout page had been created.

Expected Behavior

  • If no checkout page is set, the access plan config should show a link to go to the settings and create/select one.

Actual Behavior

  • The checkout URL is a non-functioning URL with no clear path to fixing it.

Error Messages / Logs

  • Include any relevant error messages or log files
<!-- Paste error logs / backtraces below this line -->

System and Environment Information

System Report
Support
-------------------------------------------


WordPress
-------------------------------------------

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


Settings
-------------------------------------------

Version: 8.0.7
Db Version: 8.0.7
Course Catalog: All Courses (#447) [https://dev.local/courses/]
Membership Catalog: Membership Catalog (#1074) [https://dev.local/memberships/]
Student Dashboard: Dashboard (#1076) [https://dev.local/dashboard/]
Checkout Page: Purchase (#1075) [https://dev.local/purchase/]
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: [email protected]
Email From Name: dev
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: Disabled
Manual Logging: 
Manual Order: 1


Server
-------------------------------------------

Mysql Version: 8.0.35
Php Curl: Yes
Php Default Timezone: UTC
Php Fsockopen: Yes
Php Max Input Vars: 4000
Php Max Upload Size: 32 MB
Php Memory Limit: 512M
Php Post Max Size: 32M
Php Soap: Yes
Php Suhosin: No
Php Time Limt: 30
Php Version: 8.3.11
Software: Apache/2.4.43 (Unix)
Wp Memory Limit: 512M


Browser
-------------------------------------------

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


Theme
-------------------------------------------

Name: Astra
Version: 4.11.2
Themeuri: https://wpastra.com/
Authoruri: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Template: 
Child Theme: No
Llms Support: Yes


Plugins
-------------------------------------------

Advanced Cron Manager: 2.5.10
bbPress: 2.6.11
BuddyBoss Platform: 2.7.80
BuddyPress: 14.3.3
EchoDash: 1.2.0
Elementor: 3.31.0-dev2
Elementor Beta (Developer Edition): 1.1.4
Elementor Pro: 3.31.0
Fatal Error Notify Pro: 1.14.0
Gravity Forms: 2.9.8
Gutenberg: 20.1.0
LifterLMS: 8.0.7
Presto Player: 3.1.2
Really Simple SSL: 5.3.5
User Switching: 1.10.0
WooCommerce: 10.0.4
WooCommerce Stripe Gateway: 9.7.1
WooCommerce Subscriptions: 6.9.1
WordPress Beta Tester: 3.6.4
WPF Custom: 1.0
WPF OAuth Helper: 1.2.3
WP Fusion: 3.46.7
WP Fusion - Enhanced Ecommerce Addon: 1.26.0
WP Fusion - Event Tracking Addon: 1.6.3
WP Fusion - Media Tools Addon: 1.5.1
WP Mail Logging: 1.14.0


Integrations
-------------------------------------------

BbPress: No
BuddyPress: No


Template Overrides
-------------------------------------------

This issue has be recreated:

  • Locally
  • On a staging site
  • On a production website
  • With only LifterLMS and a default theme

Browser, Device, and Operating System Information

  • n/a

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions