WooCommerce - Adăugarea programatică a unui produs în coș prin JS sau PHP
Folosesc plugin-ul WooCommerce pentru a facilita o mică parte de e-commerce a unui site și am nevoie să adaug produse în coș prin intermediul unei comenzi sau funcții, în loc să folosesc butoanele proprii 'add-to-cart'.
Prin aceasta, mă refer practic la trimiterea către WooCommerce a unui SKU și a unei cantități, de exemplu, și actualizarea coșului.
sendToCart('123456', 55);
etc
Am căutat prin documentație și nu am reușit să găsesc o referință pentru acest tip de funcționalitate. Poate cineva să sugereze cum aș putea realiza acest lucru?

OK, deci iată cum am rezolvat-o în final. Un exemplu rapid și simplu, care folosește jQuery.
<a id="buy" href="#">Cumpără asta!</a>
<script>
$('#buy').click(function(e) {
e.preventDefault();
addToCart(19);
return false;
});
function addToCart(p_id) {
$.get('/wp/?post_type=product&add-to-cart=' + p_id, function() {
// callback
});
}
</script>
Acest cod face pur și simplu o cerere AJAX GET către URL-ul coșului
/wp/?post_type=product&add-to-cart=[ID_PRODUS]

acest lucru nu mai funcționează (wc v2.1.12). am găsit o soluție și am împărtășit-o aici

Am folosit acest tutorial care m-a ajutat să obțin ceea ce aveam nevoie: https://wpharvest.com/add-product-to-cart-programmatically-in-woocommerce/

În PHP am reușit să fac asta în felul următor:
global $woocommerce;
$woocommerce->cart->add_to_cart($product_id);
Metoda se află în woocommerce/classes/class-wc-cart.php:
/**
* Adaugă un produs în coș.
*
* @param string $product_id conține ID-ul produsului de adăugat în coș
* @param string $quantity conține cantitatea articolului de adăugat
* @param int $variation_id
* @param array $variation valori ale atributelor
* @param array $cart_item_data date suplimentare pentru articolul din coș pe care dorim să le transmitem
* @return bool
*/
public function add_to_cart( $product_id, $quantity = 1, $variation_id = '', $variation = '', $cart_item_data = array() ) {

@Stratboy folosind metoda recomandată de adăugare a funcțiilor AJAX în WordPress: https://codex.wordpress.org/AJAX_in_Plugins - practic, doar inserezi cele 3 linii din răspuns în primul exemplu PHP din codex-ul WordPress.
