Woocommerce 3 中无需在线支付交易的订单的 Google 分析集成

2024-02-27

我正在尝试在 Google 分析中添加有关订单的信息。但统计中并没有显示订单的接收信息。该网站不使用在线支付(或许原因与此有关)。我用的是answer https://stackoverflow.com/questions/52174961/google-analytics-integration-for-a-custom-order-received-page-in-woocommerce-3/52190053?noredirect=1#_=_

我将代码添加到主题目录中的functions.php 中。

add_action( 'woocommerce_thankyou', 'google_analytics_integration', 20 );
function google_analytics_integration(){
    ?>
    <script>
        ga('require', 'ecommerce');
        <?php

        // GET the WC_Order object instance from, the Order ID
        $order = wc_get_order( $order_id );

        $order_key = $order->get_order_key();

        $transaction_id = $order->get_transaction_id(); // Doesn't always exist

        $transaction_id = $order_id; // (Or the order key or the transaction ID if it exist)

        ?>
        ga('ecommerce:addTransaction', {
            'id':          '<?php echo $transaction_id; // To be checked ?>',
            'affiliation': '<?php echo 'UA-130000602-1'; // replace by yours ?>',
            'revenue':     '<?php echo $order->get_total(); ?>',
            'shipping':    '<?php echo $order->get_shipping_total(); ?>',
            'tax':         '<?php echo $order->get_total_tax(); ?>',
            'currency':    '<?php echo get_woocommerce_currency(); // Optional ?>'
        }); <?php

        // LOOP START: Iterate through order items
        foreach( $order->get_items() as $item_id => $item ) :
        // Get an instance of the WC_Product object
        $product = $item->get_product();

        // Get the product categories for the product
        $categories = wp_get_post_terms( $item->get_product_id(), 'product_cat', array( 'fields' => 'names' ) );
        $category = reset($categories); // Keep only the first product category
        ?>
        ga('ecommerce:addItem', {
            'id':       '<?php echo $transaction_id; ?>',
            'name':     '<?php echo $item->get_name(); ?>',
            'sku':      '<?php echo $product->get_sku(); ?>',
            'category': '<?php echo $category; ?>',
            'price':    '<?php echo wc_get_price_excluding_tax($product);  // OR wc_get_price_including_tax($product) ?>',
            'quantity': '<?php echo $item->get_quantity(); ?>',
            'currency': '<?php echo get_woocommerce_currency(); // Optional ?>'
        });
        <?php
        endforeach; // LOOP END
        ?>
        ga('ecommerce:send');
    </script>
    <?php
}

我将计数器代码添加到 header.php

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130000602-1"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    gtag('config', 'UA-130000602-1');
</script>

My account Google analytics settings: Google analytics settings

Identified conflicts in the script. Footer disappears. Identified conflicts Identified conflicts


首先检查虚拟数据是否正常工作。

  add_action('wp_head','add_gscript_trans');

        function add_gscript_trans(){?>

        <!-- Google Analytics -->
        <script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

        ga('create', 'UA-130000602-1', 'auto');
        /* To load the ecommerce plugin, use the following command: */
        ga('require', 'ecommerce');
    /* You add transaction data to the shopping cart using the ecommerce:addTransaction command:*/

    ga('ecommerce:addTransaction', {
      'id': '1234',                     // Transaction ID. Required.
      'affiliation': 'Acme Clothing',   // Affiliation or store name.
      'revenue': '11.99',               // Grand Total.
      'shipping': '5',                  // Shipping.
      'tax': '1.29'                     // Tax.
    });

    /* Next, to add items to the shopping cart, you use the ecommerce:addItem command: */

    ga('ecommerce:addItem', {
      'id': '1234',                     // Transaction ID. Required.
      'name': 'Fluffy Pink Bunnies',    // Product name. Required.
      'sku': 'DD23444',                 // SKU/code.
      'category': 'Party Toys',         // Category or variation.
      'price': '11.99',                 // Unit price.
      'quantity': '1'                   // Quantity.
    });
   /* Finally, once you have configured all your ecommerce data in the shopping cart, you send the data to Google Analytics using the ecommerce:send command: */

   ga('ecommerce:send');

    </script>
    <!-- End Google Analytics -->
    <?php }

