WordPress / Learn

WordPress.org Learn - The canonical source for the code and content behind https://learn.WordPress.org
238 stars 84 forks source link

My Courses logged out state #2538

Open jonathanbossenger opened 2 weeks ago

jonathanbossenger commented 2 weeks ago

When attempting to log in after taking a course, the default Sensei login form is broken on mobile.

  1. Make sure you’re logged out
  2. Go to https://learn.wordpress.org/course/beginner-wordpress-user/
  3. Click on Take Course

You are redirected to the My Courses page at this URL: https://learn.wordpress.org/my-courses/ which renders the Sensei login form.

However, the form is broken on mobile:

learn wordpress org_my-courses__redirect_to=https___learn wordpress org_lesson_planning-content-for-success_

It's possible this used to take you to a WordPress.org login page, but I can't verify this.

It appears that the reason this is currently happening is that the Sensei /includes/class-sensei-frontend.php file wraps the login form inside a div with the class attribute of col-1, which we define in our stylesheet as having a width of 8.3333333333%.

I'm unaware of any recent changes to Learn that might have caused this, so it might be a .org-related or Sensei-related issue.

jonathanbossenger commented 2 weeks ago

@adamwoodnz or @renintw, could someone please look into this on Monday? Thanks.

dd32 commented 2 weeks ago

Just noting that after noticing this ticket, I've removed the Login & Registration functionality from the My Courses page.

I've replaced these forms with a button to the login page, and most login links on Learn should direct straight to the login form rather than to the My Courses page.

The reason was two fold:

  1. While login was respecting 2FA, it wasn't respecting some other custom functionality we have for logins
  2. The registration form was bypassing the anti-spam functionality we have on the registrations, and user emails were not being validated.

This does mean that the signup process for learn now has a bit more friction in the process, there may be some issues around account creation, if you hear about any of that, let me know in #forums in slack so we can figure out a way forward with that.

The page when logged out is a lot more minimal now, and probably needs some descriptive text added to the page when logged out. That can be worked on with the new Theme I guess.

FYI @jonathanbossenger @bsanevans @adamwoodnz

jonathanbossenger commented 2 weeks ago

I think this is ok for now, as we're in the middle of the new theme development anyway.

@adamwoodnz I'm not sure if this is something that has been handled in the new theme, but it would probably be ideal if logged-out users were directed straight to the default WordPress login form instead of to the My Courses page first.

adamwoodnz commented 2 weeks ago

I believe @dd32 had a lot of trouble trying to modify this flow so I'm not sure that will be possible, but I'm planning to work on My Courses this week so we'll explore further.

adamwoodnz commented 1 week ago

Current state:

Existing theme New theme
Image Image

Needs copy and styling, or if we can direct to login.wordpress.org and back to My Courses without even displaying this screen that might be better, although it could be a strange experience clicking the navigation item and being taken away.

dd32 commented 1 week ago

but it would probably be ideal if logged-out users were directed straight to the default WordPress login form instead of to the My Courses page first.

I agree.

I modified the page through an mu-plugin temporarily, that mu-plugin can be open-sourced/migrated into the learn repo quite possibly, but I didn't really have a great time modifying the pages and I was slightly concerned about whether my code could be bypassed. The main reason for the change was that the Registration form here bypassed all our anti-spam and email-verification logic, and the login didn't respect our SSO flows.

I did originally have links not directing to My Courses, sensei even has a filter for it, but I disabled it with this remark:

/**
 * Disable the Sensei user register page, use the WordPress registration page.
 *
 * DO NOT ENABLE.
 * This causes the 'Take Course' links to direct to the Registration form, rather than a login page.
 * Very poor UX. This is why we don't filter the registration links.
 */
// add_filter( 'sensei_use_wp_register_link', '__return_true' );

If the audience is purely logged in users it's fine, but for logged out users just being dumped on the registration page upon clicking "Start Course" or "Take Course" or whatever it was felt very very weird.

One option to resolve that might be to force Sensei to go to the login form rather than the registration form, and alter login.w.org to have a nicer message for users from learn, for example, for WordCamp-login-requests we explain w.org and wc.org are one and the same: https://login.wordpress.org/?from=wordcamp.org Happy to add some text there if some text can be suggested.

kathrynwp commented 1 week ago

Happy to add some text there if some text can be suggested.

Looping in @thetinyl for input on copy.

Here is the text I think @dd32 is referring to that's used elsewhere, which could be used as a base:

WordCamp is part of WordPress.org Log in to your WordPress.org account to contribute to WordCamps and meetups around the globe.

Screenshot:

WordPress_org_Login___WordPress_org_English_—_Private_Browsing
thetinyl commented 6 days ago

I think I'm following. Could use some extra clarification though:

In the Learn user journey, are most of the roads leading to this login going to be from prospective/current learners trying to take a course, see their course page, or view a lesson?

Digging through the test site, this appears to be the case.

kathrynwp commented 6 days ago

I think so but in terms of "view a lesson" I think that some lessons are still viewable without having registered for the specific course they're part of.

I'll let others clarify further!

adamwoodnz commented 2 days ago

In the Learn user journey, are most of the roads leading to this login going to be from prospective/current learners trying to take a course, see their course page, or view a lesson?

👍 Correct

adamwoodnz commented 1 day ago

I've created a PR to do the redirect to login when accessing the My Courses page: https://github.com/WordPress/Learn/pull/2592

@dd32 please take a look, hopefully we can remove some of the mu-plugin code.

I've added a note that we shouldn't merge until the login page copy is in place.

thetinyl commented 1 day ago

@kathrynwp @jonathanbossenger This may not cover all the specific use cases for Learn logins (I purposely left out mention of contribution), but here's a suggestion to start:

Access all of Learn WordPress Log in to your WordPress.org account to take or continue a course and track your progress.