
在电子商务网站中集成营销像素(如Glami Pixel、Facebook Pixel、Google Analytics等)是数据追踪和广告优化的关键。对于标准产品,获取其SKU并将其发送到数据层通常很简单。然而,当涉及到WooCommerce的变体产品时,挑战随之而来。默认情况下,通过PHP获取产品SKU($product-youjiankuohaophpcnget_sku())通常只会返回主产品的SKU,而不是用户当前选择的特定变体(例如,不同尺寸、颜色)的SKU。
例如,一个T恤有S、M、L三种尺寸,每种尺寸都有自己的独立SKU。当用户选择M码并点击“添加到购物车”时,营销像素需要获取M码的SKU,而不是T恤的主SKU。如果无法动态获取选定的变体SKU,营销数据将不准确,影响后续的广告归因和再营销效果。
提供的代码片段显示,在AddToCart事件中,item_ids字段使用了<?php echo $product->get_sku(); ?>。这段PHP代码在页面加载时执行一次,获取的是主产品的SKU,并且不会随着用户在前端选择不同变体而动态更新。因此,我们需要一种方法,在用户点击“添加到购物车”按钮时,能够实时捕获到当前选定的变体属性值。
解决此问题的关键在于利用前端JavaScript来识别并获取用户选择的变体属性值。这通常涉及到以下步骤:
以下是针对原始代码的修改,以实现动态获取选定变体SKU并将其集成到Glami像素数据层:
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(){
// 动态获取当前选定的变体属性值
// 注意:'select2-pa_velkost-container' 是示例ID,您需要根据实际网站HTML结构进行调整
var selectedVariationAttribute = document.getElementById("select2-pa_velkost-container") ? document.getElementById("select2-pa_velkost-container").innerText : '';
var combinedSku = '<?php echo $product->get_sku(); ?>';
if (selectedVariationAttribute) {
combinedSku += '_' + selectedVariationAttribute; // 将主SKU与变体属性值组合
}
glami('track', 'AddToCart', {
item_ids: [combinedSku], // 使用组合后的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');在上述修改中,关键在于这一行: var selectedVariationAttribute = document.getElementById("select2-pa_velkost-container") ? document.getElementById("select2-pa_velkost-container").innerText : '';
重要提示:select2-pa_velkost-container这个ID是示例中使用的,它高度依赖于您的网站主题、插件以及WooCommerce的渲染方式。您需要使用浏览器的开发者工具(F12)检查您的产品页面,找到显示当前选定变体属性值的准确HTML元素的ID或类名。
var selectedVariationAttribute = jQuery("#select2-pa_velkost-container").text();
// 或者,如果选择器是下拉菜单本身,且您想获取其当前选中的值
// var selectedVariationAttribute = jQuery("select[name='attribute_pa_velkost'] option:selected").val(); 选择哪种方式取决于您的HTML结构以及哪个元素实际包含了您需要的值。
通过在“添加到购物车”事件中动态捕获用户选定的变体属性值,并将其与主产品SKU结合,我们可以确保营销像素接收到最准确的产品标识符。这不仅解决了变体产品追踪的难题,也为后续的营销数据分析、广告投放优化以及个性化用户体验奠定了坚实的基础。记住,关键在于理解您的网站HTML结构,并利用前端JavaScript的力量来实时获取用户交互数据。
以上就是WooCommerce变体产品SKU动态追踪:集成到像素数据层实现精准加购事件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号