首页 文章

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

提问于
浏览
3

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

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

我可以直接使用网址查看这些网页 . http://mysite/carthttp://mysite/checkout

enter image description here

1 回答

  • 3

    您的主题(或插件)中似乎存在问题,因为minicart按钮链接始终指向右侧购物车和结帐页面 .

    迷你按钮挂在 woocommerce_widget_shopping_cart_buttons 动作钩子中(在购物车/ 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上进行测试并且有效 .

相关问题