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

时间:2016-01-09 13:37:56

标签: php wordpress woocommerce filtering meta

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

如果我在我的子主题中编辑meta.php没有问题,我可以使用它: Works with 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; }

我想得到这个结果: What I want 但我无法让它发挥作用。

我在这里缺少什么想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

woocommerce_product_meta_start不是过滤器。这是一个动作。因此,如果你return有价值,那么什么都不会发生。这应该在Woo打印任何元之前打印出“测试文本”。

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()附加功能的操作挂钩。

答案 1 :(得分:0)

该区域由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将使文本显示在元区域下方。