php - 之间添加内容
问题描述
我正在为 WC 制作自定义仪表板,并且需要以最简单的方式在仪表板的 WooCommerce 菜单中的nav
和元素之间添加内容。ul
我已经看到有一个名为woocommerce_before_account_navigation和woocommerce_after_account_navigation的钩子,但这些钩子在整个nav
元素之后或之前添加内容。
这是我正在尝试做的事情的图片。
有人有解决方案吗?
解决方案
由于 WooCommerce 不提供在您需要的地方准确注入代码的钩子:
#1 从您的主题自定义导航部分
由于WooCommerce 允许您覆盖其大部分模板文件,您可以:
- 复制
navigation.php
位于 的文件/wp-content/plugins/woocommerce/templates/myaccount/
。 - 将此文件粘贴到
/wp-content/themes/your-theme/woocommerce/myaccount/
. - 进行所需的更改。
- 利润!
请记住,您需要不时关注 WC 的更新,因为您覆盖的文件中可能存在您可能想要/需要移植的更改。
或者...
#2 使用 AJAX 和 JS 在你想要的地方注入你的自定义代码
使用WordPress 的 AJAX API生成您需要的 HTML 输出,并使用 jQuery/vanilla JavaScript将其注入nav
到标签之间。ul
这样您就不必重写 WC 的模板。但请记住,如果您在站点上使用缓存插件时执行此操作,则需要对其进行配置,以便它每隔约 24 小时或更短时间重建一次缓存,否则某些用户可能会遇到问题(例如)。
推荐阅读
- javascript - 如何使用类名定位页面上的所有元素并将其高度四舍五入为 32 的倍数?
- javascript - lodash.throttle - 没有调用节流方法?
- python - AttributeError:模块“pptx.chart”没有属性“数据”
- reactjs - 将状态从子组件传递到父组件中包含的另一个子组件
- javascript - Vue中的动态条件轮播项目选择
- java - 为什么我的 JOptionPane 消息对话框在控制台窗口后面弹出?
- imagemagick - Imagemagick 透明度在 6.9 中不起作用,但在 7.0 中起作用
- reactjs - 此电子邮件已存在验证
- html - 如何使用 getElementBy 提取表单字段而不存在任何属性标签
- bash - 提示用户确认