有关更多详细信息,请参阅此链接:电子商务赛道 https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Woocommerce 3 中无需在线支付交易的订单的 Google 分析集成 的相关文章

  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 循环遍历 MS Project 的每个字段

    我试图循环遍历我的 MS Project 文件中的每个字段并收集有关该字段的信息 自定义名称是特定的 做到这一点最简单的方法是什么 Thanks 要获取字段的自定义名称 您需要字段常量并循环遍历所有字段 您需要存储所有字段常量的列表 htt
  • 使用 spring StoredProcedure 插入 oracle clob IN 参数时克服 32k 限制

    环境 oracle 11g spring jdbc 3 2 2 RELEASE jar JDK 1 7 Oracle UCP 驱动程序 我有一个存储过程 它将记录插入到具有 CLOB 列的表中 SP 在其他 IN 和 OUT 参数中具有 C
  • Rails RSpec 中未定义的方法“create”

    我已经安装了 FactoryBot 并尝试将其与 RSpec 一起使用 scenario User signs in do create user email email protected cdn cgi l email protecti
  • python 异步http请求

    我正在尝试在 python 中使用 twitter 搜索网络服务 我想调用一个网络服务 例如 http search twitter com search json q blue 20angels rpp 5 include entitie
  • ttf 文件无法在 Chrome 和 Firefox 上呈现

    我一直在尝试在 Chrome 和 Firefox 中渲染 ttf 文件 但它似乎不起作用 渲染 woff 文件时工作正常 我从以下网站下载了该合集http www google com webfonts UsePlace use Colle
  • Debug.WriteLine 锁

    我的程序经常因死锁而停止 当我进行全部破坏并查看线程时 我发现三个线程卡在我们的日志记录函数中 public class Logging public static void WriteClientLog LogLevel logLevel
  • 识别 UITapGestureRecogniser 的多个 UILabels 点击

    在我的视图加载中 我有两个 UILabel 并且我为两者添加了相同的 tapGesture 如果点击特定标签 则应该执行其功能 但我无法这样做 void viewDidLoad lblEditProfile userInteractionE
  • 如何找到此特定字符串的多次出现并将它们分成一个列表?

    我试图在更大的整个字符串中找到特定的一段字符串 这是字符串 粗体字是我想使用 python re 库中的 re findall 函数提取的字符串 文本 p1 1 SNtestfilefri01 天线系统 文本 p1 2 SNtestfile
  • 创建一个对于读取操作来说线程安全的 DOM

    我的应用程序从多个 xml 源组成一个网页模型 这些源被正常的 Xerces 解析器解析为 DOM 对象到内存中 不幸的是 Xerces DOM 对象是not对于只读操作是线程安全的 我希望能够重用解析后的 DOM 进行读取 有谁知道我使用
  • 如何隐藏代码并重新运行 jupyter 笔记本中的所有单元格?

    我想在 Jupyter Notebook 的开头添加某种功能 隐藏 显示所有单元格并重新运行所有单元格 我最终想要得到的是一组图表 当所有单元格重新运行时 这些图表都会刷新 详细信息和我尝试过的 帖子IPython 从小部件运行下面的所有单
  • 更改 ggplot2 中栅格图的颜色

    由于一些不相关的原因 我尝试使用 ggplot2 而不是栅格包绘图函数来制作栅格图 我想缩放颜色 使图上的最低温度为蓝色 图上的最高温度为红色 而中间范围为白色 我已经尝试了 ggplot2 中的许多功能 但始终未能获得所需的结果 这就是我
  • 在 doxygen 中使用模块组内的节

    我寻求构建 doxygen 模块组内容的首选方法 例如 我想在不同部分的以下模块组中构造 details 文本 特别是每个部分都应该出现在生成的 PDF 的书签中 作为模块组的子元素 defgroup lorem brief Lorem i
  • 如何访问 Django Rest Framework 3.0 序列化程序中的查询参数?

    例如 在 Django Rest Framework 2 x 中 您可以访问序列化器中的 fields 查询参数 如下所示 fields self context request QUERY PARAMS get fields 这在 DRF
  • 如何针对 SharePoint 网站中的任何更改创建每日摘要警报

    我最近收到一个要求 要求某人接收有关 SharePoint 网站内任何更改的每日摘要警报 每个网站都有一个负责其网站内容的所有者 目前我们的工作方式是为站点内的每个列表 库自动设置警报 Get the Lists on this Site
  • PHP 有损/无损压缩图像

    我如何使用 PHP 以有损 无损压缩的方式压缩图像 就像这两个网站压缩图像一样 https compressor io https compressor io and https kraken io web interface https
  • Ruby 1.8.6 Array#uniq 不删除重复的哈希值

    我在 ruby 1 8 6 控制台中有这个数组 arr foo gt bar foo gt bar 两个元素彼此相等 arr 0 arr 1 gt true just in case there s some vs oddness arr
  • 如何解决此脚本中的 IE ClearType + jQuery 不透明度问题?

    我遇到了一个相当常见的问题 或者看起来是这样 经过一番谷歌搜索后 IE 在使用 jQuery 动画不透明度时会弄乱粗体文本和透明 png 您可以在此处查看示例 http dev gentlecode net dotme index samp
  • 从 Photoshop 动作到 Photoshop 脚本?

    我希望 Photoshop 自动为给定文件夹执行以下任务 加载给定文件夹中的所有 PNG 文件 将每个文件的模式转换为RGB color 为每个文件添加一层 将文件另存为 PSD 并放在同一文件夹中 有人告诉我这可以通过 Photoshop
  • R 创建带有 R CMD 检查的参考手册

    我正在编写一个 R 包 并希望制作该包中所有函数的 pdf 参考手册 我从here http grokbase com p r r devel 124dzqqxhg rd creating a reference manual during
  • Woocommerce 3 中无需在线支付交易的订单的 Google 分析集成

    我正在尝试在 Google 分析中添加有关订单的信息 但统计中并没有显示订单的接收信息 该网站不使用在线支付 或许原因与此有关 我用的是answer https stackoverflow com questions 52174961 go