Удалить структурированные данные со страниц отдельных продуктов Woocommerce

Я пытаюсь удалить structured data что Woocommerce добавляет на страницы продукта.

Я провел некоторое исследование и обнаружил, что WC_Structured_Data::generate_product_data() генерирует разметку структурированных данных. Это зацепило в woocommerce_single_product_summary действие крюк в woocommerce/templates/content-single-product.php файл шаблона.

Я попытался, добавив следующий код в functions.php

remove_action( 'woocommerce_single_product_summary', 'WC_Structured_Data::generate_product_data()', 60 );

Таким образом, структурированные данные не будут добавлены Woocommerce, но это не работает

Я делаю что-то неправильно? Есть ли другой способ сделать то, что я пытаюсь достичь?

1

Решение

Вместо этого вы можете использовать специальный фильтр 'woocommerce_structured_data_product' который находится в WC_Structured_Data за generate_product_data() метод обнулить вывод структурированных данных на отдельных страницах продукта:

add_filter( 'woocommerce_structured_data_product', 'structured_data_product_nulled', 10, 2 );
function structured_data_product_nulled( $markup, $product ){
if( is_product() ) {
$markup = '';
}
return $markup;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

2

Другие решения

Я подозреваю, что люди хотят удалить вкладки по умолчанию, и они приходят сюда после того, как они видят Woocommerce content-single-product.php шаблон. В этом шаблоне вы видите, что generate_product_data() подключен с приоритетом 60.

После осмотра крючков, которые работают на woocommerce_single_product_summary,

Вы можете легко удалить вкладки с помощью:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 60 );

Я думаю, что Woocommerce забыл упомянуть эту add_action.

0

По вопросам рекламы [email protected]