Tovább a tartalomhoz

Egyedi automatizálás-művelet

Saját művelet regisztrálása PHP-ból, amelyet az automatizálás-szerkesztőben a beépített blokkokhoz hasonlóan lehet használni.

A műveletek az automatizálás lépései, amelyek valamit elvégeznek: például kapcsolattartó-tulajdonságot frissítenek, webhookot küldenek vagy A/B-tesztet osztanak szét. Saját műveletet is felvehetsz (például jegyzet küldése külső rendszerbe, API-hívás vagy egyedi adatok frissítése), amelyet az automatizálás-szerkesztőben ugyanúgy húzhatsz be, mint a beépítetteket.

Típus Kampó neve Mire való
Filter fluentcrm_funnel_blocks Felveszi az egyedi blokkot a műveletek listájára.
Filter fluentcrm_funnel_block_fields Megadja a beállítómezőket, amelyek a blokk kijelölésekor látszanak.
Action fluentcrm_funnel_sequence_handle_{action_name} Lefuttatja a logikádat, amikor a művelet fut. Az {action_name} helyére a saját azonosítód kerül.

A példában a művelet azonosítója custom_action_name, a futásidejű kampó tehát fluentcrm_funnel_sequence_handle_custom_action_name.

Hozz létre egy PHP-osztályt (például Custom\Actions\CustomAction), amely:

  • regisztrálja a művelet blokkját (pushBlock),
  • megadja a blokk mezőit (getBlockFields),
  • kezeli a végrehajtást (handle).
<?php
namespace Custom\Actions;
class CustomAction
{
protected $actionName;
protected $priority;
protected $funnel;
public function __construct()
{
$this->actionName = 'custom_action_name';
$this->priority = 99;
// 1) A blokk felvétele a szerkesztőbe
add_filter(
'fluentcrm_funnel_blocks',
[$this, 'pushBlock'],
$this->priority,
2
);
// 2) A blokk beállítómezői
add_filter(
'fluentcrm_funnel_block_fields',
[$this, 'pushBlockFields'],
$this->priority,
2
);
// 3) A művelet kezelése futáskor
add_action(
'fluentcrm_funnel_sequence_handle_' . $this->actionName,
[$this, 'handle'],
10,
4
);
}
/**
* A blokk regisztrálása az automatizálás-szerkesztőben.
*/
public function pushBlock($blocks, $funnel)
{
$this->funnel = $funnel;
$block = $this->getBlock();
if ($block) {
$block['type'] = 'action';
$blocks[$this->actionName] = $block;
}
return $blocks;
}
/**
* A blokk beállítómezőinek regisztrálása.
*/
public function pushBlockFields($fields, $funnel)
{
$this->funnel = $funnel;
$fields[$this->actionName] = $this->getBlockFields();
return $fields;
}
/**
* A blokk alapadatai és alapértelmezett beállításai.
*/
public function getBlock()
{
return [
'category' => 'My-plugin',
'title' => 'My-plugin jegyzet hozzáadása',
'description' => 'Jegyzet hozzáadása a My-pluginhoz',
'icon' => 'fc-icon-writing',
'settings' => [
'note' => '',
'note_type' => 'private',
],
];
}
/**
* A művelet beállítópaneljének mezői.
*/
public function getBlockFields()
{
$formattedOptions = [
[
'id' => 'private',
'title' => 'Privát jegyzet',
],
[
'id' => 'customer',
'title' => 'Jegyzet a vásárlónak',
],
];
return [
'title' => 'My-plugin jegyzet hozzáadása',
'sub_title' => 'Jegyzet hozzáadása a kapcsolódó My-plugin rendeléshez',
'fields' => [
'note' => [
'type' => 'input-text-popper',
'field_type' => 'textarea',
'label' => 'My-plugin jegyzet',
'help' => 'Írd be a jegyzetet, amelyet a rendeléshez adsz. Okoskódokat is használhatsz.',
],
'note_type' => [
'type' => 'radio',
'label' => 'Jegyzet típusa',
'help' => 'Válaszd ki, hogyan legyen eltárolva a jegyzet a rendelésnél.',
'options' => $formattedOptions,
],
],
];
}
/**
* A fő kezelő, amely a lépés végrehajtásakor fut.
*
* @param \FluentCrm\App\Models\Subscriber $subscriber
* @param object $sequence
* @param int $funnelSubscriberId
* @param object $funnelMetric
*/
public function handle($subscriber, $sequence, $funnelSubscriberId, $funnelMetric)
{
// Ide jön a saját integrációs logikád.
error_log(print_r(
[$subscriber, $sequence, $funnelSubscriberId, $funnelMetric],
true
));
}
}

A pushBlockFields() metódus adja vissza a művelet beállítópaneljének szerkezetét, ebből rajzolja ki a FluentCRM a mezőket. A getBlockFields() mezőleírásai ugyanazt a szerkezetet követik, mint a többi FluentCRM-űrlapmező; további típusokat az Űrlapmezők kódszerkezete fejezetben találsz.

Az osztályt akkor példányosítsd, amikor a FluentCRM Pro már betöltődött; szokásos hely a plugins_loaded kampó:

add_action('plugins_loaded', function () {
if (defined('FLUENTCAMPAIGN_DIR_FILE')) {
new \Custom\Actions\CustomAction();
}
});

Ezután:

  1. A „My-plugin jegyzet hozzáadása” művelet megjelenik az automatizálás műveletlistájában.
  2. Bármelyik automatizálásban beállíthatod a jegyzet szövegét és típusát.
  3. A lépés futásakor a FluentCRM a fluentcrm_funnel_sequence_handle_custom_action_name kampón át meghívja a handle() metódusodat, ahol egyedi viselkedést vagy külső integrációt valósíthatsz meg.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások