Передайте данные заказа в код отслеживания AdForm в Woocommerce, спасибо - PullRequest
0 голосов
/ 03 июля 2018

Я хочу передать переменные WooCommerce "OrderID" и "Cart_total" в нашу платформу отслеживания объявлений.

Мне предоставили код отслеживания, который необходимо было реализовать, и у меня возникли проблемы с переносом этих переменных в AdForm.

Вот фрагмент, который работает отлично, я думаю, что я не включаю переменные правильно.

/**
 * @snippet       Add Conversion Tracking Code to Thank You Page
 * @how-to        Watch tutorial @ https://businessbloomer.com/?p=19055
 * @sourcecode    https://businessbloomer.com/?p=19964
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.3.4
 */

add_action( 'woocommerce_thankyou', 'bbloomer_conversion_tracking_thank_you_page' );

function bbloomer_conversion_tracking_thank_you_page() {
?>
<!-- Adform Tracking Code BEGIN -->
<script type="text/javascript">
    window._adftrack = Array.isArray(window._adftrack) ? window._adftrack : (window._adftrack ? [window._adftrack] : []);
    window._adftrack.push({
        pm: XXXXXXXX,
        divider: encodeURIComponent('|'),
        pagename: encodeURIComponent('conversion'),
        order : { 
             sales: '$woocommerce->cart->get_cart_total();',
             orderid: '$order->get_id();'
        }
    });
    (function () { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://track.adform.net/serving/scripts/trackpoint/async/'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); })();

</script>
<noscript>
    <p style="margin:0;padding:0;border:0;">
        <img src="https://track.adform.net/Serving/TrackPoint/?pm=XXXXXXX&ADFPageName=conversion&ADFdivider=|" width="1" height="1" alt="" />
    </p>
</noscript>
<!-- Adform Tracking Code END -->
<?php
}

В частности, меня попросили предоставить следующие переменные:

 sales: '$woocommerce->cart->get_cart_total();',
 orderid: '$order->get_id();'

Но они не работают. Я, к сожалению, не программист (программист в отпуске). Я думаю, что мне нужно где-то вызвать переменные.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Отлично, это работает как шарм! Большое спасибо за вашу помощь!

Могу я купить тебе пива? : -D

С уважением, Mark

0 голосов
/ 04 июля 2018

На странице Заказа (спасибо) больше нет данных корзины, поэтому вы наверняка имеете в виду $order->get_total(). Также есть ошибки в вашем коде.

Так что вам нужно:

  1. сначала получит объект WC_Order из отсутствующего аргумента $order_id в функции хокирования
  2. Получить сумму заказа
  3. Чтобы включить и отобразить значения в коде JavaScript.

Попробуйте следующее:

add_action( 'woocommerce_thankyou', 'bbloomer_conversion_tracking_thank_you_page', 12, 1 );
function bbloomer_conversion_tracking_thank_you_page( $order_id ) {
    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );

    ?>
    <!-- Adform Tracking Code BEGIN -->
    <script type="text/javascript">
        window._adftrack = Array.isArray(window._adftrack) ? window._adftrack : (window._adftrack ? [window._adftrack] : []);
        window._adftrack.push({
            pm: XXXXXXXX,
            divider: encodeURIComponent('|'),
            pagename: encodeURIComponent('conversion'),
            order : { 
                 sales: '<?php echo $order->get_total(); ?>',
                 orderid: '<?php echo $order->get_id(); ?>;'
            }
        });
        (function () { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://track.adform.net/serving/scripts/trackpoint/async/'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); })();

    </script>
    <noscript>
        <p style="margin:0;padding:0;border:0;">
            <img src="https://track.adform.net/Serving/TrackPoint/?pm=XXXXXXX&ADFPageName=conversion&ADFdivider=|" width="1" height="1" alt="" />
        </p>
    </noscript>
    <!-- Adform Tracking Code END -->
    <?php
}
...