2017-04-27 121 views
0

我想在我的產品庫存設置的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,我試圖把它放在總的結尾或開始沒有任何運氣。 –

回答

1

正如我上面提到的,你的代碼應該是一個插件。這是您的代碼更新爲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

是的,一旦我們決定實際轉向新版本,我們肯定會這樣做。目前一切正常,只要它確實如此,那麼我們現在就很好。如果一切都會最終兼容,那麼我們會考慮升級! 無論哪種方式感謝您的協助。 –

相關問題