Получить и передать сумму заказа Woocommerce в скрипт конвертации Salesforce - PullRequest
0 голосов
/ 01 марта 2019

В Woocommerce я пытаюсь передать сумму заказа и преобразовать ее в Salesforce Marketing Cloud.

Вот мой код:

<?php global $woocommerce;
$order = wc_get_order( $order_id );
add_action('wp_head', function(){ ?>
<script src="js/salesforce.js" type="text/javascript"></script>
<?php if(!is_page(5)){ ?>
    <script type="text/javascript">
        salesforce.track();
    </script>
<?php }
if(is_page(5)){ ?>
    <script type="text/javascript">
        salesforce.conversion(5, 'order-confirmation', '<?php echo $order->get_total ?>');
    </script>
<?php }});>

Все работает, кроме этой переменной, $order->get_total, отображается пустым каждый раз / не конвертируется в Salesforce Marketing Cloud.

Я использую неправильную переменную Woocommerce или я где-то пропускаю шаг?

1 Ответ

0 голосов
/ 01 марта 2019

В вашем коде вы не можете получить идентификатор заказа и WC_Order объект тоже ...
Кроме того, поскольку свойства заказа Woocommerce 3+ не могут быть доступны напрямую, и вам нужно использоватьдоступные методы для WC_Order и WC_Abstract_Order

Кажется, что вы пытаетесь получить сумму заказа на странице конечной точки «заказ получен», поэтому используйте это:

add_action('wp_head', 'custom_saleforce_script' );
function custom_saleforce_script(){ 
    ?>
    <script src="js/salesforce.js" type="text/javascript"></script>
    <script type="text/javascript">
    <?php 
    // For order recieved page
    if( is_wc_endpoint_url('order-received') ) : 
        $order = wc_get_order( get_query_var('order-received') );
    ?>
        salesforce.conversion( <?php echo get_the_id() ?>, 'order-confirmation', '<?php echo $order->get_total() ?>');
    <?php 
    // For other pages
    else : ?>
        salesforce.track();
    <?php 
    endif; ?>
    </script>
    <?php 
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Должно работать.

...