加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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作为存储和检索“成功/无效”结果的键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读