WooCommerce - Añadir un producto al carrito programáticamente mediante JS o PHP
Estoy utilizando el plugin WooCommerce para implementar una pequeña parte de comercio electrónico en un sitio y necesito añadir productos a su carrito mediante alguna llamada o función en lugar de usar sus propios botones 'añadir al carrito'.
Con esto me refiero básicamente a enviar a WooCommerce un SKU y una cantidad, por ejemplo, y que el carrito se actualice.
sendToCart('123456', 55);
etc
He revisado la documentación y no puedo encontrar una referencia a este tipo de funcionalidad. ¿Alguien puede sugerir cómo podría lograr esto?

OK, así es como lo solucioné al final. Un ejemplo rápido y sencillo, usa JQuery.
<a id="buy" href="#">¡Compra esto!</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>
Esto simplemente hace una petición AJAX GET a la URL del carrito
/wp/?post_type=product&add-to-cart=[ID_DEL_PRODUCTO]

esto ya no funciona (wc v2.1.12). Encontré una solución y la compartí aquí

He utilizado este tutorial que me ayudó a lograr lo que necesitaba: https://wpharvest.com/add-product-to-cart-programmatically-in-woocommerce/

En PHP lo logré hacer de esta manera:
global $woocommerce;
$woocommerce->cart->add_to_cart($product_id);
El método está en woocommerce/classes/class-wc-cart.php:
/**
* Añade un producto al carrito.
*
* @param string $product_id contiene el ID del producto a añadir al carrito
* @param string $quantity contiene la cantidad del artículo a añadir
* @param int $variation_id
* @param array $variation valores de atributos
* @param array $cart_item_data datos adicionales del artículo que queremos pasar
* @return bool
*/
public function add_to_cart( $product_id, $quantity = 1, $variation_id = '', $variation = '', $cart_item_data = array() ) {

@Stratboy utilizando la forma recomendada de agregar funciones AJAX en Wordpress: https://codex.wordpress.org/AJAX_in_Plugins - básicamente solo necesitas insertar las 3 líneas de la respuesta en el primer ejemplo php del codex de wordpress.
