0
重複するスレッドがあることを認識していますが、解決策が機能していない(100%) - これは私がhttps://stackoverflow.com/a/24027583/1826992で解決した解決策です。基本的には、AJAXの呼び出しによってカートからアイテムが削除されていますが、ページを更新するまでミニカートは更新されません。私はここにいる:Woocommerce ajax from
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(data)は "0"しか保持しません。私はこれがproduct_idを持っていると仮定します。
ご協力いただきありがとうございます。あなたのPHP関数&から
文書準備文の中で、あなたのjsを包みます。何を返すべきかに関する勧告?私は$カートを返しましたが、ページをリロードするまでカートがまだリフレッシュされていません。ありがとう。 – epluribusunum
更新されたカートを返す必要がある、またはページのカートリストを更新したことに基づいて、カートが更新されたというメッセージだけを返す必要があります – madalinivascu
カートリストを更新する方法は分かりますか?申し訳ありませんが、私はこれで少し苦労しています。前もって感謝します。 – epluribusunum