Files
szkoleniauryzaj.pl/wp-content/plugins/woocommerce-product-stock-alert/classes/class-woo-product-stock-alert-template.php
2024-11-10 21:08:49 +01:00

146 lines
5.0 KiB
PHP

<?php
if (!defined('ABSPATH'))
exit;
/**
* @class MVX Template Class
*
* @version 2.2.0
* @package MultivendorX
* @author MultiVendorX
*/
class WOO_Product_Stock_Alert_Template {
public $template_url;
public function __construct() {
$this->template_url = 'woo-stock-alert/';
}
/**
* Get other templates (e.g. product attributes) passing attributes and including the file.
*
* @access public
* @param mixed $template_name
* @param array $args (default: array())
* @param string $template_path (default: '')
* @param string $default_path (default: '')
* @return void
*/
public function get_template($template_name, $args = array(), $template_path = '', $default_path = '') {
if ($args && is_array($args))
extract($args);
$located = $this->locate_template($template_name, $template_path, $default_path);
include ($located);
}
/**
* Locate a template and return the path for inclusion.
*
* This is the load order:
*
* yourtheme / $template_path / $template_name
* yourtheme / $template_name
* $default_path / $template_name
*
* @access public
* @param mixed $template_name
* @param string $template_path (default: '')
* @param string $default_path (default: '')
* @return string
*/
public function locate_template($template_name, $template_path = '', $default_path = '') {
global $woocommerce, $WOO_Product_Stock_Alert;
$default_path = apply_filters('template_path', $default_path);
if (!$template_path) {
$template_path = $this->template_url;
}
if (!$default_path) {
$default_path = $WOO_Product_Stock_Alert->plugin_path . 'templates/';
}
// Look within passed path within the theme - this is priority
$template = locate_template(array(trailingslashit($template_path) . $template_name, $template_name));
// Add support of third perty plugin
$template = apply_filters('mvx_locate_template', $template, $template_name, $template_path, $default_path);
// Get default template
if (!$template) {
$template = $default_path . $template_name;
}
return $template;
}
/**
* Get store templates (e.g. product attributes) passing attributes and including the file.
*
* @access public
* @param mixed $template_name
* @param array $args (default: array())
* @param string $template_path (default: '')
* @param string $default_path (default: '')
* @return void
*/
public function get_store_template($template_name, $args = array(), $template_path = '', $default_path = '') {
if ($args && is_array($args))
extract($args);
$located = $this->store_locate_template($template_name, $template_path, $default_path);
include ($located);
}
public function store_locate_template($template_name, $template_path = '', $default_path = '') {
global $woocommerce, $WOO_Product_Stock_Alert;
$default_path = apply_filters('template_path', $default_path);
if (!$template_path) {
$template_path = $this->template_url;
}
if (!$default_path) {
$default_path = $WOO_Product_Stock_Alert->plugin_path . 'templates/';
}
// Look within passed path within the theme - this is priority
$template = locate_template(array(trailingslashit($template_path) . $template_name, $template_name));
// Add support of third perty plugin
$template = apply_filters('mvx_store_locate_template', $template, $template_name, $template_path, $default_path);
// Get default template
if (!$template) {
$template = $default_path . $template_name;
}
return $template;
}
/**
* Get template part (for templates like the shop-loop).
*
* @access public
* @param mixed $slug
* @param string $name (default: '')
* @return void
*/
public function get_template_part($slug, $name = '') {
global $WOO_Product_Stock_Alert;
$template = '';
// Look in yourtheme/slug-name.php and yourtheme/woocommerce/slug-name.php
if ($name)
$template = $this->locate_template(array("{$slug}-{$name}.php", "{$this->template_url}{$slug}-{$name}.php"));
// Get default slug-name.php
if (!$template && $name && file_exists($WOO_Product_Stock_Alert->plugin_path . "templates/{$slug}-{$name}.php"))
$template = $WOO_Product_Stock_Alert->plugin_path . "templates/{$slug}-{$name}.php";
// If template file doesn't exist, look in yourtheme/slug.php and yourtheme/woocommerce/slug.php
if (!$template)
$template = $this->locate_template(array("{$slug}.php", "{$this->template_url}{$slug}.php"));
echo $template;
if ($template)
load_template($template, false);
}
}