| @@ -3,8 +3,10 @@ | ||
| 3 | 3 | namespace FluentCart\App\Services\ShortCodeParser; |
| 4 | 4 | |
| 5 | 5 | use FluentCart\Api\StoreSettings; |
| 6 | 6 | use FluentCart\App\Helpers\Helper; |
| 7 | +use FluentCart\App\Models\Order; | |
| 8 | +use FluentCart\App\Services\Payments\PaymentHelper; | |
| 7 | 9 | use FluentCart\App\Services\Payments\PaymentReceipt; |
| 8 | 10 | use FluentCart\App\Services\WpMetaHelper; |
| 9 | 11 | use FluentCart\Framework\Support\Arr; |
| 10 | 12 | |
| @@ -293,8 +295,22 @@ | ||
| 293 | 295 | if (!empty($profilePage)) { |
| 294 | 296 | $parsedData[$placeholder] = "<a style='color: #017EF3; text-decoration: none;' href='" . "$profilePage#/order/" . Arr::get($order, 'uuid') . "'>" . Arr::get($order, 'id') . "</a>"; |
| 295 | 297 | } else { |
| 296 | 298 | $parsedData[$placeholder] = Arr::get($order, 'id'); |
| 299 | + } | |
| 300 | + } elseif ($targetItem === 'payment_link') { | |
| 301 | + $parsedData[$placeholder] = PaymentHelper::getCustomPaymentLink(Arr::get($order, 'uuid')); | |
| 302 | + } elseif ($targetItem === 'review_url') { | |
| 303 | + // Resolved here rather than through OrderParser: this | |
| 304 | + // parser handles every order.* code itself and never | |
| 305 | + // consults that class, so a methodMap entry alone would | |
| 306 | + // render an empty string in a real email. | |
| 307 | + $reviewHash = (string) Arr::get($order, 'uuid', ''); | |
| 308 | + if ($reviewHash !== '') { | |
| 309 | + $parsedData[$placeholder] = Order::reviewUrlForHash($reviewHash); | |
| 310 | + } else { | |
| 311 | + $reviewOrder = Order::query()->find(Arr::get($order, 'id')); | |
| 312 | + $parsedData[$placeholder] = $reviewOrder instanceof Order ? $reviewOrder->getOrderReviewUrl() : ''; | |
| 297 | 313 | } |
| 298 | 314 | } else if ($targetItem === 'total_amount') { |
| 299 | 315 | $parsedData[$placeholder] = Helper::toDecimal(Arr::get($order, 'total_amount'), false); |
| 300 | 316 | } elseif ($targetItem === 'total_paid') { |