# دوال الآلة الحاسبة للدورات

## التسجيل في الدورة

register\_customer\_on\_course(tariff\_id, email, email\_notification, period, reregistration)

<table><thead><tr><th width="239.15234375">المعلمات</th><th></th></tr></thead><tbody><tr><td><strong>!</strong> <strong>tariff_id</strong></td><td>معلمة مطلوبة، وهي معرّف خطة التسعير. يمكنك نسخه من شريط المتصفح في إعدادات خطة التسعير.</td></tr><tr><td><strong>! email</strong></td><td>معلمة مطلوبة، وهي عنوان البريد الإلكتروني للعميل. يمكنك تحديد قيمة محددة أو متغير يتم فيه تسجيل البريد الإلكتروني للعميل.</td></tr><tr><td><strong>email_notification</strong></td><td>معلمة اختيارية، ترسل رسالة بريد إلكتروني إلى الطالب بشأن تسجيله في الدورة، إذا كانت مفعلة.</td></tr><tr><td><strong>period</strong> </td><td><p>معلمة اختيارية، وهي المهلة الزمنية لصلاحية خطة التسعير. تُدعَم صيغ التاريخ كما يلي: %d.%m.%Y %H:%M أو %d.%m.%Y مثال:</p><p><code>period = '15.08.2023 11:00'</code></p></td></tr><tr><td>reregistration</td><td>معلمة اختيارية، بقيم True أو False. هذه المعلمة اختيارية وتُحدَّد إذا كنت بحاجة إلى تسجيل الطلاب مرة أخرى في الدورة نفسها وخطة التسعير نفسها.</td></tr><tr><td>purchase_price</td><td>معلمة اختيارية. تتيح لك تحديد تكلفة الدورة إذا كان العميل قد دفع مقابل الوصول إليها عبر بوت. إذا لم تحددها، فسيتم استخدام تكلفة خطة التسعير المحددة. ستكون مفيدة إذا كان العميل يدفع للوصول إلى الدورة عبر البوت بسعر مختلف عن تكلفة خطة التسعير المحددة.</td></tr></tbody></table>

مثال: register\_customer\_on\_course(123, email, 1, "", True)

{% hint style="info" %}
حتى يتلقى العملاء رسائل البريد الإلكتروني، مرّر 1 إلى المعلمة **email\_notification.**

**إذا لم ترسل 1، فلن يتم استلام رسائل البريد الإلكتروني الخاصة بالعميل!**
{% endhint %}

## كيف يمكنني منح الوصول إلى الدورة عبر Telegram Web App؟

للقيام بذلك، حدِّد الدالة في Block Calculator

**`access_course_from_webapp(text, button_label)`**\
أثناء استخدام الدالة، يسجّل الطالب الدخول إلى تيليغرام ويحصل على الوصول إلى الدورة. وللمتابعة في التعلّم، لا يحتاج الطالب إلى إدخال اسم مستخدم وكلمة مرور، لأن عملية التفويض قد اكتملت بالفعل.

معلمات الدالة:

**`text`** - هو نص الرسالة التي سيتلقاها العميل. يمكن تحديد المعلمة في متغير بكتابتها في حقل Calculator قبل استدعاء الدالة، أو تحديدها داخل الدالة نفسها بين علامتي اقتباس.

**`button_label`** - هو النص الموجود على زر Web App. يمكنك تحديد المعلمة إما في متغير أو داخل الدالة نفسها. في الحالة الثانية، تُكتب المعلمة بين علامتي اقتباس.

{% hint style="warning" %} <mark style="color:أحمر;">ينطبق هذا فقط عند العمل مع بوت تيليغرام.</mark>
{% endhint %}

تُظهر الصورة أدناه مثالًا على استخدام الدالة.\
في الخطوة الأولى، نسجّل العميل في الدورة، ثم نستخدم الدالة access\_course\_com\_webapp لتوفير الوصول إلى المنتج الإلكتروني. &#x20;

نتيجة تنفيذ الدالة:

<div data-with-frame="true"><figure><img src="/files/4af0a6d8f12f4e32586be120f2584b473d764c42" alt="" width="375"><figcaption></figcaption></figure></div>

يُفتح هذا الزر صفحة تحتوي على الدورات/الأسعار التي يمتلكها الطالب.

> إذا لم يكن العميل مرتبطًا بحساب الطالب، فإن الدالة تُرجع 'client not attached to customer'.
>
> لإنشاء مثل هذا الارتباط، ما عليك سوى التسجيل في دورة عبر بوت.

<div data-with-frame="true"><figure><img src="/files/1cf5e2ad1eadc0a2e4432427923cf29448148b04" alt="" width="563"><figcaption></figcaption></figure></div>

## كيف تمنح الوصول إلى الدورة عبر بوت

