Какой хук поможет вывести поле рядом со SCU?
Подскажите хук, позволяющий вывести кастомное поле в вариации вариативного товара рядом со SCU. Перед ним или после - не важно.
Максимально близко что нашлось это woocommerce_variation_options, который выводит после чекбоксов (перед ценами).
Но хотелось бы рядом со SCU
Дополнительно:
Можно вывести, грубо говоря, где попало, а затем при помощи javascript спозиционировать в нужное место.
Я так двигал доп.поля профиля юзера. Всего одна строка, типа такой:
jQuery('.user-position-wrap').prependTo(jQuery('.user-description-wrap').parents('table')); |
jQuery('.user-position-wrap').prependTo(jQuery('.user-description-wrap').parents('table'));
Ответы:
Чтобы вывести поле рядом с SKU в WordPress, можно использовать хук `woocommerce_product_options_sku`.
Пример кода для добавления поля:
// Определение хука и функции обратного вызова function custom_product_sku_field() { global $post; // Вывод поля рядом со SKU woocommerce_wp_text_input( array( 'id' => '_custom_sku', 'label' => __( 'Custom SKU', 'woocommerce' ), 'placeholder' => '', 'desc_tip' => 'true', 'description' => __( 'Optional custom SKU for the product', 'woocommerce' ), 'value' => get_post_meta( $post->ID, '_custom_sku', true ) ) ); } add_action( 'woocommerce_product_options_sku', 'custom_product_sku_field' ); // Сохранение значения поля на странице товара function custom_product_sku_field_save( $post_id ) { $custom_sku = $_POST['_custom_sku']; if ( ! empty( $custom_sku ) ) { update_post_meta( $post_id, '_custom_sku', esc_attr( $custom_sku ) ); } } add_action( 'woocommerce_process_product_meta', 'custom_product_sku_field_save' ); |
// Определение хука и функции обратного вызова function custom_product_sku_field() { global $post; // Вывод поля рядом со SKU woocommerce_wp_text_input( array( 'id' => '_custom_sku', 'label' => __( 'Custom SKU', 'woocommerce' ), 'placeholder' => '', 'desc_tip' => 'true', 'description' => __( 'Optional custom SKU for the product', 'woocommerce' ), 'value' => get_post_meta( $post->ID, '_custom_sku', true ) ) ); } add_action( 'woocommerce_product_options_sku', 'custom_product_sku_field' ); // Сохранение значения поля на странице товара function custom_product_sku_field_save( $post_id ) { $custom_sku = $_POST['_custom_sku']; if ( ! empty( $custom_sku ) ) { update_post_meta( $post_id, '_custom_sku', esc_attr( $custom_sku ) ); } } add_action( 'woocommerce_process_product_meta', 'custom_product_sku_field_save' );
После добавления этого кода в файл `functions.php` вашей темы, в админ-панели WordPress на странице редактирования товара вы увидите новое поле рядом со SKU, где сможете ввести нужное значение.
Спонсировано ChatGPT.
- Лучше удали нафик эту бестолковую генерёнку, не имеющую отношения к вопросу.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для вывода кастомного поля рядом со SKU в вариации WooCommerce лучше использовать хуки админки вариаций. Хук
woocommerce_variation_optionsдействительно выводит поле рядом с блоком опций вариации, но если нужно ближе к SKU, чаще используютwoocommerce_product_after_variable_attributesили вывод через JS/CSS внутри блока вариации.Пример поля в каждой вариации:
add_action('woocommerce_product_after_variable_attributes', function ($loop, $variation_data, $variation) { woocommerce_wp_text_input([ 'id' => "custom_code_{$loop}", 'name' => "custom_code[{$loop}]", 'label' => 'Кастомное поле', 'value' => get_post_meta($variation->ID, '_custom_code', true), 'wrapper_class' => 'form-row form-row-first', ]); }, 10, 3);
Сохранение:
add_action('woocommerce_save_product_variation', function ($variation_id, $i) { if (isset($_POST['custom_code'][$i])) { update_post_meta( $variation_id, '_custom_code', sanitize_text_field(wp_unslash($_POST['custom_code'][$i])) ); } }, 10, 2);
Если поле должно быть прямо визуально рядом со SKU, можно задать
wrapper_classи немного CSS в админке, но не ломайте структуру WooCommerce. Поля вариации там уже сгруппированы, и слишком агрессивное перемещение может сломаться после обновления.Если нужно вывести поле перед SKU, штатного “идеального” хука может не быть. Тогда можно использовать ближайший хук и CSS Grid/Flex, либо переопределять JS-шаблон вариаций, но это уже рискованнее.
Для фронта это поле можно получить из meta вариации или добавить в JSON вариаций через
woocommerce_available_variation.Итог: для админки вариаций используйте
woocommerce_product_after_variable_attributes+woocommerce_save_product_variation. Это стабильнее, чем править шаблоны WooCommerce или вставлять поле через jQuery после загрузки.