我已经创建并注册了可以正常运行的Shopify网络挂钩。当客户下订单时,将向该客户发送短信通知。
短信通知内容保存在数据库中,并在触发要发送短信的Web挂钩时进行检索。在数据库中,短信通知内容另存为“感谢您下达订单%order_number%” 。
将短信发送给客户端时,应将字符串%order_number%
替换为实际的订单号,以“谢谢您下订单13” 。
这就是我现在拥有的
控制器
public function orderPlaceWebhook(Request $request)
{
//get order details
$order = $request->getContent();
$order = json_decode($order, true);
$order_number = $order['number'];
//fetched sms notification template from db
$Message = SMS::where('site', Auth::user()->site);
//message content saved is "Thank you for placing order %order_number%"
//send sms
$baseurl = "https://apps.domain.com/smsapi";
$query = "?key=$keyto=$number&msg=$Message&sender_id=$sender";
$final_uri = $baseurl.$query;
$response = file_get_contents($final_uri);
header ("Content-Type:text/xml");
}
如何用来自%order_number%
的值替换$Message
中的字符串$order_number
?
PS:谢谢您。 laravel初学者
答案 0 :(得分:1)
将模板保留在数据库中是否有特殊原因? 使用翻译文件会更好,以后,如果您需要支持其他语言,会容易得多。
因此您可以在翻译文件中输入以下消息:
'sms_template' => 'Thank you for placing order :order'
在Laravel中使用
trans('MESSAGE_FILE_NAME.sms_template', ['order' => $order_number]);
用您的翻译文件替换MESSAGE_FILE_NAME。
如果您仍然需要使用普通的旧PHP方式,请执行以下操作:
str_replace("%order_number%", $order_number, $Message);