Я пытаюсь разослать письма после отправки формы WordPress. Эти письма создаются с использованием веток и Timber для WordPress. Проблема в том, что для каждого письма я компилирую шаблон, используя Timber::compile($template, $context)
.
. Это прекрасно работает для первого письма, но вылетает во втором письме из-за пользовательских функций, которые я добавляю в веточку в своих функциях. php файл. Этот код выглядит следующим образом:
$twig->addFunction(new Timber\Twig_Function('load_js', 'load_js'));
function load_js($handle) {
$url = get_template_directory_uri() . "/static/js/" . $handle;
$version = wp_get_theme()->get('Version');
wp_enqueue_script($handle, $url, array(), $version, true);
}
$twig->addFunction(new Timber\Twig_Function('load_js_url', 'load_js_url'));
function load_js_url($name, $url) {
$version = wp_get_theme()->get('Version');
wp_enqueue_script($name, $url, array(), NULL, true);
}
Это приводит к cra sh со следующей ошибкой: Cannot redeclare load_js() (previously declared in...
Исправление будет проверять, если функция уже объявлена, но это не работает, так как функция $twig->getFunction($name)
в Twig \ Environment также пытается инициализировать расширения, прежде чем дать мне значение true или false.
Есть ли способ выполнить sh рендеринг большего количества шаблонов в одном запрос, без вызова функций дважды?
Заранее спасибо!