簡體   English   中英

如何通過聯系表7獲取最后插入的ID,然后將其分配給全局變量

[英]How to get last inserted id via Contact Form 7, and then assign it to a global variable

我正在嘗試通過聯系表格7獲取最后插入的id值,然后將其分配給全局變量以在另一個PHP文件的函數中使用它。

這是我的代碼:

$lastid = 0;

function user_data_form( $wpcf7 ) {

global $wpdb;

$wpcf7 = WPCF7_ContactForm::get_current();
$form = WPCF7_Submission::get_instance();

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

     if ( $wpcf7->id == 5285 ) {

        $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' );

表單提交成功后,它將重定向到另一個頁面。 現在進行測試,我創建此函數以回顯最后插入的ID:

function echo_last_id() {
   global $wpdb;
   global $lastid;
      echo $lastid;
      var_dump($lastid);
}
add_shortcode( 'get-id', 'echo_last_id' );

我不知道為什么,但是它一直返回到0。已經一個月了,我無法解決這個問題。 如果有人可以幫助我,我將永遠感激不已。

據我所知,CF7沒有將表單提交到任何數據庫表中。 因此您無法獲取最后插入的ID,因為它不存在。

您可以通過使用CF7操作(例如“ wpcf7_before_send_mail”)保存數據,獲取數據並將其插入到某些自定義表中,也可以使用插件-> https://wordpress.org/plugins/flamingo/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM