在Woocommerce上,我们如何更改显示在主页上的购物车图标上方显示的下拉菜单中的“查看购物车”和“结帐”链接上的网址?
我设置了“购物车”和“结帐”页面,但它们没有链接到这些页面。
我可以直接使用网址查看这些网页。 http://mysite/cart和http://mysite/checkout
答案 0 :(得分:4)
似乎主题(或插件)存在问题,因为minicart按钮链接始终指向右侧购物车和结帐页面。
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+上进行测试并且有效。