【问题标题】:Change cart and checkout button links on WooCommerce mini cart widget在 WooCommerce 迷你购物车小部件上更改购物车和结帐按钮链接
【发布时间】:2017-09-19 22:17:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: php wordpress woocommerce checkout cart


    【解决方案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
    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    相关资源
    最近更新 更多