На сколько я понял, за проверку капчи отвечает вот это:
if ($oShop->use_captcha == 0 || $siteuser_id > 0 || Core_Captcha::valid(Core_Array::getPost('captcha_id'), Core_Array::getPost('captcha')))
{
А если вот это:
Core_Captcha::valid(Core_Array::getPost('captcha_id'), Core_Array::getPost('captcha'))
заменить на результат функции например:
function answer(){
$sSecretKey = "xxx"; // Указывается секретный ключ reCAPTCHA
if (Core_Array::getPost('g-recaptcha-response'))
{
$sResponse = Core_Array::getPost('g-recaptcha-response');
$sUrl = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $sSecretKey . "&response=" . $sResponse;
$aAnswer = json_decode(file_get_contents($sUrl), TRUE);
if ($aAnswer['success'])
{
return TRUE;
}
else
{
Core_Log::instance()
->clear()
->status(Core_Log::$ERROR)->write('Google Recaptcha: ' . $aAnswer['error-codes'][0]);
}
}
}
и уже потом
if (]if ($oShop->use_captcha == 0 || $siteuser_id > 0 || answer())
{
Насколько жизнеспособен такой вариант?
PS Вне зависимости от того, магазин это, ИС или регистрация пользователя.