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

如何将特定WooCommerce链接的shop子域名替换为www?

解决WooCommerce集成非WordPress网站时的URL跳转错误问题

你遇到的核心问题是当前代码依赖$_SERVER['HTTP_HOST']生成URL,但在shop.mydomain.dk的子域名环境中,这个变量返回的是当前子域名,导致拼接后的URL出现重复域名的错误(https://shop.mydomain.dk/www.mydomain.dk/cart.php)。以下是两种可靠的修复方案:

方案1:硬编码正确的基础URL

直接指定目标域名,避免环境变量带来的不确定性:

<?php
define('WP_USE_THEMES', false);

require('./shop/wp-load.php');

if (!function_exists('WC')) {
    die('WooCommerce er ikke aktiv');
}

// 定义正确的目标基础URL
define('CORRECT_BASE_URL', 'https://www.mydomain.dk');

// 重写购物车URL
function custom_cart_url($url) {
    return CORRECT_BASE_URL . '/cart.php';
}
add_filter('woocommerce_get_cart_url', 'custom_cart_url');

// 重写结账URL
function custom_checkout_url($url) {
    return CORRECT_BASE_URL . '/checkout.php';
}
add_filter('woocommerce_get_checkout_url', 'custom_checkout_url');

// 重写返回商店的跳转URL
function custom_shop_url($url) {
    return CORRECT_BASE_URL . '/shop.php';
}
add_filter('woocommerce_return_to_shop_redirect', 'custom_shop_url');

方案2:动态替换域名

如果需要保留协议的自动判断(HTTP/HTTPS),可以通过字符串替换将错误的子域名替换为www:

<?php
define('WP_USE_THEMES', false);

require('./shop/wp-load.php');

if (!function_exists('WC')) {
    die('WooCommerce er ikke aktiv');
}

// 生成正确的目标域名
function get_correct_domain() {
    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
    // 将shop子域名替换为www
    $host = str_replace('shop.mydomain.dk', 'www.mydomain.dk', $_SERVER['HTTP_HOST']);
    return $protocol . "://" . $host;
}

// 重写购物车URL
function custom_cart_url($url) {
    return get_correct_domain() . '/cart.php';
}
add_filter('woocommerce_get_cart_url', 'custom_cart_url');

// 重写结账URL
function custom_checkout_url($url) {
    return get_correct_domain() . '/checkout.php';
}
add_filter('woocommerce_get_checkout_url', 'custom_checkout_url');

// 重写返回商店的跳转URL
function custom_shop_url($url) {
    return get_correct_domain() . '/shop.php';
}
add_filter('woocommerce_return_to_shop_redirect', 'custom_shop_url');

说明

  • 方案1的优势是稳定性最高,适合域名固定的场景;
  • 方案2适合需要自动适配HTTP/HTTPS协议的场景,同时确保域名替换的准确性;
  • 两种方案都能直接修正“更新购物篮”和“结账”按钮的跳转目标,使其指向www.mydomain.dk下的对应页面。

内容的提问来源于stack exchange,提问作者Keld Høfler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:13:22