إضافة مستخدم إلى مجموعة عبر خطاف الويب باستخدام البريد الإلكتروني

يوم جيد،

أحاول إضافة مستخدمين من ووردبريس إلى مجموعات خاصة في ديسكورس عبر خطاف ويب.

أستخدم إضافة WP Discourse كطريقة تسجيل دخول SSO ولا أسمح للمستخدمين بتغيير اسم المستخدم الخاص بهم في ديسكورس. لقد فعلت هذا لأنني اعتقدت أنه بهذه الطريقة يمكنني استخدام اسم المستخدم من ووردبريس لإضافتهم إلى مجموعة في ديسكورس. لأنني اعتقدت أنهما سيكونان متماثلين.

المشكلة هي أنه عندما يتم إنشاء اسم المستخدم تلقائيًا في ووردبريس، فإنه يستخدم أحيانًا البريد الإلكتروني الخاص بهم كاسم مستخدم. لكن ديسكورس لا يسمح بذلك في أسماء المستخدمين، لذا فإنه يكسر اسم المستخدم عند “@”.

مثال:
بريد إلكتروني ووردبريس: jhon@gmail.com
اسم مستخدم ووردبريس (تم إنشاؤه تلقائيًا): jhon@gmail.com
اسم مستخدم ديسكورس (تم إنشاؤه عبر WP Discourse SSO): jhon

هذا لا يسمح لي باستخدام مستخدم ووردبريس لإضافتهم إلى مجموعة.

هل هناك طريقة أسهل للقيام بذلك؟

سيكون من الرائع أن أتمكن من إضافة المستخدمين إلى مجموعة باستخدام بريدهم الإلكتروني بدلاً من اسم المستخدم. البريد الإلكتروني متاح دائمًا في أي تطبيق (CRM، ووردبريس، إلخ)، لذلك لن تكون هناك حاجة إلى خطوة إضافية لإجراء طلب “GET” إلى واجهة برمجة التطبيقات للحصول على اسم المستخدم من هذا البريد الإلكتروني ثم وضعه في المجموعة.

أستخدم Fluent Forms لإرسال هذه البيانات إلى خطاف الويب من ووردبريس عندما يرسلون نموذجًا، لذلك لا يمكنني إجراء طلب GET ثم PUT لاسم المستخدم.

شكرا لك!

إعجاب واحد (1)

إذا كنت أفهمك بشكل صحيح، فأنت تقوم بما يلي:

  1. استخدام DiscourseConnect مع ووردبريس كمزود و Discourse كعميل.
  2. استخدام Webhook في ووردبريس لوضع المستخدمين في مجموعات في Discourse (على سبيل المثال، PUT إلى /g/:group_name/members (مرجع API)) نتيجة لإجراء نموذج.

إذا كان هذا صحيحًا، يمكنك العثور على اسم مستخدم Discourse في ووردبريس في حقل بيانات المستخدم discourse_username، لذا

get_user_meta($user_id, 'discourse_username', true);

استخدم هذا للحصول على اسم المستخدم لاستخدامه في طلب PUT بعد إجراء النموذج.
يمكنك التأكد من ملء discourse_username لمستخدميك باستخدام webhooks المستخدمين في إضافة WP Discourse (لاحظ أننا نتحدث عن webhooks مختلفة عن تلك التي تستخدمها حاليًا في نموذجك).

إعجابَين (2)