Woocommerce: Im Warenkorb pro Attribut eine eigene Spalte anlegen

  • [TABLE="class: grid, width: 500, align: left"]

    [tr][td]

    Produkt

    [/td][td]

    Größe

    [/td][td]

    Farbe

    [/td][td]

    Einzelpreis

    [/td][td]

    Menge

    [/td][td]

    Gesamtpreis

    [/td][/tr][tr][td]

    Produktname

    [/td][td]

    Ausgewählte Größe

    [/td][td]

    Ausgewählte Farbe

    [/td][td]

    Preis

    [/td][td]

    Menge

    [/td][td]

    Preis

    [/td][/tr]


    [/TABLE]


    Hallo zusammen,
    meine Shopprodukte sind immer zwei Attributen verknüpft: Farbe und Größe. Jetzt wäre es toll, wenn ich diese Attribute im Warenkorb als zwei separate Spalten einzeigen lassen könnte, also so wie bei der oben stehenden Tabelle. Hat jemand eine Idee wie ich das hinbekomme?

    Vielen Dank im Voraus!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Der Filter woocommerce_cart_item_name und die Action woocommerce_order_item_name können verwendet werden um die Ausgabe entsprechend zu ändern.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Es handelt sich um ganz normale Filter und Actionen in WordPress, die Du über die functions.php Deines Childthemes aufrufen kannst. Mit folgendem Code kannst Du Dir die entsprechenden Informationen anzeigen lassen.

    Code
    add_filter( 'woocommerce_cart_item_name', 'mmx_modify_item_attributes', 1, 2 );
    add_action( 'woocommerce_order_item_name', 'mmx_modify_item_attributes', 1, 2 );
    function mmx_modify_item_attributes( $name, $item ) {
    	echo $name;
    	if ( !empty( $item['variation_id'] ) ) {
    		echo '<pre>' . print_r( $item, true ) . '</pre>';
    	}
    }

    Innerhalb der If Abfrage kannst Du jetzt Deinen HTML Code zu Ausgabe erstellten.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ich komme mit diesen Filtern und Actionen einfach nicht klar, bzw. verstehe nicht wie ich sie anzuwenden habe.
    Also die beiden Attribute die ich einsetzen möchte heißen "size" und "colour" - wie müsste ich die denn jetzt integrieren?
    Vielen Dank und sorry dass ichs nicht alleine schaffe :/

  • Vielen Dank und sorry dass ichs nicht alleine schaffe :/

    Sorry mehr Hilfe kann ich Dir nicht geben, weil das den Rahmen der Hilfe zur Selbsthilfe sprengt (ich müsste Dir ja einen fertigen Code schreiben).

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • schade, ich dachte es wäre nicht so kompliziert.

    Nicht so schlimm, die meisten Anwender und Nicht-Programmierer denken das alles immer ganz einfach ist, keine 5 Minuten dauert und praktisch von Jedermann umsetzbar ist.

    Aber warte einfach ab, möglicherweise nimmt ein anderes Forummitglied jetzt meinen Code und entwickelt diesen weiter. Wenn von 6 Programmieren jeder 10 Minuten investiert hast Du Dein Plugin.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ähm, also nur um sicherzugehen, dass wir von der gleichen sache reden:
    Es gibt ja im Warenkorb bereits eine Tabelle, die die Spalten Produkt, Einzelpreis, Menge, Gesamtpreis enthält. Ich möchte da jetzt zwei Spalten (Farbe, Größe) hinzufügen (wie ich die Spalten erstelle ist klar), und eben jede Spalte mir dem zutreffenden Wert (z.B. Schwarz bei farbe und M bei Größe) füllen.

  • dazu musst da nachsehen

    wp-content/plugins/woocommerce/templates/cart/cart-item-data.php
    dort wird es erzeugt


    <dl class="variation">
    <?php
    foreach ( $item_data as $data ) :
    $key = sanitize_text_field( $data['key'] );
    ?>
    <dt class="variation-<?php echo sanitize_html_class( $key ); ?>"><?php echo wp_kses_post( $data['key'] ); ?>:</dt>
    <dd class="variation-<?php echo sanitize_html_class( $key ); ?>"><?php echo wp_kses_post( wpautop( $data['value'] ) ); ?></dd>
    <?php endforeach; ?>
    </dl>

  • perfekt, ich denke damit komme ich klar, vielen dank!

    Das hat aber nichts mit Deinem Wunsch zu tun ;-)

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Wieso nicht maximus? Also ich meinte mit dem Code komme ich klar, den Link zum plugin hab ich ganz übersehen. Ich bin grad aufm sprung und schaue mir den code nachher mal genauer an...

    Einmal editiert, zuletzt von sommermädchen (24. April 2015 um 13:38)

  • hab mal schnell noch geschaut: der code fasst jetzt aber auch alle attribute zusammen oder? ich bräuchte im prinzip einfach nur den befehl mit dem ich z.b. den ausgewählten wert von pa_size ausgebe damit ich das dann in meine tabelle einfügen kann..

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!