2015-11-17 16 views
8

Attualmente sto cercando di ottenere l'ordine totale di un checkout per WooCommerce in modo che possa essere inviato tramite una conversione di Google AdWords.WooCommerce ottieni un totale dell'ordine

Ecco il codice:

<?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 } ?> 

Per qualche ragione quando questo si trova nella pagina $ get_order_total = floatval (preg_replace ('# [.^\ D] #', '', $ ordine-> get_formatted_order_total())); si rompe la pagina e produce questo errore:

chiamata a un get_formatted_order_total funzione membro() su un non-oggetto in /woocommerce/checkout/thankyou.php on line 409

Ho guardato in giro e anche provato ad aggiungere la variabile globale $ woocommerce ma senza successo. La versione che stiamo usando è 2.1.12.

Il vostro aiuto sarebbe molto apprezzato.

+1

il problema è '$ ordine'. Dice che non è un oggetto, quindi la variabile è sbagliata. – Neoares

+0

Esattamente, è proprio lì nel messaggio di errore. Se hai l'ID ordine, puoi '$ ordinare = wc_get_order ($ order_id)' per ottenere l'oggetto ordine. Anche '$ order-> get_total()' potrebbe significare che non è necessario fare tutto ciò che 'preg_replace'. Oh, e aggiorna il tuo WooCommerce !! Hai diverse versioni dietro. – helgatheviking

risposta

26

provare qualcosa di simile per visualizzare il vostro ordine totale:

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

Spero che funziona per voi!

Cordiali saluti.

+0

Grazie ora funziona :) – Kyon147

+0

Grazie, codice veramente utile @ Clément Houde. –

+0

Grazie, semplice ma pulito !!! –

Problemi correlati