You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在前端展示WooCommerce指定产品的累计营收

WooCommerce前端实时展示累计捐赠总额实现方法

不用找专门的插件,直接加少量自定义代码就能实现,比装第三方插件更轻量、可控性更强。

具体实现步骤

    1. 添加短代码逻辑
      把下面的代码粘贴到当前使用主题的functions.php文件末尾(推荐用子主题操作,避免主题更新时代码被覆盖)。代码会自动统计所有支付完成状态的订单总金额,生成可直接调用的短代码:
// 注册累计筹款额展示短代码
add_shortcode('total_donation_raised', 'get_total_completed_donation_sum');
function get_total_completed_donation_sum() {
    global $wpdb;
    // 仅统计已完成支付的有效订单,自动排除待支付、已取消、已退款订单
    $total_amount = $wpdb->get_var("
        SELECT SUM(meta.meta_value)
        FROM {$wpdb->prefix}posts AS orders
        INNER JOIN {$wpdb->prefix}postmeta AS meta ON orders.ID = meta.post_id
        WHERE orders.post_type = 'shop_order'
        AND orders.post_status = 'wc-completed'
        AND meta.meta_key = '_order_total'
    ");
    // 按WooCommerce后台设置的币种、格式输出金额
    $formatted_amount = wc_price($total_amount ? $total_amount : 0);
    return '<div class="donation-total">截至目前已筹集:' . $formatted_amount . '</div>';
}
    1. 前端调用
      不需要写复杂的模板代码,根据你要放的位置选对应的调用方式就行:
    • 页面、文章、侧边栏自定义HTML块里直接插入短代码:[total_donation_raised]
    • 如果要嵌到主题模板文件里,使用模板调用语法:<?php echo do_shortcode('[total_donation_raised]'); ?>
    1. 实时无刷新更新(可选)
      如果需要访客不手动刷新页面也能看到最新的筹款金额,给主题加一段简单的JS就行,默认30秒自动拉取一次最新数据,不用调整缓存插件规则:
// 每30秒刷新一次筹款金额
setInterval(function(){
    jQuery('.donation-total').load(location.href + ' .donation-total');
}, 30000);

适配提示

  • 如果你站点除了捐赠还有其他普通商品售卖,只需要在SQL查询里加一层订单商品ID关联条件,限定统计指定捐赠商品的销售额即可,不会把其他商品的收入算进筹款额里。
  • 金额展示格式会自动同步你WooCommerce后台的币种、小数位、货币符号设置,不需要手动调整格式。
  • 如果站点开了强缓存,要么把放置筹款金额的页面加入缓存白名单,要么直接用上面的JS自动刷新逻辑即可。

内容的提问来源于stack exchange,提问作者Apple_ManPS3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 02:01:12