0

0

如何识别并显示WooCommerce购物车页面的产品品牌信息

花韻仙語

花韻仙語

发布时间:2025-09-19 12:25:23

|

869人浏览过

|

来源于php中文网

原创

如何识别并显示WooCommerce购物车页面的产品品牌信息

本教程详细介绍了如何在WooCommerce购物车页面为每个商品显示其所属品牌。核心在于正确识别您所使用的品牌插件或主题定义的品牌分类(taxonomy)名称,并通过wp_get_post_terms函数获取并展示品牌信息,从而避免常见的invalid_taxonomy错误。

1. 引言:在购物车中展示品牌的重要性

在woocommerce商店中,为商品添加品牌信息是提升用户体验和提供更详细商品属性的关键一环。然而,woocommerce默认的购物车页面通常不显示产品的品牌信息。为了让顾客在结算前能清晰地看到商品的品牌,我们需要进行一些自定义开发。本教程将指导您如何通过识别正确的wordpress分类(taxonomy)并利用相关函数,在购物车页面成功显示产品品牌。

2. 理解WordPress分类(Taxonomy)与品牌

在WordPress中,“分类”(Taxonomy)是一种将文章或自定义文章类型(如WooCommerce的产品)分组的方法。常见的分类有“分类目录”(Categories)和“标签”(Tags)。对于品牌功能,大多数WooCommerce品牌插件或主题会创建自己的自定义分类来存储品牌信息。例如,一个插件可能创建一个名为pwb-brand的分类,而另一个可能使用product_brand。理解这一点是解决问题的关键。

3. 常见问题:invalid_taxonomy错误解析

当尝试在购物车页面获取并显示品牌时,开发者常常会遇到WP_Error对象,其中包含invalid_taxonomy错误信息,如下所示:

object(WP_Error)#37768 (3) { ["errors"]=> array(1) { ["invalid_taxonomy"]=> array(1) { [0]=> string(22) "Invalid category" } } ["error_data"]=> array(0) { } ["additional_data":protected]=> array(0) { } }

这个错误明确指出,您在调用wp_get_post_terms()函数时提供的分类名称(例如pwb-brand或product_brand)是无效的,或者说,WordPress系统中并没有注册这样一个分类。这通常是因为您使用的品牌插件或主题采用了不同的分类名称。

4. 核心解决方案:确定正确的品牌分类名称

解决invalid_taxonomy错误的关键在于找到您的品牌插件或主题实际使用的分类名称。以下是几种确定正确分类名称的方法:

4.1 查阅插件/主题文档 (推荐)

最专业和直接的方法是查阅您所使用的品牌插件(如"Perfect WooCommerce Brands"、"WooCommerce Brands"等)或主题的官方文档。文档中通常会明确指出其用于品牌的自定义分类名称。

4.2 检查WordPress后台URL (最直接有效)

如果文档不易获取,或者您想快速验证,检查WordPress后台的品牌管理页面URL是最直接有效的方法:

  1. 登录您的WordPress后台。
  2. 导航到您管理产品品牌的页面。这通常在“产品”菜单下,例如“产品” -> “品牌”或“产品” -> “属性”中与品牌相关的部分。
  3. 浏览器地址栏中,您会看到一个类似于以下的URL:
    /wp-admin/edit-tags.php?taxonomy=ourbrandname&post_type=product

    请注意taxonomy=后面的值。在这个例子中,ourbrandname就是您需要的目标分类名称。不同的插件会在这里显示不同的名称,例如pwb-brand、product_brand、yith_product_brand等。

一旦您确定了正确的分类名称,就可以将其用于后续的代码中。

5. 在WooCommerce购物车页面实现品牌显示

确定了正确的品牌分类名称后,我们就可以将其集成到WooCommerce购物车页面。为了实现这一功能,我们通常会修改WooCommerce的模板文件或使用其提供的钩子(Hooks)。

BtoC购物网站源码
BtoC购物网站源码

一、源码特点1、采用典型的三层架构技术进行开发,作品非常不错,功能很全面,欢迎下载学习交流二、功能介绍本源码是一个购物网站源码。分为前台用户界面和后台管理员界面,分别实现不同功能。三、菜单功能前台用户功能1、主页:显示主页面2、鞋子:鞋子所有品牌及相关信息3、手机数码:数码品牌及相关信息4、护肤品:所有品牌及相关信息5、新闻资讯:本页资讯;行业资讯6、我的账户;我的收藏;我的购物车;我的评论;退出

下载

5.1 修改cart.php模板文件 (直接但需谨慎)

如果您选择直接修改WooCommerce的cart.php模板文件,请务必通过子主题进行,以避免在WooCommerce更新时丢失您的更改。

