2015-11-17 11 views
8

Ich versuche derzeit, die Bestellsumme eines Checkouts für WooCommerce zu erhalten, damit es mit einer Google AdWords-Conversion versendet werden kann.WooCommerce Gesamtbetrag erhalten

Hier ist der Code:

<?php 
$get_order_total = floatval(preg_replace('#[^\d.]#', '', $order->get_formatted_order_total())); 
?> 

<!-- Google Code for ATS Conversion Page --> 
<?php if ($get_order_total) { ?> 
<script type="text/javascript"> 
/* <![CDATA[ */ 
var google_conversion_id = 1066553725; 
var google_conversion_language = "en"; 
var google_conversion_format = "3"; 
var google_conversion_color = "ffffff"; 
var google_conversion_label = "CzWXCLmwn1YQ_aLJ_AM"; 
if (<?php echo $get_order_total; ?>) { var google_conversion_value = <?php echo $get_order_total; ?>; var google_conversion_currency = "GBP"; } 
var google_conversion_currency = "GBP"; 
var google_remarketing_only = false; 
/* ]]> */ 
</script> 
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> 
</script> 
<noscript> 
<div style="display:inline;"> 
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/1066553725/?value=<?php echo $get_order_total; ?>&amp;currency_code=GBP&amp;label=CzWXCLmwn1YQ_aLJ_AM&amp;guid=ON&amp;script=0"/> 
</div> 
</noscript> 

<?php } ?> 

Aus irgendeinem Grund, wenn diese auf der Seite $ get_order_total = floatval (preg_replace ('# [.^\ D] #', '', $ order-> get_formatted_order_total())); es bricht die Seite und erzeugt diesen Fehler:

Anruf auf eine Elementfunktion get_formatted_order_total() auf einem Nicht-Objekt in /woocommerce/checkout/thankyou.php on line 409

ich mich umsah haben und auch versucht, das Hinzufügen die globale Variable $ woocommerce, aber ohne Erfolg. Die Version, die wir verwenden, ist 2.1.12.

Ihre Hilfe würde sehr geschätzt werden.

+1

das Problem ist '$ Auftrag'. Es sagt, es ist kein Objekt, also ist die Variable falsch. – Neoares

+0

Genau, es ist genau dort in der Fehlermeldung. Wenn Sie die Auftrags-ID haben, können Sie '$ order = wc_get_order ($ order_id)' verwenden, um das Auftragsobjekt zu erhalten. Außerdem kann '$ order-> get_total()' bedeuten, dass Sie all das 'preg_replace' nicht tun müssen. Oh, und aktualisiere deinen WooCommerce !! Sie haben mehrere Versionen zurück. – helgatheviking

Antwort

26

versuchen so etwas wie dies für Ihre Bestellung Gesamt anzuzeigen:

<?php echo $order->get_total(); ?> 

Ich hoffe, es funktioniert für Sie!

Mit freundlichen Grüßen.

+0

Danke, dass es jetzt funktioniert :) – Kyon147

+0

Vielen Dank, wirklich hilfreich Code @ Clément Houde. –

+0

Danke, einfach aber sauber !!! –

Verwandte Themen