在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变量还是我错过了某个步骤?
答案 0 :(得分:0)
在您的代码中,您也无法获取订单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文件中。应该可以。