2017-11-25 151 views
1

我正在使用WordPress電子商務網站,並且WooCommerce是所選的購物平臺。保存WooCommerce中的自定義文本字段的空值

我已經通過插入下面的代碼到functions.php文件中創建一個自定義字段中,WooCommerce產品儀表板內:

function product_custom_fields_add(){ 
echo '<div class="product_custom_field">'; 
    // Minimum Required Custom Letters 
    woocommerce_wp_text_input(
     array(
      'id'  => '_minimum_engrave_text_option', 
      'name'  => '_minimum_engrave_text_option', 
      'desc'  => __('set custom minimum Lettering text field', 'woocommerce'), 
      'label'  => __('Minimum Letters', 'woocommerce'), 
      'desc_tip' => 'true' 
     ) 
    ); 
    echo '</div>'; 
} 
add_action('woocommerce_product_options_advanced', 'product_custom_fields_add'); 

爲了保存價值,我已經進入了下面的代碼爲functions.php文件:

// Save Minimum Required Custom Letters 
function woocommerce_product_custom_fields_save1($post_id){ 
    if (! empty($_POST['_minimum_engrave_text_option'])) 
     update_post_meta($post_id, '_minimum_engrave_text_option', esc_attr($_POST['_minimum_engrave_text_option'])); 
} 
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save1'); 

上述代碼在將值輸入自定義字段中時起作用。我的問題是我無法成功保存空白值。無論何時保存產品,自定義字段都會自動填充字段'1'或保存以前輸入的號碼。

我試過應用從similar question的答案,但不能引用得到它的工作。

有沒有人知道我在哪裏錯了嗎?

回答

1

嘗試通過isset()更換empty()作爲一個條件,你的掛鉤函數的if聲明:

// Save Minimum Required Custom Letters 
function woocommerce_product_custom_fields_save1($post_id){ 
    if (isset($_POST['_minimum_engrave_text_option'])) 
     update_post_meta($post_id, '_minimum_engrave_text_option', esc_attr($_POST['_minimum_engrave_text_option'])); 
} 
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save1'); 

現在這個意志工作

+1

,從「空」到「isset」簡單的改變,似乎已經做到了。謝謝@LoicTheAztec :-) – Craig