Twig \ Error \ RuntimeError
An exception has been thrown during the rendering of a template ("Product not found").
Previous exceptions
  • Product not found (0)
Twig\Error\RuntimeError thrown with message "An exception has been thrown during the rendering of a template ("Product not found")." Stacktrace: #34 Twig\Error\RuntimeError in /home/ccsoh/billing.vortekhosting.com/modules/Orderbutton/html_client/mod_orderbutton_product_configuration.html.twig:2 #33 Box\Mod\Order\Controller\Client:get_products in [internal]:0 #32 FOSSBilling\Exception in /home/ccsoh/billing.vortekhosting.com/modules/Product/Api/Guest.php:82 #31 Box\Mod\Product\Api\Guest:get in /home/ccsoh/billing.vortekhosting.com/library/Api/Handler.php:103 #30 Api_Handler:__call in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Extension/CoreExtension.php:1635 #29 twig_get_attribute in /home/ccsoh/billing.vortekhosting.com/data/cache/fc/fce54af84bc066ad1709f4000a662790.php:40 #28 __TwigTemplate_3095bce1bcc29cee64d873eddffdcb52:doDisplay in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:394 #27 Twig\Template:displayWithErrorHandling in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:367 #26 Twig\Template:display in /home/ccsoh/billing.vortekhosting.com/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php:77 #25 __TwigTemplate_59c3d07b1f1f94284a8197acee7a6470:block_body in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:171 #24 Twig\Template:displayBlock in /home/ccsoh/billing.vortekhosting.com/data/cache/2f/2ffcc612e7afb2ec1fce38f2f418bd82.php:121 #23 __TwigTemplate_1889110f5d0952a2be863ac6b55f1f42:doDisplay in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:394 #22 Twig\Template:displayWithErrorHandling in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:367 #21 Twig\Template:display in /home/ccsoh/billing.vortekhosting.com/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php:49 #20 __TwigTemplate_59c3d07b1f1f94284a8197acee7a6470:doDisplay in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:394 #19 Twig\Template:displayWithErrorHandling in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:367 #18 Twig\Template:display in /home/ccsoh/billing.vortekhosting.com/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php:117 #17 __TwigTemplate_3618455c4c6198ec96182b3796e92733:block_content in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:171 #16 Twig\Template:displayBlock in /home/ccsoh/billing.vortekhosting.com/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php:520 #15 __TwigTemplate_931f0864937e930b0b9df2a2ee190bd7:block_body in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:171 #14 Twig\Template:displayBlock in /home/ccsoh/billing.vortekhosting.com/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php:135 #13 __TwigTemplate_931f0864937e930b0b9df2a2ee190bd7:doDisplay in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:394 #12 Twig\Template:displayWithErrorHandling in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:367 #11 Twig\Template:display in /home/ccsoh/billing.vortekhosting.com/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php:54 #10 __TwigTemplate_3618455c4c6198ec96182b3796e92733:doDisplay in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:394 #9 Twig\Template:displayWithErrorHandling in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:367 #8 Twig\Template:display in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php:379 #7 Twig\Template:render in /home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/TemplateWrapper.php:38 #6 Twig\TemplateWrapper:render in /home/ccsoh/billing.vortekhosting.com/library/Box/AppClient.php:96 #5 Box_AppClient:render in /home/ccsoh/billing.vortekhosting.com/modules/Order/Controller/Client.php:38 #4 Box\Mod\Order\Controller\Client:get_products in [internal]:0 #3 ReflectionMethod:invokeArgs in /home/ccsoh/billing.vortekhosting.com/library/Box/App.php:187 #2 Box_App:executeShared in /home/ccsoh/billing.vortekhosting.com/library/Box/App.php:318 #1 Box_App:processRequest in /home/ccsoh/billing.vortekhosting.com/library/Box/App.php:129 #0 Box_App:run in /home/ccsoh/billing.vortekhosting.com/index.php:94
Stack frames (35)
34
Twig\Error\RuntimeError
/modules/Orderbutton/html_client/mod_orderbutton_product_configuration.html.twig2
33
Box\Mod\Order\Controller\Client get_products
[internal]0
32
FOSSBilling\Exception
/modules/Product/Api/Guest.php82
31
Box\Mod\Product\Api\Guest get
/library/Api/Handler.php103
30
Api_Handler __call
/vendor/twig/twig/src/Extension/CoreExtension.php1635
29
twig_get_attribute
/data/cache/fc/fce54af84bc066ad1709f4000a662790.php40
28
__TwigTemplate_3095bce1bcc29cee64d873eddffdcb52 doDisplay
/vendor/twig/twig/src/Template.php394
27
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php367
26
Twig\Template display
/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php77
25
__TwigTemplate_59c3d07b1f1f94284a8197acee7a6470 block_body
/vendor/twig/twig/src/Template.php171
24
Twig\Template displayBlock
/data/cache/2f/2ffcc612e7afb2ec1fce38f2f418bd82.php121
23
__TwigTemplate_1889110f5d0952a2be863ac6b55f1f42 doDisplay
/vendor/twig/twig/src/Template.php394
22
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php367
21
Twig\Template display
/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php49
20
__TwigTemplate_59c3d07b1f1f94284a8197acee7a6470 doDisplay
/vendor/twig/twig/src/Template.php394
19
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php367
18
Twig\Template display
/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php117
17
__TwigTemplate_3618455c4c6198ec96182b3796e92733 block_content
/vendor/twig/twig/src/Template.php171
16
Twig\Template displayBlock
/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php520
15
__TwigTemplate_931f0864937e930b0b9df2a2ee190bd7 block_body
/vendor/twig/twig/src/Template.php171
14
Twig\Template displayBlock
/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php135
13
__TwigTemplate_931f0864937e930b0b9df2a2ee190bd7 doDisplay
/vendor/twig/twig/src/Template.php394
12
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php367
11
Twig\Template display
/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php54
10
__TwigTemplate_3618455c4c6198ec96182b3796e92733 doDisplay
/vendor/twig/twig/src/Template.php394
9
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php367
8
Twig\Template display
/vendor/twig/twig/src/Template.php379
7
Twig\Template render
/vendor/twig/twig/src/TemplateWrapper.php38
6
Twig\TemplateWrapper render
/library/Box/AppClient.php96
5
Box_AppClient render
/modules/Order/Controller/Client.php38
4
Box\Mod\Order\Controller\Client get_products
[internal]0
3
ReflectionMethod invokeArgs
/library/Box/App.php187
2
Box_App executeShared
/library/Box/App.php318
1
Box_App processRequest
/library/Box/App.php129
0
Box_App run
/index.php94
/home/ccsoh/billing.vortekhosting.com/modules/Orderbutton/html_client/mod_orderbutton_product_configuration.html.twig
{% if not product %}
    {% set product = request.product ? guest.product_get({"id":request.product}) : null %}
{% endif %}
<div class="accordion-item">
    <h2 class="accordion-header">
        <button class="accordion-button {% if not product %}collapsed{%endif%}" type="button" data-bs-toggle="collapse" data-bs-target="#order" aria-expanded="true" aria-controls="order">
            <svg class="svg-icon me-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z" /></svg>
            {{ 'Product Configuration'|trans }}
        </button>
    </h2>
    {% if product %}
    <div id="order" class="accordion-collapse collapse {% if product %}show{%endif%}" data-bs-parent="#orderManager">
        <div class="accordion-body">
            <div class="accordion-inner">
                <form method="post" style="background:none;" class="api-form form-{{ product.form_id ? guest.formbuilder_get( {"id":product.form_id}).style.type : 0 }}"
                    action="{{ 'api/guest/cart/add_item'|link }}" data-api-msg="{{ 'Product was added to shopping cart'|trans }}"
                    data-api-redirect="{{ 'order'|link({ 'checkout' : 1 }) }}" + "{% if request.show_custom_form_values %}&show_custom_form_values=1{% endif %}">
                    <input type="hidden" name="CSRFToken" value="{{ CSRFToken }}"/>
                    {% set product_details %}
                        <div class="well">
                            <strong>{{ product.title }}</strong>
                            {{ product.description | markdown }}
 
                            {% if product.pricing.type == 'recurrent' %}
                                {% set periods = guest.system_periods %}
                                <select class="form-select" name="period" id="period-selector">
                                    {% for code,prices in product.pricing.recurrent %}
                                        {% if prices.enabled %}
                                            <option value="{{code}}" data-bb-price="{{ prices.price | money_convert }}" name="period">{{ periods[code] }} - {{ prices.price | money_convert }}</option>
                                        {% endif %}
                                    {% endfor %}
                                </select>
                            {% elseif product.pricing.type == 'free' %}
                                <span class="badge bg-success">{{ 'FREE'|trans }}</span>
                            {% else %}
                                <span class="badge bg-success">{{ product.pricing.once.price | money_convert }}</span>
                            {% endif %}
                        </div>
                    {% endset %}
 
