Php Woocommerce-清除主页上的购物车(登录时不工作)
我正试图清除主页上的购物车。我已将此部分添加到主页标题部分:Php Woocommerce-清除主页上的购物车(登录时不工作),php,jquery,wordpress,woocommerce,cart,Php,Jquery,Wordpress,Woocommerce,Cart,我正试图清除主页上的购物车。我已将此部分添加到主页标题部分: <script type='text/javascript'> function clearCart() { jQuery.post( "https://abcdefgh.com/wp-admin/admin-ajax.php", //ajaxurl, {
<script type='text/javascript'>
function clearCart() {
jQuery.post(
"https://abcdefgh.com/wp-admin/admin-ajax.php",
//ajaxurl,
{
"action": "clearcart"
}
);
console.log('its homepage bro!');
}
jQuery(document).ready(function(){
clearCart();
});
</script>
如果用户未登录,则在主页上清除购物车。但是,如果用户已登录,则尽管执行了javascript部分(我通过控制台日志进行了检查),但它仍无法工作
您认为为什么会发生这种情况?我如何解决它?您不需要使用Ajax。我只是选择性地使用一点jQuery来刷新/更新相关的购物车数据(如在迷你购物车中):
add_操作('wp_footer','clear_the_cart_in_home_refresh');
功能清除\u主页中的\u购物车\u刷新(){
//当购物车不为空时,仅在主页中
如果(WC()->cart->is_empty())返回;
如果(!is_front_page())返回;
//空车
WC()->cart->empty_cart(true);
WC()->session->set('cart',array());
//重置微型购物车计数并更新页面内容(如果需要)
?>
jQuery(文档).ready(函数($){
setTimeout(函数(){
$('body')。触发器('wc_fragment_refresh');
$('body')。触发器('updated_wc_div');
}, 100);
});
这是一种疯狂的尝试方式。与其要求解释,不如告诉我们你想做什么。“我正试图清除主页上的购物车。”正如你所看到的,我已经告诉过你了。在一些场合工作过。
add_action('wp_ajax_nopriv_clearcart',function(){
global $woocommerce;
$woocommerce->cart->empty_cart(true);
});
add_action( 'wp_footer', 'clear_the_cart_in_home_refresh' );
function clear_the_cart_in_home_refresh(){
// Just in home page when cart is not empty
if( WC()->cart->is_empty() ) return;
if( ! is_front_page() ) return;
// Empty cart
WC()->cart->empty_cart(true);
WC()->session->set('cart', array());
// Reset minicart count and update page content (if needed)
?>
<script type='text/javascript'>
jQuery(document).ready(function($){
setTimeout(function() {
$('body').trigger('wc_fragment_refresh');
$('body').trigger('updated_wc_div');
}, 100);
});
</script>
<?php
}