function add_to_cart_products($request) {
global $woocommerce, $wpdb;
$cart_data = get_user_meta( $request['user_id'], '_woocommerce_persistent_cart_' . get_current_blog_id(), true );
$flag = 0;
foreach ($cart_data['cart'] as $key => $val) {
//$_product = $val['data'];
if ($val['product_id'] != $request['product_id']) {
$flag = 0;
} elseif ($val['product_id'] == $request['product_id']) {
$flag = 2;
$cart_data['cart'][$key]['quantity']++;
}
}
$string = $woocommerce->cart->generate_cart_id($request['product_id'], 0, array(), $cart_data['cart']);
$product = wc_get_product($request['product_id']);
$cart_data['cart'][$string] = array(
'key' => $string,
'product_id' => $request['product_id'],
'variation_id' => 0,
'variation' => array(),
'quantity' => $request['quantity'],
'line_tax_data' => array(
'subtotal' => array(),
'total' => array()
),
'line_subtotal' => $product->get_price(),
'line_subtotal_tax' => 0,
'line_total' => $product->get_price(),
'line_tax' => 0,
);
update_user_meta($request['user_id'], '_woocommerce_persistent_cart_1', $cart_data);
$saved_cart_meta = get_user_meta($request['user_id'], '_woocommerce_persistent_cart_1', true);
return new WP_REST_Response($saved_cart_meta);
}
Creating endpoints
add_action('rest_api_init', function () {
register_rest_route('wp/v2', 'add_to_cart_products', array(
'methods' => 'POST',
'callback' => 'add_to_cart_products',
));
});
