Seems to be because WooCommerce doesn’t process shortcodes there. Try adding this code to your functions.php file (ideally in child theme).
if ( ! function_exists( 'woocommerce_taxonomy_archive_description' ) ) {
/**
* Show an archive description on taxonomy archives.
*
* @subpackage Archives
*/
function woocommerce_taxonomy_archive_description() {
if ( is_tax( array( 'product_cat', 'product_tag' ) ) && 0 === absint( get_query_var( 'paged' ) ) ) {
$description = wc_format_content( term_description() );
if ( $description ) {
echo '<div class="term-description">' . do_shortcode($description) . '</div>';
}
}
}
}
if ( ! function_exists( 'woocommerce_product_archive_description' ) ) {
/**
* Show a shop page description on product archives.
*
* @subpackage Archives
*/
function woocommerce_product_archive_description() {
// Don't display the description on search results page
if ( is_search() ) {
return;
}
if ( is_post_type_archive( 'product' ) && 0 === absint( get_query_var( 'paged' ) ) ) {
$shop_page = get_post( wc_get_page_id( 'shop' ) );
if ( $shop_page ) {
$description = wc_format_content( $shop_page->post_content );
if ( $description ) {
echo '<div class="page-description">' . do_shortcode($description) . '</div>';
}
}
}
}
}
– Ed