• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/WebForm/WebFormScenarioService.php
  • Класс: Bitrix\Crm\Service\WebForm\WebFormScenarioService
  • Вызов: WebFormScenarioService::prepareCallbackScenario
private function prepareCallbackScenario(BaseScenario $baseScenario): BaseScenario
{
	$callbackMode = !empty(\Bitrix\Crm\WebForm\Callback::getPhoneNumbers());

	$optionBuilder = (new ScenarioOptionBuilder())
		->addAgreements(true)
		->addCaptcha(true)
		->addCallbackMode($callbackMode)
		->setButtonCaption(Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_CALLBACK_BUTTON'))
		->addRecaptcha()
		->addResult(
			Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_CALLBACK_SUCCESS_TEXT'),
			Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_CALLBACK_FAILURE_TEXT'),
		)
		->addFields([
			['name' => 'CONTACT_PHONE', 'required'=> true],
		])
		->addDocumentScheme(Entity::ENUM_ENTITY_SCHEME_DEAL);

	$this->prepareDealAndResponsibilitiesConfiguration($optionBuilder, false);

	return $baseScenario->setCategory(ScenarioCategory::CRM)
		->setMenuItems([
			ScenarioMenuItem::FIELDS['id'],
			ScenarioMenuItem::AGREEMENTS['id'],
			ScenarioMenuItem::BUTTON_AND_HEADER['id'],
			ScenarioMenuItem::CRM['id'],
			ScenarioMenuItem::CALLBACK['id'],
			ScenarioMenuItem::DESIGN['id'],
			ScenarioMenuItem::OTHER['id'],
		])
		->setDefaultSection(ScenarioMenuItem::CALLBACK['id'])
		->setExpertModeMenuItems($this->getExpertModeDefaultItems())
		->prepareBuilder($optionBuilder)
	;
}