Добрый день, необходимо персональные данные (номер телефона ФИО и файл) заполняемые в заказе отправлялись в теле письма, которое приходит администратору.
Данные представлены в профиле:
Данную задачу решаю через модуль Rules.
После завершения о заполнении заявки выполняется действие отправки письма.
В теле письма использовал следующий код, но это только про содержание корзины, не про пользователя.
<?phpДата создания: [commerce-order:created]
Номер заказа: [commerce-order:order-number]
Содержание заказа:
<?php
$wrapper = entity_metadata_wrapper('commerce_order', $commerce_order);
$line_items = $wrapper->commerce_line_items->value();
$products_total = commerce_currency_format(
$commerce_order->commerce_order_total['und'][0]['data']['components'][0]['price']['amount'],
$commerce_order->commerce_order_total['und'][0]['currency_code']
);
foreach(
$line_items as $line_item){
if($line_item->type == 'product'){
$product = commerce_product_load($line_item->commerce_product['und'][0]['product_id']);
echo "\n".number_format($line_item->quantity)."- (количество) ";
echo $product->title." ";
echo commerce_currency_format($product->commerce_price['und']['0']['amount'],$product->commerce_price['und']['0']['currency_code']);
}
}
echo
"\nОбщая сумма заказа: " . $products_total;
?>
Ссылка на заказ:
[commerce-order:url]?>
Как сделать так что бы данные пользователя так же отображались в теле письма.
Комментарии
В $commerce_order uid юзера вроде должен быть, дальше загрузить его, взять нужные поля, вывести.
Чуточку поковырялся и разобрался как подгрузить поля, только не могу разобраться как подгружать в тело письмо файл который прикрепляется при оформлении заказа.
Вот код:
<?php
$order_id = $commerce_order->order_id;
$wrapper = entity_metadata_wrapper('commerce_order', $commerce_order);
$line_items = $wrapper->commerce_line_items->value(); $field_fio = $wrapper->commerce_customer_billing->field_fio->value();
$field_e_mail = $wrapper->commerce_customer_billing->field_e_mail->value();
$field_number_tel = $wrapper->commerce_customer_billing->field_number_tel->value();
$field_rekv_compan = $wrapper->commerce_customer_billing->field_rekv_compan->value(); $products_total = commerce_currency_format(
$commerce_order->commerce_order_total['und'][0]['data']['components'][0]['price']['amount'],
$commerce_order->commerce_order_total['und'][0]['currency_code']
);
echo "Заказ № ".$order_id;
echo "\nФИО: ".$field_fio;
echo "\nЭлектронная почта: ".$field_e_mail;
echo "\nТелефон: ".$field_number_tel;
echo "\nРеквизиты: ".$field_rekv_compan;
echo "Список товаров:\n";
foreach( $line_items as $line_item){
if($line_item->type == 'product'){
$product = commerce_product_load($line_item->commerce_product['und'][0]['product_id']);
echo "\n".number_format($line_item->quantity)."x ";
echo $product->title." ";
echo commerce_currency_format($product->commerce_price['und']['0']['amount'],$product->commerce_price['und']['0']['currency_code']);
}
}
echo "\nCумма заказа: " . $products_total;
?>
Поле: field_rekv_compan
Здравствуйте. Если надо обращайтесь телеграм, разберемся.
https://drupal.ru/user/117568
Извините если совет банальный. commerce_email никак не поможет?
Нет, по факту он просто создает правила в модуле Rules и все в принципе.
А чем программный способ не подходит, если все-равно php в рулзах используется?