在 WooCommerce 中将产品自定义字段添加到管理产品批量编辑表单 [英] Add a product custom field to Admin product bulk edit form in WooCommerce

查看:32
本文介绍了在 WooCommerce 中将产品自定义字段添加到管理产品批量编辑表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的 WooCommerce 产品中添加了一个自定义字段,如这个问题/答案:

I have added a custom field in my WooCommerce products like in this question/answer:
Display a custom product field before short description in WooCommerce.

Is it possible to add this custom field to the product bulk edit special page (accessible from Admin products list page)?

解决方案

Yes it's possible to bulk edit products for your custom field '_text_field' (as in your linked question/answer).

You can add this custom field at the beginning or at the end of edit page.

  • For the beginning you will use this hook: woocommerce_product_bulk_edit_start
  • For the end this one: woocommerce_product_bulk_edit_end

The code (the custom field is at the beginning here):

// 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'] ) );
    }
}

Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

This code is tested and works. You will get this:

这篇关于在 WooCommerce 中将产品自定义字段添加到管理产品批量编辑表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