/** * @param RecipientInterface $recipient * @param Salutation $salutation * * @return bool */ public function accept(RecipientInterface $recipient, Salutation $salutation) { global $container; $fieldValue = $salutation->getGenderFilter(); if (!$salutation->getEnableGenderFilter() || empty($fieldValue)) { return true; } $details = $recipient->getDetails(); $fieldName = 'gender'; if (isset($details[$fieldName]) && $fieldValue == $details[$fieldName]) { return true; } /** @var SynonymizerService $synonymizer */ $synonymizer = $container['avisota.recipient.synonymizer']; $synonyms = $synonymizer->findSynonyms('gender'); // try synonyms if ($synonyms) { foreach ($synonyms as $synonym) { if (isset($details[$synonym]) && $fieldValue == $details[$synonym]) { return true; } } } return false; }