根据 WooCommerce 中的产品 ID 应用 remove_action

Apply remove_action based on productIDs in WooCommerce

是否可以删除基于特定产品 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 );

要根据产品类别与产品 ID 应用相同的方法,请使用:

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 );