@php $apiRequestRoute = route('api.vendor.chat_template_message.send.process', ['vendorUid' => getVendorUid()]); $parameterData = [ 'from_phone_number_id' => '', 'phone_number' => '', 'template_name' => $template['template_name'], 'template_language' => $template['language'], ]; if ($headerFormat == 'IMAGE') { $parameterData['header_image'] = __tr('Insert image URL here'); } elseif ($headerFormat == 'VIDEO') { $parameterData['header_video'] = __tr('Insert video URL here'); } elseif ($headerFormat == 'DOCUMENT') { $parameterData['header_document'] = __tr('Insert document URL here'); $parameterData['header_document_name'] = ''; } elseif ($headerFormat == 'LOCATION') { $parameterData['location_latitude'] = ''; $parameterData['location_longitude'] = ''; $parameterData['location_name'] = ''; $parameterData['location_address'] = ''; } // Merge header parameters if (!__isEmpty($headerParameters)) { $headerParameterData = []; foreach($headerParameters as $headerParameter) { $headerParameterData[$headerParameter] = ''; } $parameterData = array_merge($parameterData, $headerParameterData); } // Merge body parameters if (!__isEmpty($bodyParameters)) { $bodyParameterData = []; foreach($bodyParameters as $bodyParameterValue) { $bodyParameterData[$bodyParameterValue] = ''; } $parameterData = array_merge($parameterData, $bodyParameterData); } // Merge button parameters if (!__isEmpty($buttonParameters)) { $buttonParameterData = []; foreach($buttonParameters as $btnParameterValue) { $buttonParameterData[$btnParameterValue] = ''; } $parameterData = array_merge($parameterData, $buttonParameterData); } // Merge button items if (!__isEmpty($buttonItems)) { if (array_key_exists('COPY_CODE', $buttonItems)) { $parameterData = array_merge($parameterData, [ 'copy_code' => '' ]); } } // Check if template type is Carousel if ($templateType == 'CAROUSEL') { $carouselTemplateDetails = []; if (!__isEmpty($carouselTemplateData)) { foreach($carouselTemplateData[1]['cards'] as $cardIndex => $carouselTemplateCard) { $mediaType = $carouselTemplateCard['components'][0]['format']; $buttonTypes = []; foreach($carouselTemplateCard['components'][2]['buttons'] as $carouselButton) { $buttonTypes[] = $carouselButton['type']; } $carouselBodyData = []; if (isset($carouselTemplateCard['components'][1]['example'])) { foreach ($carouselTemplateCard['components'][1]['example']['body_text'][0] as $bodyTextIndex => $bodyTextExample) { $carouselBodyData[] = ""; } } $carouselTemplateDetails[] = [ 'media_type' => $mediaType, 'media_url' => __tr('Insert __media__ URL here', ['__media__' => strtolower($mediaType)]), 'button_type' => $buttonTypes, 'carouselBodyData' => $carouselBodyData ]; } $parameterData['carousel_templates'] = $carouselTemplateDetails; } } // Check if template requested for create new campaign if ($pageType == 'create-new-campaign') { $apiRequestRoute = route('api.vendor.campaign.write.schedule', ['vendorUid' => getVendorUid()]); unset($parameterData['phone_number']); $parameterData = array_merge($parameterData, [ 'title' => '', 'contact_group' => '', 'contact_labels' => '', 'restrict_by_templated_contact_language' => '', 'timezone' => '', 'schedule_at' => '', 'expire_at' => '', ]); } // Prepare carousel template payload function prepareCarouselPayload($carouselData) { $carouselKeys = array_keys($carouselData); $lastKey = end($carouselKeys); $carouselHtml = '"carousel_templates": ['; foreach ($carouselData as $carouselIndex => $carouselValue) { $isLastKey = ($carouselIndex != $lastKey) ? ',' : ''; $carouselHtml .= '{ "media_type": "'.$carouselValue['media_type'].'", "media_url": "'.$carouselValue['media_url'].'", "body_example_fields": ["'.implode('","', $carouselValue['carouselBodyData']).'"], "button_type": ["'.implode('","', $carouselValue['button_type']).'"] }'.$isLastKey; } $carouselHtml .= '],'; return $carouselHtml; } @endphp