You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
4.1 KiB
87 lines
4.1 KiB
<?
|
|
|
|
|
|
// woocommerce_product_options_pricing - // после цен
|
|
|
|
|
|
/**
|
|
* Start: Добавление табов и полей в стандартной форме редактирования товара Woocommerce
|
|
*/
|
|
|
|
/* Создание в форме редактирования товара Woocommerce своей вкладки и поля "Состав" */
|
|
// Создание пользовательской вкладки "Состав"
|
|
add_filter('woocommerce_product_data_tabs', function ($tabs) {
|
|
$tabs['composition_tab'] = array(
|
|
'label' => 'Состав',
|
|
'target' => 'composition_product_data',
|
|
// 'target' => 'shipping_product_data', // вывело поля от Доставк в вкладку "Состав"
|
|
'class' => array('composition'), // выводим у вкладки класс "composition_tab"
|
|
'priority' => 60,
|
|
);
|
|
return $tabs;
|
|
});
|
|
// Вывод пользовательского поля в пользовательской вкладке "Состав"
|
|
add_action('woocommerce_product_data_panels', function () {
|
|
global $post;
|
|
$composition = get_post_meta($post->ID, '_composition', true); // получить значения сохраненные в БД
|
|
echo '<div id="composition_product_data" class="panel woocommerce_options_panel">';
|
|
woocommerce_wp_textarea_input([
|
|
'id' => '_composition',
|
|
'label' => 'Состав',
|
|
'desc_tip' => true,
|
|
'description' => 'Введите состав товара',
|
|
'value' => $composition // вывести значения из БД в поле
|
|
]);
|
|
echo '</div>';
|
|
});
|
|
|
|
|
|
/* Добавил пользовательское поле "Объем" во вкладку "Доставка" */
|
|
add_action('woocommerce_product_options_dimensions', function () {
|
|
global $post;
|
|
// $val = get_post_meta($post->ID, '_volume', true); // получить значения сохраненные в БД
|
|
// woocommerce_wp_text_input(
|
|
// array(
|
|
// 'id' => '_volume',
|
|
// 'label' => 'Объем (мл)',
|
|
// 'placeholder' => 'Отобразится вместо "Вес"',
|
|
// 'desc_tip' => true,
|
|
// 'description' => 'Будет выводится вместо веса, если заполнить',
|
|
// 'value' => $val // вывести значения из БД в поле
|
|
// )
|
|
// );
|
|
// НА будуще если понадобится выпадающий список сделать для выбора единицы измерения
|
|
$val = get_post_meta($post->ID, '_custom_measurement', true); // получить значения сохраненные в БД
|
|
woocommerce_wp_select(
|
|
array(
|
|
'id' => '_custom_measurement',
|
|
'label' => 'Ед. измерения (для "Вес")',
|
|
'description' => 'Выбранная единица измерения будет выводится вместо кг',
|
|
'desc_tip' => true,
|
|
'options' => array(
|
|
'кг' => 'кг (по умолчанию)', // по умолчанию
|
|
// 'мм' => 'мм',
|
|
'мл' => 'мл',
|
|
'л' => 'л',
|
|
)
|
|
)
|
|
);
|
|
});
|
|
|
|
|
|
/* сохраненение кастомных полей */
|
|
add_action('woocommerce_process_product_meta', function ($post_id) {
|
|
if (isset($_POST['_composition'])) {
|
|
update_post_meta($post_id, '_composition', sanitize_textarea_field($_POST['_composition']));
|
|
}
|
|
if (isset($_POST['_volume'])) {
|
|
update_post_meta($post_id, '_volume', sanitize_textarea_field($_POST['_volume']));
|
|
}
|
|
if (isset($_POST['_custom_measurement'])) {
|
|
update_post_meta($post_id, '_custom_measurement', sanitize_textarea_field($_POST['_custom_measurement']));
|
|
}
|
|
});
|
|
|
|
/**
|
|
* End: Добавление табов и полей в стандартной форме редактирования товара Woocommerce
|
|
*/ |