首页 > 解决方案 > 将值传递到 ACF 前端表单字段

问题描述

我创建了一个自定义帖子类型“候选人”,用于存储申请空缺的候选人提交的信息。我还有一个名为 Vacancy 的自定义帖子类型。

我已将 ACF 用于两组帖子类型的自定义字段。

我已经设置了一个 ACF 前端表单以允许候选人提交申请。我有一个按钮,用户单击空缺将他们发送到表单所在的页面。作为按钮的一部分,我传递了空缺的标题,并且能够在表单所在的页面上传递和回显它(所以它正在传递)。

在我的一生中,我无法让这个空缺标​​题字段自动填充前端表单上的字段。

以下是代码片段。我正在创建前端表单的页面

$vacancy = isset( $_GET['vacancy'] ) ? esc_attr( $_GET['vacancy'] ) : '';
$vacancyurl = isset( $_GET['vacancyurl'] ) ? esc_attr( $_GET['vacancyurl'] ) : '';

acf_form_head();
get_header();

?>



    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">
            <div class="candidateformcontainer">

                <?php /* The loop */ ?>
                <?php while ( have_posts() ) : the_post(); ?>
                    <div>
                       <h1><?php echo get_the_title(); ?></h1>
                        <p>To proceed with submitting your application for <strong><?php echo $vacancy; ?></strong> complete the application form below.</p>
                    </div>
                    <?php 

                    acf_form('acf-candidate-application-form'); 

                    ?>

                <?php endwhile; ?>               

            </div>

        </div><!-- #content -->
    </div><!-- #primary -->

<?php get_footer();

我试图将标题传递给的字段(所以 $vacancy 变量)

<?php the_field( 'vacancy_applied_for' ); ?>
Field Number: field_5dba152669aaf

任何帮助或指示将不胜感激。我已经用尽了 ACF 文档。

标签: phpadvanced-custom-fields

解决方案


因此,感谢 ACF 的出色人员设法得到了这个问题的答案。

您将使用 Prepare Field 过滤器在页面上呈现之前使用传入的值更新该字段。

这是帮助文档的链接:https ://www.advancedcustomfields.com/resources/acf-prepare_field/

使用此过滤器,我需要将以下代码段添加到我的 functions.php 文件中。

    function populate_vacancy_applied_for($field) {
  // only on front end
  if (is_admin()) {
    return $field;
  }
  if (isset($_GET['vacancy'])) {
    $field['value'] = $_GET['vacancy'];
  }
  return $field;
}

add_filter('acf/prepare_field/key=field_5dba152669aaf', 'populate_vacancy_applied_for');

推荐阅读