Shortcode für Lagerstatus pro Variation

  • Dann müsstest Du mit der Variable $stock aus der Funktion get_availability_bar arbeiten.
    Wenn $stock==0: nicht auf Lager, wenn $stock>0: auf Lager.

    Hast Du in der gleichen Funktion in der "Zeichenfunktion" für die Grafik:

    Zitat

    <?php if ( 0 == $stock ) { echo ' out-of-stock'; } ?>' style='width: <?php echo $percentage; ?>%;'><?php echo (int) $stock; ?>

    • 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

  • Das ist ja auch eine ABFRAGE. Wenn stock==0, dann echo "Out of stock". Sonst echot (gibt er aus) das normale "Diagramm".
    Ich probiere das gerade mal lockal aus und poste es dann.

    Aber für solche Aufgaben solltest Du Dir ohne PHP evtl. einen Dienstleister nehmen.

  • So funktioniert das:

    Einfach die Funktion get_availability_bar durch das obige ersetzen

  • Darf ich dich noch einmal um deine Hilfe bitten?
    Ich habe mithilfe des folgenden Codes ein Variations-bezogenes Custom field erstellt, d.h. ich kann jetzt pro Variation einen Wert eingeben, der dann auf der Produktseite ausgegeben wird.

    Jetzt bräuchte ich auch hier die Möglichkeit, den Wert mithilfe eines Shortcodes an einer beliebigen Stelle innerhalb meiner Produktseite auszugeben. Hab versucht eine Funktion mit Shortcodefunktionialität zu schreiben und den Wert des Custom Fields da drin abzurufen, aber da wird leider etweder "array" oder gar nichts angezeigt. Ich bin auch nicht sicher wie der Key des Custom fields lautet: "_text_field" oder "text_field" oder ganz was anderes?!

    Weißt du wie ich das mache? Vielen Dank schonmal im Voraus

  • Das Custom Field heisst "_text_field".

    Ja, da würde ich einen Shortcode schreiben, der das Custom Field abruft. Nur: woher kommt die ID für das Custom-Field? Denn das hängt ja davon ab, welche Variante man nimmt. Das Custom-Field für "Rot" kann ein ganz anderes sein als das für "Grün". Welches willst Du dann aufrufen?

  • Hm, kann man das nicht dynamisch machen? Wenn rot ausgewählt ist, soll der Wert für Rot ausgegeben werden und bei Grün der für Grün...
    Ich habs damit (und mit variationen davon) versucht aber das liefert nur "Array":

    HTML
    function testsc( $loop, $variation_data, $variation ) {
    global $post;
    $test = get_post_meta( $variation->ID, '_text_field', true );
    return $test;      
    }
    add_shortcode( 'test', 'testsc' );

    oder das hier liefert gar nix aus:

    HTML
    function testsc() {
    global $post;
    $test = get_post_meta( $product_id, '_text_field', true );
    return $test;      
    }
    add_shortcode( 'test', 'testsc' );
  • Dann mach doch mal vor dem
    return $test;

    ein

    var_dump($test).

    Du hast da sicher ein array, weil es 2 oder mehr varianten gibt. Denn Du holst ja nicht das custom field für die Variante, sondern für das Produkt.

  • Meinst du so?

    HTML
    function testsc() {
    global $post;
    $test = get_post_meta( $product_id, '_text_field', true );
    var_dump($test);
    return $test;      
    }
    add_shortcode( 'test', 'testsc' );


    Dann kommt immer bool(false)

  • Äh...was? Was soll ich jetzt machen? Sorry, bin kein Programmierer, hab bisher zwar immer alles hinbekommen aber hier stößt mein Verständnis grad an seine Grenzen :)

  • Upps, bei dem Code für den ich einen Shortcode erstellen will hab ich zwei Zeilen vergessen (Add Variation Settings & Save Variation Settings). Hier ist nochmal der komplette Code (kommt übrigens von hier:http://www.remicorson.com/woocommerce-cu…for-variations/), dessen Ergebnis ich gerne über einen Shortcode ausgeben würde:

  • Wird auch alles schön ausgegeben, nur bräuchte ich das ganze eben als Shortcode weil ichs in Kombi mit einem anderen Plugin verwenden möchte, was Shortcodes voraussetzt (Contact Form 7 dynamic text extension)

  • Yep, weil Du leider 2x Actions vergessen hast.

    Damit funktioniert es bei mir, die Custom Fields auszugeben:

    Und jetzt machst Du einfach folgendes:

    In der variation.php im Ordner /woocommerce/templates/single-product/add-to-cart/ fügst Du ein unter

    die Zeilen

    PHP
    <div class="woocommerce-variation-custom-text-field">                               {{{ data.variation.text_field }}}                           </div>

    Damit wird dann Dein Custom Field angezeigt. Das sind woocommerce-Bordmittel, Du kannst das auch woanders hinsetzen, den div, aber er muss innerhalb der <script>-Tags stehen.


    Test2 und test3 sind meine Custom Fields, also die Werte, die ich eingegeben habe.

  • Ja, so hatte ich das auch von anfang an, ich hatte die actions nur hier im forum vergessen. funktioniert hat das alles direkt, aber ich brauche die ausgabe von dem custom field als shortcode weil ich diesen shortcode dann in kombi mit contact form 7 dynamic text extension benutzen will.

  • Sorry, keine Möglichkeit gefunden, dass per Shortcode zu machen. Entweder machst Du das in ein Template wie im Beispiel oder es findet sich noch jemand, der das erledigt.

Jetzt mitmachen!

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