From 96ea60e04e16238e62c8d6818bb71ad36894cd33 Mon Sep 17 00:00:00 2001 From: Alok Patel Date: Wed, 25 Oct 2017 13:52:05 +0530 Subject: [PATCH] CRM-21104: Forcing reCaptcha on Contribution form if not added by profiles. --- CRM/Contribute/Form/Contribution/Main.php | 4 ++++ CRM/Contribute/Form/ContributionBase.php | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Main.php b/CRM/Contribute/Form/Contribution/Main.php index 9cf20054ec..240f128af2 100644 --- a/CRM/Contribute/Form/Contribution/Main.php +++ b/CRM/Contribute/Form/Contribution/Main.php @@ -302,6 +302,10 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu $this->buildComponentForm($this->_id, $this); } + if (count($this->_paymentProcessors) == 1 && get_class($this->_paymentProcessors[0]["object"]) == "CRM_Core_Payment_Manual" && !$this->get_template_vars("isCaptcha")) { + $this->enableCaptchaOnForm(); + } + // Build payment processor form CRM_Core_Payment_ProcessorForm::buildQuickForm($this); diff --git a/CRM/Contribute/Form/ContributionBase.php b/CRM/Contribute/Form/ContributionBase.php index adbf82b2ec..d9479c0e82 100644 --- a/CRM/Contribute/Form/ContributionBase.php +++ b/CRM/Contribute/Form/ContributionBase.php @@ -770,14 +770,21 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } if ($addCaptcha && !$viewOnly) { - $captcha = CRM_Utils_ReCAPTCHA::singleton(); - $captcha->add($this); - $this->assign('isCaptcha', TRUE); + $this->enableCaptchaOnForm(); } } } } + /** + * Enable ReCAPTCHA on Contribution form + */ + protected function enableCaptchaOnForm() { + $captcha = CRM_Utils_ReCAPTCHA::singleton(); + $captcha->add($this); + $this->assign('isCaptcha', TRUE); + } + /** * Add onbehalf/honoree profile fields and native module fields. * -- 2.25.1