У меня есть функция, которая обрабатывает продажи через стороннюю службу, обрабатывает результат и возвращает массив с статусом "Успех" или "Недействительный". Этот вызов продаж выполняется с использованием gform_after_submission hook, примененного к конкретной форме.
Что мне нужно сделать, так это сохранить результат "Успех" или "Неверный" в массиве как переменную, которую я могу позже передать функции для проверки или аннулирования поля кредитной карты с помощью gform_validation hook.
Я объявляю переменную в функции, например:
function foo {
...code to sell product through API...
$status = $checkoutShoppingCartRequest['Result']['Status'];
}
Когда я печатаю переменную $status внутри функции, она показывает либо Success, либо Invalid, как и должна.
Вот другая функция, где мне нужно использовать эту переменную, переданную в gform_validation, которая терпит неудачу каждый раз независимо от успеха или недопустимого результата:
function MBvalidate( $validation_result ) {
$form = $validation_result['form'];
if ( $status !== "Success") {
$validation_result['is_valid'] = false;
foreach( $form['fields'] as &$field ) {
if ( $field->id == '34' ) {
$field->failed_validation = true;
$field->validation_message = 'Your credit card could not be processed.';
break;
}
}
}
//Assign modified $form object back to the validation result
$validation_result['form'] = $form;
return $validation_result;
}
add_filter( 'gform_validation_47', 'MBvalidate' );
Я попытался передать переменную несколько разных способов, через глобальные и сеансы и т.д.
Я новичок в разработке GF, поэтому я уверен, что чего-то не хватает. Я был бы признателен за любое направление.