需要获取insert_id值并将其传递给另一个PHP文件

需要获取insert_id值并将其传递给另一个PHP文件,php,wordpress,contact-form-7,Php,Wordpress,Contact Form 7,我在main.php文件中有这个表单函数,可以使用Contact form 7插件将提交的数据保存在数据库中。我需要从下面的函数中获取$lastid值,并将其传递给query.php,以根据ID更新我的查询。如何做到这一点 main.php function user_data_form( $wpcf7 ) { global $wpdb; $title = $wpcf7->title(); $form = WPCF7_Submission::get_instance(); i

我在main.php文件中有这个表单函数,可以使用Contact form 7插件将提交的数据保存在数据库中。我需要从下面的函数中获取
$lastid
值,并将其传递给query.php,以根据ID更新我的查询。如何做到这一点

main.php

function user_data_form( $wpcf7 ) {

global $wpdb;

$title = $wpcf7->title();
$form = WPCF7_Submission::get_instance();

    if ($form) {
        $data = $form->get_posted_data();

        if ( $title == 'User Data' ) {

            $name = $data['name'];
            $email = $data['email'];
            $bio = $data['bio'];
            $url = $data['url'];            

            $wpdb->insert( $wpdb->prefix . 'user_data', 
            array( 
                'name'  => $name,
                'email' => $email,
                'bio' => $bio,
                'url' => $url
                ), array( '%s', '%s', '%s', '%s' )
            );
            $lastid = $wpdb->insert_id;
        }
    }
}
add_action( 'wpcf7_before_send_mail', 'user_data_form' );


define('ROOTDIR', plugin_dir_path(__FILE__));
    require_once(ROOTDIR . 'query.php');
$wpdb->update( $wpdb->prefix . 'user_data', 
    array( 'status' => $status ), 
    array( 'ID' => $lastid ), 
    array( '%s' ), array( '%d' ) 
);
query.php

function user_data_form( $wpcf7 ) {

global $wpdb;

$title = $wpcf7->title();
$form = WPCF7_Submission::get_instance();

    if ($form) {
        $data = $form->get_posted_data();

        if ( $title == 'User Data' ) {

            $name = $data['name'];
            $email = $data['email'];
            $bio = $data['bio'];
            $url = $data['url'];            

            $wpdb->insert( $wpdb->prefix . 'user_data', 
            array( 
                'name'  => $name,
                'email' => $email,
                'bio' => $bio,
                'url' => $url
                ), array( '%s', '%s', '%s', '%s' )
            );
            $lastid = $wpdb->insert_id;
        }
    }
}
add_action( 'wpcf7_before_send_mail', 'user_data_form' );


define('ROOTDIR', plugin_dir_path(__FILE__));
    require_once(ROOTDIR . 'query.php');
$wpdb->update( $wpdb->prefix . 'user_data', 
    array( 'status' => $status ), 
    array( 'ID' => $lastid ), 
    array( '%s' ), array( '%d' ) 
);

我尝试使用
数组('ID'=>$lastid)
,但它一直返回空值。

您可以将其设置为全局变量,以便在query.php上访问它(就像我们使用
$wpdb
时所做的那样)@Temani感谢您的回复,亲爱的。所以你的建议是:
global$lastid$lastid=$wpdb->insert_id
和query.php中的:
global$lastid;数组('ID'=>$lastid)
right?是的,您还需要在函数外部声明变量be。在main.php中,您可以添加outisde函数
$lastid=0并且不需要在该文件中显示全局变量,因为该变量是可见的。在query.php中,它就像您所做的那样
global$lastid;数组('ID'=>$lastid)
@Temani很抱歉,它不工作。我把
$lastid=0
函数user_data_form($wpcf7){
之前,正如您所说,但它仍然返回空值:(顺便问一下,您在query.php中调用查询的方式和时间?您可以将其设为全局变量,以便可以在query.php上访问它(例如,我们使用
$wpdb
)@谢谢你的回复,亲爱的。所以你的建议是:
global$lastid;$lastid=$wpdb->insert_id;
在query.php中:
global$lastid;array('id'=>$lastid)
对吗?是的,您也需要在函数外部声明变量。在main.php中,您可以添加outisde函数
$lastid=0;
并且不需要全局变量,因为变量是可见的。在query.php中,这与您执行的
全局$lastid;数组('ID'=>$lastid)类似
@Temani很抱歉,它不起作用。我把
$lastid=0;
放在
函数user\u data\u form($wpcf7){
前面,就像你说的,但它仍然返回空值:(顺便问一下,你是如何在query.php中调用查询的,什么时候?