Derzeit füge ich ein benutzerdefiniertes Abrechnungsfeld in Woocommerce von hinzu
function custom_override_checkout_fields( $fields ) {
$fields['billing']['billing_phone_new'] = array(
'label' => __('Phone 2', 'woocommerce'),
'placeholder' => _x('Phone 2', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
add_filter('woocommerce_checkout_fields','custom_override_checkout_fields');
Ich muss diesen Feldwert auf der Admin-Seite bearbeiten. Derzeit kann ich alle anderen Werte in der Rechnungsadresse bearbeiten, aber dieser Wert wird nicht im Admin-Bereich angezeigt. Ich verwende den folgenden Code nur, um den Wert im Admin-Bereich anzuzeigen.
function order_phone_backend($order){
echo "<p><strong>Billing phone 2:</strong> " . get_post_meta( $order->id, '_billing_phone_new', true ) . "</p><br>";
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'order_phone_backend', 10, 1 );
Ich habe die Dokumentation https://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/ gelesen . Aber alles in diesem Dokument, was richtig funktioniert, erwartet, dass billing_phone / Phone im Feld Benutzerdefiniert angezeigt wird. Ich überprüfe die Bildschirmoption, aber ich habe bereits ein benutzerdefiniertes Feld angekreuzt. Andere benutzerdefinierte Felder und deren Wert sind sichtbar und können bearbeitet werden.
Wie kann ich diesen Wert im Backend bearbeiten? Bitte helfen Sie.
Antworten:
Der von Ihnen angegebene Code ist unvollständig. Ich bin mir nicht sicher, ob dies der einzige Code ist, mit dem Sie das erreichen, was Sie wollen. Neben dem ersten Codeblock, den Sie bereitgestellt haben, füge ich unten den gesamten Rest des Codes hinzu, der erforderlich ist, um das neue Feld im Backend im Feld "Bestelldetails" anzuzeigen und über benutzerdefinierte Felder bearbeitbar zu machen. Bitte beachten Sie, dass Sie in Ihrem zweiten Codeblock den Feldschlüssel als benannt haben
_billing_new_phone
. Jeder benutzerdefinierte Feldschlüsselname, der mit _ (Unterstrich) beginnt, ist ein verstecktes benutzerdefiniertes Feld und wird im Backend unter "Benutzerdefinierte Felder" nicht angezeigt.WooCommerce macht das neue Checkout-Feld unter dem Standardfeld "Bestelldetails" nicht bearbeitbar. Es wird in diesem Feld als "Nur anzeigen" -Modus verfügbar sein, aber Sie können es auch über den Standardblock für benutzerdefinierte Felder von WordPress bearbeiten. Siehe unten Screenshot.
quelle
Hier ist die Lösung: Der direkte Zugriff auf Produktdaten ist nicht zulässig, z
Die richtige Methode für die Zukunft ist:
quelle