添加用户自定义域并使其在前端可编辑

时间:2019-02-03 作者:Benjamin

我们正在寻找一种在用户/订阅者购买产品(Woocommerce)后向其添加高级自定义字段数据的方法。订阅者应该能够在前端编辑这些字段并保存到自己的帐户。我们一直在使用Buddypress的XProfile字段来处理这个问题,但这对于我们需要做的事情并不理想。

我们知道您可以使用ACF添加用户字段,但如何将这些字段带到前端?

2 个回复
SO网友:RiddleMeThis

ACF有一种内置的方法来实现这一点。它的acf_form(). 基本上,它允许您在前端构建一个表单,以更新自定义字段。

下面是他们网站上的一个基本示例。注意使用acf_form_head(), 这是实际保存数据所必需的。

<?php acf_form_head(); ?>
<?php get_header(); ?>

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

            <?php /* The loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

                <?php acf_form(array(
                    \'post_id\'   => 123,
                    \'post_title\'    => false,
                    \'submit_value\'  => \'Update the post!\'
                )); ?>

            <?php endwhile; ?>

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

<?php get_sidebar(); ?>
<?php get_footer(); ?>
如其中一条评论所述,this tutorial 基本上引导您完成您要做的事情。

SO网友:Anton Shinkarenko

您可以以类似的方式在前端使用ACF

$user_id = \'user_\' . $user->ID . \'\';
$field = get_field( \'some_field\', $user_id );
请注意,必须设置某些设置

enter image description here

然后可以使用AJAX从前端更新必要的字段

$post_id = $_POST[\'post_id\'];
$some_post_data = $_POST[\'some_post_data\'];
$field_ref = get_field_reference(\'some_field\', $post_id);
$field = get_field(\'some_field\', $post_id);

$value = $field;
var_dump($value);
//$value modification
update_field($field_ref, $value, $post_id);

相关推荐