问题描述
我正在使用 NinjaForms 向我们的票务系统提交票证。
通过 WP Hook,我可以拍摄门票创建脚本;但是,我真正想做的是捕获并向用户显示服务器响应,以验证他们的票证是否已创建以及他们的票证编号是什么。
我很高兴找到一种方法来实现这一点:a) 通过他们的提交消息将数据传递回 Ninja Forms 或 b) 完全放弃他们的提交消息并简单地删除当前页面上的内容以显示服务器结果。
在自定义操作和脚本方面,我不是一个出色的 wordpress 向导。
我拥有的钩子做了我需要做的事情并且可以收集服务器响应,但我也读过操作不应该有返回数据。但是有没有办法可以使用此操作将我需要的信息注入页面(同时也删除我不想要的元素)?或者将信息传递给前端可以执行相同任务的 JavaScript 函数?我不确定处理这种事情的“wordpress 方式”是什么。
我基本上想创建自己的成功消息,但基于来自票务系统的服务器响应,该响应将在我的操作挂钩中返回。
在functions.PHP中:
//Action added. This is called with a NinjaForm "WP Hook"
add_action( 'wp_ninjaform_data_tracker','wp_ninjaform_data_tracker_callback' );
function wp_ninjaform_data_tracker_callback( $form_data ){
//Ninjaform Fields,gathered and made into an associative array
$form_fields = $form_data[ 'fields' ];
$field = array();
foreach ($form_fields as $key => $one) {
$field[$one['key']] = $one['value'];
}
//Example of one field
$fullname = $field[ 'fullname' ];
//Can't include reala URL for the ticket system,but this is the URL I send the final data to to create a ticket
$url = "https://www.faketrackerurl.com/REST/1.0/ticket/new/";
$data = "user=username&pass=password&content=Requestor: \"".$fullname."\n";
//Sends the request. Returns server response.
function do_post_request($url,$data,$optional_headers = null) {
$params = array('http' => array(
'method' => 'POST','content' => $data));
if ($optional_headers!== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url,'rb',false,$ctx);
if (!$fp) {
throw new Exception("Problem with $url,$PHP_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url,$PHP_errormsg");
}
return $response;
}
$response = do_post_request($url,$data);
}
我想在 NinjaForms 中的成功消息中使用 $response 数据,或者在 NinjaForms 完成提交后创建我自己的自定义成功消息。
如果您没有选择显示成功消息,页面将变为空白。我试图使用这个functions.PHP 来回应一个JavaScript 调用来调用“alert”,只是为了查看它是否正常工作,但它没有工作。我是前端开发人员,所以我的直觉是简单地调用前端解决方案,但我不知道这是否可行。
我还研究了 NinjaForms 代码,希望找到一种方法将信息传递回成功消息,或者尝试找到根据其事件找到执行操作的钩子的方法,但这不是我的驾驶室,并且我不太喜欢他们的文档。我仍在努力,但任何帮助将不胜感激。
非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)