Wie zeige ich ein benutzerdefiniertes Feld in Woocommerce-Bestellungen im Admin-Bereich an?
-
-
Dererste Codeblockin Ihrer Frage ändert das Standardfeld "Telefonnummer".Dem Checkout-Formular wird keinneues Feld hinzugefügt.Die Checkout-Felder sind unter "Benutzerdefinierte Felder"nicht verfügbar. Bitte suchen Sie sie dortnicht.Wenn Sieeines der Felder von der Rechnungsadresse oder der Lieferadresse ausbearbeitenmöchten,gehen Sie zum Backend und klicken Sie aufeine Bestellungin der Bestellliste.Dann sehen Sieein kleines Bearbeitungssymbolneben den Überschriften "Rechnungsdetails" und "Versanddetails".Wenn Sie darauf klicken,können Sie diese Detailsbearbeiten.Ich hoffe das hilft.The first code block in your question, modifies the default 'Phone no' field. It does not add any new field to checkout form. The checkout fields won't be available under "custom fields", so please don't search it there. If you want to edit any of the field from billing address or shipping address, go to backend and click on any order under order list. Then you will see a small edit icon besides 'Billing Details' and 'Shipping Details' headings. Clicking on that will allow you to edit those details. I hope this helps.
- 0
- 2016-01-22
- Prasad Nevase
-
Bitte überprüfen Siejetztmeinen CodePlease check my code now
- 0
- 2016-01-23
- Ron
-
2 Antworten
- Stimmen
-
- 2016-01-23
Der von Ihnen angegebene Codeist unvollständig. Ichbin mirnicht sicher,ob dies dereinzige Codeist,mit dem Sie daserreichen,was Sie wollen. Neben demersten Codeblock,den Siebereitgestellt haben,fügeich unten dengesamten Rest des Codes hinzu,dererforderlichist,um dasneue Feldim Backendim Feld "Bestelldetails" anzuzeigen und überbenutzerdefinierte Felderbearbeitbar zumachen. Bittebeachten Sie,dass Siein Ihrem zweiten Codeblock den Feldschlüssel als
_billing_new_phone
benannt haben. Jederbenutzerdefinierte Feldschlüsselname,dermit _ (Unterstrich)beginnt,istein verstecktesbenutzerdefiniertes Feld & amp; wirdim Backend unter "Benutzerdefinierte Felder"nicht angezeigt./** * Process the checkout */ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['billing_phone_new'] ) wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' ); } /** * Update the order meta with field value */ add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' ); function my_custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['billing_phone_new'] ) ) { update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) ); } } /** * Display field value on the order edit page */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(), 'billing_phone_new', true ) . '</p>'; }
WooCommercemacht dasneue Checkout-Feld unter dem Standardfeld "Bestelldetails"nichtbearbeitbar. Esistin diesem Feld als "Nur anzeigen" -Modus verfügbar,aber Sie könnenes auch über den standardmäßigenbenutzerdefinierten Feldblock von WordPressbearbeiten. Siehefolgenden Screenshot.
The code you have provided is incomplete. Not sure if that is the only code you are using to achieve what you want. So, besides first code block which you have provided, bellow I am adding all rest of the code which is required to show the new field on backend in 'Order Details' box and make it editable through custom fields. Please note, in your second code block you have named the field key as
_billing_new_phone
. Any custom field key name which starts with _ (underscore) is a hidden custom field & won't show up on backend under "Custom Fields"./** * Process the checkout */ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['billing_phone_new'] ) wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' ); } /** * Update the order meta with field value */ add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' ); function my_custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['billing_phone_new'] ) ) { update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) ); } } /** * Display field value on the order edit page */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(), 'billing_phone_new', true ) . '</p>'; }
WooCommerce does not make the new checkout field editable under its standard 'Order Details' box. It will be available as 'view only' mode in that box but you can edit the same through WordPress' standard custom fields block. See below screenshot.
-
"" Jederbenutzerdefinierte Feldschlüsselname,dermit _ (Unterstrich)beginnt,istein verstecktesbenutzerdefiniertes Feld und wirdim Backend unter "Benutzerdefinierte Felder"nicht angezeigt."" Woherbekommen Sie diese Informationen?""Any custom field key name which starts with _ (underscore) is a hidden custom field & won't show up on backend under "Custom Fields". "" from where you get this information ?
- 0
- 2016-01-24
- Ron
-
Auf WordPress Codex.Sie können [weitere Informationen hiererhalten] (https://codex.wordpress.org/Function_Reference/add_post_meta#Hidden_Custom_Fields)On WordPress codex. You may [get more info here](https://codex.wordpress.org/Function_Reference/add_post_meta#Hidden_Custom_Fields)
- 2
- 2016-01-25
- Prasad Nevase
-
Bitte helfen Siebei der Lösungmeiner Freundschaftsfrage https://stackoverflow.com/questions/49505056/woocommerce-create-new-discount-functionalityPlease helpt solve my friend question https://stackoverflow.com/questions/49505056/woocommerce-create-new-discount-functionality
- 0
- 2018-03-27
- Ron
-
Inmeinem Fall habeich Ergebnissemit get_post_metaerhalten ($ order->get_id (),'_billing_phone_new',true).Ichmusstein der Funktionget_post_metaeinen Unterstrich vor den Variablennamen setzen.in my case,I got results by using get_post_meta( $order->get_id(), '_billing_phone_new', true ). I had to put underscore in front of variable name in get_post_meta function.
- 0
- 2019-05-19
- Dashrath
-
- 2017-12-13
Hierist die Lösung: Der direkte Zugriff auf Produktdatenistnicht zulässig,z.
$product->id
Die richtige Methodefür die Zukunftist:
$product->get_id()
Here is the solution : Accessing directly product data is not allowed, e.g.
$product->id
The correct method going forward is:
$product->get_id()
-
Wiebeantwortet dies die Frage?How is this answering the question?
- 0
- 2020-05-21
- Tofandel
Derzeitfügeichein benutzerdefiniertes Abrechnungsfeldim Woocommerce von
hinzuIchmuss diesen Feldwert auf der Administrationsseitebearbeiten. Derzeit kannich alle anderen Wertein der Rechnungsadressebearbeiten,aber dieser Wert wirdnichtim Admin-Bereich angezeigt. Ich verwende denfolgenden Codenur,um den Wertim Admin-Bereich anzuzeigen.
Ich habe die Dokumentation https:/gelesen/docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/. Aber allesin diesem Dokument,was richtigfunktioniert,erwartet,dassbilling_phone/Phoneim Feld Benutzerdefiniert angezeigt wird. Ich überprüfe die Bildschirmoption,aberich habebereitsein benutzerdefiniertes Feld angekreuzt. Anderebenutzerdefinierte Felder und deren Wert sind sichtbar und könnenbearbeitet werden.
Wie kannich diesen Wertim Backendbearbeiten? Bitte helfen Sie.