사용자가 계정 활성화 이메일의 링크를 클릭하면 WordPress의 /my-account/ 페이지로 이동합니다. 인증 링크를 클릭하지 않고 등록 자격 증명 로그인 시도를 하면, 먼저 계정을 인증해야 한다는 메시지와 함께 "인증 이메일 재전송"을 클릭할 수 있는 링크가 표시됩니다.
관리자 콘솔의 “Users” 페이지를 방문하면 어떤 계정이 인증되었는지, 어떤 계정이 인증되지 않았는지를 쉽게 확인할 수 있습니다.
불행히도, 사용자가 이메일을 인증한 후 https://forums.pickleballist.com의 포럼을 방문하면 자동으로 로그인되지 않습니다. 가장 문제는, 포럼에서 “로그인” 버튼을 클릭하면 이메일을 확인하고 Discourse의 “새 계정 확인” 이메일 링크를 클릭해야 한다는 점입니다.
WooCommerce에서 수신되는 메타데이터를 기반으로 실제로 누가 인증되었는지 확인하도록 Discourse를 설정할 수 있는 방법이 있을까요?
이 "이메일 인증 모듈"이 wp_new_user_notification에 영향을 주지 않는다고 추측하는데, 그렇다면 Discourse가 이를 볼 수 없겠죠? 다른 훅(hook)을 Discourse가 찾도록 할 수 있을까요?
Booster for WC 플러그인이 이메일 주소를 인증하기 전에 사용자가 WordPress에 로그인하는 것을 방지하는 한, 해당 코드를 안전하게 사용할 수 있습니다. 테마나 플러그인에 추가하면 사용자가 이메일 주소를 다시 인증하지 않고도 Discourse 사이트에 로그인할 수 있게 됩니다.
이것도 가능합니다. WooCommerce에서 설정하는 메타데이터 키의 이름과 인증된 이메일 주소를 가진 사용기에 대한 예상 반환 값을 알고 있다면, 해당 함수에 이에 대한 확인 로직을 추가할 수 있습니다. 다음과 같은 방식으로요:
확인 링크는 Booster for WC 플러그인에 의해 생성되는 것 같습니다. 만약 그렇다면, 제가 테스트해본 사항이 아닙니다. wp-discourse-woocommerce-support 플러그인이 해결하려는 문제는 WooCommerce가 모든 로그인 시도 시 설정하는 로그인 리디렉트를 오버라이드하는 것입니다. 최근에는 WooCommerce와 함께 테스트하지 않았지만, 과거에 사이트에서 WooCommerce가 설치되어 있으면 WordPress를 통해 로그인하려고 할 때 로그인되지 않은 사용자가 Discourse로 리디렉트되지 않는 문제를 방지했습니다.
기대되는 동작은 다음과 같습니다. WordPress에 로그인하지 않은 사용자가 Discourse의 로그인 버튼이나 Discourse에 게시된 게시물 아래에 생성된 SSO 로그인 링크를 클릭하면, 사용자는 WordPress 로그인 과정을 거친 후 올바른 Discourse URL로 리디렉트됩니다. 이메일 주소를 확인한 사용자에게 이 기능이 올바르게 작동하지 않는다면 알려주세요.
사용자가 클릭하는 확인 링크와 함께 이 기능을 작동하도록 만드는 것이 가능할 수 있지만, 저는 이것이 별개의 문제라고 생각합니다.