Arguments
  1. "An exception has been thrown during the rendering of a template ("Product not found")."
    
[internal]
/home/ccsoh/billing.vortekhosting.com/modules/Product/Api/Guest.php
     * @throws \FOSSBilling\Exception
     */
    public function get($data)
    {
        if (!isset($data['id']) && !isset($data['slug'])) {
            throw new \FOSSBilling\Exception('Product ID or slug is missing');
        }
 
        $id = $data['id'] ?? null;
        $slug = $data['slug'] ?? null;
 
        $service = $this->getService();
        if ($id) {
            $model = $service->findOneActiveById($id);
        } else {
            $model = $service->findOneActiveBySlug($slug);
        }
 
        if (!$model instanceof \Model_Product) {
            throw new \FOSSBilling\Exception('Product not found');
        }
 
        return $service->toApiArray($model);
    }
 
    /**
     * Get paginated list of product categories.
     *
     * @return array
     */
    public function category_get_list($data)
    {
        $data['status'] = 'enabled';
        $service = $this->getService();
        [$sql, $params] = $service->getProductCategorySearchQuery($data);
        $per_page = $data['per_page'] ?? $this->di['pager']->getPer_page();
        $pager = $this->di['pager']->getAdvancedResultSet($sql, $params, $per_page);
        foreach ($pager['list'] as $key => $item) {
            $category = $this->di['db']->getExistingModelById('ProductCategory', $item['id'], 'Product category not found');
            $pager['list'][$key] = $this->getService()->toProductCategoryApiArray($category, true, $this->getIdentity());
Arguments
  1. "Product not found"
    
Exception message: Product not found
/home/ccsoh/billing.vortekhosting.com/library/Api/Handler.php
            throw new FOSSBilling\Exception('Api class must be an instance of Api_Abstract', null, 730);
        }
 
        $bb_mod = $this->di['mod']($mod);
 
        $api->setDi($this->di);
        $api->setMod($bb_mod);
        $api->setIdentity($this->identity);
        $api->setIp($this->di['request']->getClientAddress());
        if ($bb_mod->hasService()) {
            $api->setService($this->di['mod_service']($mod));
        }
 
        if (!method_exists($api, $method_name) || !is_callable([$api, $method_name])) {
            $reflector = new ReflectionClass($api);
            if (!$reflector->hasMethod('__call')) {
                throw new FOSSBilling\Exception(':type API call :method does not exist in module :module', [':type' => ucfirst($this->type), ':method' => $method_name, ':module' => $mod], 740);
            }
        }
        $res = $api->{$method_name}($arguments);
 
        return $res;
    }
}
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Extension/CoreExtension.php
 
        if ($ignoreStrictCheck || !$env->isStrictVariables()) {
            return;
        }
 
        throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source);
    }
 
    if ($isDefinedTest) {
        return true;
    }
 
    if ($sandboxed) {
        $env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source);
    }
 
    // Some objects throw exceptions when they have __call, and the method we try
    // to call is not supported. If ignoreStrictCheck is true, we should return null.
    try {
        $ret = $object->$method(...$arguments);
    } catch (\BadMethodCallException $e) {
        if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
            return;
        }
        throw $e;
    }
 
    return $ret;
}
 
