В настоящее время вы перезаписываете одни и те же переменные на каждой итерации l oop, поэтому они будут содержать только последнюю запись.
Вместо этого вы должны добавить значения, делая что-то вроде:
$tableContent = json_decode($_POST['tableContent']);
// Define a variable to store the items in
$items = '';
// Let's add a total sum as well
$total = 0;
// Let's also use different variable names here
foreach ($tableContent as $item) {
// Append to the variable (notice the . before the =)
$items .= 'Item: ' . $item->name . "\n";
$items .= 'Quantity: ' . $item->inCart . "\n";
$items .= 'Price: ' . $item->price . "\n\n";
// Add the price to the total (I'm assuming that the price is an integer)
$total += $tableContent->price;
}
Теперь при выводе тела письма у нас есть все элементы и сумма в этих переменных:
$txt = "New registration \n" . $items . "Sum total: " . $total . "\n\n\n CUSTOMER DERAILS\n\n Name:".$contact."\n Reg No:".$reg;
Как видите, я немного изменил макет письма поскольку кажется, что корзина может содержать несколько товаров, в то время как тело вашего электронного письма было написано так, как если бы могло содержать только один.
Предупреждение об этом подходе
Вы не должны получать значения корзины, например, имя и цена, от клиента в таком POST-запросе. Клиент должен отправить только идентификатор и количество товара, а затем вы получите имя и цену из базы данных или аналогичного элемента в бэкэнде. В противном случае любой может изменить цену до того, как она будет опубликована. Никогда не доверяйте пользовательским данным.