找到cart.php中显示产品标题或名称的区域(通常在循环foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item )内部)。在产品标题的下方,您可以插入以下代码:

 'names' 表示只返回品牌名称数组
$brands = wp_get_post_terms( $product_id, $brand_taxonomy, ['fields' => 'names'] );

// 检查是否成功获取品牌且没有错误
if ( ! is_wp_error( $brands ) && ! empty( $brands ) ) {
    echo '

'; echo esc_html__( '品牌:', 'your-text-domain' ) . ' '; // 国际化处理 echo implode(', ', $brands); // 如果有多个品牌,用逗号分隔显示 echo '

'; } ?>

重要提示: 请将上述代码中的your_correct_brand_taxonomy替换为您通过上述方法确定的实际分类名称,例如pwb-brand。同时,'your-text-domain'也应替换为您主题或插件的文本域,用于国际化。

5.2 使用WooCommerce钩子 (推荐的最佳实践)

更推荐的做法是使用WooCommerce提供的动作(Action)和过滤器(Filter)钩子,将代码添加到您的子主题的functions.php文件或自定义插件中。这样可以避免直接修改模板文件,使您的代码更具可维护性和兼容性。

以下示例展示了如何使用woocommerce_cart_item_name过滤器在产品名称下方添加品牌信息:

/**
 * 在WooCommerce购物车页面产品名称下方显示品牌信息。
 *
 * @param string $product_name 原始产品名称HTML。
 * @param array  $cart_item    购物车项数据。
 * @param string $cart_item_key 购物车项的键。
 * @return string 修改后的产品名称HTML,包含品牌信息。
 */
function custom_display_product_brand_in_cart( $product_name, $cart_item, $cart_item_key ) {
    // 获取购物车项对应的产品ID
    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

    // 替换 'your_correct_brand_taxonomy' 为您实际的品牌分类名称
    $brand_taxonomy = 'your_correct_brand_taxonomy'; // 例如:'pwb-brand', 'product_brand'

    // 使用 wp_get_post_terms 获取产品品牌
    $brands = wp_get_post_terms( $product_id, $brand_taxonomy, ['fields' => 'names'] );

    // 检查是否成功获取品牌且没有错误
    if ( ! is_wp_error( $brands ) && ! empty( $brands ) ) {
        // 构建品牌信息的HTML
        $brand_html = '

'; $brand_html .= esc_html__( '品牌:', 'your-text-domain' ) . ' '; $brand_html .= implode(', ', $brands); $brand_html .= '

'; // 将品牌信息添加到产品名称下方 $product_name .= $brand_html; } return $product_name; } add_filter( 'woocommerce_cart_item_name', 'custom_display_product_brand_in_cart', 10, 3 );

同样,请将your_correct_brand_taxonomy替换为实际的分类名称,并将your-text-domain替换为您的文本域。

6. 注意事项与最佳实践

  • 使用子主题: 无论您是修改模板文件还是添加代码到functions.php,都强烈建议通过子主题进行操作。这可以确保在主题更新时您的自定义更改不会被覆盖。
  • 错误处理: 在使用wp_get_post_terms()函数时,始终通过! is_wp_error( $brands )来检查返回值是否为WP_Error对象,并检查! empty( $brands )以确保有品牌信息返回,从而避免潜在的PHP错误。
  • 分类名称的唯一性: 不同的品牌插件或主题会使用不同的分类名称。务必通过上述方法确定您环境中正确的分类名称。
  • 性能考量: wp_get_post_terms()函数通常具有内置的缓存机制,因此在购物车页面循环中调用它对性能的影响通常不大。
  • 国际化: 使用esc_html__()和__等WordPress国际化函数包裹静态文本,以便您的网站支持多语言

7. 总结

通过本教程,您应该已经掌握了在WooCommerce购物车页面显示产品品牌信息的关键步骤:首先,通过检查后台URL或查阅文档来识别正确的品牌分类名称;其次,利用wp_get_post_terms()函数获取品牌数据;最后,将获取到的品牌信息安全地集成到购物车页面,无论是通过修改模板文件还是更推荐的钩子方法。遵循这些指导原则,您将能够为您的客户提供更丰富、更清晰的购物体验。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

75

2025.12.04

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

419

2023.09.18

wordpress下载后怎么安装
wordpress下载后怎么安装

安装前准备:确保服务器满足要求、获取安装文件、创建数据库。上传 wordpress 文件。创建数据库和用户。运行安装程序:选择语言、输入数据库信息、网站标题和管理员信息。安装 wordpress。安装后配置:设置永久链接、安装主题、安装插件、创建内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

317

2024.04.15

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

19

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

567

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

209

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

350

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号