Добавляем произвольные поля товаров (WooCommerce)

05.02.2017 | Написав

Часто общего описания для товаров не хватает, и нужно добавить отдельные произвольные поля. Это могут быть совершенно разные данные. Например, я через произвольные поля организовал вывод данных готовых шаблонов на vamshop в разделе «Готовые шаблоны». Сейчас я покажу, как это делается:
Итак, подключим в файл functions.php нашей темы две функции, которые добавляют поля в консоли и позволяют их сохранить:

// Добавляем поля
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Сохраняем поля
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );

Теперь добавим функцию сохранения поля:

function woo_add_custom_general_fields_save( $post_id ){
// Текстовое произвольное поле
$woocommerce_text_field = $_POST['_text_field'];
if( !empty( $woocommerce_text_field ) )
update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );
}

Добавим ввод этого поля в консоли при редактировании товара:

function woo_add_custom_general_fields() {
  global $woocommerce, $post;
  echo '<div class="options_group">';
 
// текстовое поле
woocommerce_wp_text_input( 
array( 
'id' => '_text_field', 
'label'       => __( 'Название произвольного поля', 'woocommerce' ), 
'placeholder' => '',
'desc_tip'    => 'true',
'description' => __( 'Подсказка', 'woocommerce' ) 
)
 
);
  echo '</div>';
}

Теперь на странице редактирования товара в консоли после поля цены появится наше добавленное поле, в которое мы можем добавить произвольный текст.
Осталось его вывести. Для вывода добавим вызов в нужном файле нашего шаблона WooCommerce так:

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

или вот так:

<?php
echo get_post_meta( get_the_ID(), '_text_field', true );
?>
Рубрика: Веброзробка
Позначки:,
1 коментарій читачів статті "Добавляем произвольные поля товаров (WooCommerce)"
  • Павел пишет:

    Спасибо. Всё работает. Есть один вопрос: а как можно вывести значение этого поля в колонку таблицы товаров на вкладке “Товары” в консоли сайта? Чтобы администратор видел значение не заходя в каждый товар.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.