Fügen Sie dem Woocommerce-Produkttitel Untertitel hinzu

Ich verwende WooCommerce auf einer Seite, die mit Pagelines Framework erstellt wurde. Ich muss ein Untertitel / anpassbares Feld unter dem Produktnamen irgendwo auf der Website erscheinen lassen. Wie es ist, bietet WooCommerce diese Option nicht an.

Ich habe versucht, benutzerdefinierte Felder zu verwenden, aber WooCommerce verwendet diese auch und gibt eine Menge Sachen aus, die ich nicht zusammen mit meinem Untertitel ausgeben möchte. Wenn ich mein benutzerdefiniertes Feld “Buchautor” benennen würde, würde dieser Code nur das benutzerdefinierte Feld anzeigen, das ich möchte?

 

Und wenn ja, wie mache ich mein neues Feld direkt nach dem Produkttitel am Frontend?

Ich habe die Haken gefunden, die ich in dieser PHP-Datei brauche (ich denke, ich kenne PHP nicht, weshalb ich dich frage):

   

Ich weiß, wie man herausfiltert, aber wie füge ich das benutzerdefinierte Feld zu dieser Liste hinzu?

Oder gibt es einen ganz anderen Weg, um das zu erreichen, was ich brauche?

Unsterbliche Dankbarkeit für jeden, der helfen kann.

Solutions Collecting From Web of "Fügen Sie dem Woocommerce-Produkttitel Untertitel hinzu"

Um Ihre erste Frage zu beantworten, wird Ihr post meta »Buchautor« auf diese Weise echo / anzeigen. Wenn Sie die Variable $id in Ihrem Code-Recht definieren – oder Sie können es tun, wie unten gezeigt.

Der Code sollte Ihre zweite Frage beantworten, wie Sie Ihre zweite Titelzeile auf der Produktseite über den Hook woocommerce_single_product_summary . Fügen Sie einfach Ihre zusätzlichen Informationen wie folgt hinzu:

  function wpse116660_wc_add_2nd_title() { ?> 
< ?php echo get_post_meta(get_the_ID(), "bookauthor", true); ?>
< ?php } add_action( 'woocommerce_single_product_summary', 'wpse116660_wc_add_2nd_title', 6 );

Um mehr Komfort mit Ihrem benutzerdefinierten Post-Meta zu haben, können Sie tun, was @ pl4g4 und @brasofilo vorgeschlagen und fügen Sie eine Metabox auf dem Produkt bearbeiten Bildschirm, aber es ist natürlich nicht notwendig, Sie scheinen zu wissen, wie man es mit dem Standard-Wordpress- Brauch Felder Metabox .


Sie können Ihre Meta-Box wie folgt hinzufügen, der Code basiert auf dem ersten Beispiel auf der WordPress-Codex-Seite add_meta_box .

 /** * Adds a box to the main column on the Post and Page edit screens. */ function wpse116660_wc_2nd_title_mb() { $screen = array( 'product' ); add_meta_box( 'wc_2nd_title_mb', __( '2nd title', 'your_textdomain' ), 'wc_2nd_title_inner_mb', $screen, 'advanced', 'high' ); } add_action( 'add_meta_boxes', 'wpse116660_wc_2nd_title_mb', 0 ); /** * Prints the box content. * * @param WP_Post $post The object for the current post/page. */ function wpse116660_wc_2nd_title_inner_mb( $post ) { // Add an nonce field so we can check for it later. wp_nonce_field( 'wc_2nd_title_inner_mb', 'wc_2nd_title_inner_mb_nonce' ); /* * Use get_post_meta() to retrieve an existing value * from the database and use the value for the form. */ $value = get_post_meta( $post->ID, 'bookauthor', true ); echo ' '; echo ''; } /** * When the post is saved, saves our custom data. * * @param int $post_id The ID of the post being saved. */ function wpse116660_wc_2nd_title_save_postdata( $post_id ) { /* * We need to verify this came from the our screen and with proper authorization, * because save_post can be triggered at other times. */ // Check if our nonce is set. if ( ! isset( $_POST['wc_2nd_title_inner_mb_nonce'] ) ) return $post_id; $nonce = $_POST['wc_2nd_title_inner_mb_nonce']; // Verify that the nonce is valid. if ( ! wp_verify_nonce( $nonce, 'wc_2nd_title_inner_mb' ) ) return $post_id; // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id; // Check the user's permissions. if ( 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) return $post_id; } else { if ( ! current_user_can( 'edit_post', $post_id ) ) return $post_id; } /* OK, its safe for us to save the data now. */ // Sanitize user input. $mydata = sanitize_text_field( $_POST['bookauthor_field'] ); // Update the meta field in the database. update_post_meta( $post_id, 'bookauthor', $mydata ); } add_action( 'save_post', 'wpse116660_wc_2nd_title_save_postdata' ); 

Sie können dem Produktpost eine zusätzliche Metabox hinzufügen. Diese Metabox sollte ein Eingabeformular haben, damit Sie den Untertitel eingeben können. Wenn Sie die Metabox hinzugefügt haben, speichern Sie den Wert in der post_meta, wenn das Produkt gespeichert wird, und verwenden Sie dann den Code auf der einzelnen Produktseite der Woocommerce Vorlage

 < ?php echo get_post_meta($id, "bookauthor", true); ?> 

es bekommen.

Informationen über Metaboxess finden Sie hier und auch hier