cagartner
7/18/2016 - 3:25 AM

WooCommerce - Custom templates in plugin

WooCommerce - Custom templates in plugin

function cs_woocommerce_locate_template( $template, $template_name, $template_path ) {
	global $woocommerce;

	$_template = $template;
	if ( ! $template_path ) {
		$template_path = $woocommerce->template_url;
	}
	$plugin_path  = untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/templates/';

	// Look within passed path within the theme - this is priority
	$template = locate_template( array(
		$template_path . $template_name,
		$template_name
	) );

	// Modification: Get the template from this plugin, if it exists
	if ( ! $template && file_exists( $plugin_path . $template_name ) ) {
		$template = $plugin_path . $template_name;
	}

	// Use default template
	if ( ! $template ) {
		$template = $_template;
	}

	// Return what we found
	return $template;
}

add_filter( 'woocommerce_locate_template', 'cs_woocommerce_locate_template', 10, 3 );