Exclude block templates from showing up in product edit page
This commit is contained in:
parent
6f812b2689
commit
ebee0e157e
|
@ -67,6 +67,8 @@ class WC_Admin_Meta_Boxes {
|
|||
// Error handling (for showing errors from meta boxes on next page load).
|
||||
add_action( 'admin_notices', array( $this, 'output_errors' ) );
|
||||
add_action( 'shutdown', array( $this, 'save_errors' ) );
|
||||
|
||||
add_filter( 'theme_product_templates', array( $this, 'remove_block_templates' ), 10, 1 );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -222,6 +224,32 @@ class WC_Admin_Meta_Boxes {
|
|||
do_action( 'woocommerce_process_' . $post->post_type . '_meta', $post_id, $post );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove block-based templates from the list of available templates for products.
|
||||
*
|
||||
* @param string[] $templates Array of template header names keyed by the template file name.
|
||||
*
|
||||
* @return string[] Templates array excluding block-based templates.
|
||||
*/
|
||||
public function remove_block_templates( $templates ) {
|
||||
if ( count( $templates ) === 0 ) {
|
||||
return $templates;
|
||||
}
|
||||
|
||||
$theme = wp_get_theme()->get_stylesheet();
|
||||
$filtered_templates = array();
|
||||
|
||||
foreach ( $templates as $template_key => $template_name ) {
|
||||
$gutenberg_template = gutenberg_get_block_template( $theme . '//' . $template_key );
|
||||
|
||||
if ( ! $gutenberg_template ) {
|
||||
$filtered_templates[ $template_key ] = $template_name;
|
||||
}
|
||||
}
|
||||
|
||||
return $filtered_templates;
|
||||
}
|
||||
}
|
||||
|
||||
new WC_Admin_Meta_Boxes();
|
||||
|
|
Loading…
Reference in New Issue