在 woocommerce 购物车页面上,我需要包含一个事件代码段(在 wp_head
中)并将购物车的价值和所选货币传递给它。这是我到目前为止的代码:
add_action('wp_head', 'cart_page_tracking_codes');
function cart_page_tracking_codes() {
if ( ! is_wc_endpoint_url('is_cart') ) return;
global $woocommerce;
$cart_total = $woocommerce->cart->get_cart_total();
?>
<script>
pintrk('track', 'addtocart', {
value: <?php echo $cart_total; ?>,
// order_quantity: 1,
currency: 'USD'
});
</script>
<?php
}
我被困在获取货币上。请注意,商店提供美元和加元。
get_currency()
与现有的 Woocommerce 订单相关。
答案 0 :(得分:0)
您要查找的条件是 is_cart()
而不是 is_wc_endpoint_url()
。
根据后续评论,您还需要未格式化的价格。 get_cart_total()
将默认显示格式(添加货币符号等)。但是,如果您使用 get_total()
并传入视图以外的上下文,它将返回未格式化的值。
WooCommerce 默认不支持多种货币,因此它的货币方面将取决于您使用的插件。我已经使用 WooCommerce 的基础货币编写了答案。您需要与插件的支持团队联系,以确定如何访问客户选择的货币。
function wpse_insert_cart_tracking_script() {
if ( ! is_cart() ) {
return;
} ?>
<script>
pintrk('track', 'addtocart', {
value: <?php echo WC()->cart->get_total( 'raw' ); ?>,
currency: '<?php echo get_woocommerce_currency(); ?>'
});
</script>
<?php
}
add_action( 'wp_head', 'wpse_insert_cart_tracking_script' );