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

如何在WooCommerce模板中根据页面修改添加购物车按钮链接

修改WooCommerce“添加到购物车”按钮跳转链接的实现方法

一、优化按钮文本的条件判断(整合你现有代码)

你之前的文本修改代码缺少页面条件判断,可能导致逻辑冲突,建议替换为以下代码,实现归档页和详情页的按钮文本分别设置:

function woocommerce_custom_add_to_cart_text() {
    if ( is_product() ) { // 产品详情页
        return __( 'Produkt verhindern', 'woocommerce' );
    } elseif ( is_shop() || is_product_category() || is_product_tag() ) { // 商店、产品分类/标签归档页
        return __( 'Mehr erfahren', 'woocommerce' );
    }
    return __( 'Add to cart', 'woocommerce' ); // 默认文本
}
add_filter( 'woocommerce_product_add_to_cart_text', 'woocommerce_custom_add_to_cart_text' );

二、修改按钮跳转链接

将以下代码添加到当前主题的functions.php文件末尾,实现不同页面的按钮跳转逻辑:

1. 归档页(archive-product.php 对应页面)跳转至产品详情页

// 修改产品归档页的“添加到购物车”按钮,跳转至对应产品详情页
function custom_loop_add_to_cart_link( $link, $product ) {
    // 仅在商店、产品分类/标签页生效
    if ( ( is_shop() || is_product_category() || is_product_tag() ) ) {
        $product_link = get_permalink( $product->get_id() );
        $link = sprintf(
            '<a href="%s" class="button product_type_%s">%s</a>',
            esc_url( $product_link ),
            esc_attr( $product->get_type() ),
            esc_html( $product->add_to_cart_text() )
        );
    }
    return $link;
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'custom_loop_add_to_cart_link', 10, 2 );

2. 产品详情页(single-product.php)跳转至自定义页面

// 修改产品详情页的“添加到购物车”按钮,跳转至自定义页面
function custom_single_product_add_to_cart_button() {
    global $product;
    // 仅在产品详情页生效
    if ( is_product() ) {
        // 替换为你的自定义页面URL:可以用页面ID/标题获取,或者直接写完整链接
        $custom_page_url = get_permalink( get_page_by_title( '你的自定义页面标题' ) );
        // 示例:直接写URL的话,替换上面一行为:$custom_page_url = 'https://你的域名.com/自定义页面路径/';

        // 移除默认的添加到购物车按钮
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        // 添加自定义跳转按钮
        add_action( 'woocommerce_single_product_summary', function() use ( $custom_page_url, $product ) {
            echo sprintf(
                '<a href="%s" class="single_add_to_cart_button button alt">%s</a>',
                esc_url( $custom_page_url ),
                esc_html( $product->add_to_cart_text() )
            );
        }, 30 );
    }
}
add_action( 'wp', 'custom_single_product_add_to_cart_button' );

注意事项

  • 若需要支持可变产品,可移除代码中is_type('simple')这类产品类型判断,或添加对应处理逻辑
  • 按钮样式可通过CSS调整button、single_add_to_cart_button等类名实现自定义
  • 操作前建议备份主题functions.php文件,避免代码错误导致网站异常

内容的提问来源于stack exchange,提问作者S.H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:00:57