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



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

我在ACF Field Groups下添加了自定义字段,并将显示规则设置为"Taxonomy»vendor"。这样,自定义字段将显示在每个单独的"Edit vendor"中。仪表板。

在供应商插件文件中,我找到了我想显示自定义字段的地方,这是在文件WooCommerce Product Vendors / includes / woocommerce-product-vendors/includes/class-wc-product-vendors-vendor-frontend.php

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

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

我还尝试将字段保存为变量,然后显示它,再次无效:

<?php
$variable = get_field('field_name');
echo '<p>' . $variable . '</p>';
?>

在这两个例子中,<p>包装元素显示在前端,但自定义字段/变量没有。

我发现一个有趣的事情是,当我使用ACF在WordPress仪表板中创建一个额外的选项面板时,我可以很容易地从供应商页面的选项面板中显示这些变量。下面是我用来创建这个选项面板的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
));
}

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

<?php the_field('sample_option_field', 'option'); ?>

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

谢谢!

谢谢Fresz,术语的定义非常完美。下面是我插入到插件文件中的代码,以正确显示Vendor分类法中的自定义字段:

// get the current taxonomy term
$term = get_queried_object();
// vars
$vendorphoto = get_field('vendor_secondary_photo', $term);
$street = get_field('vendor_street', $term);
$city = get_field('vendor_city', $term);
$state = get_field('vendor_state', $term);
$zip = get_field('vendor_zip', $term);

echo '<img src="'.$vendorphoto.'">';
echo '<p id="sample">'.$street. "<br />" .$city. ", " .$state. " " .$zip.'</p>';

最新更新