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

问题描述 投票:1回答:1

在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变量还是我在某个地方错过了一步?

javascript php wordpress woocommerce orders
1个回答
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文件中。它应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.