Попробуйте сделать это следующим образом:
add_action('woocommerce_before_single_variation','myfunction');
function myfunction(){
global $post, $product, $woocommerce_loop;
if( $product->has_child() )
echo 'something text';
}
add_action('woocommerce_after_add_to_cart_button','myfunction2');
function myfunction2(){
global $post, $product, $woocommerce_loop;
if(! $product->has_child() )
echo 'something text';
}
Хотя текст не следует добавлять дважды. Поэтому я думаю, что было бы лучше выяснить, почему это происходит в вашем случае.