WooCommerce页面调用主题自定义模板get_template_part无响应问题求助
问题原因
get_template_part()函数的路径参数始终以当前启用主题的根目录为基准,无需基于当前WooCommerce模板的存储位置写相对回溯路径,你填写的../../会导致函数检索路径出错,自然无法加载到目标文件。
解决方法
直接在woocommerce/cart/cart.php中使用如下代码调用即可:
<?php get_template_part( 'template-parts/my-page/user-info', null, (array) $user_info ); ?>
注意事项
- 传入的第三个参数
$user_info会被自动封装为$args变量,你可以在user-info.php文件中直接读取$args数组获取你传递的所有参数。 - 如果你站点使用的是子主题,该函数会优先从子主题的对应路径查找模板文件,不存在才会 fallback 到父主题,符合WordPress默认模板加载逻辑。
额外优化建议(对应结账校验需求)
如果不想硬改WooCommerce模板避免后续版本升级覆盖修改内容,可以选择用钩子实现需求:
- 用
woocommerce_before_cart钩子挂载你的自定义表单代码,无需修改原生cart.php文件 - 用
template_redirect钩子做前置校验:判断用户访问结账页时,若未完成所需信息填写,直接跳转回购物车页提示完成表单,逻辑更独立易维护。
内容的提问来源于stack exchange,提问作者rod james
相关产品推荐
相关产品推荐

