重力式表单确认重定向中的urlencode查询字符串

时间:2016-01-20 作者:Ploughansen

我有一个表单,可以将“姓名”、“电子邮件”、“订单号”、“金额”和“备注”等信息传递到托管在的付款表单ePay.

为了传递字段值,我在表单上使用带有重定向类型的标准确认。然后在查询字符串中传递值。除了一个小问题外,一切都很好:查询字符串包括一个回调参数,该参数有自己的查询字符串(包括“note”)。为了实现这一点,我对回调url进行了url编码,如果我为note参数设置了一个静态单字值,它就会工作。但是,如果我插入“note”中的字段值,它将失败(我的猜测是,由于空格等原因)。

因此,我需要完成的是在将值插入查询字符串之前,对“note”字段中的值进行URL编码。但我不知道怎么做。

这是确认重定向的查询字符串与“note”中的静态单字值的外观(这将起作用):

https://example.com/payment?merchantnumber=999999&currency=208&amount={:5}&orderid={:3}&language=0&callbackurl=https%3A%2F%2Fexample.com%2Fepay.ashx%3Fnote%3Dsingleword
这是“note”中的值作为段落文本时的样子(这不起作用):

https://example.com/payment?merchantnumber=999999&currency=208&amount={:5}&orderid={:3}&language=0&callbackurl=https%3A%2F%2Fexample.com%2Fepay.ashx%3Fnote%3Dlorem+ipsum+dolor+sit+amet
这就是我正在努力实现的目标(这应该行得通):

https://example.com/payment?merchantnumber=999999&currency=208&amount={:5}&orderid={:3}&language=0&callbackurl=https%3A%2F%2Fexample.com%2Fepay.ashx%3Fnote%3Dlorem%20ipsum%20dolor%20sit%20amet
我希望一切都有意义,希望有人能指引我走向正确的方向。

谢谢

1 个回复
最合适的回答,由SO网友:Ploughansen 整理而成

挖得更深一点后,我发现重力形式中有一个动作钩,叫做gform_pre_submission. 这允许我在创建条目或运行确认之前修改过账值(请参阅documentation).

在那之后,它是相当基本的:

add_action( \'gform_pre_submission_11\', \'pre_submission_handler\' );
function pre_submission_handler( $form ) {
    $_POST[\'input_7\'] = urlencode(rgpost( \'input_7\' ));
}
这以表单ID 11为目标,并用字段7的URL编码版本替换字段7。

完成的作业:)

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http