Wie hast du das Bemerkungsfeld eingebaut? Offenbar ist das Feld ja an ein Produkt gebunden? So würde ich entsprechend die Hooks nehmen, die gecalled werden, wenn man ein Produkt zum Warenkrob hinzufügt.
Oder handelt es sich um ein Feld das Allgemein zur Bestellung hinzu kommt?
Das Bemerkungsfeld wird zum Warenkorb hinzugefügt. In den Produktdetails wird dann ein zusätzliches Bemerkungsfeld angezeigt. Dieses Feld soll dann zu einer Bestellung hinzukommen. Ich habe mittlerweile eine Lösung gefunden: https://aovup.com/woocommerce/add-notes-to-product/. Schön wäre jetzt noch, wenn man im Warenkorb auch nochmal die Bemerkung bearbeiten könnte :-).
// Display the custom note field in the cart
function display_custom_note_field_in_cart() {
echo '<tr class="custom-order-note">
<th>' . __('Order Note', 'woocommerce') . '</th>
<td><textarea name="custom_order_note" class="input-text"></textarea></td>
</tr>';
}
add_action('woocommerce_cart_totals_before_order_total', 'display_custom_note_field_in_cart');
// Display the saved custom note value in the cart
function display_saved_custom_note_in_cart() {
if (WC()->session->__isset('custom_order_note')) {
echo '<tr class="custom-order-note">
<th>' . __('Order Note', 'woocommerce') . '</th>
<td>' . esc_html(WC()->session->get('custom_order_note')) . '</td>
</tr>';
}
}
add_action('woocommerce_cart_totals_after_order_total', 'display_saved_custom_note_in_cart');
// Display the custom note field in the checkout
function display_custom_note_field_in_checkout() {
echo '<div id="custom-order-note-field" class="woocommerce-additional-fields">
<h3>' . __('Order Note', 'woocommerce') . '</h3>
<textarea name="custom_order_note" class="input-text"></textarea>
</div>';
}
add_action('woocommerce_before_order_notes', 'display_custom_note_field_in_checkout');
// Save the custom note field value to the session
function save_custom_note_field_to_session() {
if (isset($_POST['custom_order_note'])) {
WC()->session->set('custom_order_note', sanitize_text_field($_POST['custom_order_note']));
}
}
add_action('woocommerce_cart_calculate_fees', 'save_custom_note_field_to_session');
// Save the custom note field as an order note
function save_custom_note_field_to_order($order_id) {
if (WC()->session->__isset('custom_order_note')) {
$order = wc_get_order($order_id);
$note = sanitize_text_field(WC()->session->get('custom_order_note'));
$order->add_order_note($note);
}
}
add_action('woocommerce_checkout_create_order', 'save_custom_note_field_to_order');
Vielleicht hilft dir dieser Code. Kommt vom ChatGPT, sieht aber ganz brauchbar aus auf den ersten Blick