2017-08-27 32 views
2

簡短說明之前定製產品領域我已經在WooCommerce添加一個新的領域,簡短說明前一個問題。顯示在WooCommerce

functions.php使用的腳本,並正確顯示我的新的自定義字段,但是:

  • 時使用腳本,一個新的領域是顯示效果細膩簡短說明消失。
  • 我可以編輯的字段的產品頁面上的內容,但我不能刪除它。它始終是最後的價值。

我怎麼能不刪除產品簡短描述顯示此自定義字段?
如何重置這個自定義字段的內容?

這裏是我的代碼:

// Add a custom Field 
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 

function woo_add_custom_general_fields() { 

    global $woocommerce, $post; 

    woocommerce_wp_text_input( 
     array( 
      'id'   => '_text_field', 
      'label'  => __('Termin dostawy', 'woocommerce'), 
      'placeholder' => 'np: 7 dni', 
      'desc_tip' => 'true', 
      'description' => __('Wpisz przewidywany termin dostawy, np: 7 dni.', 'woocommerce') 
     ) 
    ); 

} 

// Save the custom field 
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 
function woo_add_custom_general_fields_save($post_id){ 
    $woocommerce_text_field = $_POST['_text_field']; 
    if(! empty($woocommerce_text_field)) 
     update_post_meta($post_id, '_text_field', esc_attr($woocommerce_text_field)); 

} 

// Display the custom field 
add_action('woocommerce_short_description', 'magik_custom_text', 10, 1); 
function magik_custom_text() 
{ 
    global $product; 

    global $woocommerce, $post; 
    echo "Termin dostawy: ".get_post_meta($post->ID, '_text_field', true); 
} 

函數負責顯示:

add_action('woocommerce_short_description', 'magik_custom_text', 10, 1); 
function magik_custom_text() 
{ 

回答

2

更新2:

1)你應該把它添加到簡短的說明,而不是取代它的...

正確的方法爲t Ø鉤woocommerce_single_product_summary陽離子鉤您的自定義功能的簡短說明之前(使用之間11到19的優先級):

add_action('woocommerce_single_product_summary', 'magik_custom_text', 18); 
function magik_custom_text() 
{ 
    global $post; 
    $field_value = get_post_meta($post->ID, '_text_field', true); 
    // Displaying the custom field only when is set with a value 
    if(! empty($field_value)) 
     echo '<p>' . __('Termin dostawy: ', 'woocommerce') . $field_value . '</p>'; 
} 

代碼放在您的活動子主題(或主題)的function.php文件或也在任何插件文件中。

經過測試和工作。所以,你會得到這樣的:

enter image description here

enter image description here


2)爲了能刪除你的產品的自定義字段中您需要更換內容:

if(! empty($woocommerce_text_field)) 

通過:

if(isset($woocommerce_text_field)) 

這個掛鉤功能:

add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 
function woo_add_custom_general_fields_save($post_id){ 
    $woocommerce_text_field = $_POST['_text_field']; 
    if(isset($woocommerce_text_field)) 
     update_post_meta($post_id, '_text_field', esc_attr($woocommerce_text_field)); 

} 
+0

你是最棒的!它比我想要的更好。附加問題:你可以添加一個腳本:不顯示空字段? – interlaw

+0

@interlaw當然,我已經更新了這個答案中的第一個函數,請試試吧... – LoicTheAztec

+1

我很感激你爲我做的每件事,@loictheaztec :) – interlaw