在 WooCommerce 的产品库存中添加条形码字段

Add a barcode field to Product Inventory in WooCommerce

我想在我的产品库存设置中的 SKU 代码字段下添加一个条码字段。我想在使用 WooCommerce POS 时使用它,并且基于条形码字段我可以进行扫描,但仍然使用 SKU 字段来获取真实的 SKU 代码。

如何在不使用任何插件的情况下完成此操作。 (阅读:Function.php 代码)。

我已经尝试使用以下代码,但没有成功:

//Add barcode to the product inventory tab
add_action('woocommerce_product_options_inventory_product_data','add_barcode');
function add_barcode(){
    global $woocommerce,$post;
    woocommerce_wp_text_input(
        array(
            'id'          => '_barcode',
            'label'       => __('Barcode','woocommerce'),
            'placeholder' => 'Scan Barcode',
            'desc_tip'    => 'true',
            'description' => __('Scan barcode.','woocommerce')
        ));
}
//Save Barcode Field
function add_barcode_save($post_id){
    if(isset($_POST['_barcode'])){
        update_post_meta($post_id,'_barcode',sanitize_text_field($_POST['_barcode']));
    }else{
        delete_meta_data($post_id,'_barcode',sanitize_text_field($_POST['_barcode']));
    }
}
add_action('woocommerce_process_product_meta','add_barcode_save');
//Set POS Custom Code
function pos_barcode_field(){return '_barcode';}
add_filter('woocommerce_pos_barcode_meta_key','pos_barcode_field');

因为代码在添加到 Functions.php 时似乎根本没有任何效果。如果有任何改变,我正在使用 Fruitful 主题。

有谁知道我在这里做错了什么?在此先感谢您为我提供的帮助!

正如我上面提到的,您的代码应该是一个插件。这是为 WooCommerce 3.0 更新的代码。虽然它不向后兼容。

function add_barcode(){
    woocommerce_wp_text_input(
        array(
            'id' => '_barcode',
            'label' => __( 'Barcode', 'your-plugin' ),
            'placeholder' => 'Scan Barcode',
            'desc_tip' => 'true',
            'description' => __( "Scan the product's barcode.", "your-plugin" )
        )
    );
}
add_action('woocommerce_product_options_inventory_product_data','add_barcode');


function add_barcode_save( $product ){
    if( isset( $_POST['_barcode'] ) ) {
        $product->update_meta_data( '_barcode', sanitize_text_field( $_POST['_barcode'] ) );
    } else {
        $product->delete_meta_data( '_barcode' );
    }
}
add_action( 'woocommerce_admin_process_product_object', 'add_barcode_save' );

然后在任何需要检索元数据的地方,您都可以这样做:

$product = wc_get_product( $product_id );
$product->get_meta( '_variable_billing' );