Benutzerdefinierte WooCommerce-Templates lassen sich einfach in ein Theme auslagern. Doch nicht in allen Fällen hat man selbst die Kontrolle über die Dateien des verwendeten Themes. In diesem Fall können eigene WooCommerce-Templates auch in ein Plugin ausgelagert werden.
Nachfolgende Snippets veranlassen WooCommerce, dort verfügbare modifizierte Templates aus einem Plugin zu beziehen.
define( 'MYPLUGIN_WOO_TEMPATES_DIR', plugin_dir_path( __FILE__ ) . 'templates/' );
function myplugin_woo_template_replace( $located, $template_name, $args, $template_path, $default_path ) {
if ( file_exists( MYPLUGIN_WOO_TEMPATES_DIR . $template_name ) ) {
$located = MYPLUGIN_WOO_TEMPATES_DIR . $template_name;
}
return $located;
}
function myplugin_woo_get_template_part( $template, $slug, $name ) {
if ( empty( $name ) ) {
if ( file_exists( MYPLUGIN_WOO_TEMPATES_DIR . "{$slug}.php" ) ) {
$template = MYPLUGIN_WOO_TEMPATES_DIR . "{$slug}.php";
}
} else {
if ( file_exists( MYPLUGIN_WOO_TEMPATES_DIR . "{$slug}-{$name}.php" ) ) {
$template = MYPLUGIN_WOO_TEMPATES_DIR . "{$slug}-{$name}.php";
}
}
return $template;
}
add_filter( 'wc_get_template', 'myplugin_woo_template_replace', 10, 5 );
add_filter( 'wc_get_template_part', 'myplugin_woo_get_template_part', 10, 3 );
Schreibe einen Kommentar