gpt4 book ai didi

php - 重力形式自定义验证过滤器

转载 作者:可可西里 更新时间:2023-10-31 22:51:46 26 4
gpt4 key购买 nike

我有一个函数可以通过第三方服务处理销售、处理结果并返回状态为“成功”或“无效”的数组。此销售电话是使用应用于特定表单的 gform_after_submission Hook 进行的。

我需要做的是将“成功”或“无效”结果作为变量存储在数组中,稍后我可以使用 gform_validation Hook 将其传递给函数以验证或使信用卡字段无效。

我在函数中声明变量,如下所示:

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' );

我已经尝试通过多种不同的方式传递变量,通过全局变量和 session 等。

我是 GF 开发的新手,所以我确信我遗漏了一些东西。如果有任何指示,我将不胜感激。

最佳答案

gform_after_submission 操作 Hook 在 gform_validation 之后运行。

无论如何,假设你能find a hook如果运行得更早,我要做的是使用 Transients API 为每个提交的表单存储一个唯一变量的 set_transient()get_transient() 函数。例如,您可以在每个用 random ID 填充的表单中创建一个隐藏字段.使用此随机 ID 作为 key 来存储和检索成功/无效结果。

关于php - 重力形式自定义验证过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com