• Resolved sventertain

    (@sventertain)


    Hallo,

    ich habe den {base_price} in den Einstellungen eingetragen. Hervorragend, dass sich dadurch der Preis nach Auswahl einer Variante direkt aktualisiert. Prinzipiell ist ja auch die M?glichkeit mit {price} auch die Einheit mit auszugeben. Alles klasse!

    Nun hab ich allerdings in den E-Mails immer eine doppelte Preisangabe am Artikel, z. B. 6,00 € 6,00 €/250g

    Das l?sst sich doch sicher in der functions.php des Child-Themes überschreiben bzw. für E-Mails deaktivieren. Einen Ansatz habe ich in der ‘class-wc-gzd-emails.php’ gefunden.

    add_filter( ‘woocommerce_order_formatted_line_subtotal’, ‘wc_gzd_cart_product_unit_price’, wc_gzd_get_hook_priority( ’email_product_unit_price’ ), 2 );

    Bin ich auf der richtigen Spur?

    Besten Dank vorab!

    Sven

    https://www.ads-software.com/plugins/woocommerce-germanized/

Viewing 13 replies - 1 through 13 (of 13 total)
  • Thread Starter sventertain

    (@sventertain)

    Meine Ahnung ist, dass in der o.g. Datei die Funktion bzw. der Filter gesetzt wird. Kann ich die Ausgabe in den Mails irgendwie deaktivieren?

    Das geht doch sicher! remove_filter?

    Plugin Author vendidero

    (@vendidero)

    Hi Sven,

    ja, du bist da schon auf der richtigen Spur. Per remove_filter sollte das kein Problem darstellen. Alternativ musst du dir mal die HTML-Struktur der Mail ansehen. Wahrscheinlich kannst du die Info auch einfach per CSS ausblenden.

    Grü?e

    Thread Starter sventertain

    (@sventertain)

    Danke für die Info!
    Ich bin nur leider noch nicht weiter gekommen.

    1. Versuch in der functions.php im Child-Theme

    remove_filter( 'woocommerce_order_formatted_line_subtotal', 'wc_gzd_cart_product_unit_price', wc_gzd_get_hook_priority( 'email_product_unit_price' ), 2 );

    Kein Erfolg.

    2. Versuch in der functions.php im Child-Theme

    add_action('woocommerce_email_header', 'add_css_to_email');
    function add_css_to_email() {
    echo '
    <style type="text/css">
      span.unit-price-cart {display:none !important;}
    </style>
    ';

    Kein Erfolg.

    Bin zwar schon weit aber noch nicht am Ziel und leider nicht sehr codesicher. Vielleicht habt ihr einen noch konkreteren Ansatz?

    Danke!

    Thread Starter sventertain

    (@sventertain)

    Wie muss ich ‘remove_filter’ denn konkret anwenden?
    Ich komme da leider gar nicht weiter…

    Per CSS sehe ich momentan nur den o.g. Weg in meinem Versuch 2.
    Da kommt aber leider nichts im Quellcode der Mail an.

    Hilfeeee!-)

    Grü?e, Sven

    Plugin Author vendidero

    (@vendidero)

    Hi,

    also wenn das CSS nicht in der E-Mail auftaucht, dann hast du wahrscheinlich einen falschen Filter verwendet. Ich empfehle dir den folgenden:
    woocommerce_email_styles

    Eigentlich ist die Verwendung von remove_filter schon korrekt. Einen 4. Parameter erwartet die Funktion allerdings nicht, s.
    https://codex.www.ads-software.com/Function_Reference/remove_filter

    Grü?e

    Thread Starter sventertain

    (@sventertain)

    Hallo,

    danke! Mit dem Filter woocommerce_email_styles erhalte ich beim Bestellen eine Fehlermeldung “Unexpected token”<“… Mails werden dennoch verschickt, ohne ?nderung.

    Per remove_filter hab ich nun folgendes probiert… ohne Erfolg :/

    remove_filter( 'woocommerce_order_formatted_line_subtotal', 'email_product_unit_price', 2 );
    oder
    remove_filter( 'woocommerce_order_formatted_line_subtotal', 'email_product_unit_price' );
    oder
    remove_filter( 'email_product_unit_price' );

    Entschuldige meinen Blindflug. Wie würdest du den remove_filter schreiben???

    Thread Starter sventertain

    (@sventertain)

    Noch ein CSS-Versuch.
    Link zu stackoverflow

    Folgendes zentriert die H1!
    Leider tut sich beim .unit-price gar nichts. Liegt es evtl. daran, dass kein inline-style vorhanden ist? Bei der H1 wird das CSS im inline-CSS erg?nzt.
    Es wird demnach kein <style>-Bereich im head gesetzt…

    add_action('woocommerce_email_header', 'add_css_to_email');
    function add_css_to_email() {
    echo '
    <style type="text/css">
    h1 {
      text-align: center !important;
    }
    .unit-price {
      display: none !important;
    }
    </style>
    ';
    }
    Plugin Author vendidero

    (@vendidero)

    Hi,

    du solltest wirklich den CSS-Filter nehmen, den ich oben genannt habe. Die Fehlermeldung kommt daher, da du versuchst erneut <style type=”text/css”> zu schreiben, obwohl das in der übergeordneten Methode bereits passiert. Nutze den Filter deshalb nur mit dem reinen CSS.

    span.unit-price {
      display: none !important;
    }

    Um remove_filter anzuwenden, müsstest du das aufgrund der Art und Weise wie es in Germanized implementiert ist, doppelt tun – d.h. erst einen Filter per add_filter hinzufügen um dort dann nach Germanized remove_filter aufzurufen:

    add_filter( 'woocommerce_order_item_product', 'child_hook_remove_filter', 10, 1 );
    
    function child_hook_remove_filter( $product ) {
        remove_filter( 'woocommerce_order_formatted_line_subtotal', 'wc_gzd_cart_product_unit_price', wc_gzd_get_hook_priority( 'email_product_unit_price' ) );
        return $product;
    }

    Grü?e

    Thread Starter sventertain

    (@sventertain)

    Das nenne ich mal einen guten Morgen ??
    Danke für die Hilfestellung!

    über deinen Ansatz von remove_filter klappts nun wunderbar!!!
    Danke dafür! Sehr inspirierend!

    Beste Grü?e!

    ps.
    Beim Versuch über CSS

    add_action('woocommerce_email_styles', 'add_css_to_email');
    
    function add_css_to_email() {
        echo '
        span.unit-price {
           display: none !important;
        }
        ';
    }

    erhalte ich: SyntaxError: Unexpected token s

    Plugin Author vendidero

    (@vendidero)

    Hi,

    bzgl. des CSS-Filters:
    Es handelt sich dabei um einen Filter, deshalb per add_filter arbeiten und dem erhaltenen Parameter die CSS-Rules anfügen. Am Ende dann einfach den angepassten Wert returnen und fertig..

    add_filter( 'woocommerce_email_styles', 'child_email_styles' );
    
    function child_email_styles( $styles ) {
        $styles .= '
             span.unit-price {
                display: none !important;
             }
        ';
        return $styles;
    }

    Grü?e

    Ich habe genau dasselbe Ansinnen:

    4 Fragen da:

    1. Kann man dafür in den Germanized-Einstellungen bei Grundpreis nicht eine Option (Checkbox) schaffen wie z.B. “Grundpreis auch in E-Mails ausgeben”

    2. Ist das mit der CSS-Methode safe? Ich frage, weil unterschiedliche Mail-Clients ja Probleme mit CSS haben sollen (https://github.com/woothemes/woocommerce/pull/6489) Deshalb wird normalerweise ja nur CSS-Inline bei Mails verwendet

    3. K?nnte man das nicht wenigstens umbrechen in der Mail, also Grundpreis kleiner und auf eigener Zeile schreiben. Aktuell sieht es wirklich nicht sch?n aus, screenshot aus Thunderbird: https://i.imgur.com/xs1E41j.png

    4. Ist das rechtlich in einer Mail wirklich n?tig, dass der Grundpreis ausgeben wird?

    Knappe Antwort reicht, sch?nes WE ??

    Plugin Author vendidero

    (@vendidero)

    Hi,

    1. M?glich ist alles, ob das Sinn macht, w?re vielleicht eine andere Frage. Es ist nun einmal so, dass wir nicht für jede Darstellungs-Variante eine Option anbieten wollen, da das sonst einfach viel zu überladen wird.

    2. Ja, soweit ich wei?, ist das “safe”. WooCommerce platziert die Styles anschlie?end inline.

    3. Line break w?re wenn dann nur via CSS m?glich. Da müsstest du ein wenig herumspielen.

    4. Dazu kann dir dein Anwalt sicher mehr sagen ??

    Grü?e

    Danke!

    Ein PS:
    Du schriebst weiter oben:

    Eigentlich ist die Verwendung von remove_filter schon korrekt. Einen 4. Parameter erwartet die Funktion allerdings nicht, s.
    https://codex.www.ads-software.com/Function_Reference/remove_filter

    Allerdings finde ich im Code von euch diverse Stellen, wo remove_filter mit 4 Parametern aufgerufen wird:
    * https://github.com/vendidero/woocommerce-germanized/blob/580ff9f642148090b26c7a91ada1097b3f7a0597/includes/wc-gzd-template-functions.php#L266 und folg. 2 Zeilen
    * https://github.com/vendidero/woocommerce-germanized/blob/13ce312fd724718e7ce8f4e987870469e739cd09/includes/class-wc-gzd-customer-helper.php#L270
    * https://github.com/vendidero/woocommerce-germanized/blob/72d0dc868793c803674c12e0b703781cd2e3b8a1/woocommerce-germanized.php#L753

    Aus Interesse: Sind das Fehler? die von WP stillschweigend ignoriert werden?

    PPS Ich denke, die Frage k?nnte auf “resolved” gesetzt werden

Viewing 13 replies - 1 through 13 (of 13 total)
  • The topic ‘Grundpreis Text in E-Mails ausblenden’ is closed to new replies.