2017-11-19 16 views
1

ショップページ[woocommerce_cart]にwoocommerceショットコードを使用しています。私はajaxを使用して製品を削除しようとしています。製品のIDとカートの取り外し機能がどのように機能していないのか商品をカートで取り除く

jQuery(document).ready(function($) { 
    $(document).on('click', '.product-remove .remove', function(e) {  
    e.preventDefault(); 
     var unit_id =// how can find product id; 
     e.preventDefault(); 
     $.ajax({ 
      type: 'post', 
      beforeSend: function() { $('#wait').show(); }, 
      data: {catremovpid: unit_id}, //Pass the id 
      url:'http://mysiteurl.com/one-page/test/', 
       success: function(data){ 
        $('.bd_woo_cart').empty().prepend(''); 
       $('.bd_woo_cart').append(data);     
        console.log(data); 
       }, 
       error: function(data){ 
       console.log('error'); 
       } 
     }); 
    }); 
}); 

とPHPの関数は

if (isset($_POST["catremovpid"])){ 

    $data = $_POST["catremovpid"]; 

    $prod_unique_id = WC()->cart->generate_cart_id($data); 
    // Remove it from the cart by un-setting it 
    unset(WC()->cart->cart_contents[$prod_unique_id]); 
    echo do_shortcode ('[woocommerce_cart]');  
} 

しかし、製品であるカートに削除されていません。しかし、このコードはカートページの作業です。しかし、ショップのページでこれは動作していません。

答えて

0

が未設定の代わりに、PHPのremove_cart_item()メソッドを試してみてください:

if (isset($_POST["catremovpid"])){ 

    $data = $_POST["catremovpid"]; 

    $prod_unique_id = WC()->cart->generate_cart_id($data); 
    // Remove it from the cart by un-setting it 
    WC()->cart->remove_cart_item($prod_unique_id); 
    echo do_shortcode ('[woocommerce_cart]');  
} 
+0

ファーストを教えてください。削除ボタン上のプロダクトIDを見つけることができるか(VARのUNIT_ID = //プロダクトIDを見つけることができますどのように)。しかし、私はremove_cart_itemの機能が動作していないことを確認しています。 –

+0

このコードはカートのページで動作しますが、私は衣装のページ(ショップページのようなもの)に取り組んでいます。 –

+0

私はそれを得ました。しかし、plugins/woocommerce/templates/cart/cart.phpと同じテクニックを使うことができます。 woocommerce_cart shortcodeを使用する代わりに、独自のカスタムショートコードを作成し、指定されたファイル内のコードを使用します。あなたが必要なすべての機能を(IDを取得するために、リンクを削除するための準備ができた機能など)見つけることができます。 –

関連する問題