2016-09-21 180 views
0

我知道有重複的線程,但提出的解決方案不起作用(100%) - 這是我與https://stackoverflow.com/a/24027583/1826992合作的解決方案。基本上,阿賈克斯電話是從購物車中刪除的項目,但微型購物車不更新,直到我刷新頁面。這裏是我在哪裏:Woocommerce ajax從購物車中刪除

add_action('wp_footer', 'add_js_to_wp_wcommerce'); 

function add_js_to_wp_wcommerce(){ ?> 
    <script type="text/javascript"> 
    jQuery('body').on('click',".remove",function(){ 
     var product_id = jQuery(this).attr("data-product_id"); 
       console.log(product_id); 
     jQuery.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      url: "/wp-admin/admin-ajax.php", 
      data: { action: "product_remove", 
        product_id: product_id 
      },success: function(data){ 
       console.log(data); 
      } 
     }); 

     return false; 
    }); 
    </script> 
<?php } 



add_action('wp_ajax_product_remove', 'product_remove'); 
add_action('wp_ajax_nopriv_product_remove', 'product_remove'); 
function product_remove() { 
    $cart = WC()->instance()->cart; 
    $id = $_POST['product_id']; 
    $cart_id = $cart->generate_cart_id($id); 
    $cart_item_id = $cart->find_product_in_cart($cart_id); 

    if($cart_item_id){ 
     $cart->set_quantity($cart_item_id,0); 
    } 
} 

正如我所提到的這一切似乎工作,直到「行動」。此時Console.log(數據)僅攜帶「0」。我認爲這應該有product_id。

在此先感謝您的幫助。

回答

1

從PHP函數&返回一些使用wp_die()迴歸後,和包裝你的js文件準備好聲明

+0

我實現了這些變化。有什麼建議返回什麼?我已經返回了購物車,但沒有購物車仍然不刷新,直到我重新加載頁面。謝謝。 – epluribusunum

+0

您需要返回更新的購物車,或者只是根據您更新購物車列表中的購物車清單 – madalinivascu

+0

,您是否知道如何更新購物車清單?對不起,我正在爲此苦苦掙扎。提前致謝。 – epluribusunum

相關問題