<?php

namespace Sibs\Stargate\Utils;

class TemplateUtils
{
    /**
     * Get Template.
     *
     * @param string $template_name
     * @param string $template_type
     * @param array  $args
     *
     * @return string
     */
    public static function get_template($template_name, $template_type = 'checkout', $args = [])
    {
        $template_path = constant('SIBS_PLUGIN_PATH').'/templates/'.$template_type.'/';
        $template_file = $template_name.'.php';

        if (!file_exists($template_path.$template_file)) {
            error_log('Template not found: '.$template_path.$template_file);

            return;
        }

        // Allow theme or child theme overrides
        $overridden_template = locate_template($template_type.'/'.$template_file);

        // Use the overridden template if it exists, otherwise fallback to plugin's template
        $final_template_path = $overridden_template ?: $template_path;

        // Ensure template arguments are parsed
        $args = wp_parse_args($args, [
            'default_key' => 'default_value', // Example default value
        ]);

        // Load the template
        wc_get_template($template_file, $args, $template_type.'/', $final_template_path);
    }
}
