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

问题描述:

我想在我的产品库存设置的SKU代码字段下添加条形码字段。我想使用此工具,因为我正在使用WooCommerce POS,并基于条形码字段进行扫描,但仍然使用SKU字段来显示真实的SKU代码。将条形码字段添加到WooCommerce中的产品库存

如何在不使用任何插件的情况下完成此操作。 (阅读: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

https://en-gb.wordpress.org/plugins/woocommerce-barcode-isbn/ – ggdx

+0

不,我正在扫描产品,以便像这样来自123456789的数字将被放入此字段。由于我所有的产品都有独特的条形码,因此我无需生成自己的条形码。 我正在寻找一种方法来做到这一点,而不需要插件。我也不需要它在我的前端,只是为了后端快速扫描和支付商店中的产品。 –

+0

所以看起来我的代码实际上工作,如果它作为一个分离的插件添加,但没有添加到从主题丰富的Function.php时,它似乎不工作。 它要么返回500错误,要么只是无法正常工作。 有没有人有关于这个问题的线索?我还没有修改任何其他的东西到这个主题的functions.php,我试图把它放在总的结尾或开始没有任何运气。 –

正如我上面提到的,你的代码应该是一个插件。这是您的代码更新为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'); 
+0

我仍在使用WooCommerce 2.6,因为我害怕要更新以诚实地对待用户使用3.0版本时遇到的所有问题。 但是非常感谢你为那些确实升级到3.0的人提供的答案! –

+0

你将不得不升级。 :) WooCommerce 3.0.5应该很快就会发布,所以所有的发布版本都在修复bug并使其更好。但它仍然是一个主要版本,并非所有主题/插件都已准备就绪。我强烈建议在投入生产之前先建立一个开发站点来测试升级。 – helgatheviking

+0

是的,一旦我们决定实际转向新版本,我们肯定会这样做。目前一切正常,只要它确实如此,那么我们现在就很好。如果一切都会最终兼容,那么我们会考虑升级! 无论哪种方式感谢您的协助。 –