是否有从 wpforms 读取 POST 数据的特定方法?
Posted
技术标签:
【中文标题】是否有从 wpforms 读取 POST 数据的特定方法?【英文标题】:Is there a specific way to read POST data from wpforms? 【发布时间】:2021-01-12 07:04:10 【问题描述】:我正在尝试访问用户在使用 wpforms 创建的表单上输入的表单数据并将它们保存为会话变量,但无论我尝试什么,我似乎都无法从表单中获得任何信息。我可以将信息硬编码到会话变量中,它们按预期工作,但它需要从表单中提取数据。
这是我在页面上的 php 代码中的 sn-p:
<?php
echo session_id();
$_SESSION['age'] = $_POST['wpforms[fields][3]'];
$_SESSION['gender'] = $_POST['wpforms[fields][2]'];
?>
提交表单后,我还包含了第二页中的一些代码,当我在第一页中对它们进行硬编码时,我看到会话变量设置正确,但在我尝试设置时未设置从表单中拉出。
echo session_id();
if ( isset($_SESSION['gender']))
echo "Gender is set.<br>";
else
echo "Gender not set<br>";
if ( isset($_SESSION['age']))
echo "Age is set.<br>";
else
echo "Age not set.<br>";
echo $_SESSION['gender'];
echo $_SESSION['age'];
任何见解将不胜感激!谢谢! Screenshot of page inspection
【问题讨论】:
【参考方案1】:我想通了。我必须将以下代码添加到我正在使用的 wordpress 主题的 functions.php 文件中:
add_action('init', 'register_my_session');
function register_my_session()
if (!session_id() )
session_start();
function wpf_dev_process_entry_save( $fields, $entry, $form_id, $form_data )
// Only run on my form with ID = 4117
if ( absint( $form_data['id'] ) !== 4117 )
return $fields;
$_SESSION['age'] = $fields[3]['value']; // This is where we access the form data
$_SESSION['gender'] = $fields[2]['value'];
add_action( 'wpforms_process_entry_save', 'wpf_dev_process_entry_save', 10, 4 );
【讨论】:
以上是关于是否有从 wpforms 读取 POST 数据的特定方法?的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 帮助(WPForms + PayPal 工作流程)
是否有从 firebase 实时数据库中获取 n 个元素的功能?