PrestaShop - Как добавить переменную в шаблон электронной почты

Я недавно купил модуль обзора для PrestaShop 1.7.5.

Я хотел бы добавить номер телефона клиента к электронному письму, отправленному модулем. Но техподдержка сказала мне, что настройки не покрываются поддержкой модулей, я должен сделать это сам.

Итак, я пытаюсь сделать это сам.

Я нашел код переменной шаблона в LGMailer.php:

    $template_vars = array(
        '{firstname}' => $order['firstname'],
        '{lastname}'  => $order['lastname'],
        '{storename}' => Configuration::get('PS_SHOP_NAME'),
        '{email}'     => $order['email'],
        '{id_order}'  => $order['id_order'],
        '{link}'      => $link,
        '{product_details}' => $products
    );

    return $template_vars;

как я хочу добавить телефон клиента, так изменил его так:

     $template_vars = array(
        '{firstname}' => $order['firstname'],
        '{lastname}'  => $order['lastname'],
        '{storename}' => Configuration::get('PS_SHOP_NAME'),
        '{email}'     => $order['email'],
        '{phone_mobile}'     => $order['phone_mobile'],        (Added this line)
        '{id_order}'  => $order['id_order'],
        '{link}'      => $link,
        '{product_details}' => $products
    );

    return $template_vars;
}

Но это не похоже на работу.

Может кто-нибудь сказать мне, что я делаю не так? прикрепленный файл php.

1 ответ

Решение

getTemplateVars() метод из вашего модуля вызывается в файле cron.php и использует getOrders() от LGMailer класс для получения заказов, для которых будут отправляться электронные письма.

Если вы внимательно посмотрите на этот метод, вы увидите, что он не выбирает столбец мобильного телефона, вам нужно будет добавить его.

Изменить getOrders() метод в LGMailer.php:

Сначала добавьте пропущенный столбец

$query->select('a.`phone_mobile`');

Затем добавьте оператор базы данных JOIN на адрес доставки

$query->leftJoin('address', 'a', 'o.`id_address_delivery` = a.`id_address`');

в заключение

Не забудьте добавить {phone_mobile} внутри opinion-request.html(который вы забыли приложить к вашему вопросу).

Надеюсь, это поможет!

Другие вопросы по тегам