我想在我的产品的库存设置中的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时似乎没有任何效果。如果改变了什么,我会使用富有成效的主题。
有谁知道我在这里做错了什么?在此先感谢您提供的帮助!
答案 0 :(得分:2)
正如我上面提到的,你的代码应该是一个插件。这是您为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' );