是否可以根据某个产品ID删除WooCommerce钩子(在本例中为产品标题)?
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
尝试修改一些PHP字符串,但不成功:
if ( is_single( 'ID' ) ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 )}
谁能弄清楚如何使用条件逻辑并应用于删除特定产品ID上的钩子?在特定类别的产品中隐藏它也可以解决这个问题。
将remove_action
放在优先级较低的add_action
中(在本例中小于5)。
则可以使用global $product
得到:
function action_woocommerce_single_product_summary() {
global $product;
// Set productIDs
$product_ids = array ( 30, 815 );
// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
// Get productID
$product_id = $product->get_id();
// Product Id is in the array
if ( in_array( $product_id, $product_ids ) ) {
// Remove
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
}
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 4 );
要基于产品类别和productID应用相同的方法,使用:
function action_woocommerce_single_product_summary() {
global $product;
// Set categories
$categories = array ( 'categorie-1', 'categorie-2' );
// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
// Get productID
$product_id = $product->get_id();
// Has term
if ( has_term( $categories, 'product_cat', $product_id ) ) {
// Remove
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
}
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 4 );