Twig error when oppening an order in admin view

Created on 27 January 2025, about 1 month ago

Opening an order throws this message:

Twig\Error\SyntaxError: The text to be translated with "trans" can only contain references to simple variables in "__string_template__71e2a2e26def06bd1af37619c4da164c" at line 1 in Drupal\Core\Template\TwigTransTokenParser->checkTransString() (Zeile 108 in /var/www/vhosts/example.com/core/lib/Drupal/Core/Template/TwigTransTokenParser.php).

#0 /var/www/vhosts/example.com/core/lib/Drupal/Core/Template/TwigTransTokenParser.php(57): Drupal\Core\Template\TwigTransTokenParser->checkTransString()
#1 /var/www/vhosts/example.com/vendor/twig/twig/src/Parser.php(174): Drupal\Core\Template\TwigTransTokenParser->parse()
#2 /var/www/vhosts/example.com/vendor/twig/twig/src/Parser.php(83): Twig\Parser->subparse()
#3 /var/www/vhosts/example.com/vendor/twig/twig/src/Environment.php(523): Twig\Parser->parse()
#4 /var/www/vhosts/example.com/vendor/twig/twig/src/Environment.php(551): Twig\Environment->parse()
#5 /var/www/vhosts/example.com/core/lib/Drupal/Core/Template/TwigEnvironment.php(131): Twig\Environment->compileSource()
#6 /var/www/vhosts/example.com/vendor/twig/twig/src/Environment.php(381): Drupal\Core\Template\TwigEnvironment->compileSource()
#7 /var/www/vhosts/example.com/vendor/twig/twig/src/Environment.php(432): Twig\Environment->loadTemplate()
#8 /var/www/vhosts/example.com/core/lib/Drupal/Core/Template/TwigEnvironment.php(234): Twig\Environment->createTemplate()
#9 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Element/InlineTemplate.php(54): Drupal\Core\Template\TwigEnvironment->renderInline()
#10 [internal function]: Drupal\Core\Render\Element\InlineTemplate::preRenderInlineTemplate()
#11 /var/www/vhosts/example.com/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array()
#12 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback()
#13 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback()
#14 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#15 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/field/FieldPluginBase.php(1204): Drupal\Core\Render\Renderer->render()
#16 /var/www/vhosts/example.com/core/modules/views/views.theme.inc(238): Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender()
#17 [internal function]: template_preprocess_views_view_field()
#18 /var/www/vhosts/example.com/core/lib/Drupal/Core/Theme/ThemeManager.php(261): call_user_func_array()
#19 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render()
#20 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#21 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/field/FieldPluginBase.php(1796): Drupal\Core\Render\Renderer->render()
#22 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/style/StylePluginBase.php(767): Drupal\views\Plugin\views\field\FieldPluginBase->theme()
#23 [internal function]: Drupal\views\Plugin\views\style\StylePluginBase->elementPreRenderRow()
#24 /var/www/vhosts/example.com/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array()
#25 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback()
#26 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback()
#27 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#28 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/style/StylePluginBase.php(706): Drupal\Core\Render\Renderer->render()
#29 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/style/StylePluginBase.php(572): Drupal\views\Plugin\views\style\StylePluginBase->renderFields()
#30 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/style/StylePluginBase.php(460): Drupal\views\Plugin\views\style\StylePluginBase->renderGrouping()
#31 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2177): Drupal\views\Plugin\views\style\StylePluginBase->render()
#32 /var/www/vhosts/example.com/core/modules/views/src/ViewExecutable.php(1593): Drupal\views\Plugin\views\display\DisplayPluginBase->render()
#33 /var/www/vhosts/example.com/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2467): Drupal\views\ViewExecutable->render()
#34 /var/www/vhosts/example.com/core/modules/views/src/ViewExecutable.php(1722): Drupal\views\Plugin\views\display\DisplayPluginBase->preview()
#35 /var/www/vhosts/example.com/core/modules/views/src/Element/View.php(66): Drupal\views\ViewExecutable->preview()
#36 [internal function]: Drupal\views\Element\View::preRenderViewElement()
#37 /var/www/vhosts/example.com/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array()
#38 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback()
#39 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback()
#40 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#41 /var/www/vhosts/example.com/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#42 /var/www/vhosts/example.com/vendor/twig/twig/src/Environment.php(391) : eval()'d code(75): Drupal\Core\Template\TwigExtension->escapeFilter()
#43 /var/www/vhosts/example.com/vendor/twig/twig/src/Template.php(393): __TwigTemplate_dc6b0ce5bf4a251b8a3eb592d0c20c3a->doDisplay()
#44 /var/www/vhosts/example.com/vendor/twig/twig/src/Template.php(349): Twig\Template->yield()
#45 /var/www/vhosts/example.com/vendor/twig/twig/src/Template.php(364): Twig\Template->display()
#46 /var/www/vhosts/example.com/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#47 /var/www/vhosts/example.com/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#48 /var/www/vhosts/example.com/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#49 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render()
#50 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#51 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(238): Drupal\Core\Render\Renderer->render()
#52 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/Renderer.php(638): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}()
#53 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(231): Drupal\Core\Render\Renderer->executeInRenderContext()
#54 /var/www/vhosts/example.com/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(128): Drupal\Core\Render\MainContent\HtmlRenderer->prepare()
#55 /var/www/vhosts/example.com/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse()
#56 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
#57 /var/www/vhosts/example.com/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func()
#58 /var/www/vhosts/example.com/vendor/symfony/http-kernel/HttpKernel.php(186): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch()
#59 /var/www/vhosts/example.com/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#60 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\Component\HttpKernel\HttpKernel->handle()
#61 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#62 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#63 /var/www/vhosts/example.com/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\ContentLength->handle()
#64 /var/www/vhosts/example.com/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass()
#65 /var/www/vhosts/example.com/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle()
#66 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\ban\BanMiddleware->handle()
#67 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#68 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#69 /var/www/vhosts/example.com/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle()
#70 /var/www/vhosts/example.com/core/lib/Drupal/Core/DrupalKernel.php(741): Drupal\Core\StackMiddleware\StackedHttpKernel->handle()
#71 /var/www/vhosts/example.com/index.php(19): Drupal\Core\DrupalKernel->handle()
#72 {main}

Steps to reproduce

Drupal 10.3.10
Commerce Core 8.x-2.40

?

https://example.com/admin/commerce/orders/xxx
with error, but
https://example.com/admin/commerce/orders/xxx/edit
is ok.

🐛 Bug report
Status

Active

Version

2.40

Component

Order

Created by

🇩🇪Germany umac_de

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @umac_de
  • 🇩🇪Germany umac_de

    As far as I can see the sentence in question is

    Payment captured via gateway for amount using method.
    Transaction ID: remote_id.

    and the problem is "method".
    TwigTransTokenParser.php >> $body as $node:

    Twig\Node\IfNode
    tag:
    if nodes:
    tests: Twig\Node\Node
    nodes:
    0: Twig\Node\Expression\NameExpression
    attributes:
    name: 'method'
    is_defined_test: false
    ignore_strict_check: false
    always_defined: false
    1: Twig\Node\Node
    nodes:
    0: Twig\Node\TextNode
    attributes:
    data: ' using '
    1: Twig\Node\PrintNode
    nodes:
    expr: Twig\Node\Expression\NameExpression
    attributes:
    name: 'method'
    is_defined_test: false
    ignore_strict_check: false
    always_defined: false
    2: Twig\Node\TextNode
    attributes: data: '
    '

  • 🇩🇪Germany umac_de

    The sentence is in line 86 of
    commerce/modules/log/commerce_log.commerce_log_templates.yml

    payment_completed:
      category: commerce_payment
      label: 'Payment captured'
      template: '<p>Payment captured via <em>{{ gateway }}</em> for {{ amount|commerce_price_format }}{% if method %} using <em>{{ method }}</em>{% endif %}.{% if remote_id %}<br /> Transaction ID: {{ remote_id }}.{% endif %}</p>'
    

    ???

  • 🇮🇱Israel jsacksick

    Hi, how do I reproduce this? The method is added conditionally to the string. Never experienced this. Do you have a payment without method? Is that what is causing this?

  • 🇩🇪Germany umac_de

    We have three payment methods, there is none without payment and all with the same error.
    As I said
    /admin/commerce/orders/3387/edit
    is working as expected and also no problem at
    /admin/commerce/orders/3387/invoices
    /admin/commerce/orders/3387/credit-memos
    /admin/commerce/orders/3387/shipments
    /admin/commerce/orders/3387/payments

    Looking at
    /devel/commerce_order/3387
    I cannot see any data problem:

    Drupal\commerce_order\Entity\Order {#2079 ▼
    #entityTypeId: "commerce_order"
    #enforceIsNew: null
    #typedData:
    Drupal\Core\Entity\Plugin\DataType
    \
    EntityAdapter {#2080 ▼
    #definition:
    Drupal\Core\Entity\TypedData
    \
    EntityDataDefinition {#2082 ▶}
    #name: null
    #parent: null
    #_serviceIds: []
    #_entityStorages: []
    #stringTranslation: null
    #typedDataManager: null
    #entity:
    Drupal\commerce_order\Entity
    \
    Order {#2079}
    }
    #cacheContexts: []
    #cacheTags: []
    #cacheMaxAge: -1
    #_serviceIds: []
    #_entityStorages: []
    #values: array:31 [▼
    "order_id" => array:1 [▼
    "x-default" => "3387"
    ]
    "type" => array:1 [▼
    "x-default" => "default"
    ]
    "uuid" => array:1 [▼
    "x-default" => "95c00a08-c0a4-4ba6-8c00-bf5e8161f75b"
    ]
    "order_number" => array:1 [▼
    "x-default" => "2025022765"
    ]
    "store_id" => array:1 [▼
    "x-default" => "1"
    ]
    "uid" => array:1 [▼
    "x-default" => "0"
    ]
    "mail" => array:1 [▼
    "x-default" => "franz.dirscherl@freenet.de"
    ]
    "ip_address" => array:1 [▼
    "x-default" => "79.217.98.234"
    ]
    "billing_profile" => array:1 [▼
    "x-default" => array:2 [▼
    "target_id" => "6158"
    "target_revision_id" => "6158"
    ]
    ]
    "total_price" => array:1 [▼
    "x-default" => array:2 [▼
    "number" => "21.900000"
    "currency_code" => "EUR"
    ]
    ]
    "total_paid" => array:1 [▼
    "x-default" => array:2 [▼
    "number" => "21.900000"
    "currency_code" => "EUR"
    ]
    ]
    "state" => array:1 [▼
    "x-default" => "completed"
    ]
    "data" => array:1 [▼
    "x-default" => array:4 [▼
    "paid_event_dispatched" => true
    "paypal_checkout_flow" => "mark"
    "paypal_order_id" => "7T449778NJ830180U"
    "commerce_paypal_checkout" => array:4 [▼
    "remote_id" => "7T449778NJ830180U"
    "flow" => "mark"
    "intent" => "capture"
    "funding_source" => "paypal"
    ]
    ]
    ]
    "locked" => array:1 [▼
    "x-default" => "0"
    ]
    "created" => array:1 [▼
    "x-default" => "1739293114"
    ]
    "changed" => array:1 [▼
    "x-default" => "1739294926"
    ]
    "placed" => array:1 [▼
    "x-default" => "1739294926"
    ]
    "completed" => array:1 [▼
    "x-default" => "1739294926"
    ]
    "cart" => array:1 [▼
    "x-default" => "0"
    ]
    "checkout_flow" => array:1 [▼
    "x-default" => "vorkasse"
    ]
    "checkout_step" => array:1 [▼
    "x-default" => "complete"
    ]
    "payment_gateway" => array:1 [▼
    "x-default" => "paypal"
    ]
    "payment_method" => array:1 [▼
    "x-default" => "1518"
    ]
    "version" => array:1 [▼
    "x-default" => "12"
    ]
    "balance" => array:1 [▼
    "x-default" => array:2 [▼
    "number" => "0.000000"
    "currency_code" => "EUR"
    ]
    ]
    "customer_comments" => array:1 [▼
    "x-default" => null
    ]
    "order_items" => array:1 [▼
    "x-default" => array:1 [▼
    0 => array:1 [▼
    "target_id" => "4649"
    ]
    ]
    ]
    "adjustments" => array:1 [▼
    "x-default" => array:2 [▼
    0 => array:1 [▼
    "value" =>
    Drupal\commerce_order
    \
    Adjustment {#2076 ▼
    #type: "shipping"
    #label: "Versandkosten"
    #amount:
    Drupal\commerce_price
    \
    Price {#2077 ▼
    #number: "6.95"
    #currencyCode: "EUR"
    }
    #percentage: null
    #sourceId: "2277"
    #included: false
    #locked: false
    }
    ]
    1 => array:1 [▼
    "value" =>
    Drupal\commerce_order
    \
    Adjustment {#2074 ▼
    #type: "tax"
    #label: "MwSt."
    #amount:
    Drupal\commerce_price
    \
    Price {#2075 ▼
    #number: "1.11"
    #currencyCode: "EUR"
    }
    #percentage: "0.19"
    #sourceId: "mwst|de|standard"
    #included: true
    #locked: false
    }
    ]
    ]
    ]
    "field_telefonnummer" => array:1 [▶]
    "field_zustimmung_zur_weitergabe_" => array:1 [▶]
    "shipments" => array:1 [▶]
    ]
    #fields: array:2 [▶]
    #fieldDefinitions: array:36 [▶]
    #languages: array:4 [▼
    "de" =>
    Drupal\Core\Language
    \
    Language {#2771 ▼
    #name: "German"
    #id: "de"
    #direction: "ltr"
    #weight: 0
    #locked: false
    }
    "en" =>
    Drupal\Core\Language
    \
    Language {#2772 ▼
    #name: "English"
    #id: "en"
    #direction: "ltr"
    #weight: 1
    #locked: false
    }
    "und" =>
    Drupal\Core\Language
    \
    Language {#2773 ▼
    #name: "Nicht angegeben"
    #id: "und"
    #direction: "ltr"
    #weight: 2
    #locked: true
    }
    "zxx" =>
    Drupal\Core\Language
    \
    Language {#2767 ▼
    #name: "Nicht zutreffend"
    #id: "zxx"
    #direction: "ltr"
    #weight: 3
    #locked: true
    }
    ]
    #langcodeKey: ""
    #defaultLangcodeKey: "default_langcode"
    #activeLangcode: "x-default"
    #enforceDefaultTranslation: null
    #defaultLangcode: "und"
    #translations: array:1 [▼
    "x-default" => array:2 [▼
    "status" => 1
    "entity" =>
    Drupal\commerce_order\Entity
    \
    Order {#2079}
    ]
    ]
    #translationInitialize: false
    #newRevision: false
    #isDefaultRevision: true
    #entityKeys: array:4 [▼
    "bundle" => "default"
    "id" => "3387"
    "label" => "2025022765"
    "uuid" => "95c00a08-c0a4-4ba6-8c00-bf5e8161f75b"
    ]
    #translatableEntityKeys: []
    #validated: false
    #validationRequired: false
    #loadedRevisionId: null
    #revisionTranslationAffectedKey: "revision_translation_affected"
    #enforceRevisionTranslationAffected: []
    #isSyncing: false
    #stringTranslation: null
    }

Production build 0.71.5 2024