添加到购物车时,将产品当前选择的变体 SKU 值获取到像素数据层
Get product current selected variation SKU value into pixel datalayer when added to cart
我正在向我的网站添加一个跟踪像素以用于添加到购物车事件。当我使用变体产品时,我需要获取产品变体 sku 而不是主要产品 sku。我已经尝试了很多选择来实现这一点,但我根本没有得到它。我总是得到非动态值并且我得到了没有变化属性的主要产品 SKU。
是否有任何选项可以让我从产品页面跟踪添加到购物车的 SKU 并将选定的变体 SKU 接收到我的数据层?
代码:搜索 //HERE I NEED TO GET CURRENT SELECTED VARIATION SKU 以查看我在何处尝试获取变体 SKU。
完整代码如下
function pixel_tracker() {
if( is_wc_endpoint_url('order-received') ) return;
if( is_product() ){
?>
<!-- Glami piXel -->
<script>
(function(f, a, s, h, i, o, n) {f['GlamiTrackerObject'] = i;
f[i]=f[i]||function(){(f[i].q=f[i].q||[]).push(arguments)};o=a.createElement(s),
n=a.getElementsByTagName(s)[0];o.async=1;o.src=h;n.parentNode.insertBefore(o,n)
})(window, document, 'script', '//www.glami.sk/js/compiled/pt.js', 'glami');
glami('create', 'AADAD885F5F5FF4D', 'sk');
glami('track', 'PageView');
<?php
/*Product view */
/*prida iba do produktov*/
if( is_product() ){
global $post;
$product = wc_get_product( $post->ID );
?>
/*View content type product*/
glami('track', 'ViewContent', {
content_type: 'product',
item_ids: ['<?php echo $product->get_sku(); ?>'],
product_names: ['<?php echo $product->get_name(); ?>']
});
/*Add to cart*/
jQuery( document ).ready(function() {
jQuery(".single_add_to_cart_button").click(function(){
glami('track', 'AddToCart', {
item_ids: ['<?php echo $product->get_sku(); ?>'], //HERE I NEED TO GET CURRENT SELECTED VARIATION SKU
product_names: ['<?php echo $product->get_name(); ?>'],
value: <?php echo $product->get_price(); ?>,
currency: 'EUR'
});
});
});
<?php
}
?>
</script>
<!-- End Glami piXel -->
<?php
}
}
add_action('wp_head', 'pixel_tracker');
提前致谢。
看来你需要更改这一行
item_ids: ['<?php echo $product->get_name(); ?>'],
对此:
item_ids: ['<?php echo $product->get_sku(); ?>_' + document.getElementById("select2-pa_velkost-container").innerText],
说明:选择的值始终为具有上述id的元素的innerText
。我在加载页面后测试了代码,它产生了“42”,然后更改了值和 运行 测试代码,它产生了 46。根据我的理解,这就是你需要的。
免责声明:由于您使用的是 jQuery,您可以执行类似
的操作
item_ids: ['<?php echo $product->get_sku(); ?>_' + document.getElementById("select2-pa_velkost-container").innerText],
还有。
我正在向我的网站添加一个跟踪像素以用于添加到购物车事件。当我使用变体产品时,我需要获取产品变体 sku 而不是主要产品 sku。我已经尝试了很多选择来实现这一点,但我根本没有得到它。我总是得到非动态值并且我得到了没有变化属性的主要产品 SKU。
是否有任何选项可以让我从产品页面跟踪添加到购物车的 SKU 并将选定的变体 SKU 接收到我的数据层?
代码:搜索 //HERE I NEED TO GET CURRENT SELECTED VARIATION SKU 以查看我在何处尝试获取变体 SKU。
完整代码如下
function pixel_tracker() {
if( is_wc_endpoint_url('order-received') ) return;
if( is_product() ){
?>
<!-- Glami piXel -->
<script>
(function(f, a, s, h, i, o, n) {f['GlamiTrackerObject'] = i;
f[i]=f[i]||function(){(f[i].q=f[i].q||[]).push(arguments)};o=a.createElement(s),
n=a.getElementsByTagName(s)[0];o.async=1;o.src=h;n.parentNode.insertBefore(o,n)
})(window, document, 'script', '//www.glami.sk/js/compiled/pt.js', 'glami');
glami('create', 'AADAD885F5F5FF4D', 'sk');
glami('track', 'PageView');
<?php
/*Product view */
/*prida iba do produktov*/
if( is_product() ){
global $post;
$product = wc_get_product( $post->ID );
?>
/*View content type product*/
glami('track', 'ViewContent', {
content_type: 'product',
item_ids: ['<?php echo $product->get_sku(); ?>'],
product_names: ['<?php echo $product->get_name(); ?>']
});
/*Add to cart*/
jQuery( document ).ready(function() {
jQuery(".single_add_to_cart_button").click(function(){
glami('track', 'AddToCart', {
item_ids: ['<?php echo $product->get_sku(); ?>'], //HERE I NEED TO GET CURRENT SELECTED VARIATION SKU
product_names: ['<?php echo $product->get_name(); ?>'],
value: <?php echo $product->get_price(); ?>,
currency: 'EUR'
});
});
});
<?php
}
?>
</script>
<!-- End Glami piXel -->
<?php
}
}
add_action('wp_head', 'pixel_tracker');
提前致谢。
看来你需要更改这一行
item_ids: ['<?php echo $product->get_name(); ?>'],
对此:
item_ids: ['<?php echo $product->get_sku(); ?>_' + document.getElementById("select2-pa_velkost-container").innerText],
说明:选择的值始终为具有上述id的元素的innerText
。我在加载页面后测试了代码,它产生了“42”,然后更改了值和 运行 测试代码,它产生了 46。根据我的理解,这就是你需要的。
免责声明:由于您使用的是 jQuery,您可以执行类似
的操作item_ids: ['<?php echo $product->get_sku(); ?>_' + document.getElementById("select2-pa_velkost-container").innerText],
还有。