为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕侠2389804 2023-08-11 16:48:47
我正在应用以下代码来更改商店页面上“查看购物车”按钮的 URL。// Change View Cart Button URL from /cart to /checkoutadd_filter( 'woocommerce_add_to_cart_redirect', 'cart_to_checkout' ); function cart_to_checkout( $url ) {    return wc_get_checkout_url();}我需要使用什么过滤器来实现单一产品页面上“Woocommerce 错误消息”中“查看购物车”按钮的相同效果?Woocommerce 错误消息”显示如下:“‘产品 X’的最大允许数量为 3(您的购物车中当前有 3 个)。“查看购物车”因此,我需要更改上述消息中“查看购物车”按钮的 URL。此外,所有“查看购物车”按钮必须指向“结帐页面”而不是“购物车页面”。谢谢!
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

由于此通知是硬编码在WC_Cart add_to_cart()方法中(从行10751083


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 ) )

    )

);

更改 url 链接的唯一方法是使用位于函数内部的woocommerce_get_cart_url过滤器挂钩(在本通知中使用),如下所示,仅适用于单个产品页面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;

}

要更改用于结账 url 的所有 url 链接wc_get_cart_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;

}

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;

}

要更改用于结账 url 的所有 url 链接wc_get_cart_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;

}


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信