2016-12-23 5 views
3

Ich bin WooCommerce anpassen und ich möchte benutzerdefinierte Texte (Bedingungen und Marken) in den Produktseiten hinzufügen und anzeigen.Anzeigen von benutzerdefinierten Feldern Werte unter SKU in einzelnen Produktseiten

Die Position ist entweder unter "auf Lager" oder "SKU" Meta. Ich habe es geschafft, die benutzerdefinierten Felder zu erstellen und zu speichern, aber wie diese Meta-Werte auf den Produktseiten gedruckt werden.

Bitte helfen!

Hier ist mein Code in functions.php:

// Display Fields 
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 
// Text Field 
function woo_add_custom_general_fields() { 
    global $woocommerce, $post; 
    echo '<div class="options_group">'; 
    woocommerce_wp_text_input( 
    array( 

     'id'   => '_conditions', 
     'label'  => __('Conditions', 'woocommerce'), 
     'placeholder' => 'i.e: brand-new; refurbished; defected...', 
     'desc_tip' => 'true', 
     'description' => __('Enter the conditions of the products here.', 'woocommerce') 
    ) 
); 
    echo '</div>'; 
    woocommerce_wp_text_input( 
    array( 

     'id'   => '_bands', 
     'label'  => __('Brands', 'woocommerce'), 
     'placeholder' => 'i.e: Lacoste; Hugo Boss...etc', 
     'desc_tip' => 'true', 
     'description' => __('Enter names of the Brands of the products if any.', 'woocommerce') 
    ) 
); 
} 
// Save Fields 
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 

Dank

Antwort

4

Der Code in Ihrer Frage zur Verfügung gestellt unvollständig und sollte so ähnlich sein:

// Enabling and Displaying Fields in backend 
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 
function woo_add_custom_general_fields() { 
    global $woocommerce, $post; 

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

    woocommerce_wp_text_input(array(// Text Field type 
     'id'   => '_conditions', 
     'label'  => __('Conditions', 'woocommerce'), 
     'placeholder' => 'i.e: brand-new; refurbished; defected...', 
     'desc_tip' => 'true', 
     'description' => __('Enter the conditions of the products here.', 'woocommerce') 
    )); 

    woocommerce_wp_text_input(array(// Text Field type 
     'id'   => '_brands', // ===> NOT '_bands' 
     'label'  => __('Brands', 'woocommerce'), 
     'placeholder' => 'i.e: Lacoste; Hugo Boss...etc', 
     'desc_tip' => 'true', 
     'description' => __('Enter names of the Brands of the products if any.', 'woocommerce') 
    )); 

    echo '</div>'; // Closing </div> tag HERE 
} 

// Save Fields values to database when submitted (Backend) 
add_action('woocommerce_process_product_meta', 'woo_save_custom_general_fields'); 
function woo_save_custom_general_fields($post_id){ 

    // Saving "Conditions" field key/value 
    $conditions_field = $_POST['_conditions']; 
    if(!empty($conditions_field)) 
     update_post_meta($post_id, '_conditions', esc_attr($conditions_field)); 

    // Saving "Brands" field key/value 
    $brands_field = $_POST['_brands']; 
    if(!empty($brands_field)) 
     update_post_meta($post_id, '_brands', esc_attr($brands_field)); 
} 

Nun zu Zeigen Sie diese Metadatenwerte in Ihren Produktseiten an. Verwenden Sie die Funktion get_post_meta() in einer Hooked-Funktion auf. Hier unten werden Sie sehen, alle Haken Vorlagen in woocommerce_single_product_summary Haken mit ihren Prioritäten (die Anzeigereihenfolge):

/** 
    * 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 
*/ 

Die „auf Lager“ oder „SKU“ Daten werden von woocommerce_template_single_meta angezeigt, die eine Priorität haben von 40. Jetzt müssen Sie Ihre Zollfelder Werte unmittelbar danach anzeigen. Dann können Sie eine Priorität von für diesen Zweck wählen.

Hier ist der Code, der Ihre benutzerdefinierten Felder Werte in den Produktseiten unter "SKU" zur Ausgabe gehen wird:

add_action('woocommerce_single_product_summary', 'woo_display_custom_general_fields_values', 45); 
function woo_display_custom_general_fields_values() { 
    global $product; 

    echo '<p class="custom-conditions">Conditions: ' . get_post_meta($product->id, '_conditions', true) . '</p>'; 
    echo '<p class="custom-brands">Brands: ' . get_post_meta($product->id, '_brands', true) . '</p>'; 
} 

-Code geht in function.php Datei Ihrer aktiven Kind Thema (aktives Thema oder in einer Plugin-Datei).

Dieser Code wurde getestet und funktioniert.

Verwandte Themen