Отображение значений настраиваемых полей после краткого описания товара в Woocommerce - PullRequest
0 голосов
/ 13 июня 2018

Меня попросили добавить некоторые настраиваемые поля на сайт woocommerce, который мы разработали.Я добавил их, используя поле meta: в инструменте импорта CSV, и он успешно импортировал информацию на страницу продукта в качестве настраиваемого поля.

Сложность в том, что я хочу иметь возможность отображать настраиваемое поле на странице продукта, я проверил документацию и онлайн-форумы без особой удачи.

Как отобразить значение настраиваемого поля под выдержкой о продукте на отдельных страницах продукта?

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

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Вы можете использовать хук WooCommerce в вашем functions.php, если вы не хотите копировать и настраивать файл шаблона WooCommerce в свою собственную тему:

// Add ACF field data to Product page
add_action( 'woocommerce_after_single_product_summary', 'my_acf_product_content', 10 );
function my_acf_product_content() {

    $test_field = get_field( 'test_field' );

    if ( $test_field ) {
        echo '<h3>ACF Content Header</h3>';
        echo '<div>' . $test_field . '</div>';
    }
}

Для справки о том, куда вы хотите вывестиданные поля на странице продукта (в примере "woocommerce_after_single_product_summary"), вы можете ссылаться на эту ссылку, которая, как я считаю, должна быть еще актуальна: https://businessbloomer.com/woocommerce-visual-hook-guide-single-product-page

0 голосов
/ 13 июня 2018

Поскольку эти пользовательские поля данных являются метаданными публикации продукта (находится в wp_postmeta таблица базы данных) , у вас есть 2 варианта получения мета-значений с использованием:

  • Woocommerce get_meta() WC_Data метод на WC_Product объекте продукта ( лучший способ с использованием новых CRUD-методов представлен в Woocommerce 3) .
  • Wordpress get_post_meta() выделенная функция из идентификатора продукта (по-старому)

Следующий код отобразит ваше настраиваемое поле после краткого описания продукта.Вам нужно будет заменить в коде _custom_meta_key реальным слагом метаключа:

// Display a product custom field after product short description
add_action( 'woocommerce_single_product_summary', 'display_product_custom_field', 25 );
function display_product_custom_field(){
    global $product;

    $value = $product->get_meta('_custom_meta_key', true ); 
    // OR
    // $value = get_post_meta( $product->get_id(), '_custom_meta_key', true );

    if( ! empty( $value ) )
        echo '<p>'.__('My value', 'woocommerce') . ': ' . $value . '</p>';
}

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

0 голосов
/ 13 июня 2018

Почему бы вам не попробовать отредактировать файл в woocommerce: single-product.php or content-single-product.php

Затем используйте расширенные настраиваемые поля для отображения вашего контента - https://www.advancedcustomfields.com/resources/text/

<h2><?php the_field('text'); ?></h2>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...