WooCommerce在WC_Structured_Data中覆盖generate_product_data

时间:2017-12-19 09:43:39

标签: php woocommerce hook-woocommerce

目前我正在制作的网站显示Ex Vat的价格,下面是inc Vat价格。我有一个问题,即结构化数据显示的是ex Vat价格,它在Google商家中心显示为需要inc Vat价格的警告。

我在我的functions.php中添加了一个函数来覆盖它并获得包含税的价格,除了删除创建的旧结构化数据之外,这是有效的。

我的代码如下:

remove_action( 'woocommerce_single_product_summary', array( 'WC_Structured_Data', 'generate_product_data' ), 60 );
add_action( 'woocommerce_single_product_summary', 'dci_generate_product_data', 60 ); 

我最终得到的产品有两个结构化数据,一个是原始的Vat价格,一个是我添加的inc Vat价格。所以看起来我的删除操作无法正常工作。有没有人知道为什么会这样!?

1 个答案:

答案 0 :(得分:0)

我通过更改我的重写功能来解决这个问题:

WC()->structured_data->set_data( apply_filters( 'woocommerce_structured_data_product', $markup, $product ) );

为:

WC()->structured_data->set_data( apply_filters( 'woocommerce_structured_data_product', $markup, $product ), true );

这是替换,而不是在结构化数据对象上调用set_data时添加,而是给我所需的效果。