【发布时间】:2015-08-01 21:36:23
【问题描述】:
我有一个函数通过第三方服务处理销售,处理结果并返回一个状态为“成功”或“无效”的数组。此销售电话是使用应用于特定表单的 gform_after_submission 挂钩进行的。
我需要做的是将“成功”或“无效”结果作为变量存储在数组中,稍后我可以使用 gform_validation 挂钩将其传递给函数以验证或使信用卡字段无效。
我在函数中声明变量,如下所示:
function foo {
...code to sell product through API...
$status = $checkoutShoppingCartRequest['Result']['Status'];
}
当我在函数中打印变量 $status 时,它应该显示成功或无效。
这是我需要使用此变量的其他函数,传递给 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 开发的新手,所以我确信我遗漏了一些东西。我会很感激任何方向。
【问题讨论】:
-
你从哪里经过?
$status回调函数中的变量?你有var_dump($validation_result)变量吗? -
我假设您通过在
global函数内添加global关键字来使变量成为全局变量MBvalidate()即global $status,对吗?此外,您还必须将global关键字放在foo()函数中
标签: php wordpress gravity gravity-forms-plugin