向Woocommerce用户添加高级自定义字段我的帐户页面

时间:2018-05-27 08:32:48

标签: wordpress woocommerce advanced-custom-fields

我正在使用管理列以及 ACF(高级自定义字段) 在后端我在ACF中为一些文本创建了一个字段,现在使用管理列我在后端可以查看该字段,以便我添加一些我想要的文本。

现在我想在前端的my-account页面中显示此文本。 现在我到目前为止,我已将代码段添加到帐户页面,并且可以正常工作。

但它只显示我在ACF中填写的DEFAULT值,而不是我在管理自定义列后端输入的值。

所以为了在我的用户后端页面中进一步澄清,我给用户一串文字。 该文本需要显示在用户帐户的前端

因此所有用户都应该有不同的文本字符串。我可以使用管理列添加的文本 这没有问题,但它只显示(回声,打印)这个文本,我已经填写到woocommerce帐户页面是不工作的。

同样,我只从ACF获得默认结果文本,而不是我放入的文本。

为了获取默认消息,我现在使用的代码是:

<?php echo the_field('ethwallet'); ?>

这是我现在的默认消息。不是我进入后端的结果。

1 个答案:

答案 0 :(得分:0)

我意识到这是一个较旧的问题,但我想提供一个答案,因为它已被查看了数百次。

要从 User 对象中检索自定义元数据(特别是 ACF 字段数据),您需要将当前用户 ID 作为第二个参数传递给 get_fieldthe_field 函数。

像这样:

<?php echo get_field( 'ethwallet', 'user_' . get_current_user_id() ); ?>

它的工作方式是 ACF 需要格式化为 user_X 的第二个参数,其中 X 是用户的实际 ID(1、347,等等)。因此,我们将字符串部分 ('user_') 与登录用户的实际 ID 连接起来,构成要传递给 the_field()get_field() 的完整参数。

附言这是一个次要的细节,但在这种情况下 echo the_field(); 是多余的,因为 the_field() 默认回显其值。您可能会省略 echo 或执行 echo get_field();