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

PHP代码修改需求:为所有出站URL添加指定静态前缀

修改PHP方法为出站URL添加静态前缀

没问题,我来帮你调整这段get_destination_url方法,给所有返回的出站URL加上你需要的静态前缀。

修改后的代码

/**
 * Get destination url
 *
 * @since 1.0.0
 * @param bool $store_url_if_empty
 * @return bool|string
 */
public function get_destination_url( $store_url_if_empty = true ) {
    $url = '';
    
    if ( ! $this->_wpc_destination_url && $store_url_if_empty ) {
        $url = $this->get_store_site_url();
    } else {
        $url = $this->_wpc_destination_url;
    }

    if ( ! $url ) {
        $url = $this->store->get_url();
    }

    // 定义要添加的静态前缀(建议加上HTTPS协议,避免相对路径问题)
    $static_prefix = 'https://www.domain.com/script.php?id=';
    
    // 仅当原URL不为空时,拼接前缀并对目标URL编码
    if ( ! empty( $url ) ) {
        // 使用urlencode处理原URL,避免特殊字符破坏参数结构
        $url = $static_prefix . urlencode( $url );
    }

    return $url;
}

关键修改说明

  • 前缀定义:我把前缀单独放在$static_prefix变量里,以后要修改前缀地址时,直接改这个变量就行,不用在代码里找来找去,维护起来更方便。另外建议给前缀加上https://协议,不然生成的URL可能会变成相对路径,导致跳转出错。
  • URL编码:用urlencode()处理原URL是很有必要的——如果原URL里包含&、=这类特殊字符,直接拼接会把你的前缀URL搞乱,编码后能确保参数正确传递到script.php里。
  • 空值兼容:保留了原方法的空值处理逻辑,如果原方法返回空,修改后的代码也会返回空,不会影响原有业务逻辑。

举个例子:原方法返回www.amazon.com,修改后会返回https://www.domain.com/script.php?id=www.amazon.com;如果原URL是https://example.com/page?param=123,编码后会变成https://www.domain.com/script.php?id=https%3A%2F%2Fexample.com%2Fpage%3Fparam%3D123,这样参数传递完全没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:34:48