Вот таким кодом я удаляю товар из корзины
add_action('wp_ajax_remove_cart_item', 'remove_cart_item');
add_action('wp_ajax_nopriv_remove_cart_item', 'remove_cart_item');
function remove_cart_item() {
global $woocommerce;
$cart_id = wc_clean($_POST['cart_id']);
if(WC()->cart->remove_cart_item($cart_id)) {
WC_AJAX::get_refreshed_fragments();
} else {
$data = array(
'error' => true
);
echo wp_send_json($data);
}
wp_die();
}
Но проблема в том, что чтобы сделать доступной кнопку "добавить в корзину" мне нужно получить в js id товара. Как id товара получить, я знаю. Проблема в том, как передать этот id в js. У меня только 2 варианта в голове - делать еще один запрос к серверу перед удалением товара из корзины, но этот способ не очень правильный, как по мне. И второй - в фильтре woocommerce_add_to_cart_fragments, в фрагментах, создать ключ product_id и при замене содержимого элементов, проверять на этот ключ. Но тоже не очень вариант. Нельзя как-то к cart_hash и fragments, возвращаемых после WC_AJAX::get_refreshed_fragments(), добавить еще один ключ только в нужной мне функции?
Дополнение: Посмотрев код метода, я пришел к выводу, что может проще написать свою похожую функцию, которая будет принимать параметры? Я все равно весь js код сам пишу.