我有一个表单,可以将“姓名”、“电子邮件”、“订单号”、“金额”和“备注”等信息传递到托管在的付款表单ePay.
为了传递字段值,我在表单上使用带有重定向类型的标准确认。然后在查询字符串中传递值。除了一个小问题外,一切都很好:查询字符串包括一个回调参数,该参数有自己的查询字符串(包括“note”)。为了实现这一点,我对回调url进行了url编码,如果我为note参数设置了一个静态单字值,它就会工作。但是,如果我插入“note”中的字段值,它将失败(我的猜测是,由于空格等原因)。
因此,我需要完成的是在将值插入查询字符串之前,对“note”字段中的值进行URL编码。但我不知道怎么做。
这是确认重定向的查询字符串与“note”中的静态单字值的外观(这将起作用):
https://example.com/payment?merchantnumber=999999¤cy=208&amount={:5}&orderid={:3}&language=0&callbackurl=https%3A%2F%2Fexample.com%2Fepay.ashx%3Fnote%3Dsingleword
这是“note”中的值作为段落文本时的样子(这不起作用):
https://example.com/payment?merchantnumber=999999¤cy=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¤cy=208&amount={:5}&orderid={:3}&language=0&callbackurl=https%3A%2F%2Fexample.com%2Fepay.ashx%3Fnote%3Dlorem%20ipsum%20dolor%20sit%20amet
我希望一切都有意义,希望有人能指引我走向正确的方向。
谢谢
最合适的回答,由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。
完成的作业:)