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

WordPress Electro主题:用WooZone替换Add to Cart为Buy on Amazon并跳转

替换Electro主题中WooZone亚马逊联盟商品的Add to Cart按钮为Buy on Amazon按钮

以下是三种可行的实现方案,按推荐优先级排序:

方法一:使用WooCommerce钩子(推荐,无主题文件修改风险)

通过WooCommerce的内置钩子修改按钮,无需改动主题核心文件,避免主题更新丢失代码。

分步操作:

  1. 确认亚马逊联盟链接字段:WooZone导入的商品会将联盟链接存储在自定义字段中,通常为_woozone_amazon_link或_amazon_product_url。可在商品编辑页的「自定义字段」面板查看,或通过代码验证。
  2. 添加代码到子主题functions.php:
    打开子主题的functions.php文件(路径:wp-content/themes/electro-child/functions.php),粘贴以下代码:
// 替换商品列表页的Add to Cart按钮
add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_amazon_loop_add_to_cart', 10, 2 );
// 替换商品详情页的按钮文字与结构
add_filter( 'woocommerce_single_product_add_to_cart_text', 'replace_amazon_single_button_text', 10 );
add_action( 'woocommerce_single_product_summary', 'replace_amazon_single_button_html', 30 );

function replace_amazon_loop_add_to_cart( $button, $product ) {
    $amazon_link = get_post_meta( $product->get_id(), '_woozone_amazon_link', true );
    if ( ! empty( $amazon_link ) ) {
        $button = sprintf(
            '<a href="%s" class="button alt buy-on-amazon" target="_blank" rel="nofollow noopener">%s</a>',
            esc_url( $amazon_link ),
            esc_html__( 'Buy on Amazon', 'electro-child' )
        );
    }
    return $button;
}

function replace_amazon_single_button_text( $text ) {
    global $product;
    $amazon_link = get_post_meta( $product->get_id(), '_woozone_amazon_link', true );
    return ! empty( $amazon_link ) ? __( 'Buy on Amazon', 'electro-child' ) : $text;
}

function replace_amazon_single_button_html() {
    global $product;
    $amazon_link = get_post_meta( $product->get_id(), '_woozone_amazon_link', true );
    if ( ! empty( $amazon_link ) ) {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        echo sprintf(
            '<a href="%s" class="single_add_to_cart_button button alt buy-on-amazon" target="_blank" rel="nofollow noopener">%s</a>',
            esc_url( $amazon_link ),
            esc_html__( 'Buy on Amazon', 'electro-child' )
        );
    }
}
  1. 自定义按钮样式(可选):在子主题的style.css中添加样式,匹配Electro主题风格:
.buy-on-amazon {
    background-color: #ff9900;
    border-color: #ff9900;
    color: #fff;
}
.buy-on-amazon:hover {
    background-color: #e68a00;
    border-color: #e68a00;
}

方法二:修改Electro主题模板文件(不推荐,需维护)

如果钩子方案不生效,可复制主题模板到子主题后修改:

  1. 复制模板文件到子主题:
    • 商品列表页:复制wp-content/themes/electro/woocommerce/loop/add-to-cart.php到electro-child/woocommerce/loop/
    • 商品详情页:复制wp-content/themes/electro/woocommerce/single-product/add-to-cart/simple.php到electro-child/woocommerce/single-product/add-to-cart/
  2. 修改模板代码:
    以列表页为例,替换原按钮代码为:
<?php
global $product;
$amazon_link = get_post_meta( $product->get_id(), '_woozone_amazon_link', true );
if ( ! empty( $amazon_link ) ) {
?>
<a href="<?php echo esc_url( $amazon_link ); ?>" class="button alt buy-on-amazon" target="_blank" rel="nofollow noopener"><?php esc_html_e( 'Buy on Amazon', 'electro-child' ); ?></a>
<?php
} else {
    // 保留原Add to Cart按钮逻辑
    echo apply_filters( 'woocommerce_loop_add_to_cart_link',
        sprintf( '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',
            esc_url( $product->add_to_cart_url() ),
            esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
            esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
            isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
            esc_html( $product->add_to_cart_text() )
        ),
    $product, $args );
}
?>

方法三:检查WooZone内置设置

部分WooZone版本自带按钮替换功能,可前往WooZone设置面板,查找「商品展示」或「按钮设置」选项,查看是否有「替换Add to Cart为亚马逊购买按钮」的开关,开启即可。

注意事项:

  • 始终使用子主题修改代码,避免主题更新导致自定义内容丢失。
  • 若_woozone_amazon_link字段无效,可通过get_post_custom( $product->get_id() )输出商品所有自定义字段,确认正确的联盟链接字段名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:15:26