### register\_customer\_on\_course()

للقيام بذلك، حدِّد الدالة في Block Calculator

**register\_customer\_on\_course(tariff\_id, email, email\_notification, period)**

| المعلمات المطلوبة                                                                                                                                               | المعلمات الاختيارية                                                                                                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:أحمر;">**!**</mark> **tariff\_id** - معرّف خطة التسعير. يمكنك نسخه من شريط المتصفح في إعدادات خطة التسعير.                                   | **email\_notification** - ترسل هذه المعلمة رسالة بريد إلكتروني إلى الطالب بشأن تسجيله في الدورة، إذا كانت مفعلة.                                                                   |
| <mark style="color:أحمر;">**!**</mark>**&#x20;email** - عنوان البريد الإلكتروني للعميل. يمكنك تحديد قيمة محددة أو متغير يتم فيه تسجيل البريد الإلكتروني للعميل. | <p><strong>period</strong> - مهلة زمنية لصلاحية خطة التسعير. تُدعَم صيغ التاريخ كما يلي:  %d.%m.%Y %H:%M أو %d.%m.%Y <br>مثال:</p><p> <code>period = '15.08.2023 11:00'</code></p> |

{% hint style="danger" %}
حتى يتلقى العملاء رسائل البريد الإلكتروني، يجب أن تمرّر 1 في المعلمة **email\_notification.**&#x20;

**إذا** <mark style="color:أحمر;">لم ترسل 1،</mark> **فلن يتم استلام رسائل البريد الإلكتروني&#x20;**<mark style="color:أحمر;">**الخاصة بالعميل!**</mark>
{% endhint %}

أَسنِد دالة إلى المتغير.&#x20;

بعد التنفيذ، ستُكتب إحدى الاستجابات في المتغير:

**customer is already on tariff** - إذا كانت هناك خطة تسعير أو كان الوصول مغلقًا يدويًا

**wrong\_tariff\_id** - تم تحديد معرّف غير صالح

**tariff\_added** - تمت إضافة خطة التسعير إلى الطالب

مثال:

<div data-with-frame="true"><figure><img src="/files/c17170b83dcd2e7473e077b93d883602374d640b" alt="" width="563"><figcaption></figcaption></figure></div>

## كيف تتحقق من توفر الوصول إلى الدورة

### has\_customer\_tariff(tariff\_id)

للقيام بذلك، حدِّد الدالة في Block Calculator **has\_customer\_tariff(tariff\_id, email)**<br>

| المعلمات المطلوبة                                                                                                                                   | المعلمات الاختيارية                                                                                                               |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:أحمر;">**!**</mark> **tariff\_id** - معرّف خطة التسعير. يمكنك نسخه من شريط المتصفح في إعدادات خطة التسعير أو في قسم خطط التسعير. | **email** - معلمة اختيارية. مرّر هذه المعلمة للتحقق مما إذا كان العميل مسجّلًا في الدورة باستخدام عنوان البريد الإلكتروني المحدد. |

بعد التنفيذ، تُرجع الدالة True أو False.

{% hint style="danger" %}
الاستجابات الممكنة للدالة في حالة الأخطاء:

**wrong tariff\_id** - تم تمرير قيمة غير صالحة **tariff\_id**

**customer not found** - المستخدم غير مسجّل كطالب.
{% endhint %}

## كيفية تسجيل عميل على المنصة دون منحه الوصول إلى الدورة

### register\_customer(email)

للقيام بذلك، حدِّد الدالة في Block Calculator **register\_customer(email)**&#x20;

| معلمات الدالة                                    | الوصف                           |
| ------------------------------------------------ | ------------------------------- |
| <mark style="color:أحمر;">**!**</mark> **email** | عنوان البريد الإلكتروني للعميل. |

يمكنك تحديد متغير في الدالة أو قيم المعلمات. لتحديد متغير، اكتب اسمه دون علامات اقتباس ودون رموز الصياغة، أو الأقواس المربعة، أو الأقواس المعقوفة. لتحديد قيمة معينة، اكتب عنوان البريد الإلكتروني للعميل بين علامتي اقتباس.

> يوصى بإسناد المتغير إلى الدالة، حتى تتمكن من رؤية نتيجة الدالة والعمل معها. مثال في الصورة أدناه: يُوضَع اسم المتغير قبل علامة التساوي، ثم تأتي الدالة والمعلمة بين الأقواس.

بعد التنفيذ الناجح للدالة، ستُكتب الاستجابة في المتغير:\
**customer created**

## كيف تتحقق من الوصول إلى الدورة والحدود الزمنية؟

للقيام بذلك، حدِّد الدالة في Block Calculator **has\_customer\_tariff\_with\_date(tariff\_id, email),** للتحقق من توفر الوصول إلى الدورة عبر البريد الإلكتروني (يُرجع ردًا مفصلًا عن توفر الوصول والقيود الزمنية).

