获取Woocommerce订单总额并将其传递到Salesforce转换脚本中

时间:2019-03-01 16:37:09

标签: javascript php wordpress woocommerce orders

在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 :(得分:0)

在您的代码中,您也无法获取订单ID WC_Order对象……
而且,由于无法直接访问Woocommerce 3+ Order属性,因此您需要为WC_OrderWC_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文件中。应该可以。