WooCommerce remove_action und add_action

Ich habe in meinem WordPress-Projekt woocommerce-functions.php hier habe ich alle meine Woocommerce-Bearbeitungen. Also versuche ich zwei verschiedene Single-Product-Seiten zu erstellen. Ich habe in der woocommerce-functions Dateifunktion namens “diff_prod”

 // Check if the product have specific Category function diff_prod() { global $post; $terms = wp_get_post_terms( $post->ID, 'product_cat' ); foreach( $terms as $term ) $categories[] = $term->slug; if( is_array( $categories ) ) { if( in_array( 'diff-prod', $categories ) ) { $diffe = 'im different!'; } else { $diffe = 'im not!'; } } return $diffe; } 

und dann versuche ich eine Aussage zu machen:

 if(diff_prod() == 'im different!'): /* Remove "Add to Cart" -Button from Single Product Page */ remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); endif; 

Aber aus irgendeinem Grund funktioniert das nicht. Ich habe den Code bis zum hundertsten Mal gelesen und alles macht Sinn, aber mir fehlt offenbar etwas.

Irgendwelche Vorschläge?

Solutions Collecting From Web of "WooCommerce remove_action und add_action"

Sie können eine eigene dedizierte function erstellen und eine Standardfunktion überschreiben, wenn sich eine function in einer function_exists statement befindet.

 if ( ! function_exists( 'woocommerce_template_single_add_to_cart' ) ) {} 

Sie können die function woocommerce_template_single_add_to_cart von wc-template-functions.php

Kopieren Sie einfach diese function in Ihre woocommerce-functions.php und ändern Sie sie mit der gewünschten statement.

Diese Methode ist einfach, wenn Sie nicht mehrere Vorlagen basierend auf bestimmten Bedingungen hinzufügen möchten.