
本教程详细指导如何在 woocommerce 中修改产品价格的显示逻辑,通过过滤器实现全局价格乘以特定系数的展示,并创建可自定义的短代码来灵活展示特定产品的详细信息(包括计算后的价格)。这两种方法提供了对产品价格展示的强大控制力,适用于不同场景下的需求。
在 WooCommerce 中,有时我们需要对产品价格进行额外的计算,例如乘以一个折扣系数、税率或者其他自定义因子,并将其显示给用户。同时,我们也可能需要在网站的特定位置,如文章或页面中,以自定义的布局展示特定产品的详细信息,包括这些经过计算的价格。本教程将介绍两种实现方式:一种是利用 WooCommerce 过滤器全局修改价格显示,另一种是创建自定义短代码来灵活展示产品详情。
如果你希望在网站前端所有显示产品价格的地方(例如产品页面、商店页面、购物车等),都自动应用一个乘法计算,那么使用 woocommerce_get_price_html 过滤器是最佳选择。这个过滤器允许你在价格 HTML 被生成之前对其进行修改。
实现原理: 通过挂载到 woocommerce_get_price_html 过滤器,我们可以在 WooCommerce 生成产品价格的 HTML 字符串之前,获取原始产品价格,对其进行计算(例如乘以 0.2),然后将计算后的价格重新格式化为 HTML 字符串返回。
代码示例:
将以下代码添加到你的子主题的 functions.php 文件中,或者通过自定义插件添加。
/**
* @description 全局修改 WooCommerce 产品价格显示
* @compatible WooCommerce 4.1+
*/
add_filter( 'woocommerce_get_price_html', 'woo_alter_price_display', 9999, 2 );
function woo_alter_price_display( $price_html, $product ) {
// 确保只在前端生效,避免影响后台管理界面
if ( is_admin() ) {
return $price_html;
}
// 如果产品没有设置价格,则直接返回原始HTML
if ( '' === $product->get_price() ) {
return $price_html;
}
// 获取原始产品价格
$price = $product->get_price();
// 根据需求进行价格计算,例如乘以 0.2
$updated_price = $price * 0.2; // 将价格乘以 0.2
// 使用 wc_price() 函数将计算后的价格格式化为HTML字符串
$price_html = wc_price( $updated_price );
return $price_html;
}代码解析:
注意事项:
如果你需要在特定的文章、页面或自定义模板区域中,灵活地展示某个产品的详细信息,包括其经过计算的价格,那么创建一个自定义短代码是更合适的选择。这种方法允许你通过短代码属性指定产品 ID,从而实现高度定制化的展示。
实现原理: 创建一个短代码函数,该函数接收 product_id 作为属性。在函数内部,根据传入的 product_id 获取产品对象,然后提取产品信息(如名称、简介、图片等),并对价格进行计算。最后,将这些信息组合成 HTML 结构并返回。
代码示例:
将以下代码添加到你的子主题的 functions.php 文件中,或者通过自定义插件添加。
/**
* @description 创建自定义短代码显示特定 WooCommerce 产品详情
*/
function woo_product_details_shortcode( $atts = array() ) {
// 解析短代码属性,设置默认值
$atts = shortcode_atts( array(
'product_id' => 0, // 默认产品ID为0
), $atts, 'product_detail' );
$product_id = intval( $atts['product_id'] ); // 确保 product_id 是整数
if ( $product_id > 0 ) {
$product = wc_get_product( $product_id );
// 检查产品是否存在且有效
if ( ! $product || ! $product->exists() ) {
return '<p>指定的产品ID无效或产品不存在。</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/1726">
<img src="https://img.php.cn/upload/ai_manual/000/000/000/175680317332855.png" alt="Viggle AI Video">
</a>
<div class="aritcle_card_info">
<a href="/ai/1726">Viggle AI Video</a>
<p>Powerful AI-powered animation tool and image-to-video AI generator.</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="Viggle AI Video">
<span>115</span>
</div>
</div>
<a href="/ai/1726" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="Viggle AI Video">
</a>
</div>
';
}
$html = '';
$product_name = $product->get_name();
$product_short_description = $product->get_short_description();
// 获取原始价格并进行计算
$price = $product->get_price();
$multiplication_factor = 0.2; // 价格乘数,例如 0.2
$updated_price = $price * $multiplication_factor;
$price_html = wc_price( $updated_price ); // 格式化计算后的价格
// 获取产品图片
$product_image_url = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), 'single-post-thumbnail' );
$image_src = $product_image_url ? $product_image_url[0] : wc_placeholder_img_url(); // 如果没有图片,使用占位符
// 构建产品详情的HTML结构
$html .= '<div class="custom-product-card">';
$html .= '@@##@@';
$html .= '<h2>' . esc_html( $product_name ) . '</h2>';
$html .= '<p class="price">' . $price_html . '</p>'; // 显示计算后的价格
$html .= '<p>' . wp_kses_post( $product_short_description ) . '</p>';
$html .= '<p><a href="' . esc_url( site_url() . '?add-to-cart=' . $product_id . '&quantity=1' ) . '" class="button">加入购物车</a></p>';
$html .= '</div>';
return $html;
}
return ''; // 如果没有提供有效的 product_id,则不输出任何内容
}
add_shortcode( 'product_detail', 'woo_product_details_shortcode' );代码解析:
短代码使用方法:
在 WordPress 编辑器中(文章、页面、自定义文章类型): 直接在内容区域输入短代码,并指定 product_id:
[product_detail product_id = '1002']
将 1002 替换为你想要展示的实际产品 ID。
在 PHP 模板文件(如主题文件)中: 你可以使用 do_shortcode() 函数来执行短代码:
<?php echo do_shortcode('[product_detail product_id = '1002']'); ?>同样,将 1002 替换为实际的产品 ID。
注意事项:
通过本教程介绍的两种方法,你可以灵活地控制 WooCommerce 产品价格的显示逻辑。无论是通过 woocommerce_get_price_html 过滤器实现全局价格修改,还是通过自定义短代码实现特定产品详情的定制化展示,你都能够根据自己的业务需求,为用户提供更精准、更具吸引力的产品信息。选择最适合你场景的方法,并结合最佳实践进行实施,将有效提升你的 WooCommerce 商店的用户体验。
以上就是优化 WooCommerce 产品价格显示与自定义短代码集成的详细内容,更多请关注php中文网其它相关文章!
# 这是
# 营销推广数据怎么写
# 沧州网站排行优化软件
# 淮南网站优化多少钱
# ysl口红是怎么进行营销推广的
# 宁河区网站推广系统
# 大冶网站外贸推广
# 榆林网站推广地址在哪
# 网站用什么软件优化
# 什么网站容易做seo
# 深圳网站推广徽hyhyk1
# 你在
# 创建一个
# 如果你
# css
# 购物车
# 自己的
# 如果没有
# 你可以
# AI-powered
# 自定义
# 币
# ai
# wordpress
# 前端
# html
# word
# php
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
视频转蓝光m2ts格式
快手缓存清理方法
sf漫画官网登录入口直达_sf漫画官方正版网址
Django模型动态关联检查:高效管理复杂关系
青橙手机语音助手怎么唤醒_青橙手机语音助手设置与唤醒方法
《绝区零》2.3前瞻|直播|内容介绍
微信网页版在线登录 微信网页版在线使用入口
苹果手机聊天记录删除了如何恢复
使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式
谷歌邮箱怎么换绑定邮箱Gmail安全备份邮箱修改方法
火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解
行者app怎样导出日志
嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】
芒果TV官网登录入口 芒果TV官方网站登录入口
Apple Music无故扣费引质疑
《幻兽帕鲁》手游帕鲁捕捉技巧分享
在VS Code中利用AI辅助进行代码迁移
获取WooCommerce产品在后台编辑页面的分类ID
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树
重返未来:1999卡戎全方位攻略
J*a中的值传递到底指什么_值传递模型在参数传递中的真正含义说明
4399造梦西游3无敌版_4399游戏入口
小红书网页版怎么进 小红书网页版通用入口
抖音怎么解除第三方绑定_抖音解除第三方平台绑定方法介绍
VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略
iPhone 15 Pro如何查看存储空间占用_iPhone 15 Pro存储空间查看教程
大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日
稻壳阅读器官方直达网址链接 稻壳阅读器文档阅读平台主页资源入口
使用VS Code调试Python代码:从入门到精通
智慧职教mooc平台登录网址 智慧职教mooc官网直达
德邦物流在线查询系统 德邦快递货物运输追踪
TikTok视频播放不流畅怎么办 TikTok视频播放优化方法
《下一站江湖2》心法融合技巧
教资成绩怎么查询
word页码灰色不能用如何解决
折叠屏手机充不进电是什么问题? 特殊结构带来的维修难点
抖音作品被限流怎么办 抖音内容优化与流量恢复方法
餐馆菜篮选购指南
使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程
申通快件单号查询平台 申通包裹物流动态跟踪
iPhone14开启Apple TV遥控设置
网易云音乐闹钟铃声设置教程
iPhone12是否要更新ios16
铁拳8在线玩 铁拳8在线秒玩入口
Python实时数据流中高效查找最大最小值
Sublime怎么配置YAML文件格式化_Sublime YAML Formatter插件教程
如何在CSS中使用过渡制作按钮边框渐变_border-color transition实现
Google Drive API 认证:服务账户与OAuth 2.0的选择与实践
WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。