nextHandler = $nextHandler; } public function handle($data) { if ($this->nextHandler) { return $this->nextHandler->handle($data); } return ['success' => true, 'message' => 'Форма обработана']; } } class b24Handler extends FormHandler { public function handle($data) { // Логика отправки в Mailchimp error_log("Отправка в b24: " . json_encode($data)); // Вызываем следующий обработчик в цепочке return parent::handle($data); } } class zohoHandler extends FormHandler { public function handle($data) { // Логика отправки в HubSpot error_log("Отправка в Zoho: " . json_encode($data)); return parent::handle($data); } } class mindboxHandler extends FormHandler { public function handle($data) { // Отправка в стандартный обработчик (например, email) error_log("Отправка в mindBox: " . json_encode($data)); return parent::handle($data); } } class emailHandler extends FormHandler { public function handle($data) { $to = 'fcs.andrew@gmail.com'; $subject = 'Test Email'; $message = json_encode($data, JSON_PRETTY_PRINT); // Преобразуем данные в строку $headers = ['Content-Type: text/plain; charset=UTF-8']; wp_mail($to, $subject, $message, $headers); return parent::handle($data); } } class FormHandlerFactory { public static function getHandler() { // Базовый обработчик $handler = new emailHandler(); // Добавляем в цепочку обработчиков $handler = new mindboxHandler($handler); $handler = new zohoHandler($handler); $handler = new b24Handler($handler); return $handler; } } ?>