【发布时间】:2021-02-22 12:40:22
【问题描述】:
我正在使用 WooCommerce 并将以下代码添加到 functions.php:
add_filter( 'woocommerce_product_add_to_cart_url', 'custom_fix_for_individual_products', 10, 2 );
function custom_fix_for_individual_products( $add_to_cart_url, $product ){
$add_to_cart_url = wc_get_checkout_url();
return $add_to_cart_url;
}
我期望的是,当用户将产品添加到他们的购物篮时:此代码会将用户重定向到结帐页面,而不会实际将产品添加到购物篮中。但是,它仍将产品添加到购物篮中。这段代码有什么问题?
背景: 我正在使用 Uncaught Error: Call to a member function generate_cart_id() on null 答案代码,但它不能正确地用于上述行,这就是为什么我现在只使用那条线。服务器日志中没有错误。
【问题讨论】:
-
产品加入购物车后,钩子
woocommerce_product_add_to_cart_url会被触发……另外,如果购物车中没有产品,您将无法访问结帐页面。 -
感谢@LoicTheAztec,但如果产品已经在购物车中,它也不起作用。它只是刷新页面
https://example.com/?add-to-cart=99,既不进入购物车也不进入结帐页面。example.com/shop/上的“添加到购物车”按钮(由 woocommerce 自动生成)确实有效。但是我主页上的自定义按钮没有。 -
看源码,首页的按钮是:
<a class="wp-block-button__link xxx" href="/?add-to-cart=815">Product</a>。在商店中,“添加到购物车”按钮现在指向结帐,因为产品已经在购物车中:<a href="https://example.com/checkout/" data-quantity="1" class="button product_type_course add_to_cart_button ajax_add_to_cart" data-product_id="99" data-product_sku="" aria-label="Read more about &ldquo;xxx&rdquo;" rel="nofollow">Add to cart</a>。 -
你应该尝试使用
https://example.com/checkout/?add-to-cart=99作为链接而不是https://example.com/?add-to-cart=99Th -
是的,这样就可以了,谢谢!你会添加是作为答案吗?
标签: php wordpress woocommerce product hook-woocommerce