Thread Starter
onasol
(@onasol)
Where did you get the information from, that also a code has to be included in function.php and thankyou.php?
Because the Trusted Shops pdf-manual (page 6) which I have only gives one code which needs to be implemented, that is the html-code I have depicted above.
It was given to me by Trusted Shops after the first chaos.
And now this works for me:
Into the thankyou.php
………………..
<?php function add_trusted_shops_code_to_thank_you( $order_id ){
// Get order object
$order_obj = new WC_Order( $order_id );
//print'
<pre>';print_r( $order_obj );print'</pre>
';
print '<table width="700" border="0" cellspacing="0" cellpadding="4"><tr><td width="90">';
print '<a href="https://www.trustedshops.com/shop/certificate.php?shop_id=YOUR-SHOP-ID">';
print '<img border="0" src="http://www.trustedshops.de/cms/assets/templates/b2b/images/logo_eu_b2b.png" title="Trusted Shops Gütesiegel - Bitte hier Gültigkeit prüfen!" ';
print 'alt="Trusted Shops Gütesiegel - Bitte hier Gültigkeit prüfen!"></a>';
print '</td><td align="justify">';
print '<form id="formTShops" name="formTShops" method="post" action="https://www.trustedshops.com/shop/protection.php" target="_blank">';
print '<input name="_charset_" type="hidden" value="UTF-8">';
print '<input name="shop_id" type="hidden" value="YOUR-SHOP-ID ">';
print '<input name="email" type="hidden" value="'. $order_obj->billing_email .'">';
print '<input name="amount" type="hidden" value="'. $order_obj->order_total .'">';
print '<input name="curr" type="hidden" value="EUR">';
print '<input name="paymentType" type="hidden" value="'. $order_obj->payment_method .'">';
print '<input name="kdnr" type="hidden" value="-">';
print '<input name="ordernr" type="hidden" value="-">';
print 'Als zusätzlichen Service bieten wir Ihnen den Trusted Shops Käuferschutz an. Wir übernehmen
alle Kosten dieser Garantie, Sie müssen sich lediglich anmelden.';
print '
<input type="submit" id="btnProtect" name="btnProtect" value="Anmeldung zum Trusted Shops Käuferschutz">';
print '</form></td></tr></table>';
}
?>
And this into the functions.php of the theme
add_action( 'woocommerce_thankyou', 'add_trusted_shops_code_to_thank_you' );
I have no idea why it was so complicated and I hope it´s okay now for TS. I`ll tell you.
In the “Bestellung erhalten” page there´s nothing but [woocommerce_thankyou].
Thread Starter
onasol
(@onasol)
Hmm… but if you say “In the “Bestellung erhalten” page there´s nothing but [woocommerce_thankyou]” than this means that the TS form is not showing up on the “Bestellung erhalten” page, right?
Which means the code is not fulfilling the task. Because the task is according to TS (which is our main problem)… that after the customer places his offer the “Anmeldung zum Trusted Shops Käuferschutz” form (like it can be seen here on page 4) must appear. But it doesn’t … I have tried it now again with the way you’ve described it in your last post.
There must be a solution!!
Hey Mike.
Also die gute Meldung: bei mir funktioniert es und TS akzeptiert es.
Das Kästchen “Anmeldung zum…” erscheint (ich habe allerdings die Breite auf 700px gesetzt, kannst du ja ändern), weil es in der php-Funktion definiert ist und die widerum ist in der thankyou.php und wird damit durch den shortcode [woocommerce_thankyou] aufgerufen. Deswegen braucht es keinen weiteren html-code in der “Bestellung erhalten”-Seite.
Das fällt mir noch ein:
– Die function.php liegt unter …/wp-content/plugins/woocommerce/templates/checkout
Mach Dir bloß vorher eine Kopie vom Original bevor Du was überschreibst.
– Ganz dumme Frage: hast Du daran gedacht an beiden Stellen die shop-id auszutauschen?
– Und hast Du add_action-usw. in die functions.php vom Theme eingefügt? Das hab ich über WordPress gemacht, die functions.php finde ich schneller auf dem Server über FTP
Mir wäre auch wohler wenn ich nachvollziehen könnte, warum das tagelang NICHT funktioniert hat…
Ach ja – bei mir werden nur EMail und Betrag übergeben, das reicht aber aus.
Thread Starter
onasol
(@onasol)
Hi… also hier sind die exakten Schritte die ich durchführe (mit denen es leider bei mir immer noch nicht klappt).
1. Deinen Code
<?php function add_trusted_shops_code_to_thank_you( $order_id ){ ...
einfügen in bzw. ergänzen zu /wp-content/plugins/woocommerce/templates/checkout/thankyou.php (und zwar ganz am Ende nach <?php endif; ?>)
2. Den Code
add_action( 'woocommerce_thankyou', 'add_trusted_shops_code_to_thank_you' );
einfügen in wp-content/themes/mein-theme/functions.php
3. YOUR-SHOP-ID an zwei Stellen in der php-Funktion mit meiner Shop ID austauschen.
Das war’s. Damit klappt es bei mir nicht. Nachdem eine Bestellung eingangen ist und die Seite “Bestellung erhalten” (bzw. Auftrag eingegangen) kommt, wo dann eigentlich das TS Formular zu sehen sein sollte (was bei mir leider nicht der Fall ist), ist die Seite “beschädigt”… sprich der Footer fehlt und wird nicht angezeigt aufgrund der TS php-Funktion.
Wärst du vielleicht so nett und könntest noch einmal überprüfen, ob wirklich alle Formatierungen des Codes den du gepostet hast richtig sind? Mir ist nämlich schon aufgefallen, dass die folgende Formatierung
//print'
<pre>';print_r( $order_obj );print'</pre>
';
in das folgende Format geändert werden muss, da sonst das ‘-Zeichen nach //print mit ausgeklammert wird. Oder soll das so sein?
//print
'<pre>';print_r( $order_obj );print'</pre>';
So wie ich das sehe sind 1 bis 3 okay.
Hier nochmal der Code, so, wie ich ihn von TS bekommen und aktuell eingebaut habe (schon beim ersten Mal, weil html nicht funktionierte):
<?php function add_trusted_shops_code_to_thank_you( $order_id ){
// Get order object
$order_obj = new WC_Order( $order_id );
//print'<pre>';print_r( $order_obj );print'</pre>';
print '<table width="700" border="0" cellspacing="0" cellpadding="4"><tr><td width="90">';
print '<a href="https://www.trustedshops.com/shop/certificate.php?shop_id=SHOP-ID" target="_blank">';
print '<img border="0" src="http://www.trustedshops.de/cms/assets/templates/b2b/images/logo_eu_b2b.png" title="Trusted Shops Gütesiegel - Bitte hier Gültigkeit prüfen!" ';
print 'alt="Trusted Shops Gütesiegel - Bitte hier Gültigkeit prüfen!"></a>';
print '</td><td align="justify">';
print '<form id="formTShops" name="formTShops" method="post" action="https://www.trustedshops.com/shop/protection.php" target="_blank">';
print '<input name="_charset_" type="hidden" value="UTF-8">';
print '<input name="shop_id" type="hidden" value="SHOP-ID ">';
print '<input name="email" type="hidden" value="'. $order_obj->billing_email .'">';
print '<input name="amount" type="hidden" value="'. $order_obj->order_total .'">';
print '<input name="curr" type="hidden" value="EUR">';
print '<input name="paymentType" type="hidden" value="'. $order_obj->payment_method .'">';
print '<input name="kdnr" type="hidden" value="-">';
print '<input name="ordernr" type="hidden" value="-">';
print 'Als zusätzlichen Service bieten wir Ihnen den Trusted Shops Käuferschutz an. Wir übernehmen
alle Kosten dieser Garantie, Sie müssen sich lediglich anmelden.';
print '<br /><br /><input type="submit" id="btnProtect" name="btnProtect" value="Anmeldung zum Trusted Shops Käuferschutz">';
print '</form></td></tr></table>';
}
?>
Thread Starter
onasol
(@onasol)
WOW… nicht zu fassen.. es klappt!!! Das Problem: Ich hatte das Plugin “WP-Piwik” installiert und das hat da wohl irgendwie dazwischen gefunkt!! Unglaublich! Hab es jetzt deaktiviert… nun klappt alles!!!
Hätte ich gleich mal drauf kommen sollen… also beim nächsten mal falls irgendwas nicht klappt, obwohl es klappen sollte, einfach mal anfangen die Plugins einzeln zu deaktivieren und dann schauen, ob es funktioniert!
Nochmal danke für deine Hilfe!!!
P.S.: Es wird sogar die Bestellnummer übertragen.
print '<input name="ordernr" type="hidden" value="'. $order_obj->id .'">';
Super!
Wird bei Dir auch die payment-method übertragen? Die kommt bei mir nicht an, da öffnet sich nur eine Auswahlliste.
Und die Order-Nr. generiert sich bei mir über ein Plugin. Als ich order_obj->id (oder so ähnlich) eingebaut hatte, wurde nur eine Phantasienummer (evtl. auch die id vom Beitrag) eingesetzt.
Wo kommt Deine Ordernr. her?
Thread Starter
onasol
(@onasol)
Nein, die payment-method wird nicht übertragen… wenn man z.b. die Zahlung Vorkasse/Überweisung ausgewählt hat, wird dann bei TS “basc” oder so etwas ähnliches übertragen. Ich weiß nicht was das bedeutet.
Die Ordernummer, ist die, die standardmäßig von WooCommerce generiert wird. Habe also kein zusätzliches Plugin hierfür installiert.