Woocommerce хороший плагин, но иногда нужно его доработать под свои нужды.
Передо мной стояла задача добавить поле, куда будет добавляться краткие характеристики товара. Потом их нужно отобразить в товаре на странице категорий.
И так для моих целей нужно создать поле с редактором wp для удобства.
Хук и функция для добавления поля
add_action( 'woocommerce_product_options_general_product_data', 'art_woo_add_custom_fields' );
function art_woo_add_custom_fields() {
global $product, $post;
?>
<div class="options_group">
<h2><strong>Описание в категории товаров</strong></h2>
<?php
wp_editor(get_post_meta( $post->ID, '_custom_desc', true ), 'custom_desc', array(
'wpautop' => 1,
'media_buttons' => 1,
'textarea_name' => 'custom_desc',
'textarea_rows' => 5,
'tabindex' => null,
'editor_css' => '<style>.quicktags-toolbar, .wp-editor-tools, .wp-editor-wrap, .wp-switch-editor {padding: 5px 10px;}</style>',
'editor_class' => 'form-field',
'teeny' => 0,
'dfw' => 0,
'tinymce' => 1,
'quicktags' => 1,
'drag_drop_upload' => false
) );
?>
</div>
<?php
}
Дальше сохраняем их
add_action( 'woocommerce_process_product_meta', 'art_woo_custom_fields_save', 10 );
function art_woo_custom_fields_save( $post_id ) {
// Сохранение области тектса
$woocommerce_textarea = $_POST['custom_desc'];
if ( ! empty( $woocommerce_textarea ) ) {
update_post_meta( $post_id, '_custom_desc', $woocommerce_textarea );
}
}
Вот что получилось
После проверки что все работает и все сохраняется. Выведем содержимое в карточке.
//вывод после заголовка в карточке товара на странице категорий
add_action( 'woocommerce_after_shop_loop_item_title', 'artabr_add_field_after_price', 11 );
function artabr_add_field_after_price() {
global $post, $product;
$text_field = get_post_meta( $post->ID, '_custom_desc', true );
if ( $text_field ) {
?>
<div class="_custom_desc">
<?php echo $text_field; ?>
</div>
<?php }
}
В итоге все получилось так.
Если нужно больше подобных примеров, пишите в коментарии.
Сергей
- 24 апреля 2019, 11:28 ↓А внутри страницы товара, они будут отображаться?
Admin
- 24 апреля 2019, 11:37 ↓Типо так