Um die Funktionalität Ihres WooCommerce-Shops zu verbessern, müssen Sie häufig die Verwaltungsoberfläche an Ihre spezifischen Anforderungen anpassen. Eine nützliche Anpassung ist das Hinzufügen benutzerdefinierter Felder zu WooCommerce-Bestellungen im Verwaltungsbereich. Mit diesen zusätzlichen Feldern können Sie zusätzliche Informationen zu jeder Bestellung erfassen und anzeigen – seien es spezielle Anweisungen, interne Notizen oder benutzerdefinierte Tracking-Details. In dieser Anleitung erfahren Sie, wie Sie mit PHP Ihre eigenen Felder zur Bearbeitungsseite von WooCommerce-Bestellungen hinzufügen. Tools wie WP-Code oder Codeausschnitte wird empfohlen, diesen Code sicher zu integrieren, ohne Kerndateien zu ändern.
Mithilfe von PHP können Sie WooCommerce-Hooks nutzen, um sowohl benutzerdefinierte Felder auf der Seite zur Auftragsbearbeitung anzuzeigen als auch die Daten zu speichern, wenn der Auftrag aktualisiert wird. Das folgende Beispiel zeigt, wie Sie dem Auftragsdetailbereich ein benutzerdefiniertes Textfeld mit der Bezeichnung „Benutzerdefiniertes Feld“ hinzufügen und den Wert des Felds speichern.
<?php
// Display the custom admin field on the WooCommerce order edit page
function add_custom_admin_order_field( $order ) {
// Retrieve the current value of the custom field
$custom_field_value = get_post_meta( $order->get_id(), '_custom_field', true );
?>
<div class="order_data_column">
<h4><?php _e( 'Custom Information', 'text_domain' ); ?></h4>
<p class="form-field form-field-wide">
<label for="custom_field"><?php _e( 'Custom Field:', 'text_domain' ); ?></label>
<input type="text" name="custom_field" id="custom_field" value="<?php echo esc_attr( $custom_field_value ); ?>" />
</p>
</div>
<?php
}
add_action( 'woocommerce_admin_order_data_after_order_details', 'add_custom_admin_order_field' );
// Save the custom field data when the order is updated
function save_custom_admin_order_field( $order_id ) {
if ( isset( $_POST['custom_field'] ) ) {
update_post_meta( $order_id, '_custom_field', sanitize_text_field( $_POST['custom_field'] ) );
}
}
add_action( 'woocommerce_process_shop_order_meta', 'save_custom_admin_order_field' );
?>
Der obige Code ist in zwei Teile gegliedert. Der erste Teil verwendet die woocommerce_admin_order_data_after_order_details
Hook zum Hinzufügen eines benutzerdefinierten Feldabschnitts zur Bestellbearbeitungsseite im Admin-Dashboard. Das Eingabefeld zeigt alle zuvor gespeicherten Werte aus den Metadaten der Bestellung an.
Der zweite Teil verwendet die woocommerce_process_shop_order_meta
Hook, um den übermittelten Wert zu speichern, wenn die Bestellung aktualisiert wird. Indem Sie überprüfen, ob das Feld im $_POST
Array und Verwendung der update_post_meta()
Funktion werden alle von Ihnen vorgenommenen Änderungen sicher gespeichert.
Ziehen Sie diese Möglichkeiten in Betracht, um die Implementierung Ihrer benutzerdefinierten Felder weiter zu verbessern:
Das Hinzufügen benutzerdefinierter Felder zu WooCommerce-Bestellungen im Admin-Bereich ist eine praktische Möglichkeit, zusätzliche Informationen zu erfassen, die auf Ihre Geschäftsanforderungen zugeschnitten sind. Durch die Verwendung von WooCommerce-Hooks und PHP können Sie zusätzliche Felder nahtlos in die Bestellbearbeitungsseite integrieren, ohne die Kernfunktionalität von WooCommerce zu beeinträchtigen. Egal, ob Sie einfach ein Feld für zusätzliche Notizen oder eine komplexere Datenerfassung benötigen, dieser Ansatz bietet eine flexible und sichere Lösung.
Experimentieren Sie mit dieser Methode und erweitern Sie sie, um ein individuelleres Auftragsverwaltungssystem aufzubauen, das Ihren Betriebsanforderungen entspricht und die Gesamteffizienz Ihres WooCommerce-Shops verbessert.