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; ?>&currency_code=GBP&label=CzWXCLmwn1YQ_aLJ_AM&guid=ON&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.
il problema è '$ ordine'. Dice che non è un oggetto, quindi la variabile è sbagliata. – Neoares
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