function cfwc_create_custom_field() {
$args = array(
'id' => 'custom_text_field_title',
'label' => __( 'Custom Text Field Title', 'cfwc' ),
'class' => 'cfwc-custom-field',
'desc_tip' => true,
'description' => __( 'Enter2 the title of your custom text field.', 'ctwc' ),
);
woocommerce_wp_text_input( $args );
}
add_action( 'woocommerce_product_options_general_product_data', 'cfwc_create_custom_field' );
/**
* Save the custom field Сохранить настраиваемое поле
* @since 1.0.0
*/
function cfwc_save_custom_field( $post_id ) {
$product = wc_get_product( $post_id );
$title = isset( $_POST['custom_text_field_title'] ) ? $_POST['custom_text_field_title'] : '';
$product->update_meta_data( 'custom_text_field_title', sanitize_text_field( $title ) );
$product->save();
}
add_action( 'woocommerce_process_product_meta', 'cfwc_save_custom_field' );
Модератор
Yuri
(@yube)
Не вижу в $args элемента ‘value’. Если поле и сохраняется (легко проверить в БД), то при редактировании значение не выведется.
а чему должно ровняться ‘value’.?
‘value’ => «»?
задача такая кроме стандартных полей заголовок, описание, и т .д. вставляю свое поле например ширина шины в итоге должно получится при сохранении в базе
к примеру:
заголовок =шины, описание =шины капитальные, ширина шины = 185
правильно ли я начал делать?
-
Ответ изменён 5 лет, 6 месяцев назад пользователем nickki2.
Модератор
Yuri
(@yube)
а чему должно ровняться ‘value’.?
Текущему значению. Хотя по идее функция должна сама его брать.
Посмотрите, сохраняется ли значение в базе.
Я когда-то делал нечто похожее, но у меня сохранение было «неправильное»: на хуке save_post банальным update_post_meta.
вставляю свое поле например ширина шины
Это больше похоже на атрибуты товара. Для них у WC уже есть встроенный механизм. Возможно, с ними будет даже лучше, чем с кастомным полем, которое еще надо на фронт-энде как-то выводить.
дело в том что мне нужно добавлять товары в базу после они будут извлекатся все сразу потом фильтроваться т.е сразу вывести на фронт мне не нужно