更改 WooCommerce 迷你购物车小部件上的购物车和结帐按钮链接

Posted

技术标签:

【中文标题】更改 WooCommerce 迷你购物车小部件上的购物车和结帐按钮链接【英文标题】:Change cart and checkout button links on WooCommerce mini cart widget 【发布时间】:2018-02-28 20:01:25 【问题描述】:

在 Woocommerce 上,我们如何更改下拉菜单上的“查看购物车”和“结帐”链接上的 URL,这些链接显示在主页上的购物车图标上?

我设置了“购物车”和“结帐”页面,但它们没有链接到这些页面。

我可以通过网址直接查看这些页面。 http://mysite/cart 和 http://mysite/checkout

【问题讨论】:

【参考方案1】:

似乎您的主题某处存在问题(或在插件中),因为迷你购物车按钮链接始终指向正确的购物车和结帐页面。

迷你购物车按钮挂在 woocommerce_widget_shopping_cart_buttons 动作挂钩中(在 cart/mini-cart.php WooCommerce 模板中)。您将找到详细信息HERE on includes/wc-template-hooks.php 核心文件。它调用正在显示按钮的2 functions。

首先你应该尝试刷新 WordPress 永久链接,继续 WP 设置 > 永久链接: 就在页面末尾点击“保存”。清空您的购物车,然后再试一次,看看是否有变化。

在下面的代码中,我首先删除了原始按钮,然后将它们替换为自定义链接的相同按钮。对于每个您都可以更改链接以满足您的需求(我在链接中添加了?id=1(最后)只是为了测试目的,以检查更改):

add_action( 'woocommerce_widget_shopping_cart_buttons', function()
    // Removing Buttons
    remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_button_view_cart', 10 );
    remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

    // Adding customized Buttons
    add_action( 'woocommerce_widget_shopping_cart_buttons', 'custom_widget_shopping_cart_button_view_cart', 10 );
    add_action( 'woocommerce_widget_shopping_cart_buttons', 'custom_widget_shopping_cart_proceed_to_checkout', 20 );
, 1 );

// Custom cart button
function custom_widget_shopping_cart_button_view_cart() 
    $original_link = wc_get_cart_url();
    $custom_link = home_url( '/cart/?id=1' ); // HERE replacing cart link
    echo '<a href="' . esc_url( $custom_link ) . '" class="button wc-forward">' . esc_html__( 'View cart', 'woocommerce' ) . '</a>';


// Custom Checkout button
function custom_widget_shopping_cart_proceed_to_checkout() 
    $original_link = wc_get_checkout_url();
    $custom_link = home_url( '/checkout/?id=1' ); // HERE replacing checkout link
    echo '<a href="' . esc_url( $custom_link ) . '" class="button checkout wc-forward">' . esc_html__( 'Checkout', 'woocommerce' ) . '</a>';

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

所有代码都在 Woocommerce 3+ 上进行了测试并且可以运行。

【讨论】:

保存固定链接帮助解决了这个问题。谢谢@loictheaztec

以上是关于更改 WooCommerce 迷你购物车小部件上的购物车和结帐按钮链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Woocommerce 购物车小部件中显示商品的总价?

Woocommerce 中的迷你购物车数量变化

WooCommerce 自定义迷你购物车功能/简码不起作用

php WooCommerce迷你购物车项目计数和短代码

Woocommerce如何将标题属性添加到迷你购物车上产品名称的锚标记

Woocommerce:添加到购物车后的自定义 jquery 事件