Добавьте настраиваемое поле продукта в форму массового редактирования продукта Admin в WooCommerce.

Я добавил пользовательское поле в мои продукты WooCommerce, как в этом вопросе / ответе:
Отображение пользовательского поля продукта перед кратким описанием в WooCommerce.

Можно ли добавить это настраиваемое поле на специальную страницу массового редактирования продукта? (доступно со страницы списка продуктов администратора)?

2

Решение

Да, возможно массовое редактирование продуктов для вашего настраиваемого поля '_text_field' (как в вашем связанном вопросе / ответе).

Вы можете добавить это настраиваемое поле в начале или в конце страницы редактирования.

  • Для начала вы будете использовать этот крючок: woocommerce_product_bulk_edit_start
  • Для конца это: woocommerce_product_bulk_edit_end

Код (настраиваемое поле находится в начале здесь):

// Add a custom field to product bulk edit special page
add_action( 'woocommerce_product_bulk_edit_start', 'custom_field_product_bulk_edit', 10, 0 );
function custom_field_product_bulk_edit() {
?>
<div class="inline-edit-group">
<label class="alignleft">
<span class="title"><?php _e('T. dostawy', 'woocommerce'); ?></span>
<span class="input-text-wrap">
<select class="change_t_dostawy change_to" name="change_t_dostawy">
<?php
$options = array(
''  => __( '— No change —', 'woocommerce' ),
'1' => __( 'Change to:', 'woocommerce' ),
);
foreach ( $options as $key => $value ) {
echo '<option value="' . esc_attr( $key ) . '">' . $value . '</option>';
}
?>
</select>
</span>
</label>
<label class="change-input">
<input type="text" name="_t_dostawy" class="text t_dostawy" placeholder="<?php _e( 'Enter Termin dostawy', 'woocommerce' ); ?>" value="" />
</label>
</div>
<?php
}

// Save the custom fields data when submitted for product bulk edit
add_action('woocommerce_product_bulk_edit_save', 'save_custom_field_product_bulk_edit', 10, 1);
function save_custom_field_product_bulk_edit( $product ){
if ( $product->is_type('simple') || $product->is_type('external') ){
$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

if ( isset( $_REQUEST['_t_dostawy'] ) )
update_post_meta( $product_id, '_text_field', sanitize_text_field( $_REQUEST['_t_dostawy'] ) );
}
}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Этот код протестирован и работает. Вы получите это:

введите описание изображения здесь

3

Другие решения

Да можно и без всяких зацепок и кода:

  • Установите плагин WooCommerce Bulk Editor (WOOBE): https://wordpress.org/plugins/woo-bulk-editor/
  • Перейдите на вкладку Meta Fields и добавьте туда свой мета-ключ, нажмите кнопку Save.
  • На вкладке «Настройки» активируйте столбец с этим новым мета-ключом.
  • Используя вкладку Bulk Edit сделайте ваши манипуляции

Это все 🙂

постскриптум документы: https://bulk-editor.com/document/meta-fields/

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector