Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

216
Vistas
WooCommerce eliminando programáticamente del carrito

¿Cómo elimino mediante programación un artículo del carrito de Woocommerce usando AJAX? Intenté poner una función en mi archivo functions.php y acceder a eso, pero no se elimina nada. Intenté codificar el producto 299 pero no se elimina. Esto es lo que hice:

funciones.php

 function remove_item_from_cart() { $cart = WC()->instance()->cart; $id = 299; $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); } return true; }

temas/mina/main.js

 $.ajax({ type: 'POST', dataType: 'text', url: "http://www.../wp/wp-content/themes/mine/functions.php", data: { action: 'remove_item_from_cart' }, success: function( data ) { console.log(data); } });
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Use el método ajax adecuado de wordpress como este: Esto funcionó bien para mí.

//funciones.php

 function remove_item_from_cart() { $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); return true; } return false; } add_action('wp_ajax_remove_item_from_cart', 'remove_item_from_cart'); add_action('wp_ajax_nopriv_remove_item_from_cart', 'remove_item_from_cart');

//principal.js

 $.ajax({ type: "POST", url: 'http://localhost/your_site/wp-admin/admin-ajax.php', data: {action : 'remove_item_from_cart','product_id' : '4'}, success: function (res) { if (res) { alert('Removed Successfully'); } } });
over 4 years ago · Santiago Trujillo Denunciar

0

Esto parece funcionar.

HTML:

 <?php foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ){ ?< <button class="remove-item" data-cart-item-key="<?=$cart_item_key;?>"> remove item </button> <? } ?>

JavaScript:

 $('.remove-item').click(function(e){ e.preventDefault(); $.ajax({ type: "POST", url: ajaxurl, data: { action: 'remove_item_from_cart', 'cart_item_key': String($(this).data('cart-item-key')) } }); });

En functions.php, dentro de la carpeta de plantillas:

 function remove_item_from_cart() { $cart_item_key = $_POST['cart_item_key']; if($cart_item_key){ WC()->cart->remove_cart_item($cart_item_key); return true; } return false; } add_action('wp_ajax_remove_item_from_cart', 'remove_item_from_cart'); add_action('wp_ajax_nopriv_remove_item_from_cart', 'remove_item_from_cart');
over 4 years ago · Santiago Trujillo Denunciar

0

Para WooCommerce 3.0+, puede hacerlo usando la función integrada remove_cart_item()

 function findCartItemKey($cartItems, $productId){ foreach($cartItems as $cartKey => $item){ $product = $item['data']; if($product->get_id() == $productId){ return $cartKey; } return false; } } global $woocommerce; $cartItemKey = findCartItemKey($woocommerce->cart->get_cart()) $woocommerce->cart->remove_cart_item($cartItemKey);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda