使用 function.php 的单个产品的 Woocommerce 元数据

Woocommerce meta data on single-product using function.php

我正在努力让元数据通过我的 functions.php 正确过滤。

如果我在我的子主题中编辑 meta.php 没有问题,我可以让它工作: (短篇小说 - 但因为我使用的是 Avada 主题 - 他们在升级时更改了子主题的位置,所以我选择 functions.php)

我目前正在尝试以这种方式过滤元数据:

add_filter ('woocommerce_product_meta_start','add_pet_info' );
function add_pet_info($pet_info) {
$string ="Test Text";
return $pet_info . $string; }

我想得到这个结果: 但我就是无法让它工作。

知道我在这里遗漏了什么吗?

谢谢!

woocommerce_product_meta_start 不是过滤器。这是一个动作。因此,如果您 return 的值为 is,则不会发生任何事情。这应该在 Woo 打印其任何元数据之前打印出 "Test Text"。

add_action('woocommerce_product_meta_start','add_pet_info' );
function add_pet_info($pet_info) {
    _e( "Test Text", "your-textdomain" );
}

不确定您尝试添加代码的确切位置,但请记住,您可以将其添加到 WooCommerce 中可用的任何挂钩(或您的主题中可用的任何挂钩)。

例如,要将测试文本放在产品元数据下方,您可以将上面的内容修改为以下内容:

add_action('woocommerce_product_meta_end','add_pet_info' );
function add_pet_info($pet_info) {
    _e( "Test Text", "your-textdomain" );
}

任何你看到 do_action 的地方,你都在看一个动作挂钩,你可以通过 add_action() 将函数附加到它。

该区域由 add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );

处理

所以你可以做这样的事情...

function rei_add_text_below_meta() {
   echo '<p>TEXT IN THIS AREA</p>';
}
add_action( 'woocommerce_single_product_summary', 'rei_add_text_below_meta', 41 );

只需使用优先级数字...小于 40 将使文本显示在元区域上方。此代码中的 41 将使文本显示在元区域下方。