You’re right about not doing this inside the theme file, also you have the right thing in mind putting this into your functions.php
. Try the approach shown below, it’s more you actually need, so pick what’s fitting in your case.
Code:
//remove add to cart buttons
add_action( 'init', 'wpse124288_wc_remove_add_to_cart_buttons' );
function wpse124288_wc_remove_add_to_cart_buttons() {
//add to cart button loop
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
//add to cart button single product
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
//(re)add add to cart buttons
add_action( 'init', 'wpse124288_wc_readd_add_to_cart_buttons' );
function wpse124288_wc_readd_add_to_cart_buttons() {
//add to cart button loop
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
//add to cart button single product
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}