&#x20;معلمات الدالة:

| معلمة مطلوبة                                                                                                                                        | معلمة اختيارية              |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| <mark style="color:أحمر;">**!**</mark> **tariff\_id** - معرّف خطة التسعير. يمكنك نسخه من شريط المتصفح في إعدادات خطة التسعير أو في قسم خطط التسعير. | **email** - معلمة اختيارية. |

ستكون الإجابة:

* الطالب مسجل وهناك حد زمني للوصول: Has access until 2023-09-28 22:00:00&#x20;
* الطالب مسجل، ولا توجد قيود: Has access without time limit&#x20;
* الطالب غير مسجل: No access to this tariff

{% hint style="danger" %}
**الاستجابات الممكنة للدالة في حالة الأخطاء:**

**wrong tariff\_id** - تم تمرير قيمة غير صالحة **tariff\_id**

**customer not found** -المستخدم غير مسجل كطالب.
{% endhint %}

## كيفية إزالة الوصول إلى دورة طالب عبر بوت&#x20;

### del\_customer\_from\_course(**course\_id, email**)

للقيام بذلك، حدِّد الدالة في Block Calculator  **del\_customer\_from\_course(course\_id, email)**

| المعلمات                                                   | الوصف                          |
| ---------------------------------------------------------- | ------------------------------ |
| <mark style="color:أحمر;">**!**</mark>**&#x20;tariff\_id** | معرّف خطة التسعير              |
| <mark style="color:أحمر;">**!**</mark>**&#x20;email**      | عنوان البريد الإلكتروني للعميل |

## كيفية التحقق مما إذا كان الطالب قد حضر ندوة عبر الإنترنت&#x20;

### customer\_was\_on\_translation()

يجب منح الوصول إلى الدورة في البوت.

توجد دالة لهذا [register\_customer\_on\_course()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-bot-register_customer_on_course) و [access\_course\_from\_webapp()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-web-app-telegramm)

للتحقق مما إذا كان الطالب قد حضر الندوة عبر الإنترنت أم لا، حدِّد الدالة في Block Calculator customer\_was\_on\_translation(translation\_guid, email, after\_start\_time)

| المعلمات المطلوبة                                                                                                                                           | معلمة اختيارية                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| <p><mark style="color:أحمر;"><strong>!</strong></mark> translation\_guid - معرّف البث. انسخ قيمة الحقل </p><p><em>الاسم موجود في رابط إعدادات البث</em></p> | after\_start\_time - وقت بدء البث بالصّيغة: '2023-04-18 13:30:00'. |
| <mark style="color:أحمر;">**!**</mark> email - عنوان البريد الإلكتروني للطالب                                                                               |                                                                    |

{% hint style="warning" %}
**انتبه!** يمكن أن يكون اسم المتغير أي اسم مناسب وواضح لك. في حال حدوث خطأ في كتابة معلمات الدالة، ستُكتب الرسالة التالية في المتغير:  wrong translation\_guid

في هذه الحالة، نوصي بالتحقق من معلمات الدالة واختبارها مرة أخرى. للحصول على قيمة مدة البقاء في الندوة عبر الإنترنت من متغير في Calculator، يمكنك استخدام دالة العمل مع المصفوفات والقواميس. ссылка/ссылка [المصفوفات](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-s-massivami#kak-poluchit-element-massiva) و [القواميس](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-so-slovaryami#kak-poluchit-znachenie-slovarya-po-klyuchu).

مثال على الإعدادات في Block Calculator:

time\_spent1 = answer2\[0]\['time\_spent']
{% endhint %}

## كيف تجد اسم الطالب المرتبط ببوت؟

توجد حالات قد يكون فيها الطلاب مرتبطين بالدردشة الإلكترونية في الحساب الشخصي للطالب، وكذلك أولئك المرتبطون برسول ويكتبون إلى المشرفين لديك عبر بوت. ولكي تتمكن من إصدار شهادات إتمام الدورة بأسماء صحيحة في البوت دون البحث عن اسم الطالب في القائمة، توجد دالة:

get\_customer\_name() - تُرجع اسم الطالب المرتبط بالعميل.

دالة بلا معلمات.

<div data-with-frame="true"><figure><img src="/files/fc78ef19bdfab26b7fe339efba171fd7dd81de3a" alt="" width="563"><figcaption></figcaption></figure></div>

تُرجع اسم الطالب الذي أدخله أثناء التسجيل في الدورة، أو اسم الطالب من حسابه الشخصي.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ar/lms/kyfyh-bya-aldwrat/bya-aldwrat-fy-rwbwt-drdshh/dwal-alaalh-alhasbh-lldwrat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
