@Muvka

Можно ли через фрагменты Woocommerce передать свои данные?

Вот таким кодом я удаляю товар из корзины
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 код сам пишу.
  • Вопрос задан
  • 510 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы