ACF 字段未显示在我的 WooCommerce 成员资格字段上

ACF field doesn't show on my WooCommerce membership fields

提问人:Arun Saini 提问时间:6/8/2023 最后编辑:LoicTheAztecArun Saini 更新时间:6/29/2023 访问量:131

问:

我最近在研究WordPress。我遇到了一个关于 ACF 的问题。ACF 字段未显示在我的 WooCommerce 成员资格字段上

我在这里设置的帖子类型等于会员计划:

在此处输入图像描述

这在 ACF 选项中不可用,并且成员计划中没有自定义字段:post_typepost_type

在此处输入图像描述

我只期望一件事,即如何在会员计划编辑器中显示上述自定义字段 (ACF)。

WordPress WooCommerce Advanced-custom-Fields 会员

评论

0赞 Caleb 6/8/2023
请添加会员计划编辑屏幕的屏幕截图,屏幕选项抽屉打开:wpbeginner.com/glossary/screen-options
0赞 Curious Toad 6/29/2023
有趣的是,我刚刚偶然发现了这个问题。在位置规则中选择帖子类型“wc_membership_plan”作为选项时,它永远不会在编辑页面上输出。经过一个令人沮丧的小时后,我刚刚回忆起他们的 Teams for WC Memberships 插件的类似问题。它们限制在其编辑页面上显示的元框。这似乎有一个过滤器 - wc_memberships_allowed_meta_box_ids。这个链接(尽管是针对 Pod,而不是 ACF)可能会有所帮助:github.com/pods-framework/pods/issues/4675
0赞 Curious Toad 6/29/2023
另一种选择也可以是挂钩到选项卡并添加常规自定义字段,如此处的教程所示: rudrastyh.com/woocommerce/memberships-plan-settings-tabs.html 不过,我确实对这种方法感到沮丧,因为我想做的就是使用 ACF 的 Post Object 字段来选择相关帖子。这是一个比输入帖子 ID 更好的界面!
0赞 Curious Toad 6/29/2023
啊哈!我有这个工作 - 现在会为你写一个答案。
0赞 Curious Toad 7/14/2023
嘿@ArunSaini - 你试过发布的解决方案吗?如果是这样,你能接受答案作为解决方案吗?

答:

0赞 Curious Toad 6/29/2023 #1

我今天自己遇到了这个问题,并且已经弄清楚了。这是因为 WooCommerce Memberships 插件限制了可以在编辑页面上显示的元框。

我在他们的姊妹插件中遇到了同样的问题, Teams for WooCommerce Memberships.

在这两个插件中,它们都提供了一个过滤器,用于将您的元框添加到白名单中。对于 WooCommerce 会员资格,它是:

wc_memberships_allowed_meta_box_ids

如果你想允许一个名为 的自定义元框,你可以这样做:my_meta_box

add_filter( 'wc_memberships_allowed_meta_box_ids', 'my_custom_wc_memberships_allowed_meta_box_ids' );

function my_custom_wc_memberships_allowed_meta_box_ids( $ids ) {

   $ids[] = 'my_meta_box';

   return $ids;

}

但在这里,我们希望添加一个由高级自定义字段创建的元框,而不是我们从头开始创建的元框。我们如何找到它的元框 ID?

如果您转到所需字段组的编辑字段组页面,我们可以找到它。

  1. 打开屏幕选项。
  2. 蜱。slug
  3. 在 slug 面板中,获取组名称。例如,我的是.group_649caa05c7671
  4. 在此值前面加上“acf-”,您就拥有了元框 ID!我的将是.acf-group_649caa05c7671

因此,一个完整的过滤函数将是:

add_filter( 'wc_memberships_allowed_meta_box_ids', 'my_acf_wc_memberships_allowed_meta_box_ids' );

function my_acf_wc_memberships_allowed_meta_box_ids( $ids ) {

   $ids[] = 'acf-group_649caa05c7671';

   return $ids;

}

我测试了在会员计划中保存和检索字段,它很有效。

奖励内容!

通过计划详细信息选项卡添加字段

对于那些想要在没有 ACF 的情况下添加常规自定义字段的用户,您可以使用过滤器向“会员计划”设置面板添加额外的选项卡。Misha Rudrastyh 对此有一个很好的教程wc_membership_plan_data_tabs

添加到 Teams 以获得 WooCommerce 会员资格

如上所述,我最初加入了这个问题的点,因为我在姊妹插件上看到了类似的内容。对于那些需要在团队编辑页面上添加元框的人来说,过滤器非常相似:

wc_memberships_for_teams_allowed_meta_box_ids

由于:

找到 ACF 元框的功劳归高级广告所有。谢谢大家!