如何复制WooCommerce单品页加购按钮功能 实现报价按钮自定义跳转
实现方案
1. 给「加入报价单」按钮添加专属标识参数
你需要在「加入报价单」按钮的提交请求中新增一个自定义参数,用于后端区分请求来源:
- 如果按钮为表单提交形式,直接在表单内添加隐藏字段即可:
<input type="hidden" name="add_to_quote" value="1">
- 如果是GET类型的加购跳转链接,直接把参数拼在加购链接末尾即可:
?add_to_cart=商品ID&add_to_quote=1
2. 修改加购跳转钩子逻辑
替换你当前的全局跳转代码,改为带参数判断的分支逻辑即可:
function my_custom_add_to_cart_redirect( $url ) { // 判断是否为「加入报价单」按钮触发的加购请求 if ( isset( $_REQUEST['add_to_quote'] ) && absint( $_REQUEST['add_to_quote'] ) === 1 ) { // 替换为你需要跳转的自定义页面地址,也可以直接写固定URL return get_permalink( 1 ); } // 默认加购按钮走原有购物车跳转逻辑 return wc_get_cart_url(); } add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect' );
注意事项
- 该方案完全复用WooCommerce默认加购流程,你之前挂载的所有加购相关自定义钩子逻辑(比如给购物车项追加自定义数据)都会正常执行,不需要额外调整
- 仅在最终跳转阶段根据请求参数做分支判断,不会影响原有默认加购按钮的功能
- 如果你的店铺开启了AJAX加购功能,需要额外在前端加对应监听逻辑:加购成功后根据触发按钮的类型执行不同的前端跳转即可
内容的提问来源于stack exchange,提问作者wimkreatix
相关产品推荐
相关产品推荐

