将值传递到“ ACF前端表单”字段中

时间:2019-11-13 18:00:28

标签: php advanced-custom-fields

我创建了一个自定义职位类型“候选人”,该职位类型将用于存储申请空缺的候选人提交的信息。我也有一个自定义帖子类型,称为“空缺”。

我已经在两组帖子类型的自定义字段上使用了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文档。

1 个答案:

答案 0 :(得分:0)

因此,感谢ACF出色的人员设法解决了这个问题。

您将使用“准备字段”过滤器来更新字段,并在页面上呈现该字段之前先使用您传递的值。

以下是帮助文档的链接: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');