在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变量还是我在某个地方错过了一步?
在您的代码中,您无法获得订单ID和WC_Order
对象...
此外,由于无法直接访问Woocommerce 3+ Order属性,您需要使用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文件中。它应该有效。