פעולה היא משימה מדויקת שמתבצעת כאשר מתרחש טריגר ספציפי. בהקשר של אפליקציה, פעולה היא תגובה מתוכנתת לאירוע או לאינטראקציה של משתמש. לדוגמה, כאשר משתמש נרשם לניוזלטר, פעולה יכולה להיות שליחת אימייל קבלת פנים. פעולות אלו ניתנות להתאמה אישית והתאמה לביצוע כל משימה רצויה. יצירת פעולה כגון הוספת תג למשתמש כאשר הוא נרשם לניוזלטר שלך, היא רק דוגמה אחת לפעולות הגמישות המספקות באוטומציה של תהליכים. התגובה המתוכנתת לטריגר היא שגורמת לאוטומציה לקרות.
#< /a>יצירת פעולה
יצירת פעולה דומה מאוד ליצירת טריגר עם הבדל קל. אתה רק צריך להרחיב את המחלקה FluentCrm\App\Services\Funnel\BaseAction
וליישם את השיטות הנדרשות. נניח שאתה רוצה להחיל תג במסד הנתונים שלך כאשר משתמש נרשם לקורס. אנא שים לב של- FluentCRM כבר יש פעולת תג. אבל, אנחנו יוצרים פעולה מותאמת אישית לשם הדוגמה.
צור מחלקה חדשה והרחיב את המחלקה FluentCrm\App\Services\Funnel\BaseAction
. לבנאי הכיתה יש את הגוף הבא:
<?php
מרחב השמות Your\Plugin\Name\Automation;
השתמש ב- FluentCrm\App\Services\Funnel\BaseAction;
class AddToGroupAction מרחיב את BaseAction {
פונקציה ציבורית __construct()
{
$this->actionName = 'add_to_custom_group_action';
$this->priority = 20;
parent::__construct();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
הגדר את שיטת getBlock
. שיטה זו למעשה מחזירה את החסימה של הפעולה. הבלוק הוא ממשק המשתמש של הפעולה.
פונקציה ציבורית getBlock()
{
החזר [
'קטגוריה' => __('קורס מדהים', 'הפלאגין שלך'),
'title' => __('הירשם לקבוצה', 'הפלאגין שלך'),
'description' => __('הוסף לקבוצה עבור קורס מסוים', 'הפלאגין שלך'),
'סמל' => 'fc-icon-apply_list', // השתמש בכל סמל שתרצה
];
}
1
2
3
4
5
6
7
8
9
הקטע הבא הוא הקוד עבור לחיצה על חסימת ממשק משתמש. שיטה זו מחזירה את הגדרות הפעולה.
פונקציה ציבורית getBlockFields()
{
$groupOptions = [
[
'id' => '1',
'title' => 'מִבְחָן'
],
[
'id' => '2',
'title' => 'מבחן 2'
]
//...
];
החזר [
'title' => __('הרשמה לקבוצה', 'fluent-crm'),
'sub_title' => __('רשום את המנוי לקבוצה מסוימת הקשורה לקורס', 'fluent-crm'),
'fields' => [
'group_id' => [
'סוג' => 'לִבחוֹר',
'options' => $groupOptions,
'is_multiple' => שֶׁקֶר,
'clearable' => נָכוֹן,
'תווית' => __('בחר קבוצה להירשם', 'fluent-crm'),
'placeholder' => __('בחר קבוצה', 'fluent-crm')
]
]
];
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16< br>17
18
19
20
21
22
23
24
25
26
27
28
29
30
הגדר את שיטת handle
. שיטה זו נקראת כאשר הפעולה מבוצעת. לשיטה זו יש את הגוף הבא:
פונקציה ציבורית handle ($subscriber, $sequence, $funnelSubscriberId, $funnelMetric)
{
$settings = $sequence->settings;
$userId = $subscriber->getWpUserId();
$groupId = Arr::get($settings, 'group_id');
// אם לא נמצאה קבוצה
if (!$groupId) {
$funnelMetric->notes = __('משפך דילג כי לא נמצאה קבוצה', 'your-plugin');
$funnelMetric->save();
FunnelHelper::changeFunnelSubSequenceStatus($funnelSubscriberId, $sequence->id, 'skipped');
החזר שקר;
}
if (!$userId) {
// אם לא נמצא משתמש אז יישם את ההיגיון שלך כאן
החזר שקר;
}
// תוכל גם לבדוק אם המשתמש כבר רשום לקבוצה
if (already_enrolled_function()) {
// יישם את ההיגיון שלך כאן
החזר שקר;
}
// כאן לאחר כל הבדיקות שלך תוכל לרשום את המשתמש לקבוצה בשורה למטה
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15< br>16
17
18
19
20
21
22
23
24
25
26
27
28
בואו נסתכל על הקוד המלא של מחלקת הפעולה:
<?php
מרחב השמות Your\Plugin\Name\Automation;
השתמש ב- FluentCrm\App\Services\Funnel\BaseAction;
השתמש ב- FluentCrm\App\Services\Funnel\FunnelHelper;
השתמש ב- FluentCrm\Framework\Support\Arr;
class ApplyCustomTagAction מרחיב את BaseAction {
פונקציה ציבורית __construct()
{
$this->actionName = 'add_to_custom_group_action';
$this->priority = 20;
parent::__construct();
}
פונקציה ציבורית getBlock()
{
החזר [
'קטגוריה' => __('קורס מדהים', 'הפלאגין שלך'),
'title' => __('הירשם לקבוצה', 'הפלאגין שלך'),
'description' => __('הוסף לקבוצה עבור קורס מסוים', 'הפלאגין שלך'),
'סמל' => 'fc-icon-apply_list', // השתמש בכל סמל שתרצה
];
}
פונקציה ציבורית getBlockFields()
{
$groupOptions = [
[
'id' => '1',
'title' => 'מִבְחָן'
],
[
'id' => '2',
'title' => 'מבחן 2'
]
//...
];
החזר [
'title' => __('הירשם לקבוצה', 'הפלאגין שלך'),
'sub_title' => __('רשום את המנוי לקבוצה מסוימת הקשורה לקורס', 'הפלאגין שלך'),
'fields' => [
'group_ids' => [
'סוג' => 'לִבחוֹר',
'options' => $groupOptions,
'is_multiple' => שֶׁקֶר,
'clearable' => נָכוֹן,
'תווית' => __('בחר קבוצה להירשם', 'הפלאגין שלך'),
'placeholder' => __('בחר קבוצה', 'הפלאגין שלך')
]
]
];
}
ידית פונקציה ציבורית ($subscriber, $sequence, $funnelSubscriberId, $funnelMetric)
{
$settings = $sequence->settings;
$userId = $subscriber->getWpUserId();
$groupId = Arr::get($settings, 'group_id');
// אם לא נמצאה קבוצה
if (!$groupId) {
$funnelMetric->notes = __('משפך דילג כי לא נמצאה קבוצה', 'your-plugin');
$funnelMetric->save();
FunnelHelper::changeFunnelSubSequenceStatus($funnelSubscriberId, $sequence->id, 'skipped');
החזר שקר;
}
if (!$userId) {
// אם לא נמצא משתמש אז יישם את ההיגיון שלך כאן
החזר שקר;
}
// תוכל גם לבדוק אם המשתמש כבר רשום לקבוצה
if (already_enrolled_function()) {
// יישם את ההיגיון שלך כאן
החזר שקר;
}
// כאן לאחר כל הבדיקות שלך תוכל לרשום את המשתמש לקבוצה בשורה למטה
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35< br>36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56< br>57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77< br>78
79
80
81
82
83
84
85
#< /a>רישום הפעולה
הכול מוכן! הטריגר שלך מוכן לשימוש. התקשר לכיתה כדי לרשום את זרימת העבודה.
add_action('fluent_crm/after_init', function () {
new Your\Plugin\Name\Automation\AddToGroupAction();
});