【问题标题】:How to enumerate the forms in cf7?如何枚举cf7中的表格?
【发布时间】:2023-03-25 13:02:01
【问题描述】:

我是网页设计的新手。我正在使用联系表 7 为我们的会议创建一个注册表。

我想要做的是,在他们注册会议后,我需要为他们提供一个唯一的 id,并且应该使用这个唯一的 id 来识别进一步的表格。

到目前为止,我已经安装了联系表格 7 和 contact form dtx 为此,我尝试了Koen de Bakker 生成随机数的解决方案。

但这与我想要的略有不同,因为它会更改每次刷新的随机数。

我想要的是:

  1. 应为每次提交的表单生成一个唯一编号,例如“17ICLAA001,...”。

  2. 在连续提交表单后,将唯一编号发送给申请人。(我希望这可以在完成短代码后轻松完成)。

  3. 使用唯一 ID 编辑表单。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: php jquery wordpress forms contact-form-7


    【解决方案1】:

    我找到了一种方法来做到这一点。它只是表格中的行数+1。

    当您向表中添加记录时,以下代码中的唯一编号也会增加 1。在您的主题中的 function.php 中添加以下函数,并使用短代码“row_count”来调用该函数。将它与来自 d​​tx 的动态隐藏文本一起使用。

    function row_count_shortcode() {
    global $wpdb;
    $user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->username_wp1.SaveContactForm7_1" )+1;
    return "17ICLAA".sprintf('%03d',$user_count);
    }
    add_shortcode( 'row_count', 'row_count_shortcode' );
    

    通常当您使用联系表单7创建联系表单时,它会自动在您的数据库中创建一个表,类似于

    用户名_wp1.SaveContactForm7_1

    代替这个替换你的数据库表名。

    所以在您的联系表格中输入

    [动态隐藏的唯一标识符“row_count”]

    并在您的电子邮件正文中使用 [uniqueid] 来达到您的目的。

    它工作正常。我已经检查了我的网站。

    【讨论】:

      【解决方案2】:

      生成唯一和累进数字的正确方法是在 wp_option 中设置一个字段,如下所示:

      add_option('unique_number', '1');
      

      当调用过滤器时,你必须简单地增加这个唯一的数字:

      function genTicketString() {
          $currentUniqueNumber = get_option('unique_number');
          $newCurrentUniqueNumber = $currentUniqueNumber + 1;
          update_option('unique_number' $newCurrentUniqueNumber );
      
          return $newCurrentUniqueNumber;        
      }
      
      add_shortcode('quoteticket', 'genTicketString');
      

      【讨论】:

      • 请告诉我如何在 cf7 中使用它并将唯一编号发送给用户。我是cf7的新手。我已经在我的function.php 中复制了该函数。在哪里添加 add_option('unique_number', '1')?
      • 是否可以为返回 "17ICLAA$newCurrentUniqueNumber; 之类的数字添加我的前缀?以及如何以三位数字开头?即 17ICLAA001 而不是 17ICLAA1。
      • 也许这会有所帮助:stackoverflow.com/questions/6296822/…
      • 它很有魅力。每次刷新页面时它都会增加。在单击提交按钮之后和发送邮件之前,有没有其他方法可以创建这样一个随机数?这样我就可以在电子邮件正文中添加这个号码,它也会在数据库中。
      • @maribros 顺便说一句,您在 update_option 中错过了一个逗号,这给了我一条错误消息。我终于注意到了。哈哈
      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多