You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce的Endpoint路径中添加斜杠而不被转换为连字符

WooCommerce 找回密码端点多层路径配置解决方案

WooCommerce 后台端点配置页面默认会对输入的字符做 sanitize 处理,自动将斜杠替换为连字符,无法直接通过后台配置实现多层斜杠路径的端点,可通过以下两种方案解决:

方案1:钩子+URL重写实现(无额外页面,复用默认找回密码逻辑)

  • 第一步:将以下代码添加到当前使用主题的functions.php文件,或者自定义功能插件中,自定义找回密码端点的生成规则:
add_filter('woocommerce_get_endpoint_url', 'custom_lostpassword_endpoint_url', 10, 4);
function custom_lostpassword_endpoint_url($url, $endpoint, $value, $permalink) {
    // 匹配找回密码端点
    if ($endpoint === 'lost-password') {
        // 替换为你需要的目标多层路径
        $custom_path = 'my-account/whatever/whatever';
        $url = home_url( trailingslashit($custom_path) . $value );
    }
    return $url;
}
  • 第二步:添加URL重写规则,让WordPress可以识别该多层路径对应找回密码功能,继续追加以下代码:
add_action('init', 'custom_lostpassword_rewrite_rule');
function custom_lostpassword_rewrite_rule() {
    add_rewrite_rule(
        // 匹配你的目标路径规则
        '^my-account/whatever/whatever/?$',
        'index.php?pagename=my-account&lost-password=1',
        'top'
    );
}
  • 第三步:保存代码后,进入WordPress后台 > 设置 > 固定链接,直接点击「保存更改」,无需修改任何配置,即可刷新站点重写规则让配置生效。
  • 注意:WooCommerce > 设置 > 高级 > Endpoints 中的找回密码配置项保持默认值lost-password即可,不要做修改。

方案2:自定义页面模板实现(更灵活,可自定义页面内容)

  • 第一步:在WordPress后台新建页面,将页面的永久链接设置为你需要的my-account/whatever/whatever路径。
  • 第二步:给该页面选择自定义模板,或者在页面内容中添加短代码[woocommerce_lost_password],也可以直接在模板文件中调用do_action( 'woocommerce_lost_password_content' );输出找回密码表单。
  • 第三步:添加钩子将WooCommerce默认的找回密码跳转地址替换为你新建的自定义页面地址,代码如下:
add_filter('woocommerce_lostpassword_url', 'custom_lostpassword_page_url');
function custom_lostpassword_page_url() {
    // 替换为你的自定义页面的完整链接
    return home_url('my-account/whatever/whatever');
}

注意事项

  • 代码修改前请提前备份站点文件,避免语法错误导致站点无法访问
  • 涉及URL重写规则的修改,必须刷新固定链接配置后才会生效

内容的提问来源于stack exchange,提问作者MarioAF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:57:03