使用function.php在单个产品上创建元数据

使用function.php在单个产品上创建元数据,php,wordpress,woocommerce,filtering,meta,Php,Wordpress,Woocommerce,Filtering,Meta,我正在努力让元数据通过functions.php正确过滤 如果我在我的子主题中编辑meta.php没有问题,我就可以做到这一点: (短篇故事——但因为我使用的是Avada主题——并且它们在升级时更改了子主题的位置,所以我选择了functions.php) 我目前正试图通过以下方式过滤元: add_filter ('woocommerce_product_meta_start','add_pet_info' ); function add_pet_info($pet_info) { $string

我正在努力让元数据通过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; }
我想得到这个结果: 但我就是不能让它工作

你知道我错过了什么吗

谢谢

不是一个过滤器。这是一个动作。因此,如果
将值返回到is,则不会发生任何事情。这应该打印出“测试文本”之前,吴打印任何元

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\u action
都会看到一个可以通过
add\u action()
将函数附加到的动作挂钩

该区域由
add_操作('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 );
函数rei\u添加\u文本\u在\u meta()下面{
在该区域回显“文本”

; } 添加操作('woocommerce\u single\u product\u summary'、'rei\u add\u text\u Lower\u meta',41);

只需玩优先号码。。。小于40将使文本显示在元区域上方。。这段代码中的41将使文本显示在元区域下方。

如果我的假设正确,OP希望它显示在元区域下方。。你的代码将把文本放在meta上面。。如果是这样的话,下面有
woocommerce\u product\u meta\u end
钩子……我也是这么想的,甚至用
woocommerce\u product\u meta\u end
在本地测试了这篇文章。我把它放在
start
上,因为这是原始查询的一部分,但我会编辑它,解释它可以移动。谢谢大家!这真是太棒了!只是想在这后面添加一点背景。。。我之所以选择“Function.php”路径,是因为出于兼容性原因,Avada主题在woocommerce下使用自定义文件结构。我最初设置并运行了所有内容,然后进行了升级,meta.php和price.php消失了,尽管它们在我的子主题中。我发现我必须在我的子主题中添加一个“compatibility/version”文件夹才能让它再次工作。我担心未来的升级会继续删除任何自定义项……为了以防万一,这可以帮助其他人,下面是我使用的一些代码。”如果(获取post meta(获取ID(),'pet\u status\u select',true'):?>