Neu JTL-Anmerkungen nicht in POS-Comments übertragen

flexkeller

Aktives Mitglied
6. Januar 2023
2
0
Wie kann ich machen, dass meine Texte vom WAWI Feld "Anmerkungen" NICHT in das POS Feld "pos_comment" eingetragen wird?
Ich habe da (mangels anderer Felder) interne Notizen drin die eigentlich kein Kunde sehen sollte...

Ich könnte einfach des Feld "pos_comment" auf dem Bon löschen, aber dann hab ich keine Möglichkeit mehr für eine Bemerkung zu einem Artikel...
 

fkeller

Gut bekanntes Mitglied
10. Februar 2010
118
5
Ich hab auch schon mit "eigenen Felder" rumgespielt, aber die werden alle in Woocommerce übertragen...
 

fkeller

Gut bekanntes Mitglied
10. Februar 2010
118
5
ich hab mir da einen Workaround gebastelt...
Ein "eigenes Feld" mit dem Namen "Interne Infos".

und ein kleines Wordpress-Plugin welches dieses Feld unterdrückt:

<?php
/**
* Plugin Name: JTL Interne Infos ausblenden
* Description: Entfernt das JTL-Feld "Interne Infos" aus den WooCommerce Produkt-Zusatzinformationen.
*/

if (!defined('ABSPATH')) {
exit;
}

/**
* Entfernt das Attribut "Interne Infos" aus der Produktanzeige
*/
add_filter('woocommerce_display_product_attributes', function($product_attributes, $product) {

foreach ($product_attributes as $key => $attribute) {

// Name prüfen (Groß-/Kleinschreibung egal)
if (isset($attribute['label']) && strtolower($attribute['label']) === 'interne infos') {
unset($product_attributes[$key]);
}

// Alternativ zusätzlich prüfen (falls JTL es anders benennt)
if (isset($attribute['label']) && strtolower($attribute['label']) === 'interne infos:') {
unset($product_attributes[$key]);
}
}

return $product_attributes;
}, 10, 2);

vielleicht hilft das ja jemandem mit dem gleichen Problem.
(Erspart einem halt nicht das umständliche Kopieren des Inhalts in das neue Feld ☹️)
 
Zuletzt bearbeitet:

fkeller

Gut bekanntes Mitglied
10. Februar 2010
118
5
oops... Ich hab den Warenkorb und die Emails vergessen...


<?php
/**
* Plugin Name: JTL Interne Infos komplett entfernen
* Description: Entfernt das Feld "Interne Infos" überall im Frontend (Produktseite, Warenkorb, Checkout, E-Mails).
* Version: 2.0
*/

if (!defined('ABSPATH')) {
exit;
}

/**
* Produktseite – entfernt NUR "Interne Infos"
*/
add_filter('woocommerce_product_get_attributes', function($attributes) {

foreach ($attributes as $key => $attribute) {

$normalized_key = strtolower(str_replace(['pa_', '-', ' '], '', $key));

if ($normalized_key === 'interneinfos') {
unset($attributes[$key]);
}
}

return $attributes;

}, 9999);


/**
* Warenkorb & Checkout (Variation-Ausgabe <dl class="variation">)
*/
add_filter('woocommerce_get_item_data', function($item_data) {

foreach ($item_data as $key => $data) {
if (
isset($data['key']) &&
stripos($data['key'], 'Interne Infos') !== false
) {
unset($item_data[$key]);
}
}

return $item_data;

}, 9999);


/**
* Bestellungen & E-Mails
*/
add_filter('woocommerce_order_item_get_formatted_meta_data', function($formatted_meta) {

foreach ($formatted_meta as $key => $meta) {
if (stripos($meta->display_key, 'Interne Infos') !== false) {
unset($formatted_meta[$key]);
}
}

return $formatted_meta;

}, 9999);
 

Ähnliche Themen