I am creating an array for an order to then pass this data to stripe, the array has multiple forEach clauses.
The issue I am facing is, if the order item(s) does not have menu_options it is not included in the array.
What am I doing wrong to ensure that each $orderItem is in the array wether it does or does not have an $itemOption / menu_options.
<code>private function convertCartToOrderLines($order){
$lines = [];
foreach ($order->getOrderMenusWithOptions() as $orderItem)
{
foreach ($orderItem->menu_options as $itemOptionGroup ) {
$itemOptionGroup = $orderItem->menu_options->groupBy('order_option_category');
foreach ($itemOptionGroup as $itemOptionGroupName => $itemOptions) {
foreach ($itemOptions as $itemOption) {
$test1 = "Qty: x".$orderItem->quantity." | ".$itemOption->order_option_name;
array_push($lines, [
'price_data' => [
'currency' => currency()->getUserCurrency(),
'unit_amount_decimal' => number_format($orderItem->subtotal, 2, '.', '') * 100,
'product_data' => [
'name' => $orderItem->name,
'description' => $test1,
],
],
'quantity' => 1,
]);
}}}}
return $lines;
}
</code>
<code>private function convertCartToOrderLines($order){
$lines = [];
foreach ($order->getOrderMenusWithOptions() as $orderItem)
{
foreach ($orderItem->menu_options as $itemOptionGroup ) {
$itemOptionGroup = $orderItem->menu_options->groupBy('order_option_category');
foreach ($itemOptionGroup as $itemOptionGroupName => $itemOptions) {
foreach ($itemOptions as $itemOption) {
$test1 = "Qty: x".$orderItem->quantity." | ".$itemOption->order_option_name;
array_push($lines, [
'price_data' => [
'currency' => currency()->getUserCurrency(),
'unit_amount_decimal' => number_format($orderItem->subtotal, 2, '.', '') * 100,
'product_data' => [
'name' => $orderItem->name,
'description' => $test1,
],
],
'quantity' => 1,
]);
}}}}
return $lines;
}
</code>
private function convertCartToOrderLines($order){
$lines = [];
foreach ($order->getOrderMenusWithOptions() as $orderItem)
{
foreach ($orderItem->menu_options as $itemOptionGroup ) {
$itemOptionGroup = $orderItem->menu_options->groupBy('order_option_category');
foreach ($itemOptionGroup as $itemOptionGroupName => $itemOptions) {
foreach ($itemOptions as $itemOption) {
$test1 = "Qty: x".$orderItem->quantity." | ".$itemOption->order_option_name;
array_push($lines, [
'price_data' => [
'currency' => currency()->getUserCurrency(),
'unit_amount_decimal' => number_format($orderItem->subtotal, 2, '.', '') * 100,
'product_data' => [
'name' => $orderItem->name,
'description' => $test1,
],
],
'quantity' => 1,
]);
}}}}
return $lines;
}