By default, the configurator theme is set for the whole website. It is however possible to programatically override the selected theme by using the mkl/pc/theme_id
filter.
Example:
add_filter( 'mkl/pc/theme_id', function( $default ) { // Maybe override the theme ID if ( $something_is_true ) { return 'other_theme_id'; } // Return the default one otherwise return $default; } );
You can for example set this to use the current post’s custom fields in order to override the theme:
add_filter( 'mkl/pc/theme_id', function( $default ) { global $post; // Check if there is a global post if ( ! is_a( $post, 'WP_Post' ) ) return $default; // Get the theme ID stored in the 'mkl_custom_page_theme' post meta if ( get_post_meta( $post->ID, 'mkl_custom_page_theme', true ) ) return get_post_meta( $post->ID, 'mkl_custom_page_theme', true ); // Fallback to the main theme return $default; } );
You can then use this custom field in the product: