【问题标题】:Wordpress Enfold contact form code snippedWordpress Enfold 联系表单代码片段
【发布时间】:2020-08-03 12:49:53
【问题描述】:

我有 WordPress 版本 5.4.2 折叠 4.7.6.1 使用默认联系表想动态更改主题

我想要做的是将 URL 中的 id 获取到主题字段中,但只能部分工作

主题仅适用于第一部分,“查询关于 - ”,但 $id 未显示 更新 id 来自 URL 示例 http://www.website.com/form?id=12

代码sn-p如下

// Apply to fields named "Subject".
add_filter('avf_form_subject','avia_change_mail_subject', 10, 3);
function avia_change_mail_subject($subject, $new_post, $form_params) {
   
    if( is_page( 242 ) ):
    $id = $_GET['id'];
            //$subject = 'Enguiry About –  '$id;
            $subject = 'Enquiry About – ' . urldecode($id);
    
    endif;
    return $subject;
}

【问题讨论】:

  • id 来自哪里?你是用表格提交的吗?它实际上是否出现在此页面的 url 中(WP 去掉了保留字)?你真的可以在调用这个钩子的地方访问$_GET吗?
  • id 来自 URL 请参阅上面我的问题中的更新。如果我将 id 设为简码,我可以让它毫无问题地显示在页面上。但是一旦我将它添加到上面的sn-p中,它就不起作用了
  • 是的,但是您真的可以在 URL 中看到它吗?正如我所说,WP 会从 URL 中去除保留字,因此它可能会被删除。正如我也说过的,您是否检查过 $_GET 在调用它的位置是否可以访问?您是否尝试将其打印出来,看看它是否有您的 ID 或任何其他值?根据您提供的信息,我们没有足够的信息来提供帮助,因此您需要进行更多调试以帮助我们缩小范围。
  • @FluffyKitten 是的,我可以在 URL 中看到它,如果我使用简码,我可以在屏幕上看到它,但由于某种原因不在主题行上,我尝试使用 $_REQUEST,如下所示回答但仍然没有运气。
  • 如果将 $_GET(或 $_REQUEST)打印到屏幕上会得到什么? var_dump($_GET);

标签: wordpress email subject


【解决方案1】:

你想要242的页面标题吗?

更新 而不是$_GET,试试$_REQUEST

add_filter('avf_form_subject','avia_change_mail_subject', 10, 3);
function avia_change_mail_subject($subject, $new_post, $form_params) {
   
    if( is_page( 242 ) ):
   
        $id = $_REQUEST['id'];
        $subject = 'Enquiry About –  $id;

    endif;

    return $subject;
}

【讨论】:

  • 对不起,URL 中包含 id,例如 website.com/form?id=12。但我无法做到这一点,因此请在表单主题行中显示
猜你喜欢
  • 2018-07-13
  • 2014-06-26
  • 2018-10-01
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多