更改购物车和结帐以外的WooCommerce页面上“查看购物车”按钮的URL

时间:2020-07-18 17:28:22

标签: php wordpress woocommerce

我正在应用以下代码来更改“商店”页面上“查看购物车”按钮的URL。

.bashrc

为实现“单一产品”页面上“ Woocommerce错误消息”中“查看购物车”按钮的功能,我需要使用什么过滤器?

Woocommerce错误消息”显示如下:““产品X”的最大允许数量为3(您的购物车中目前有3个)。 “查看购物车”

因此,我需要更改以上消息中“查看购物车”按钮的URL。

而且,所有“查看购物车”按钮都必须指向“结帐页面”而不是购物车页面。

谢谢!

1 个答案:

答案 0 :(得分:5)

由于此通知是用WC_Cart add_to_cart()方法from line 1075 to 1083硬编码的:

throw new Exception(
    sprintf(
        '<a href="%s" class="button wc-forward">%s</a> %s',
        wc_get_cart_url(),
        __( 'View cart', 'woocommerce' ),
        /* translators: 1: quantity in stock 2: current quantity */
        sprintf( __( 'You cannot add that amount to the cart &mdash; we have %1$s in stock and you already have %2$s in your cart.', 'woocommerce' ), wc_format_stock_quantity_for_display( $product_data->get_stock_quantity(), $product_data ), wc_format_stock_quantity_for_display( $products_qty_in_cart[ $product_data->get_stock_managed_by_id() ], $product_data ) )
    )
);

更改网址链接的唯一方法是使用woocommerce_get_cart_url过滤器挂钩located inside the function wc_get_cart_url() (本通知中使用),如下所述仅适用于单个产品页面

add_filter( 'woocommerce_get_cart_url', 'filter_get_cart_url' );
function filter_get_cart_url( $url ) {
    // Only on single product pages
    if( is_product() )
        $url = wc_get_checkout_url();
    
    return $url;
}

要更改使用wc_get_cart_url()检出url的所有url链接,请改用:

add_filter( 'woocommerce_get_cart_url', 'wc_get_checkout_url' );

添加:要使其在购物车和结帐页面上之外的所有地方都可以使用,请使用以下命令:

add_filter( 'woocommerce_get_cart_url', 'filter_get_cart_url' );
function filter_get_cart_url( $url ) {
    // Except on cart and checkout pages
    if( ! ( is_cart() || is_checkout() ) )
        $url = wc_get_checkout_url();
    
    return $url;
}

代码进入活动子主题(或活动主题)的functions.php文件中。经过测试,可以正常工作。


相关:Change the "view cart" product overlay button on product loops in Woocommerce