/**
 * Returns the values from a single column in the input array.
 *
 * <pre>
 *  {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
 *
 *  {% set fruits = items|column('fruit') %}
 *
 *  {# fruits now contains ['apple', 'orange'] #}
 * </pre>
/home/ccsoh/billing.vortekhosting.com/data/cache/fc/fce54af84bc066ad1709f4000a662790.php
    public function __construct(Environment $env)
    {
        parent::__construct($env);
 
        $this->source = $this->getSourceContext();
 
        $this->parent = false;
 
        $this->blocks = [
        ];
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 1
        if ( !($context["product"] ?? null)) {
            // line 2
            echo "    ";
            $context["product"] = ((twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "product", [], "any", false, false, false, 2)) ? (twig_get_attribute($this->env, $this->source, ($context["guest"] ?? null), "product_get", [["id" => twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "product", [], "any", false, false, false, 2)]], "method", false, false, false, 2)) : (null));
        }
        // line 4
        echo "<div class=\"accordion-item\">
    <h2 class=\"accordion-header\">
        <button class=\"accordion-button ";
        // line 6
        if ( !($context["product"] ?? null)) {
            echo "collapsed";
        }
        echo "\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#order\" aria-expanded=\"true\" aria-controls=\"order\">
            <svg class=\"svg-icon me-2\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\" /></svg>
            ";
        // line 8
        echo twig_escape_filter($this->env, __trans("Product Configuration"), "html", null, true);
        echo "
        </button>
    </h2>
    ";
        // line 11
        if (($context["product"] ?? null)) {
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
/home/ccsoh/billing.vortekhosting.com/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php
 
    // line 6
    public function block_body($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 7
        echo "<div class=\"row\">
    <div class=\"col-md-12\">
        <div class=\"card border-0\" id=\"orderbutton\" style=\"margin-bottom: 0\">
            <div class=\"card-body p-1\">
                <div id=\"orderManager\" class=\"accordion\">
 
                    ";
        // line 13
        $this->loadTemplate("mod_orderbutton_choose_product.html.twig", "mod_orderbutton_index.html.twig", 13)->display($context);
        // line 14
        echo "
                    ";
        // line 15
        $this->loadTemplate("mod_orderbutton_product_configuration.html.twig", "mod_orderbutton_index.html.twig", 15)->display($context);
        // line 16
        echo "
                    ";
        // line 17
        if ( !($context["client"] ?? null)) {
            // line 18
            echo "                        ";
            $this->loadTemplate("mod_orderbutton_client.html.twig", "mod_orderbutton_index.html.twig", 18)->display($context);
            // line 19
            echo "                    ";
        }
        // line 20
        echo "
                    ";
        // line 21
        $this->loadTemplate("mod_orderbutton_checkout.html.twig", "mod_orderbutton_index.html.twig", 21)->display($context);
        // line 22
        echo "
                    <div class=\"accordion-item\">
                        <h2 class=\"accordion-header\">
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Throwable $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/ccsoh/billing.vortekhosting.com/data/cache/2f/2ffcc612e7afb2ec1fce38f2f418bd82.php
    ";
        // line 24
        echo $this->extensions['Box_TwigExtensions']->twig_script_tag($this->extensions['Box_TwigExtensions']->twig_library_url("Api/API.js"));
        echo "
    ";
        // line 25
        echo $this->env->getFunction('encore_entry_script_tags')->getCallable()("huraga");
        echo "
    ";
        // line 26
        $this->displayBlock('head', $context, $blocks);
        // line 27
        echo "    ";
        $this->displayBlock('js', $context, $blocks);
        // line 28
        echo "</head>
<body>
    ";
        // line 30
        $this->displayBlock('body', $context, $blocks);
        // line 31
        echo "    <div aria-live=\"polite\" aria-atomic=\"true\" class=\"position-relative\">
        <div class=\"toast-container position-fixed bottom-0 end-0 p-3\" style=\"z-index: 1070;\"></div>
    </div>
    ";
        // line 34
        $__internal_compile_0 = null;
        try {
            $__internal_compile_0 =             $this->loadTemplate("partial_pending_messages.html.twig", "layout_public.html.twig", 34);
        } catch (LoaderError $e) {
            // ignore missing template
        }
        if ($__internal_compile_0) {
            $__internal_compile_0->display($context);
        }
        // line 35
        echo "</body>
</html>
";
    }
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
/home/ccsoh/billing.vortekhosting.com/data/cache/6a/6a6092487d50c8b2778cbe1a3e074c69.php
            'js' => [$this, 'block_js'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "layout_public.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 2
        $context["loader_nr"] = ((twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", true, true, false, 2)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", false, false, false, 2), "8")) : ("8"));
        // line 3
        $context["loader_url"] = (("img/assets/loaders/loader" . ($context["loader_nr"] ?? null)) . ".gif");
        // line 1
        $this->parent = $this->loadTemplate("layout_public.html.twig", "mod_orderbutton_index.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 4
    public function block_meta_title($context, array $blocks = [])
    {
        $macros = $this->macros;
        echo twig_escape_filter($this->env, __trans("Order"), "html", null, true);
    }
 
    // line 6
    public function block_body($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 7
        echo "<div class=\"row\">
    <div class=\"col-md-12\">
        <div class=\"card border-0\" id=\"orderbutton\" style=\"margin-bottom: 0\">
            <div class=\"card-body p-1\">
                <div id=\"orderManager\" class=\"accordion\">
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
/home/ccsoh/billing.vortekhosting.com/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php
                        <div class=\"w-100\">
                            <h5 class=\"mb-1\">";
        // line 23
        echo twig_escape_filter($this->env, __trans("Order Product"), "html", null, true);
        echo "</h5>
                            <span class=\"small text-muted row ms-2\">";
        // line 24
        echo twig_escape_filter($this->env, __trans("Choose products we offer for selling"), "html", null, true);
        echo "</span>
                            ";
        // line 25
        $this->loadTemplate("mod_orderbutton_currency.html.twig", "mod_order_index.html.twig", 25)->display($context);
        // line 26
        echo "                        </div>
                    </div>
                </div>
                <div class=\"card-body overflow-hidden\">
                    ";
        // line 30
        $this->loadTemplate("mod_orderbutton_index.html.twig", "mod_order_index.html.twig", 30)->display($context);
        // line 31
        echo "                </div>
            </div>
        </div>
    </div>
";
    }
 
    // line 37
    public function block_sidebar2($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 38
        echo "    ";
        $this->loadTemplate("partial_currency.html.twig", "mod_order_index.html.twig", 38)->display($context);
    }
 
    // line 41
    public function block_js($context, array $blocks = [])
    {
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Throwable $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/ccsoh/billing.vortekhosting.com/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php
                    <section role=\"main\">
                        ";
        // line 149
        $this->displayBlock('content_before', $context, $blocks);
        // line 150
        echo "                        <div class=\"content-block\" role=\"main\">
                            ";
        // line 151
        if (twig_get_attribute($this->env, $this->source, ($context["settings"] ?? null), "show_breadcrumb", [], "any", false, false, false, 151)) {
            // line 152
            echo "                                ";
            $this->displayBlock('breadcrumbs', $context, $blocks);
            // line 163
            echo "                            ";
        }
        // line 164
        echo "
                            ";
        // line 165
        $this->displayBlock('content', $context, $blocks);
        // line 166
        echo "
                            ";
        // line 167
        $this->loadTemplate("partial_message.html.twig", "layout_default.html.twig", 167)->display($context);
        // line 168
        echo "
                            ";
        // line 169
        $this->displayBlock('content_after', $context, $blocks);
        // line 170
        echo "                        </div>
                    </section>
                    <div id=\"push\"></div>
                </div>
 
                ";
        // line 175
        if (twig_get_attribute($this->env, $this->source, ($context["settings"] ?? null), "footer_enabled", [], "any", false, false, false, 175)) {
            // line 176
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Throwable $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/ccsoh/billing.vortekhosting.com/data/cache/2c/2cf24c531717115e1383d76c386fafb5.php
        echo $this->extensions['FOSSBilling\TwigExtensions\DebugBar']->renderHead();
        echo "
 
    ";
        // line 27
        $this->displayBlock('head', $context, $blocks);
        // line 28
        echo "    ";
        $this->displayBlock('js', $context, $blocks);
        // line 29
        echo "</head>
 
<body class=\"";
        // line 31
        $this->displayBlock('body_class', $context, $blocks);
        echo "\">
 
";
        // line 33
        $this->displayBlock('body', $context, $blocks);
        // line 253
        echo "
    ";
        // line 254
        if (twig_get_attribute($this->env, $this->source, ($context["settings"] ?? null), "inject_javascript", [], "any", false, false, false, 254)) {
            // line 255
            echo "        ";
            echo twig_get_attribute($this->env, $this->source, ($context["settings"] ?? null), "inject_javascript", [], "any", false, false, false, 255);
            echo "
    ";
        }
        // line 257
        echo "    ";
        $__internal_compile_0 = null;
        try {
            $__internal_compile_0 =             $this->loadTemplate("partial_pending_messages.html.twig", "layout_default.html.twig", 257);
        } catch (LoaderError $e) {
            // ignore missing template
        }
        if ($__internal_compile_0) {
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
/home/ccsoh/billing.vortekhosting.com/data/cache/ef/ef21dc4dd81407fac7cb2ccb77843b83.php
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return $this->loadTemplate(((twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "ajax", [], "any", false, false, false, 1)) ? ("layout_blank.html.twig") : ("layout_default.html.twig")), "mod_order_index.html.twig", 1);
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 3
        $macros["mf"] = $this->macros["mf"] = $this->loadTemplate("macro_functions.html.twig", "mod_order_index.html.twig", 3)->unwrap();
        // line 7
        $context["loader_nr"] = ((twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", true, true, false, 7)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", false, false, false, 7), "8")) : ("8"));
        // line 8
        $context["loader_url"] = (("img/assets/loaders/loader" . ($context["loader_nr"] ?? null)) . ".gif");
        // line 1
        $this->getParent($context)->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 5
    public function block_meta_title($context, array $blocks = [])
    {
        $macros = $this->macros;
        echo twig_escape_filter($this->env, __trans("Order"), "html", null, true);
    }
 
    // line 10
    public function block_body_class($context, array $blocks = [])
    {
        $macros = $this->macros;
        echo "order-index";
    }
 
    // line 11
    public function block_breadcrumb($context, array $blocks = [])
    {
        $macros = $this->macros;
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/Template.php
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
/home/ccsoh/billing.vortekhosting.com/vendor/twig/twig/src/TemplateWrapper.php
final class TemplateWrapper
{
    private $env;
    private $template;
 
    /**
     * This method is for internal use only and should never be called
     * directly (use Twig\Environment::load() instead).
     *
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    public function render(array $context = []): string
    {
        return $this->template->render($context);
    }
 
    public function display(array $context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_get_args()[1] ?? []);
    }
 
    public function hasBlock(string $name, array $context = []): bool
    {
        return $this->template->hasBlock($name, $context);
    }
 
    /**
     * @return string[] An array of defined template block names
     */
    public function getBlockNames(array $context = []): array
    {
        return $this->template->getBlockNames($context);
/home/ccsoh/billing.vortekhosting.com/library/Box/AppClient.php
 
    /**
     * @param string $fileName
     */
    public function render($fileName, $variableArray = [], $ext = 'html.twig'): string
    {
        try {
            $template = $this->getTwig()->load($fileName . '.' . $ext);
        } catch (Twig\Error\LoaderError $e) {
            $this->di['logger']->setChannel('routing')->info($e->getMessage());
            http_response_code(404);
 
            throw new FOSSBilling\InformationException('Page not found', null, 404);
        }
 
        if ($fileName . '.' . $ext == 'mod_page_sitemap.xml') {
            header('Content-Type: application/xml');
        }
 
        return $template->render($variableArray);
    }
 
    protected function getTwig(): Twig\Environment
    {
        $service = $this->di['mod_service']('theme');
        $code = $service->getCurrentClientAreaThemeCode();
        $theme = $service->getTheme($code);
        $settings = $service->getThemeSettings($theme);
 
        $loader = new Box_TwigLoader(
            [
                'mods' => PATH_MODS,
                'theme' => PATH_THEMES . DIRECTORY_SEPARATOR . $code,
                'type' => 'client',
            ]
        );
 
        $twig = $this->di['twig'];
        $twig->setLoader($loader);
 
/home/ccsoh/billing.vortekhosting.com/modules/Order/Controller/Client.php
        $this->di = $di;
    }
 
    public function getDi(): ?\Pimple\Container
    {
        return $this->di;
    }
 
    public function register(\Box_App &$app)
    {
        $app->get('/order', 'get_products', [], static::class);
        $app->get('/order/service', 'get_orders', [], static::class);
        $app->get('/order/:id', 'get_configure_product', ['id' => '[0-9]+'], static::class);
        $app->get('/order/:slug', 'get_configure_product_by_slug', ['slug' => '[a-z0-9-]+'], static::class);
        $app->get('/order/service/manage/:id', 'get_order', ['id' => '[0-9]+'], static::class);
    }
 
    public function get_products(\Box_App $app)
    {
        return $app->render('mod_order_index');
    }
 
    public function get_configure_product_by_slug(\Box_App $app, $slug)
    {
        $api = $this->di['api_guest'];
        $product = $api->product_get(['slug' => $slug]);
        $tpl = 'mod_service' . $product['type'] . '_order';
        if ($api->system_template_exists(['file' => $tpl . '.html.twig'])) {
            return $app->render($tpl, ['product' => $product]);
        }
 
        return $app->render('mod_order_product', ['product' => $product]);
    }
 
    public function get_configure_product(\Box_App $app, $id)
    {
        $api = $this->di['api_guest'];
        $product = $api->product_get(['id' => $id]);
        $tpl = 'mod_service' . $product['type'] . '_order';
        if ($api->system_template_exists(['file' => $tpl . '.html.twig'])) {
[internal]
/home/ccsoh/billing.vortekhosting.com/library/Box/App.php
    {
        $this->debugBar['time']->startMeasure('executeShared', 'Reflecting module controller (shared mapping)');
        $class = new $classname();
        if ($class instanceof InjectionAwareInterface) {
            $class->setDi($this->di);
        }
        $reflection = new ReflectionMethod($class::class, $methodName);
        $args = [];
        $args[] = $this; // first param always app instance
 
        foreach ($reflection->getParameters() as $param) {
            if (isset($params[$param->name])) {
                $args[$param->name] = $params[$param->name];
            } elseif ($param->isDefaultValueAvailable()) {
                $args[$param->name] = $param->getDefaultValue();
            }
        }
        $this->debugBar['time']->stopMeasure('executeShared');
 
        return $reflection->invokeArgs($class, $args);
    }
 
    protected function execute($methodName, $params, $classname = null): string
    {
        $this->debugBar['time']->startMeasure('execute', 'Reflecting module controller');
 
        $reflection = new ReflectionMethod(static::class, $methodName);
        $args = [];
 
        foreach ($reflection->getParameters() as $param) {
            if (isset($params[$param->name])) {
                $args[$param->name] = $params[$param->name];
            } elseif ($param->isDefaultValueAvailable()) {
                $args[$param->name] = $param->getDefaultValue();
            }
        }
 
        $this->debugBar['time']->stopMeasure('execute');
 
        $response = $reflection->invokeArgs($this, $args);
/home/ccsoh/billing.vortekhosting.com/library/Box/App.php
                    $exc = new FOSSBilling\InformationException('The system is undergoing maintenance. Please try again later', [], 503);
                    $apiController = new Box\Mod\Api\Controller\Client();
                    $apiController->setDi($this->di);
 
                    return $apiController->renderJson(null, $exc);
                } else {
                    return $this->render('mod_system_maintenance');
                }
            }
        }
 
        $this->debugBar['time']->startMeasure('sharedMapping', 'Checking shared mappings');
        $sharedCount = count($this->shared);
        for ($i = 0; $i < $sharedCount; ++$i) {
            $mapping = $this->shared[$i];
            $url = new Box_UrlHelper($mapping[0], $mapping[1], $mapping[3], $this->url);
            if ($url->match) {
                $this->debugBar['time']->stopMeasure('sharedMapping');
 
                return $this->executeShared($mapping[4], $mapping[2], $url->params);
            }
        }
        $this->debugBar['time']->stopMeasure('sharedMapping');
 
        // this class mappings
        $this->debugBar['time']->startMeasure('mapping', 'Checking mappings');
        $mappingsCount = count($this->mappings);
        for ($i = 0; $i < $mappingsCount; ++$i) {
            $mapping = $this->mappings[$i];
            $url = new Box_UrlHelper($mapping[0], $mapping[1], $mapping[3], $this->url);
            if ($url->match) {
                $this->debugBar['time']->stopMeasure('mapping');
 
                return $this->execute($mapping[2], $url->params);
            }
        }
        $this->debugBar['time']->stopMeasure('mapping');
 
        $e = new FOSSBilling\InformationException('Page :url not found', [':url' => $this->url], 404);
 
/home/ccsoh/billing.vortekhosting.com/library/Box/App.php
    public function delete(string $url, string $methodName, ?array $conditions = [], string $class = null): void
    {
        $this->event('delete', $url, $methodName, $conditions, $class);
    }
 
    public function run(): string
    {
        $this->debugBar['time']->startMeasure('registerModule', 'Registering module routes');
        $this->registerModule();
        $this->debugBar['time']->stopMeasure('registerModule');
 
        $this->debugBar['time']->startMeasure('init', 'Initializing the app');
        $this->init();
        $this->debugBar['time']->stopMeasure('init');
 
        $this->debugBar['time']->startMeasure('checkperm', 'Checking access to module');
        $this->checkPermission();
        $this->debugBar['time']->stopMeasure('checkperm');
 
        return $this->processRequest();
    }
 
    /**
     * @param string $path
     */
    public function redirect($path): never
    {
        $location = $this->di['url']->link($path);
        header("Location: $location");
        exit;
    }
 
    public function render($fileName, $variableArray = []): string
    {
        return 'Rendering ' . $fileName;
    }
 
    public function sendFile($filename, $contentType, $path): false|int
    {
        header("Content-type: $contentType");
/home/ccsoh/billing.vortekhosting.com/index.php
 
// If HTTP error code has been passed, handle it.
if (!is_null($http_err_code)) {
    switch ($http_err_code) {
        case '404':
            $e = new FOSSBilling\Exception('Page :url not found', [':url' => $url], 404);
            echo $app->show404($e);
 
            break;
        default:
            $http_err_code = intval($http_err_code);
            http_response_code($http_err_code);
            $e = new FOSSBilling\Exception('HTTP Error :err_code occurred while attempting to load :url', [':err_code' => $http_err_code, ':url' => $url], $http_err_code);
            echo $app->render('error', ['exception' => $e]);
    }
    exit;
}
 
// If no HTTP error passed, run the app.
echo $app->run();
exit;
 

Environment & details:

Key Value
PHP Version
"8.1.27"
Error code
0
Instance ID
"f8878bc1-14ef-4c1a-ab52-12e369265309"
Key Value
_url
"/order"
product
"11"
empty
empty
empty
empty
Key Value
CONTEXT_DOCUMENT_ROOT
"/home/ccsoh/billing.vortekhosting.com"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/home/ccsoh/billing.vortekhosting.com"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_AUTHORIZATION
""
HTTP_CONNECTION
"close"
HTTP_HOST
"billing.vortekhosting.com"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_X_FORWARDED_FOR
"3.238.235.248"
HTTP_X_FORWARDED_HOST
"billing.vortekhosting.com"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_X_FORWARDED_SERVER
"billing.vortekhosting.com"
HTTP_X_REAL_IP
"3.238.235.248"
PATH
"/bin:/usr/bin:/usr/local/php/bin"
PHPRC
"/home/ccsoh"
QUERY_STRING
"_url=/order&product=11"
REDIRECT_HTTPS
"on"
REDIRECT_HTTP_AUTHORIZATION
""
REDIRECT_QUERY_STRING
"_url=/order&product=11"
REDIRECT_STATUS
"200"
REDIRECT_UNIQUE_ID
"ZiX8JoNAQDknmxyJpvs0ugAAABc"
REDIRECT_URL
"/order"
REMOTE_ADDR
"3.238.235.248"
REMOTE_PORT
"34970"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"https"
REQUEST_URI
"/order?product=11"
SCRIPT_FILENAME
"/home/ccsoh/billing.vortekhosting.com/index.php"
SCRIPT_NAME
"/index.php"
SERVER_ADDR
"192.168.0.105"
SERVER_ADMIN
"webmaster@billing.vortekhosting.com"
SERVER_NAME
"billing.vortekhosting.com"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/1.0"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips"
UNIQUE_ID
"ZiX8JoNAQDknmxyJpvs0ugAAABc"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1713765414.264
REQUEST_TIME
1713765414
empty
0. Whoops\Handler\PrettyPageHandler