2016-10-24 12 views
0

をフィールド誰もが解決策を提供できる場合、私は本当にthankfullだろう...WooCommerceカスタムが出力

を私はカスタムテキストフィールドを作成しているが、私はアクションフックを使用して、単一の製品ページ上の出力にそれをすることはできませんよ?

マイコード(のfunctions.php):

// Display Fields 
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 

// Save Fields 
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 


function woo_add_custom_general_fields() { 

    global $woocommerce, $post; 

    echo '<div class="options_group">'; 

    // Custom fields will be created here... 

    woocommerce_wp_text_input( 
    array( 
     'id'   => '_text_field', 
     'label'  => __('My Text Field', 'woocommerce'), 
     'placeholder' => 'http://', 
     'desc_tip' => 'true', 
     'description' => __('Enter the custom value here.', 'woocommerce') 
    ) 
); 

    echo '</div>'; 

} 

function woo_add_custom_general_fields_save($post_id){ 

// Text Field 
    $woocommerce_text_field = $_POST['_text_field']; 
    if(!empty($woocommerce_text_field)) 
     update_post_meta($post_id, '_text_field', esc_attr($woocommerce_text_field)); 

} 


add_action('woocommerce_single_product_summary', 'output_custom_fields'); 


function output_custom_fields() { 
    echo get_post_meta($post->ID, '_text_field', true); 
} 

ありがとう! デニス

+0

間integrerで優先順位を設定する必要がありますが、あなたは、グローバル$ポストを試してみました。エコーget_post_meta($ post-> ID、 '_text_field'、true); ? – MirzaP

答えて

1

@MirzaPはコメントで、$postは関数output_custom_fields()で定義されていません。だから、$post->IDは(関数内でポストオブジェクトを取得することができる)それを動作させるために

function output_custom_fields() { 
    global $post; 

    echo get_post_meta($post->ID, '_text_field', true); 
} 

を動作することはできませんあなたのフック、アクションの三番目のパラメータを忘れてはいけない、という意志が優先順位を設定します。これらの優先順位は、Woocommerceテンプレートにあり、メタデータを配置する場所に応じて適切な優先順位を使用します。

/** 
    * woocommerce_single_product_summary hook 
    * 
    * @hooked woocommerce_template_single_title - 5 
    * @hooked woocommerce_template_single_price - 10 
    * @hooked woocommerce_template_single_excerpt - 20 
    * @hooked woocommerce_template_single_add_to_cart - 30 
    * @hooked woocommerce_template_single_meta - 40 
    * @hooked woocommerce_template_single_sharing - 50 
*/ 

カスタムデータが適切な価格の後に示すことにしたいのであれば、あなたは11と19

add_action('woocommerce_single_product_summary', 'output_custom_fields', 15); 
関連する問題