PHP Add products to cart with WooCommerce Addons

The WooCommerce Cart add_to_cart function takes a parameter for cart_item_data. To make this work, you simply need to pass the addon data to add_to_cart. Something like this:

$addons = array(
    array(
        "name" => "Size",
        "value" => "2.5x7",
        "price" => 0,
        "field_name" => "5186-0",
        "field_type" => "multiple_choice",
        "id" => "1683555538",
        "price_type" => "flat_fee"
    ),                
    array(
        "name" => "Medium",
        "value" => "Print",
        "price" => 0,
        "field_name" => "5186-1", // {product_id}-{addon_index}
        "field_type" => "multiple_choice",
        "id" => "1683555539",
        "price_type" => "flat_fee"
    )
);
$product_id = 11;
$quantity = 1;
$variation_id = null;
$variation = null;
$cart_item_data = array('addons' => $addons);

WC()->cart->add_to_cart($product_id, $quantity, $variation_id, $variation, $cart_item_data);