在 WooCommerce 供应商页面中显示 ACF 自定义字段

时间:2021-02-11 16:23:46

标签: wordpress woocommerce advanced-custom-fields vendor wcvendors

我正在尝试通过高级自定义字段在 WooCommerce 供应商页面上显示一组自定义字段。对于基本供应商功能,我使用以下插件:https://woocommerce.com/products/product-vendors/

我在 ACF 字段组下添加了自定义字段,并将显示规则设置为“分类»供应商”。有了这个,自定义字段就会显示在每个单独的“编辑供应商”仪表板中。

在供应商插件文件中,我找到了要显示自定义字段的位置,位于文件 SELECT * FROM tbl t WHERE EXISTS ( SELECT 1 FROM ( SELECT 'val1%' AS val FROM dual UNION ALL SELECT 'val2%' AS val FROM dual -- ... -- or simply use an subquery here ) WHERE t.my_col LIKE val )

的第 210 行

最初我尝试使用以下基本 ACF 代码来显示自定义字段,但无济于事:

WooCommerce Product Vendors / includes / woocommerce-product-vendors/includes/class-wc-product-vendors-vendor-frontend.php

我也试过将字段保存为变量然后显示它,再次无济于事:

<p id="sample"><?php the_field('field_name'); ?></p>

在这两个示例中,<?php $variable = get_field('field_name'); echo '<p>' . $variable . '</p>'; ?> 包装元素显示在前端,但自定义字段/变量没有显示。

我发现一件有趣的事情是,当我使用 ACF 在 WordPress 仪表板中创建附加选项面板时,我可以轻松地从供应商页面中的选项面板中显示这些变量。以下是我用来创建此选项面板的 <p> 代码:

functions.php

然后在上面引用的插件文件中,如果我插入以下脚本,它会完美地显示选项面板字段:

if( function_exists('acf_add_options_page') ) {
    
    acf_add_options_page(array(
        'page_title'    => 'Additional Theme Options',
        'menu_title'    => 'Additional Theme Options',
        'menu_slug'     => 'additional-Theme-options',
        'capability'    => 'edit_posts',
        'redirect'      => false
    ));
}

选项面板路由的问题是这些是全局的、单一的变量,而不是在每个供应商的基础上注册。

谢谢!

1 个答案:

答案 0 :(得分:0)

感谢 Fresz,定义这些术语非常有效。以下是我插入插件文件以正确显示供应商分类中的自定义字段的代码:

      context.document.getSelection();
      var cc = context.document.body.insertContentControl();
      cc.color = 'orange';
      cc.tag = 'wikindx-bibliography';
      cc.title = 'Bibliography';
      cc.insertHtml('A reference', "End");