表单数据未存储在WordPress数据库中

时间:2017-06-10 作者:Minu

我已经创建了两页——Contribute Page &;Checkout Page.

在…上Contribute Page 我有以下代码:

<?php
if(isset($_POST[\'submitnow\'])) {
        global $wpdb;
$wpdb->insert( 
    \'wp9c_treetweet\', 
    array( 
        \'name\' => $_POST[\'aname\'], 
        \'amt\' => $_POST[\'aamt\'],
        \'dept\' => $_POST[\'adept\']
    ), 
    array( 
        \'%s\', 
        \'%d\',
                \'%s\' 
    )

);        
}    
?>

<form action="" method="POST" id="addcourse">
<label>Name:<input type="text" name="aname" size="30" required></label>
<label>Amount:<input type="text" name="aamt" size="30" required></label>
<label>Department:<input type="text" name="adept" size="30" required></label>

<input type="submit" name="submitnow" id="addcoursesubmit" value="Submit">
</form>
此代码工作正常,正在数据库中正确插入表单数据。

将此页面重定向到Checkout Page 我在中添加了以下代码functions.php:

function redirect_from_checkout() {

   if( !isset( $_POST[\'submitnow\'] ) )

       return;

         wp_redirect( home_url( \'/checkout/\' ) );

         exit;  
}

add_action( \'template_redirect\', \'redirect_from_checkout\' );
在中添加重定向代码后functions.php 重定向工作正常,但表单数据未插入到数据库表中。

请帮助我解决问题。

1 个回复
SO网友:Johansson

根据WordPress Codex 关于template_redirect 挂钩:

在WordPress确定要加载哪个模板页面之前,这个操作挂钩就会执行。

因此,在加载模板之前,您将用户重定向到另一个页面,而表单根本不会加载模板。你可以用另一个钩子template_redirect, 例如wp_footer.

您还可以在将表单插入数据库后立即重定向用户,方法是将代码更改为:

<?php
    if(isset($_POST[\'submitnow\'])) {
        global $wpdb;
        $wpdb->insert( 
            \'wp9c_treetweet\', 
            array( 
                \'name\' => $_POST[\'aname\'], 
                \'amt\' => $_POST[\'aamt\'],
                \'dept\' => $_POST[\'adept\']
            ), 
            array( 
                \'%s\', 
                \'%d\',
                        \'%s\' 
            )

        );
        wp_safe_redirect(home_url( \'/checkout/\' ));
        exit();
    }
?>
这样,如果插入表单,用户将在之后被重定向。

结束

相关推荐

Error in database connection

我正在使用Wamp服务器,我想用WordPress开发网站。我已配置wp配置。php。它仍在向我展示建立数据库连接时出错。我应该如何解决此错误?