Gelöst PHP in Emailvorlagen II

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

ongnamo

Gut bekanntes Mitglied
31. März 2013
740
21
#1
Ich war zu schnell und konnte den vorherigen Post nicht mehr editieren. Eine Frage bliebe da noch: Wie kann ich innerhalb des PHP-Abschnitts auf die Smarty-Variablen zugreifen? zum Beispiel muss ich die Bestellnummer zuweisen, doch folgendes klappt nicht, weder mit noch ohne geschweifte Klammern:

$transactionId = {$Bestellung->cBestellNr};

LG
Thomas
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
3.801
521
Berlin
#2
Das was du da gelesen hast ist Böse, mach das nicht, ich war eben sehr erschrocken das Mirko das so geschrieben hat :eek:

1. smarty Gebot:
Du sollst nicht nutzen php Blöcke in smarty Templates!


Bitte erstelle dir eine smarty Funktion in deinem Child Template in der functions.php,
Dieser übergibst du die erforderlichen Parameter und dort wirst du dann den PHP Code ausführen und sie gibt dir dann je nachdem was du benötigst, die passenden Daten zurück die du im Template ausgibst.
 

ongnamo

Gut bekanntes Mitglied
31. März 2013
740
21
#3
2. Smarty Gebot: Lasse keinen Anfänger wie mich an Smarty :)

Wir hatten ja schon einmal Kontakt im Rahmen Deines Gutschein-Plugins. Das läuft ja wunderbar. Deine Hinweise überfordern mich jedoch. Könntest Du mir mir bei der Umsetzung behilflich sein?
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
3.801
521
Berlin
#4
Der einfachste weg du würdest den Code den du hast hier posten, dann kann ich damit es auch mal andere sehen das an einem echtem Beispiel zeigen.

Wenn der Code geheim ist kann ich das auch als Auftragsarbeit machen, dann kostet das aber etwas.
Hierbei ist es dann davon abhängig ob ein Child Template existiert.
 

ongnamo

Gut bekanntes Mitglied
31. März 2013
740
21
#5
Der Code ist nicht wirklich geheim und vielleicht ist eine Lösung auch für andere Kunden von Ausgezeichnet.org interessant, wenn sie den Standard-Bewertungslink auf einen individuellen Link ändern wollen, so wie das empfohlen wurde. Also poste ich das gerne.

Die Aufgabe klingt zunächst recht simpel und ist es für einen Profi vielleicht auch. Ich möchte den vorgenannten individ. Link zur Abgabe der Bewertung in die Versand-Emailvorlage einfügen.

Ausgezeichnet.org hat hierfür einen PHP-Code zur Erzeugung des Links bereitgestellt (meine Daten habe ich durch neutrale Werte in kursiv ersetzt):

// Bitte geben Sie die Transaktions-ID an und wählen Sie die collection method
$transactionId = $hierDieVariableIhresShopSystemsZurEindeutigenKennzeichnung;
$collectionMethod = "af"; // oder $collectionMethod = "pos";
// Bitte ändern Sie nichts am nachfolgenden Code
$hash = md5("14521/" . $transactionId . "/" . $collectionMethod . "/hashcode");
$baseUrl = "https://www.ausgezeichnet.org/bewerten-xyz.de-47111?txid=";
$ratingInvitationUrl = $baseUrl . $transactionId . "&collmethod=" . $collectionMethod . "&hash=" . $hash;

Der Variable $transactionId wollte ich die Bestellnummer zuordnen, also {$Bestellung->cBestellNr}. Und wie gesagt, der durch den PHP-Code erzeugte Link soll dann in die Emailvorlage, idealerweise HTML und Text, eingefügt werden.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
3.801
521
Berlin
#6
Hierfür brauchst du noch nicht einmal php, das geht direkt im Template.

Code:
{assign var=transactionId value=$Bestellung->cBestellNr}
{assign var=collectionMethod value="af"}
{assign var=shopId value="14521"}
{capture assign=hash}{$shopId}/{$transactionId}/{$collectionMethod}/hashcode{/capture}
https://www.ausgezeichnet.org/bewerten-xyz.de-{$shopId}?txid={$transactionId}&collmethod={$collectionMethod}&hash={$hash|md5}
 
Zustimmungen: ongnamo

Ähnliche Themen