将 WooCommerce 产品循环添加到购物车按钮更改为链接到产品的“查看更多”

Change WooCommerce product loop add to cart button to a "view more" linked to the product

提问人:Alex Dubois 提问时间:11/11/2023 最后编辑:LoicTheAztecAlex Dubois 更新时间:11/11/2023 访问量:29

问:

我在 WooCommerce 上同时拥有外部和实体产品,而不是将您发送到外部产品或将产品添加到购物车的“添加到购物车”按钮,我希望为内部和外部产品提供一个按钮,上面写着“查看更多”并将用户发送到详细页面。

我能够使用上一个问题中的以下答案代码:

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_external_product_loop_add_to_cart_link', 100, 3 );
function replace_external_product_loop_add_to_cart_link( $button, $product, $args ) {
    // Only for external products
    if ( $product->is_type('external') ) {
        $button = sprintf( '<a href="%s" class="%s" %s>%s</a>',
            esc_url( $product->get_permalink() ),
            esc_attr( 'button' ),
            isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
            esc_html__( 'Ver Detalles' )
        );
    }
    return $button;
}

但我的实体产品仍然说添加到购物车......

请参阅示例 www.faceup-romanorte.com,我无法弄清楚如何将其添加到“普通产品”中。

php html wordpress woocommerce 产品

评论

0赞 LoicTheAztec 11/13/2023
请对以下答案提供一些反馈,我们将不胜感激。

答:

1赞 LoicTheAztec 11/11/2023 #1

要使其适用于所有产品(外部和其他产品类型),您只需删除以下产品:if ( $product->is_type('external') ) {

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_external_product_loop_add_to_cart_link', 100, 3 );
function replace_external_product_loop_add_to_cart_link( $button, $product, $args ) {
    return sprintf( '<a href="%s" class="%s" %s>%s</a>',
        esc_url( $product->get_permalink() ),
        esc_attr( 'button' ),
        isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
        esc_html__( 'Ver Detalles' )
    );
}

代码位于子主题的函数.php文件中(或插件中)。经过测试并有效。

注意:此代码将替换以前的代码。