首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有从wpforms中读取POST数据的特定方法?

有没有从wpforms中读取POST数据的特定方法?
EN

Stack Overflow用户
提问于 2020-09-26 08:07:44
回答 1查看 294关注 0票数 0

我试图访问用户在用wpforms创建的表单上输入的表单数据,并将它们保存为会话变量,但无论我如何尝试,似乎都无法从表单中获得任何信息。我可以将信息硬编码到会话变量中,它们可以按预期工作,但它需要从表单中提取数据。

下面是我在页面上的php代码的代码片段:

代码语言:javascript
复制
<?php
echo session_id();
$_SESSION['age'] = $_POST['wpforms[fields][3]'];
$_SESSION['gender'] = $_POST['wpforms[fields][2]'];
?>

提交表单后,我还包含了第二页中的一些代码,在这里我看到,当我在第一页中对会话变量进行硬编码时,会话变量被正确设置,但当我试图从表单中提取时,会话变量没有被设置。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 03:16:43

我想通了。我必须在我使用的wordpress主题的functions.php文件中添加以下代码:

代码语言:javascript
复制
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 );
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64072675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档