php – 重力格式自定义验证过滤器
发布时间:2020-12-13 16:32:22 所属栏目:PHP教程 来源:网络整理
导读:我有一个通过第三方服务处理销售的功能,处理结果并返回一个数组,状态为“成功”或“无效”.此销售电话是使用应用于特定表单的gform_after_submission钩子进行的. 我需要做的是将“成功”或“无效”结果存储在数组中,作为一个变量,稍后可以使用gform_validati
我有一个通过第三方服务处理销售的功能,处理结果并返回一个数组,状态为“成功”或“无效”.此销售电话是使用应用于特定表单的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发展的新人,所以我确信我缺少一些东西.我会赞赏任何方向.
gform_after_submission操作钩子在gform_validation之后运行.
无论如何,假设您可以使用更早的find a hook,那么我将使用Transients API的set_transient()和get_transient()函数为每个提交的表单存储一个唯一的变量.例如,您可以在使用random ID填充的每个表单中创建一个隐藏字段.使用该随机ID作为存储和检索“成功/无效”结果的键. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |