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

将WooCommerce后台订单项产品链接改为前端产品永久链接

修复WooCommerce订单详情产品链接指向前台产品页的问题

你遇到的问题是:WooCommerce订单详情内的产品链接默认指向后台产品编辑页,而非前台网店的产品页。尝试用$product_link = $product ? get_permalink( $product->get_id() ) : '';修复但没效果,还导致订单详情里产品标题重复。

下面是正确的解决方案,替换你之前的代码即可:

add_action( 'woocommerce_before_order_itemmeta', 'custom_order_item_product_link', 10, 3 );
function custom_order_item_product_link( $item_id, $item, $product ) {
    // 移除默认的产品标题输出,避免重复
    remove_action( 'woocommerce_order_item_name', 'woocommerce_order_item_name', 10 );
    
    if ( ! is_a( $product, 'WC_Product' ) ) {
        return;
    }
    
    // 获取前台产品链接(仅产品在前台可见时生效)
    $product_link = $product->is_visible() ? $product->get_permalink() : '';
    
    if ( $product_link ) {
        printf( '<a href="%s">%s</a>', esc_url( $product_link ), esc_html( $product->get_name() ) );
    } else {
        echo esc_html( $product->get_name() );
    }
}

关键说明

  • 标题重复的原因是默认产品标题的输出逻辑没被关闭,添加remove_action即可取消默认输出,解决重复问题。
  • 用$product->get_permalink()直接调用WooCommerce内置方法获取前台链接,比手动通过ID调用get_permalink更规范,同时$product->is_visible()能过滤掉前台不可见的产品,避免生成无效链接。
  • 代码保留了安全处理:esc_url()转义链接、esc_html()转义产品名称,防止XSS风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:18:10