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

Sur*_*ala 4 php wordpress checkout cart woocommerce

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

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

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

在此处输入图片说明

Loi*_*tec 6

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

woocommerce_widget_shopping_cart_buttons微型购物车按钮被钩在动作挂钩中(在cart / mini-cart.php WooCommerce模板中)。您可以在include / wc-template-hooks.php核心文件中找到详细信息。它调用了两个显示按钮的功能。

首先,您应该尝试刷新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>';
}
Run Code Online (Sandbox Code Playgroud)

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

所有代码都在Woocommerce 3+上进行了测试,并且可以正常工作。