• Resolved wpecom

    (@wpecom)


    Template delivery-time-info.php
    unter woocommerce-germanized\templates\single-product

    // Original Template Code von delivery-time-info.php

    <?php if ( wc_gzd_get_gzd_product( $product )->get_delivery_time_html() ) : ?>
    // Hier funktioniert die Manipulation der Lieferzeit bzw. Einfügen von Inhalten erfolgreich durch Anpassen vom Template.
    <p class="wc-gzd-additional-info delivery-time-info <?php echo esc_attr( wc_gzd_get_product_delivery_time_classname( $product ) ); ?>"><?php echo wp_kses_post( wc_gzd_get_product( $product )->get_delivery_time_html() ); ?></p>

    <?php elseif ( $product->is_type( 'variable' ) ) : ?>
    // Hier wird der Sonderfall behandelt, wenn das Produkt vom Typ variable ist.
    // Wie kann die Lieferzeit bzw. der Inhalt hier korrekt manipuliert werden?
    <p class="wc-gzd-additional-info delivery-time-info wc-gzd-additional-info-placeholder"></p>

    <?php endif; ?>

    Wie kann das Template (Inhalt der Lieferzeit) korrekt angepasst werden für den Sonderfall Produkttyp variable bzw. variation?
    Hier scheint keine Information der Lieferzeit direkt hinterlegt zu sein, sondern diese wird erst sp?ter eingebaut?!

    Ziel: Es wird ein benutzerdefinierter Inhalt als HTML (und PHP) Code zus?tzlich zur hinterlegten Lieferzeit ausgegeben, wenn der Produkttyp variable ist.

    Der Inhalt soll auch nur dargestellt werden, wenn eine Lieferzeit tats?chlich gerendert wird, also eine Variation mit Lieferzeit ausgew?hlt wurde.
    Wurde keine Variation ausgew?hlt, wird keine Lieferzeit und kein benutzerdefinierter Inhalt ausgegeben.
    Ist keine Lieferzeit zu einer ausgew?hlten Variation vorhanden, wird auch kein benutzerdefinierter Inhalt ausgegeben.

    Fehlgeschlagener Codeversuch, den Inhalt in den Placeholder reinzupacken:

    // Originaler Placeholder, welcher die Lieferzeit darstellt
    <p class="wc-gzd-additional-info delivery-time-info wc-gzd-additional-info-placeholder">

    // Benutzerdefinierter Inhalt innerhalb des Placeholders.
    <span class="myText">myText<?php echo '123'; ?></span>

    </p>

    Wie funktioniert dieses Ersetzen des Placeholders?
    Kann das gewünschte Ziel erreicht werden?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author vendidero

    (@vendidero)

    Hi,

    zum Anpassen der Lieferzeit-Ausgabe solltet ihr die Filter verwenden, die Germanized dafür vorsieht. Die greifen dann bei allen Produkttypen. S.a.: https://github.com/vendidero/woocommerce-germanized/blob/master/includes/abstracts/abstract-wc-gzd-product.php#L2071

    Grü?e

    Thread Starter wpecom

    (@wpecom)

    Lieferzeit-Ausgabe solltet ihr die Filter verwenden, die Germanized dafür vorsieht

    Vielen Dank für die Hilfe!

    Es konnte über die functions.php vom Theme der Filter woocommerce_gzd_product_delivery_time_html eingebaut werden, um den HTML Code der Lieferzeit-Ausgabe zu manipulieren und es konnte tiefgehendere Analyse erfolgen.

    ? Für ein einfaches Produkt funktioniert die Darstellung (Custom CSS und Theme JS) damit auch korrekt.

    ? Leider bleibt das Problem, dass die Darstellung nicht funktioniert für den Produkttyp variable.
    Wahrscheinlich weil die Informationen für ein variables Produkt durch Germanized im Nachhinein in den add-to-cart Block durch JS hinzugefügt werden?

    Der benutzerdefinierte HTML Code der Lieferzeit enth?lt CSS Klassen, die vom Theme selbst per JS manipuliert werden. Dieses Theme JS (mit mouseover function) wird anscheinend nicht korrekt in dieser Box für variable Produkte ausführt, was zum Darstellungsfehler führt. (Lieferzeit HTML ist unter class="wc-gzd-additional-info delivery-time-info variation_modified variation_gzd_modified")

    Meine Vermutung: Es müsste nachdem das Germanized JS durchgelaufen ist beim Ausw?hlen einer Variation, nochmal das Theme JS ausgeführt werden, um die Darstellung anzupassen. Das Theme JS wird aber wahrscheinlich nur einmal nach dem Laden der Seite ausgeführt und wird nicht wiederholt. Klingt für mich nach einer sehr schwierigen Situation.

    Ich bin etwas hoffnungslos und werde noch mit einem Entwickler drauf schauen.
    über jeden Tipp w?re ich enorm dankbar!

    Plugin Author vendidero

    (@vendidero)

    Hi,

    ja, das wird out-of-the-box nicht funktionieren. Hier müsste das Theme die von Woo (bzw. Germanized) bereitgestellten JS-Hooks verwenden, die nach dem Aktualisieren einer Variante ausgeführt werden, um das individuelle JS im ver?nderten DOM erneut auszuführen. https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/legacy/js/frontend/add-to-cart-variation.js#L35 bzw. https://github.com/vendidero/woocommerce-germanized/blob/master/assets/js/static/add-to-cart-variation.js#L139

    Grü?e

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Template delivery-time-info anpassen Variable/Variation Produkte’ is closed to new replies.