Files
gustavoo-me/wp-content/plugins/fluent-crm/app/Services/Funnel/Actions/ApplyCompanyAction.php
T
2026-07-23 22:56:30 -03:00

64 lines
2.0 KiB
PHP

<?php
namespace FluentCrm\App\Services\Funnel\Actions;
use FluentCrm\App\Models\Subscriber;
use FluentCrm\App\Services\Funnel\BaseAction;
use FluentCrm\App\Services\Funnel\FunnelHelper;
class ApplyCompanyAction extends BaseAction
{
public function __construct()
{
$this->actionName = 'add_contact_to_company';
$this->priority = 20;
parent::__construct();
}
public function getBlock()
{
return [
'category' => __('CRM', 'fluent-crm'),
'title' => __('Apply Company', 'fluent-crm'),
'description' => __('Add contact to the selected company', 'fluent-crm'),
'icon' => 'fc-icon-apply_list',//fluentCrmMix('images/funnel_icons/apply_list.svg'),
'settings' => [
'company' => null
]
];
}
public function getBlockFields()
{
return [
'title' => __('Apply Company to the contact', 'fluent-crm'),
'sub_title' => __('Select which list will be added to the contact', 'fluent-crm'),
'fields' => [
'company' => [
'type' => 'option_selectors',
'option_key' => 'companies',
'label' => __('Select Company', 'fluent-crm'),
'placeholder' => __('Select Company', 'fluent-crm')
]
]
];
}
public function handle($subscriber, $sequence, $funnelSubscriberId, $funnelMetric)
{
if (empty($sequence->settings['company'])) {
FunnelHelper::changeFunnelSubSequenceStatus($funnelSubscriberId, $sequence->id, 'skipped');
return;
}
$company = $sequence->settings['company'];
$renewedSubscriber = Subscriber::where('id', $subscriber->id)->first();
if (!$renewedSubscriber) {
FunnelHelper::changeFunnelSubSequenceStatus($funnelSubscriberId, $sequence->id, 'skipped');
return;
}
$renewedSubscriber->attachCompanies([$company]);
}
}