我还是比较熟悉PHP,所以请耐心等待我!
目前在WordPress中使用WooCommerce,并且我尝试将客户直接重定向到购物车,并在他们尝试两次添加相同产品时将通知应用到购物车页面。
// Downloadable/virtual qty check
if ( $product_data->is_sold_individually() ) {
$in_cart_quantity = $cart_item_key ? $this->cart_contents[$cart_item_key]['quantity'] : 0;
// If it's greater than 0, it's already in the cart
if ( $in_cart_quantity > 0 ) {
wp_redirect( 'MySite.com/cart' ); exit;
wc_add_notice( sprintf( __( 'You cannot add another "%s" to your cart. You have been redirected to your cart for purchase.', 'woocommerce' ), $product_data->get_title() ) ), 'notice' );
}
}
我知道上面的if语句不正确。我只想表明我想要完成的是什么。详细说明:
为文本墙道歉。我宁愿在OP中提供尽可能多的信息,而不是让人们试图辨别我在问什么。
最后一点,是的,我试图在WooCommerce插件页面上创建一个支持主题,但他们只是在回答他们最近的1k支持主题中的100个。我妻子和我最近的支持请求都已经持续了好几个星期。我永远不会在那里找到解决方案。
提前谢谢!
答案 0 :(得分:-1)
你几乎拥有它。我认为你无法让它工作的原因是因为在重定向的同一行上隐藏了一点exit;
位。您需要使用wc_add_notice
添加通知,执行重定向,然后退出脚本。
if ( $in_cart_quantity > 0 ) {
wc_add_notice( sprintf( __( 'You cannot add another "%s" to your cart. You have been redirected to your cart for purchase.', 'woocommerce' ), $product_data->get_title() ) ), 'notice' );
wp_redirect( 'MySite.com/cart' );
exit;
}
还有一个提示:请不要在重定向中使用硬编码的网址,请使用:wp_redirect( WC()->cart->get_cart_url() );