Отображение пользовательского поля над ценой продукта на страницах отдельных продуктов Woocommerce.

В Woocommerce я правильно установил настраиваемое поле в страницах редактирования товаров с поддержкой… Теперь я пытаюсь отобразить для продукта значение этого настраиваемого поля, прежде чем цена продукта будет отображаться на отдельных страницах товара.

Но по какой-то причине с помощью приведенного ниже кода я могу отобразить его (и цену продукта тоже):

function bd_rrp_price_html( $price, $product ) {

    echo get_post_meta( $post->ID, '_text_field', true );

}
add_filter( 'woocommerce_get_price_html', 'bd_rrp_price_html', 100, 2 );

Любая помощь приветствуется

Это то, что я хочу визуально отображать:

показывая проблему с изображением

1 ответ

Решение

Обновлено (2 варианта)

Попробуйте вместо этого следующий повторный код:

add_filter( 'woocommerce_get_price_html', 'custom_single_price_html', 100, 2 );
function custom_single_price_html( $price, $product ) {
    $custom_field = get_post_meta( $product->get_id(), '_text_field', true );
    if ( is_product() && ! empty($custom_field) )
        $price = '<span class="custom-textfield">' . $custom_field . '</span><br>' . $price;
    return $price;
}

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


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

add_filter( 'woocommerce_single_product_summary', 'single_product_text_field', 8 );
function single_product_text_field() {
    global $product;

    $custom_field = get_post_meta( $product->get_id(), '_text_field', true );
    if ( ! empty($custom_field) )
        echo '<p class="custom-textfield">' . $custom_field . '</p>';
}

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

Другие вопросы по тегам