【发布时间】:2021-07-03 21:15:08
【问题描述】:
我将 Elementor Form Pro 用于“与我们合作”表单。 我知道我可以使用“提交后操作”电子邮件发送一些元数据,例如 RemoteIP、日期和时间。
如何使用 Webhook 使用相同的元数据?我知道这些值必须通过 JSON 发送,但我不知道该怎么做。
提前致谢!
【问题讨论】:
我将 Elementor Form Pro 用于“与我们合作”表单。 我知道我可以使用“提交后操作”电子邮件发送一些元数据,例如 RemoteIP、日期和时间。
如何使用 Webhook 使用相同的元数据?我知道这些值必须通过 JSON 发送,但我不知道该怎么做。
提前致谢!
【问题讨论】:
不知道这个答案是否对你还有帮助。但是您可以通过对数组使用以下结构来访问 webhook 中的元数据:
array["meta"]["remote_ip"]["value"]
至于您将使用的表单中的字段:
array["fields"]["email"]["value"]
【讨论】:
不知道这个答案是否仍然对您有帮助,但您可以使用 elementor 操作挂钩通过 PHP 发送它:'elementor_pro/forms/new_record'
您必须在站点的 functions.php 中添加以下内容:& 更新变量 .
add_action( 'elementor_pro/forms/new_record', 'send_data_using_webhook' , 10, 2 );
function send_data_using_webhook( $record )
{
$raw_fields = $record->get( 'fields' );
$data = array();
foreach ( $raw_fields as $id => $field ) {
$data[ $id ] = $field['value'];
}
// get the meta details
$raw_meta = $record->get('meta');
$meta = [];
foreach ( $raw_meta as $meta_id => $meta_value ) {
$meta[ $meta_id ] = $meta_value['value'];
}
$data['date'] = $meta['date'];
$data['time'] = $meta['time'];
$data['remote_ip'] = $meta['remote_ip'];
$data['page_url'] = $meta['page_url'];
$curl = curl_init("YOUR-WEBHOOK-URL-HERE");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_exec($curl);
}
【讨论】: