Удалите теги <p> из атрибутов продукта в WooCommerce

WooCommerce автоматически добавляет тег <p> ко всем атрибутам товара после веса и размеров. Это означает, что форматирование атрибутов товара меняется после первых 2-х строк.

Я полагаю, что в приведенном ниже коде (из wc-template-functions.php) автоматически добавляется <p>, однако я не могу понять, как удалить wpautop без непосредственного редактирования wc-template-functions.php. Я уверен, что это можно применить с каким-то фильтром. Любая помощь в выяснении того, как удалить это, будет принята с благодарностью.

$product_attributes[ 'attribute_' . sanitize_title_with_dashes( $attribute->get_name() ) ] = array(
            'label' => wc_attribute_label( $attribute->get_name() ),
            'value' => apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values ),
        );

🤔 А знаете ли вы, что...
PHP активно обновляется и совершенствуется, чтобы соответствовать современным стандартам.


2
960
2

Ответы:

Как насчет этого...

str_ireplace(array('<p>','</p>'),'',wpautop( wptexturize( implode( ', ', $values ) ) ) )

Решено

Просто используйте доступный хук фильтра woocommerce_attribute, удаляя wpautop(), например:

add_filter( 'woocommerce_attribute', 'woocommerce_attribute_filter_callback', 10, 3 );
function woocommerce_attribute_filter_callback( $formatted_values, $attribute, $values ) {
    return wptexturize( implode( ', ', $values ) );
}

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